diff --git a/.ls-lint.yml b/.ls-lint.yml index d1a14afa5c..66034d6b95 100644 --- a/.ls-lint.yml +++ b/.ls-lint.yml @@ -13,8 +13,6 @@ ignore: - '**/*.test.{js,mjs,cjs,ts,cts,mts}' - packages/rollup-tests/test # Copied from rollup repo - 'crates/rolldown/tests/fixtures/**/_test.js' # `_test.js` is a special file, which will be treat as the entry file while executing the build output of fixture. - - packages/rolldown/build.config.ts # convention name for using unbuild - - packages/rolldown/vitest.config.ts - web/docs/.vitepress/cache # cache files generated by vitepress # FIXME: should not ignore following folders - web diff --git a/cspell.json b/cspell.json index 7f9f2e6577..4cf7409e99 100644 --- a/cspell.json +++ b/cspell.json @@ -100,8 +100,6 @@ "transpiling", "treeshake", "consola", - "jiti", - "JITI", "citty", "underfin", "UNKEYED", diff --git a/examples/basic-vue/build.js b/examples/basic-vue/rolldown.config.js similarity index 52% rename from examples/basic-vue/build.js rename to examples/basic-vue/rolldown.config.js index e24eae5a3b..e66dccfe5c 100644 --- a/examples/basic-vue/build.js +++ b/examples/basic-vue/rolldown.config.js @@ -1,9 +1,6 @@ -import { performance } from 'node:perf_hooks' -import * as rolldown from 'rolldown' +import { defineConfig } from 'rolldown' -const start = performance.now() - -const build = await rolldown.rolldown({ +export default defineConfig({ input: './index.js', resolve: { // This needs to be explicitly set for now because oxc resolver doesn't @@ -12,7 +9,3 @@ const build = await rolldown.rolldown({ conditionNames: ['import'], }, }) - -await build.write() - -console.log(`bundled in ${(performance.now() - start).toFixed(2)}ms`) diff --git a/packages/rolldown/bin/cli.js b/packages/rolldown/bin/cli.js index 2ac90f5f22..4a3bf36f02 100755 --- a/packages/rolldown/bin/cli.js +++ b/packages/rolldown/bin/cli.js @@ -1,2 +1,2 @@ #!/usr/bin/env node -import('../cli/main.js') +import('../dist/cli.mjs') diff --git a/packages/rolldown/build.config.ts b/packages/rolldown/build.config.ts index 8f19abb8b2..10c5bdf771 100644 --- a/packages/rolldown/build.config.ts +++ b/packages/rolldown/build.config.ts @@ -5,13 +5,21 @@ import nodePath from 'node:path' import { globSync } from 'glob' export default defineBuildConfig({ - entries: ['./src/index'], + entries: [ + './src/index', + { + builder: 'rollup', + input: './src/cli/index', + name: 'cli', + }, + ], clean: true, declaration: true, // generate .d.ts files externals: [/rolldown-binding\..*\.node/, /@rolldown\/binding-.*/], rollup: { emitCJS: true, cjsBridge: true, + inlineDependencies: true, }, hooks: { 'build:done'(_ctx) { @@ -25,8 +33,8 @@ export default defineBuildConfig({ // Move the binary file to dist binaryFiles.forEach((file) => { const fileName = nodePath.basename(file) - console.log('Copying', file, 'to ./dist') - nodeFs.copyFileSync(file, `./dist/${fileName}`) + console.log('Copying', file, 'to ./dist/shared') + nodeFs.copyFileSync(file, `./dist/shared/${fileName}`) }) }, }, diff --git a/packages/rolldown/cli/build.js b/packages/rolldown/cli/build.js deleted file mode 100644 index f0fdce8e78..0000000000 --- a/packages/rolldown/cli/build.js +++ /dev/null @@ -1,74 +0,0 @@ -import path from 'node:path' -import { performance } from 'node:perf_hooks' -import consola from 'consola' -import { colors } from 'consola/utils' -import { rolldown } from '../dist/index.mjs' - -/** - * @typedef {import('../src/rollup.d.ts').RollupOptions} RollupOptions - */ - -/** - * Build - * - * @param {RollupOptions | RollupOptions[]} options - Rollup options - */ -export default async function build(options) { - const _options = Array.isArray(options) ? options : [options] - - for (const option of _options) { - await buildWithRolldown(option) - } -} - -/** - * Build with rolldown - * - * @param {RollupOptions} option - Rollup option - */ -async function buildWithRolldown(option) { - const outputOptions = Array.isArray(option.output) - ? option.output - : [option.output] - const files = outputOptions.map((output) => - relativeId(output.file || output.dir), - ) - // TODO: multiple input files - const inputFiles = option.input - - consola.info(`${colors.bold(inputFiles)} ...`) - // consola.info( - // `${colors.bold(inputFiles)} → ${colors.bold(files.join(', '))}...`, - // ) - - const start = performance.now() - const bundle = await rolldown(option) - const ret = await Promise.all( - outputOptions.map((output) => { - consola.debug('output', output) - return bundle.write(output) - }), - ) - ret.forEach((item, index) => { - consola.debug(index, item) - }) - // TODO: bundle.close is not a function ... - // await bundle.close() - - // consola.success( - // `created ${colors.bold(files.join(', '))} in ${colors.bold((performance.now() - start).toFixed(2))}ms`, - // ) - consola.success( - `created ${colors.bold(files.join(', '))} in ${colors.bold((performance.now() - start).toFixed(2))} ms`, - ) -} - -/** - * Resolves a relative id to an absolute id. - * - * @param {string} id - An id to resolve - * @returns {string} - A resolved relative id - */ -function relativeId(id) { - return !path.isAbsolute(id) ? id : path.relative(path.resolve(), id) -} diff --git a/packages/rolldown/cli/config.js b/packages/rolldown/cli/config.js deleted file mode 100644 index 7af8ed3668..0000000000 --- a/packages/rolldown/cli/config.js +++ /dev/null @@ -1,70 +0,0 @@ -import jitiFactory from 'jiti' -import path from 'node:path' -import fs from 'node:fs' -import { fileURLToPath } from 'node:url' -import { ERR_UNSUPPORTED_CONFIG_FORMAT } from './errors.js' - -const __filename = fileURLToPath(import.meta.url) - -const DEFAULT_CONFIG_FILE = 'rolldown.config.js' - -/** - * Normalize a rolldown configuration file path - * - * @description - * if the specified path is a directory, it will be resolved to the default configuration file. - * - * @param {string} configPath - A path of rolldown configuration file - * @returns {string} A normalized path of rolldown configuration file - * - * @throws {Error} - If the specified path is invalid (e.g ENOENT), throw an error - */ -export function normalizeConfigPath(configPath) { - if (fs.lstatSync(configPath).isDirectory()) { - return path.resolve(configPath, DEFAULT_CONFIG_FILE) - } else { - return configPath - } -} - -/** - * @typedef {import('../src/rollup.d.ts').RollupOptions} RollupOptions - */ - -/** - * Load a rolldown configuration file - * - * @param {string} configPath - A path of rolldown configuration file - * @returns {RollupOptions | RollupOptions[]} A rollup options via rollup configuration file - */ -export function loadConfig(configPath) { - // TODO: function case - if (!isSupportedFormat(configPath)) { - throw new Error(ERR_UNSUPPORTED_CONFIG_FORMAT) - } - return lazyJiti()(configPath) -} - -/** - * Check whether the configuration file is supported - * - * @param {string} configPath - The path of the rolldown configuration file - * @returns {boolean} whether the configuration file is supported - */ -function isSupportedFormat(configPath) { - const ext = path.extname(configPath) - return /\.(js|mjs|ts)$/.test(ext) -} - -/** - * @type {import('jiti').JITI | null} - */ -let jiti = null - -/** - * Get a jiti instance lazily - * @returns {import('jiti').JITI} - */ -function lazyJiti() { - return jiti ?? (jiti = jitiFactory(__filename)) -} diff --git a/packages/rolldown/cli/main.js b/packages/rolldown/cli/main.js deleted file mode 100644 index e3efa0418f..0000000000 --- a/packages/rolldown/cli/main.js +++ /dev/null @@ -1,46 +0,0 @@ -import { defineCommand, runMain, showUsage } from 'citty' -import consola from 'consola' -import process from 'node:process' -import path from 'node:path' -import pkgJson from '../package.json' assert { type: 'json' } -import { normalizeConfigPath, loadConfig } from './config.js' -import build from './build.js' - -/** - * NOTE: - * currently, It's hard to customize usage with citty `renderUsage`. - * It may be better to use another CLI library or construct our own. - */ - -const main = defineCommand({ - meta: { - name: 'rolldown', - version: pkgJson.version, - description: pkgJson.description, - }, - args: { - config: { - type: 'string', - alias: 'c', - description: - 'Use this config file (if argument is used but value is unspecified, defaults to rolldown.config.js)', - }, - }, - async run(ctx) { - if (ctx.rawArgs.length === 0) { - await showUsage(ctx.cmd) - return - } - - const currentDir = path.resolve(process.cwd(), '.') - const configPath = normalizeConfigPath( - path.resolve(currentDir, ctx.args.config), - ) - const { default: config } = loadConfig(configPath) - consola.debug('loaded config', config) - - await build(config) - }, -}) - -runMain(main) diff --git a/packages/rolldown/package.json b/packages/rolldown/package.json index eb00b70824..6705ace02d 100644 --- a/packages/rolldown/package.json +++ b/packages/rolldown/package.json @@ -21,7 +21,6 @@ "bin": { "rolldown": "./bin/cli.js" }, - "type": "module", "main": "./dist/index.cjs", "types": "./dist/index.d.ts", "exports": { @@ -67,14 +66,11 @@ "armv7-linux-androideabi" ] }, - "dependencies": { - "citty": "^0.1.6", - "consola": "^3.2.3", - "jiti": "^1.21.0" - }, "devDependencies": { "@napi-rs/cli": "^3.0.0-alpha.43", + "citty": "^0.1.6", "colorette": "^2.0.20", + "consola": "^3.2.3", "glob": "^10.3.10", "rollup": "^4.12.1", "type-fest": "^4.12.0", diff --git a/packages/rolldown/src/cli/commands/bundle.ts b/packages/rolldown/src/cli/commands/bundle.ts new file mode 100644 index 0000000000..6eb47a91e2 --- /dev/null +++ b/packages/rolldown/src/cli/commands/bundle.ts @@ -0,0 +1,26 @@ +import { performance } from 'node:perf_hooks' +import consola from 'consola' +import { colors } from 'consola/utils' +import { RolldownOptions, rolldown } from '../../index' +import { RolldownConfigExport } from '../../types/rolldown-config-export' +import { arraify } from '../../utils' + +export async function bundle(configExport: RolldownConfigExport) { + const options = arraify(configExport) + + for (const option of options) { + await bundleInner(option) + } +} + +async function bundleInner(options: RolldownOptions) { + const start = performance.now() + + const build = await rolldown(options) + + const _output = await build.write(options?.output) + + consola.log( + `Finished in ${colors.bold((performance.now() - start).toFixed(2))} ms`, + ) +} diff --git a/packages/rolldown/cli/errors.js b/packages/rolldown/src/cli/errors.ts similarity index 100% rename from packages/rolldown/cli/errors.js rename to packages/rolldown/src/cli/errors.ts diff --git a/packages/rolldown/src/cli/index.ts b/packages/rolldown/src/cli/index.ts new file mode 100644 index 0000000000..f9e6f4a012 --- /dev/null +++ b/packages/rolldown/src/cli/index.ts @@ -0,0 +1,52 @@ +import { defineCommand, runMain, showUsage } from 'citty' +import consola from 'consola' +import process from 'node:process' +import path from 'node:path' +import pkgJson from '../../package.json' assert { type: 'json' } +import { loadConfig } from './utils.js' +import { bundle } from './commands/bundle' + +const main = defineCommand({ + meta: { + name: 'rolldown', + version: pkgJson.version, + description: pkgJson.description, + }, + args: { + config: { + type: 'string', + alias: 'c', + description: + 'Use this config file (if argument is used but value is unspecified, defaults to rolldown.config.js)', + }, + help: { + type: 'boolean', + alias: 'h', + description: 'Show this help message', + }, + }, + async run(ctx) { + if (ctx.args.help) { + await showUsage(ctx.cmd) + return + } + const cwd = process.cwd() + let configPath + if (ctx.args.config) { + configPath = path.resolve(cwd, ctx.args.config) + } else { + configPath = path.resolve(cwd, 'rolldown.config.js') + } + + const config = await loadConfig(configPath) + + if (!config) { + consola.error(`No configuration found at ${configPath}`) + process.exit(1) + } + + await bundle(config) + }, +}) + +runMain(main) diff --git a/packages/rolldown/src/cli/utils.ts b/packages/rolldown/src/cli/utils.ts new file mode 100644 index 0000000000..94209cec50 --- /dev/null +++ b/packages/rolldown/src/cli/utils.ts @@ -0,0 +1,27 @@ +import path from 'node:path' +import { ERR_UNSUPPORTED_CONFIG_FORMAT } from './errors.js' +import { RolldownConfigExport } from '../types/rolldown-config-export.js' + +/** + * @typedef {import('../rollup').RollupOptions} RollupOptions + */ + +/** + * Load a rolldown configuration file + */ +export async function loadConfig( + configPath: string, +): Promise { + if (!isSupportedFormat(configPath)) { + throw new Error(ERR_UNSUPPORTED_CONFIG_FORMAT) + } + return import(configPath).then((config) => config.default) +} + +/** + * Check whether the configuration file is supported + */ +function isSupportedFormat(configPath: string): boolean { + const ext = path.extname(configPath) + return /\.(js|mjs)$/.test(ext) +} diff --git a/packages/rolldown/src/index.ts b/packages/rolldown/src/index.ts index 44d83b62ce..ed5a476604 100644 --- a/packages/rolldown/src/index.ts +++ b/packages/rolldown/src/index.ts @@ -1,19 +1,19 @@ import { RolldownOutput } from './objects/rolldown-output' import type { InputOptions, RolldownPlugin } from './options/input-options' import type { OutputOptions } from './options/output-options' +import type { RolldownOptions } from './types/rolldown-options' +import { defineConfig } from './utils/define-config' export { rolldown, experimental_scan } from './rolldown' -interface RollupOptions extends InputOptions { - // This is included for compatibility with config files but ignored by rollup.rollup - output?: OutputOptions | OutputOptions[] -} +export { defineConfig } -// export types from rolldown export type { - RollupOptions, + RolldownOptions, + RolldownOptions as RollupOptions, + RolldownOutput, + RolldownOutput as RollupOutput, InputOptions, OutputOptions, RolldownPlugin as Plugin, - RolldownOutput as RollupOutput, } diff --git a/packages/rolldown/src/rolldown-build.ts b/packages/rolldown/src/rolldown-build.ts index 3c1b0b199b..6af24ba33f 100644 --- a/packages/rolldown/src/rolldown-build.ts +++ b/packages/rolldown/src/rolldown-build.ts @@ -10,6 +10,7 @@ export class RolldownBuild { #bundler?: Bundler constructor(inputOptions: InputOptions) { + // TODO: Check if `inputOptions.output` is set. If so, throw an warning that it is ignored. this.#inputOptions = inputOptions } diff --git a/packages/rolldown/src/types/rolldown-config-export.ts b/packages/rolldown/src/types/rolldown-config-export.ts new file mode 100644 index 0000000000..46b211e92d --- /dev/null +++ b/packages/rolldown/src/types/rolldown-config-export.ts @@ -0,0 +1,3 @@ +import { RolldownOptions } from './rolldown-options' + +export type RolldownConfigExport = RolldownOptions | RolldownOptions[] diff --git a/packages/rolldown/src/types/rolldown-options.ts b/packages/rolldown/src/types/rolldown-options.ts new file mode 100644 index 0000000000..ea8ea3ad6e --- /dev/null +++ b/packages/rolldown/src/types/rolldown-options.ts @@ -0,0 +1,7 @@ +import { InputOptions } from '../options/input-options' +import { OutputOptions } from '../options/output-options' + +export interface RolldownOptions extends InputOptions { + // This is included for compatibility with config files but ignored by `rolldown.rolldown` + output?: OutputOptions +} diff --git a/packages/rolldown/src/utils/define-config.ts b/packages/rolldown/src/utils/define-config.ts new file mode 100644 index 0000000000..b79aae5eb0 --- /dev/null +++ b/packages/rolldown/src/utils/define-config.ts @@ -0,0 +1,7 @@ +import { RolldownConfigExport } from '../types/rolldown-config-export' + +export function defineConfig( + config: RolldownConfigExport, +): RolldownConfigExport { + return config +} diff --git a/packages/rolldown/test/cli/config.test.ts b/packages/rolldown/test/cli/config.test.ts new file mode 100644 index 0000000000..53e9cbd837 --- /dev/null +++ b/packages/rolldown/test/cli/config.test.ts @@ -0,0 +1,47 @@ +import { describe, test, assert } from 'vitest' +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import { loadConfig } from '../../src/cli/utils' +import { ERR_UNSUPPORTED_CONFIG_FORMAT } from '../../src/cli/errors' +import { expect } from 'vitest' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +describe('loadConfig', () => { + const RE_ERR = RegExp(ERR_UNSUPPORTED_CONFIG_FORMAT) + + test('js', async () => { + const config = await loadConfig( + path.resolve(__dirname, 'fixtures/rolldown.config.js'), + ) + assert.deepEqual(config, { input: 'src/index.js' }) + }) + + test('mjs', async () => { + const config = await loadConfig( + path.resolve(__dirname, 'fixtures/rolldown.config.mjs'), + ) + assert.deepEqual(config, [ + { input: 'src/app1/index.js' }, + { input: 'src/app2/index.js' }, + ]) + }) + + test('cjs', async () => { + await expect( + loadConfig(path.resolve(__dirname, 'fixtures/rolldown.config.cjs')), + ).rejects.toThrowError(RE_ERR) + }) + + test('other format', async () => { + await expect( + loadConfig(path.resolve(__dirname, 'fixtures/rolldown.config.json')), + ).rejects.toThrowError(RE_ERR) + }) + + test('not found file', async () => { + await expect( + loadConfig(path.join(__dirname, 'fixtures/rollup.config.js')), + ).rejects.toThrowError(Error) + }) +}) diff --git a/packages/rolldown/test/fixtures/basic/rolldown.config.js b/packages/rolldown/test/cli/fixtures/basic/rolldown.config.js similarity index 100% rename from packages/rolldown/test/fixtures/basic/rolldown.config.js rename to packages/rolldown/test/cli/fixtures/basic/rolldown.config.js diff --git a/packages/rolldown/test/fixtures/basic/src/calc.js b/packages/rolldown/test/cli/fixtures/basic/src/calc.js similarity index 100% rename from packages/rolldown/test/fixtures/basic/src/calc.js rename to packages/rolldown/test/cli/fixtures/basic/src/calc.js diff --git a/packages/rolldown/test/fixtures/basic/src/index.js b/packages/rolldown/test/cli/fixtures/basic/src/index.js similarity index 100% rename from packages/rolldown/test/fixtures/basic/src/index.js rename to packages/rolldown/test/cli/fixtures/basic/src/index.js diff --git a/packages/rolldown/test/fixtures/basic/src/modules/say.js b/packages/rolldown/test/cli/fixtures/basic/src/modules/say.js similarity index 100% rename from packages/rolldown/test/fixtures/basic/src/modules/say.js rename to packages/rolldown/test/cli/fixtures/basic/src/modules/say.js diff --git a/packages/rolldown/test/fixtures/rolldown.config.cjs b/packages/rolldown/test/cli/fixtures/rolldown.config.cjs similarity index 100% rename from packages/rolldown/test/fixtures/rolldown.config.cjs rename to packages/rolldown/test/cli/fixtures/rolldown.config.cjs diff --git a/packages/rolldown/test/fixtures/rolldown.config.js b/packages/rolldown/test/cli/fixtures/rolldown.config.js similarity index 100% rename from packages/rolldown/test/fixtures/rolldown.config.js rename to packages/rolldown/test/cli/fixtures/rolldown.config.js diff --git a/packages/rolldown/test/fixtures/rolldown.config.json b/packages/rolldown/test/cli/fixtures/rolldown.config.json similarity index 100% rename from packages/rolldown/test/fixtures/rolldown.config.json rename to packages/rolldown/test/cli/fixtures/rolldown.config.json diff --git a/packages/rolldown/test/fixtures/rolldown.config.mjs b/packages/rolldown/test/cli/fixtures/rolldown.config.mjs similarity index 100% rename from packages/rolldown/test/fixtures/rolldown.config.mjs rename to packages/rolldown/test/cli/fixtures/rolldown.config.mjs diff --git a/packages/rolldown/test/fixtures/rolldown.config.ts b/packages/rolldown/test/cli/fixtures/rolldown.config.ts similarity index 100% rename from packages/rolldown/test/fixtures/rolldown.config.ts rename to packages/rolldown/test/cli/fixtures/rolldown.config.ts diff --git a/packages/rolldown/test/fixtures/transform.ts b/packages/rolldown/test/cli/fixtures/transform.ts similarity index 100% rename from packages/rolldown/test/fixtures/transform.ts rename to packages/rolldown/test/cli/fixtures/transform.ts diff --git a/packages/rolldown/test/config.test.js b/packages/rolldown/test/config.test.js deleted file mode 100644 index c510bbce23..0000000000 --- a/packages/rolldown/test/config.test.js +++ /dev/null @@ -1,77 +0,0 @@ -import { describe, test, assert } from 'vitest' -import path from 'node:path' -import { fileURLToPath } from 'node:url' -import { normalizeConfigPath, loadConfig } from '../cli/config.js' -import { ERR_UNSUPPORTED_CONFIG_FORMAT } from '../cli/errors.js' - -const __dirname = path.dirname(fileURLToPath(import.meta.url)) - -describe('normalizeConfigPath', () => { - test('has the config file', () => { - const configPath = path.resolve(__dirname, 'fixtures/rolldown.config.ts') - const normalized = normalizeConfigPath(configPath) - assert(normalized === configPath) - }) - - test('directory', () => { - const configPath = path.resolve(__dirname, 'fixtures') - const normalized = normalizeConfigPath(configPath) - assert(normalized === path.resolve(configPath, 'rolldown.config.js')) - }) - - test('Error: ENOENT', async () => { - assert.throws(() => { - normalizeConfigPath(path.resolve(__dirname, 'foo/bar')) - }, /ENOENT: no such file or directory/) - }) -}) - -describe('loadConfig', () => { - const RE_ERR = RegExp(ERR_UNSUPPORTED_CONFIG_FORMAT) - - test('js', () => { - const config = loadConfig( - path.resolve(__dirname, 'fixtures/rolldown.config.js'), - ) - assert.deepEqual(config, { default: { input: 'src/index.js' } }) - }) - - test('mjs', () => { - const config = loadConfig( - path.resolve(__dirname, 'fixtures/rolldown.config.mjs'), - ) - assert.deepEqual(config, { - default: [{ input: 'src/app1/index.js' }, { input: 'src/app2/index.js' }], - }) - }) - - test('ts', () => { - const { default: config } = loadConfig( - path.resolve(__dirname, 'fixtures/rolldown.config.ts'), - ) - assert(config.input === 'src/index.ts') - - const plugin = config.plugins.find( - (plugin) => plugin.name === 'test-plugin', - ) - assert(typeof plugin.transform === 'function') - }) - - test('cjs', () => { - assert.throws(() => { - loadConfig(path.resolve(__dirname, 'fixtures/rolldown.config.cjs')) - }, RE_ERR) - }) - - test('other format', () => { - assert.throws(() => { - loadConfig(path.join(__dirname, 'fixtures/rolldown.config.json')) - }, RE_ERR) - }) - - test('not found file', () => { - assert.throws(() => { - loadConfig(path.join(__dirname, 'fixtures/rollup.config.js')) - }, Error) - }) -}) diff --git a/packages/rolldown/vitest.config.mts b/packages/rolldown/vitest.config.mts index 2fe94cb830..3f7edd9ec0 100644 --- a/packages/rolldown/vitest.config.mts +++ b/packages/rolldown/vitest.config.mts @@ -2,7 +2,7 @@ import { defineConfig } from 'vitest/config' export default defineConfig({ test: { - include: ['./test/runner.ts', './test/*.test.js'], + include: ['./test/runner.ts', './test/*.test.ts'], testTimeout: 20000, }, esbuild: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4481afa752..de3839f550 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,39 +91,20 @@ importers: specifier: ^4.3.0 version: 4.3.0(vue@3.4.21) - packages/cli: - dependencies: - citty: - specifier: ^0.1.6 - version: 0.1.6 - consola: - specifier: ^3.2.3 - version: 3.2.3 - jiti: - specifier: ^1.21.0 - version: 1.21.0 - rolldown: - specifier: workspace:* - version: link:../rolldown - packages/rolldown: - dependencies: - citty: - specifier: ^0.1.6 - version: 0.1.6 - consola: - specifier: ^3.2.3 - version: 3.2.3 - jiti: - specifier: ^1.21.0 - version: 1.21.0 devDependencies: '@napi-rs/cli': specifier: ^3.0.0-alpha.43 version: 3.0.0-alpha.43 + citty: + specifier: ^0.1.6 + version: 0.1.6 colorette: specifier: ^2.0.20 version: 2.0.20 + consola: + specifier: ^3.2.3 + version: 3.2.3 glob: specifier: ^10.3.10 version: 10.3.10 @@ -3402,6 +3383,7 @@ packages: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} dependencies: consola: 3.2.3 + dev: true /clear-module@4.1.2: resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} @@ -3575,6 +3557,7 @@ packages: /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} + dev: true /conventional-changelog-angular@7.0.0: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} @@ -5248,6 +5231,7 @@ packages: /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true + dev: true /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}