diff --git a/packages/cli/package.json b/packages/cli/package.json index 7feb8701..3e36e50f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -72,6 +72,7 @@ "c12": "^1.6.1", "citty": "^0.1.5", "consola": "^3.2.3", + "giget": "^1.2.1", "globby": "^14.0.0", "picocolors": "^1.0.0", "shelljs": "^0.8.5", diff --git a/packages/cli/playground/pergel.config.ts b/packages/cli/playground/pergel.config.ts index b86edaca..881483e2 100644 --- a/packages/cli/playground/pergel.config.ts +++ b/packages/cli/playground/pergel.config.ts @@ -2,12 +2,5 @@ import { definePergel } from 'pergel/core' export default definePergel({ src: 'pergel', - selectProject: 'project2', - cli: { - database: { - driver: 'drizzle', - project: 'project2', - selectedScript: 'migrate', - }, - }, + templateDir: 'pergel/templates', }) diff --git a/packages/cli/playground/pergel/templates/drizzle.mjs b/packages/cli/playground/pergel/templates/drizzle.mjs new file mode 100644 index 00000000..2d0194d7 --- /dev/null +++ b/packages/cli/playground/pergel/templates/drizzle.mjs @@ -0,0 +1,9 @@ +import { defineDownload } from 'pergel/core' + +export default defineDownload({ + branch: 'main', + folder: { + dir: 'packages/nuxt', + output: 'testttsssst', + }, +}) diff --git a/packages/cli/playground/pergel/templates/drizzle3.mjs b/packages/cli/playground/pergel/templates/drizzle3.mjs new file mode 100644 index 00000000..d8982455 --- /dev/null +++ b/packages/cli/playground/pergel/templates/drizzle3.mjs @@ -0,0 +1,9 @@ +import { defineDownload } from 'pergel/core' + +export default defineDownload({ + branch: 'main', + folder: { + dir: 'packages/nuxt', + output: 'drizzle3', + }, +}) diff --git a/packages/cli/src/commands/download.ts b/packages/cli/src/commands/download.ts new file mode 100644 index 00000000..7e037613 --- /dev/null +++ b/packages/cli/src/commands/download.ts @@ -0,0 +1,67 @@ +import { join, resolve } from 'node:path' +import { defineCommand } from 'citty' +import { loadConfig } from 'c12' +import consola from 'consola' +import type { ResolvedPergelConfig } from '../types' + +const logger = consola.create({ + defaults: { + tag: 'pergel:download', + }, +}) + +export default defineCommand({ + meta: { + name: 'Pergel Download', + description: 'Download Nuxt Template', + version: '0.0.1', + }, + args: { + template: { + alias: 't', + description: 'Download file', + }, + }, + async run({ args }) { + const template = args.template as string + + // drizzle or drizzle,drizzle2,drizzle3 + const files = template.includes(',') ? template.split(',') : [template] + + const file = await loadConfig({ + cwd: process.cwd(), + configFile: 'pergel.config.ts', + defaultConfig: { + src: 'pergel', + templateDir: 'pergel/templates', + }, + }) + + if (!file.config) { + logger.error('No config file found') + return + } + + const templateDir = resolve(file.config.templateDir) + + if (!template) { + logger.error('No template provided') + return + } + + for (const file of files) { + try { + await import(join(templateDir, `${file}.mjs`)) + .then(m => m.default) + .catch((error) => { + logger.error(`Error loading template ${file}:`, error) + }) as (options: { + cwd: string + }) => void + } + catch (error) { + logger.error(`Error loading template ${file}:`, error) + } + } + }, +}) diff --git a/packages/cli/src/commands/init.ts b/packages/cli/src/commands/init.ts index a866941f..2989261b 100644 --- a/packages/cli/src/commands/init.ts +++ b/packages/cli/src/commands/init.ts @@ -5,7 +5,7 @@ const template = `import { definePergel } from 'pergel/core' export default definePergel({ src: 'pergel', - activeBranch: 'main', + templateDir: 'pergel/templates', }) ` diff --git a/packages/cli/src/commands/module.ts b/packages/cli/src/commands/module.ts index 1375c96d..b1078944 100644 --- a/packages/cli/src/commands/module.ts +++ b/packages/cli/src/commands/module.ts @@ -37,12 +37,7 @@ export default defineCommand({ configFile: 'pergel.config.ts', defaultConfig: { src: 'pergel', - packageManager: 'pnpm', - cli: { - project: args.project, - module: args.module, - script: args.script, - }, + templateDir: 'pergel/templates', }, }) @@ -51,22 +46,17 @@ export default defineCommand({ return } - if (!file.config.cli || !file.config.cli.project || !file.config.cli.module) { - consola.error('Pergel config file is not configured') - return - } - const readmeString = readFileSync(resolve(file.config.src, 'README.yaml')).toString() const json = parse(readmeString) as PergelYaml - const project = json[file.config.cli.project]?.[file.config.cli.module] + const project = json[args.project]?.[args.module] const script = project?.scripts ?? {} if (Object.keys(script).length === 0) consola.error('No script found') - const selectedScript = script[file.config.cli.script ?? ''] + const selectedScript = script[args.script ?? ''] if (!selectedScript) consola.error('No script found') diff --git a/packages/cli/src/core.ts b/packages/cli/src/core.ts index 4248e80d..c05564e4 100644 --- a/packages/cli/src/core.ts +++ b/packages/cli/src/core.ts @@ -1,5 +1,72 @@ -import type { PergelConfig } from './types' +import { copyFileSync, rmSync } from 'node:fs' +import { join, resolve } from 'node:path' +import { downloadTemplate } from 'giget' +import { defu } from 'defu' +import { consola } from 'consola' +import type { DefineDownloadOptions, PergelConfig } from './types' + +const logger = consola.create({ + defaults: { + tag: 'pergel:download', + }, +}) export function definePergel(config: PergelConfig) { return config } + +export function defineDownload(options: DefineDownloadOptions) { + async function setup(data: { + cwd: string + }) { + const { cwd } = data + const githubRepo = 'github:oku-ui/pergel' + + options = defu(options, { + file: { + tempOutput: '.tempPergel', + }, + branch: 'main', + }) as DefineDownloadOptions + + if (options.file?.dir) { + const { source, dir } = await downloadTemplate(join(githubRepo, `${options.file.dir}#${options.branch}`), { + dir: options.file.tempOutput, + cwd, + force: true, + }) + + const output = join(cwd, options.file.output) + + const arrayFile = Array.isArray(options.file.file) ? options.file.file : [options.file.file] + + for (const file of arrayFile) { + copyFileSync( + join(dir, file), + resolve(output), + ) + } + + rmSync(dir, { + recursive: true, + force: true, + retryDelay: 100, + }) + + logger.success(`Downloaded template file: ${output}`) + + return { source, dir } + } + if (options.folder) { + const { source, dir } = await downloadTemplate(join(githubRepo, `${options.folder.dir}#${options.branch}`), { + dir: options.folder.output, + cwd, + force: true, + }) + + logger.success(`Downloaded template folder: ${dir}`) + return { source, dir } + } + } + return setup +} diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 9a4df450..5da002b6 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -19,6 +19,7 @@ const main = defineCommand({ init: () => import('./commands/init').then(m => m.default), install: () => import('./commands/install').then(m => m.default), module: () => import('./commands/module').then(m => m.default), + download: () => import('./commands/download').then(m => m.default), }, run({ args }) { console.warn('Pergel CLI') diff --git a/packages/cli/src/types.ts b/packages/cli/src/types.ts index 92c67a51..c0454275 100644 --- a/packages/cli/src/types.ts +++ b/packages/cli/src/types.ts @@ -1,21 +1,29 @@ export interface PergelConfig { /** * The name of the project. - * @default 'Pergel' + * @default 'pergel' */ src?: string /** - * The package manager to use. - * @default 'pnpm' + * The version of the project. + * @default 'pergel/templates' */ - packageManager?: 'npm' | 'yarn' | 'pnpm' + templateDir?: string +} - cli?: { - project?: string - module?: string - script?: string - } +export interface ResolvedPergelConfig { + /** + * The name of the project. + * @default 'pergel' + */ + src: string + + /** + * The version of the project. + * @default 'pergel/templates' + */ + templateDir: string } export interface PergelYaml { @@ -34,3 +42,37 @@ export interface PergelYaml { } } } + +export interface DefineDownloadOptions { + file?: { + /** + * Directory of file + * @example + * `packages/nuxt` + */ + dir: string + /** + * File name + * @example + * `pergel.config.ts` + */ + file: string | string[] + /** + * Output file name + * @example + * `pergel.config.ts` + */ + output: string + /** + * Folder name + * @default + * `.tempPergel` + */ + tempOutput?: string + } + folder?: { + dir: string + output: string + } + branch?: string +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 961fdbc2..1b8407e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,6 +75,9 @@ importers: consola: specifier: ^3.2.3 version: 3.2.3 + giget: + specifier: ^1.2.1 + version: 1.2.1 globby: specifier: ^14.0.0 version: 14.0.0 @@ -4858,8 +4861,8 @@ packages: nuxt: ^3.8.2 vite: '*' dependencies: - '@nuxt/kit': 3.9.0 - '@nuxt/schema': 3.9.0 + '@nuxt/kit': 3.9.0(rollup@3.29.4) + '@nuxt/schema': 3.9.0(rollup@3.29.4) execa: 7.2.0 nuxt: 3.9.0(@types/node@20.10.6)(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.10) vite: 5.0.10(@types/node@20.10.6) @@ -5011,7 +5014,7 @@ packages: '@antfu/utils': 0.7.7 '@nuxt/devtools-kit': 1.0.6(nuxt@3.9.0)(vite@5.0.10) '@nuxt/devtools-wizard': 1.0.6 - '@nuxt/kit': 3.9.0 + '@nuxt/kit': 3.9.0(rollup@3.29.4) birpc: 0.2.14 consola: 3.2.3 destr: 2.0.2 @@ -5041,9 +5044,9 @@ packages: semver: 7.5.4 simple-git: 3.22.0 sirv: 2.0.4 - unimport: 3.7.1 + unimport: 3.7.1(rollup@3.29.4) vite: 5.0.10(@types/node@20.10.6) - vite-plugin-inspect: 0.8.1(@nuxt/kit@3.9.0)(vite@5.0.10) + vite-plugin-inspect: 0.8.1(@nuxt/kit@3.9.0)(rollup@3.29.4)(vite@5.0.10) vite-plugin-vue-inspector: 4.0.2(vite@5.0.10) which: 3.0.1 ws: 8.16.0 @@ -5069,33 +5072,6 @@ packages: - xml2js dev: true - /@nuxt/kit@3.9.0: - resolution: {integrity: sha512-XVFQihMTXM5y7Xj7EXbcDbUbxNkC8+ArQKArAH5PK1ulCWZWyP+VR94Gg2boo9vI2eNLTs+LquxnOtOHRQrg0A==} - engines: {node: ^14.18.0 || >=16.10.0} - dependencies: - '@nuxt/schema': 3.9.0 - c12: 1.6.1 - consola: 3.2.3 - defu: 6.1.3 - globby: 14.0.0 - hash-sum: 2.0.0 - ignore: 5.3.0 - jiti: 1.21.0 - knitwork: 1.0.0 - mlly: 1.4.2 - pathe: 1.1.1 - pkg-types: 1.0.3 - scule: 1.1.1 - semver: 7.5.4 - ufo: 1.3.2 - unctx: 2.3.1 - unimport: 3.7.1 - untyped: 1.4.0 - transitivePeerDependencies: - - rollup - - supports-color - dev: true - /@nuxt/kit@3.9.0(rollup@3.29.4): resolution: {integrity: sha512-XVFQihMTXM5y7Xj7EXbcDbUbxNkC8+ArQKArAH5PK1ulCWZWyP+VR94Gg2boo9vI2eNLTs+LquxnOtOHRQrg0A==} engines: {node: ^14.18.0 || >=16.10.0} @@ -5142,26 +5118,6 @@ packages: - typescript dev: true - /@nuxt/schema@3.9.0: - resolution: {integrity: sha512-NaRiq+g6XE4YOZLy7be2e6AmZCW0gfQWDM88TSfNr3Lypo+6PuY2VqzZLpSvOCNlW3CFj/kWtMdhool2BP0yIg==} - engines: {node: ^14.18.0 || >=16.10.0} - dependencies: - '@nuxt/ui-templates': 1.3.1 - consola: 3.2.3 - defu: 6.1.3 - hookable: 5.5.3 - pathe: 1.1.1 - pkg-types: 1.0.3 - scule: 1.1.1 - std-env: 3.7.0 - ufo: 1.3.2 - unimport: 3.7.1 - untyped: 1.4.0 - transitivePeerDependencies: - - rollup - - supports-color - dev: true - /@nuxt/schema@3.9.0(rollup@3.29.4): resolution: {integrity: sha512-NaRiq+g6XE4YOZLy7be2e6AmZCW0gfQWDM88TSfNr3Lypo+6PuY2VqzZLpSvOCNlW3CFj/kWtMdhool2BP0yIg==} engines: {node: ^14.18.0 || >=16.10.0} @@ -5181,32 +5137,6 @@ packages: - rollup - supports-color - /@nuxt/telemetry@2.5.3: - resolution: {integrity: sha512-Ghv2MgWbJcUM9G5Dy3oQP0cJkUwEgaiuQxEF61FXJdn0a69Q4StZEP/hLF0MWPM9m6EvAwI7orxkJHM7MrmtVg==} - hasBin: true - dependencies: - '@nuxt/kit': 3.9.0 - ci-info: 4.0.0 - consola: 3.2.3 - create-require: 1.1.1 - defu: 6.1.3 - destr: 2.0.2 - dotenv: 16.3.1 - git-url-parse: 13.1.1 - is-docker: 3.0.0 - jiti: 1.21.0 - mri: 1.2.0 - nanoid: 4.0.2 - ofetch: 1.3.3 - parse-git-config: 3.0.0 - pathe: 1.1.1 - rc9: 2.1.1 - std-env: 3.7.0 - transitivePeerDependencies: - - rollup - - supports-color - dev: true - /@nuxt/telemetry@2.5.3(rollup@3.29.4): resolution: {integrity: sha512-Ghv2MgWbJcUM9G5Dy3oQP0cJkUwEgaiuQxEF61FXJdn0a69Q4StZEP/hLF0MWPM9m6EvAwI7orxkJHM7MrmtVg==} hasBin: true @@ -5361,66 +5291,6 @@ packages: - vti - vue-tsc - /@nuxt/vite-builder@3.9.0(@types/node@20.10.6)(eslint@8.56.0)(typescript@5.3.3)(vue@3.4.3): - resolution: {integrity: sha512-aJmFv79iuEF0tw79kLgS0LEPgc4WSqIANncNmAu3IIf2zbDQ6iY06eXHVeXShmckbWGlKGaM8L/e8oQNdQdv6g==} - engines: {node: ^14.18.0 || >=16.10.0} - peerDependencies: - vue: ^3.3.4 - dependencies: - '@nuxt/kit': 3.9.0 - '@rollup/plugin-replace': 5.0.5 - '@vitejs/plugin-vue': 5.0.2(vite@5.0.10)(vue@3.4.3) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.0.10)(vue@3.4.3) - autoprefixer: 10.4.16(postcss@8.4.32) - clear: 0.1.0 - consola: 3.2.3 - cssnano: 6.0.2(postcss@8.4.32) - defu: 6.1.3 - esbuild: 0.19.11 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - externality: 1.0.2 - fs-extra: 11.2.0 - get-port-please: 3.1.1 - h3: 1.9.0 - knitwork: 1.0.0 - magic-string: 0.30.5 - mlly: 1.4.2 - ohash: 1.1.3 - pathe: 1.1.1 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - postcss: 8.4.32 - rollup-plugin-visualizer: 5.12.0(rollup@3.29.4) - std-env: 3.7.0 - strip-literal: 1.3.0 - ufo: 1.3.2 - unplugin: 1.6.0 - vite: 5.0.10(@types/node@20.10.6) - vite-node: 1.1.0(@types/node@20.10.6) - vite-plugin-checker: 0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.10) - vue: 3.4.3(typescript@5.3.3) - vue-bundle-renderer: 2.0.0 - transitivePeerDependencies: - - '@types/node' - - eslint - - less - - lightningcss - - meow - - optionator - - rollup - - sass - - stylelint - - stylus - - sugarss - - supports-color - - terser - - typescript - - vls - - vti - - vue-tsc - dev: true - /@nuxtjs/color-mode@3.3.2(rollup@3.29.4): resolution: {integrity: sha512-BLpBfrYZngV2QWFQ4HNEFwAXa3Pno43Ge+2XHcZJTTa1Z4KzRLvOwku8yiyV3ovIaaXKGwduBdv3Z5Ocdp0/+g==} dependencies: @@ -6441,19 +6311,6 @@ packages: resolve: 1.22.8 rollup: 4.9.2 - /@rollup/plugin-replace@5.0.5: - resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) - magic-string: 0.30.5 - dev: true - /@rollup/plugin-replace@5.0.5(rollup@3.29.4): resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} engines: {node: '>=14.0.0'} @@ -7958,26 +7815,6 @@ packages: transitivePeerDependencies: - rollup - /@vue-macros/common@1.10.0(vue@3.4.3): - resolution: {integrity: sha512-4DZsPeQA/nBQDw2RkYAmH7KrFjJVrMdAhJhO1JCl1bbbFXCGeoGjXfkg9wHPppj47s2HpAB3GrqNwqVGbi12NQ==} - engines: {node: '>=16.14.0'} - peerDependencies: - vue: ^2.7.0 || ^3.2.25 - peerDependenciesMeta: - vue: - optional: true - dependencies: - '@babel/types': 7.23.6 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) - '@vue/compiler-sfc': 3.4.3 - ast-kit: 0.11.3 - local-pkg: 0.5.0 - magic-string-ast: 0.3.0 - vue: 3.4.3(typescript@5.3.3) - transitivePeerDependencies: - - rollup - dev: true - /@vue/babel-helper-vue-transform-on@1.1.5: resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} @@ -8672,17 +8509,6 @@ packages: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /ast-kit@0.11.3: - resolution: {integrity: sha512-qdwwKEhckRk0XE22/xDdmU3v/60E8Edu4qFhgTLIhGGDs/PAJwLw9pQn8Rj99PitlbBZbYpx0k/lbir4kg0SuA==} - engines: {node: '>=16.14.0'} - dependencies: - '@babel/parser': 7.23.6 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) - pathe: 1.1.1 - transitivePeerDependencies: - - rollup - dev: true - /ast-kit@0.11.3(rollup@3.29.4): resolution: {integrity: sha512-qdwwKEhckRk0XE22/xDdmU3v/60E8Edu4qFhgTLIhGGDs/PAJwLw9pQn8Rj99PitlbBZbYpx0k/lbir4kg0SuA==} engines: {node: '>=16.14.0'} @@ -8693,17 +8519,6 @@ packages: transitivePeerDependencies: - rollup - /ast-kit@0.9.5: - resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} - engines: {node: '>=16.14.0'} - dependencies: - '@babel/parser': 7.23.6 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) - pathe: 1.1.1 - transitivePeerDependencies: - - rollup - dev: true - /ast-kit@0.9.5(rollup@3.29.4): resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} engines: {node: '>=16.14.0'} @@ -8714,16 +8529,6 @@ packages: transitivePeerDependencies: - rollup - /ast-walker-scope@0.5.0: - resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} - engines: {node: '>=16.14.0'} - dependencies: - '@babel/parser': 7.23.6 - ast-kit: 0.9.5 - transitivePeerDependencies: - - rollup - dev: true - /ast-walker-scope@0.5.0(rollup@3.29.4): resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} engines: {node: '>=16.14.0'} @@ -9164,7 +8969,7 @@ packages: glob: 7.2.3 infer-owner: 1.0.4 lru-cache: 6.0.0 - minipass: 3.1.6 + minipass: 3.3.6 minipass-collect: 1.0.2 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -13568,7 +13373,7 @@ packages: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} engines: {node: '>= 8'} dependencies: - minipass: 3.1.6 + minipass: 3.3.6 dev: false /minipass-collect@2.0.1: @@ -14259,11 +14064,11 @@ packages: dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/devtools': 1.0.6(nuxt@3.9.0)(vite@5.0.10) - '@nuxt/kit': 3.9.0 - '@nuxt/schema': 3.9.0 - '@nuxt/telemetry': 2.5.3 + '@nuxt/kit': 3.9.0(rollup@3.29.4) + '@nuxt/schema': 3.9.0(rollup@3.29.4) + '@nuxt/telemetry': 2.5.3(rollup@3.29.4) '@nuxt/ui-templates': 1.3.1 - '@nuxt/vite-builder': 3.9.0(@types/node@20.10.6)(eslint@8.56.0)(typescript@5.3.3)(vue@3.4.3) + '@nuxt/vite-builder': 3.9.0(@types/node@20.10.6)(eslint@8.56.0)(rollup@3.29.4)(typescript@5.3.3)(vue@3.4.3) '@types/node': 20.10.6 '@unhead/dom': 1.8.9 '@unhead/ssr': 1.8.9 @@ -14305,9 +14110,9 @@ packages: uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.8.0 - unimport: 3.7.1 + unimport: 3.7.1(rollup@3.29.4) unplugin: 1.6.0 - unplugin-vue-router: 0.7.0(vue-router@4.2.5)(vue@3.4.3) + unplugin-vue-router: 0.7.0(rollup@3.29.4)(vue-router@4.2.5)(vue@3.4.3) untyped: 1.4.0 vue: 3.4.3(typescript@5.3.3) vue-bundle-renderer: 2.0.0 @@ -16312,7 +16117,7 @@ packages: resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} engines: {node: '>= 8'} dependencies: - minipass: 3.1.6 + minipass: 3.3.6 dev: false /stackback@0.0.2: @@ -17187,26 +16992,6 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - /unimport@3.7.1: - resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) - acorn: 8.11.3 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - fast-glob: 3.3.2 - local-pkg: 0.5.0 - magic-string: 0.30.5 - mlly: 1.4.2 - pathe: 1.1.1 - pkg-types: 1.0.3 - scule: 1.1.1 - strip-literal: 1.3.0 - unplugin: 1.6.0 - transitivePeerDependencies: - - rollup - dev: true - /unimport@3.7.1(rollup@3.29.4): resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} dependencies: @@ -17381,33 +17166,6 @@ packages: - rollup - vue - /unplugin-vue-router@0.7.0(vue-router@4.2.5)(vue@3.4.3): - resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} - peerDependencies: - vue-router: ^4.1.0 - peerDependenciesMeta: - vue-router: - optional: true - dependencies: - '@babel/types': 7.23.6 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) - '@vue-macros/common': 1.10.0(vue@3.4.3) - ast-walker-scope: 0.5.0 - chokidar: 3.5.3 - fast-glob: 3.3.2 - json5: 2.2.3 - local-pkg: 0.4.3 - mlly: 1.4.2 - pathe: 1.1.1 - scule: 1.1.1 - unplugin: 1.6.0 - vue-router: 4.2.5(vue@3.4.3) - yaml: 2.3.4 - transitivePeerDependencies: - - rollup - - vue - dev: true - /unplugin@1.6.0: resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} dependencies: @@ -17764,31 +17522,6 @@ packages: - rollup - supports-color - /vite-plugin-inspect@0.8.1(@nuxt/kit@3.9.0)(vite@5.0.10): - resolution: {integrity: sha512-oPBPVGp6tBd5KdY/qY6lrbLXqrbHRG0hZLvEaJfiZ/GQfDB+szRuLHblQh1oi1Hhh8GeLit/50l4xfs2SA+TCA==} - engines: {node: '>=14'} - peerDependencies: - '@nuxt/kit': '*' - vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 - peerDependenciesMeta: - '@nuxt/kit': - optional: true - dependencies: - '@antfu/utils': 0.7.7 - '@nuxt/kit': 3.9.0 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) - debug: 4.3.4 - error-stack-parser-es: 0.1.1 - fs-extra: 11.2.0 - open: 9.1.0 - picocolors: 1.0.0 - sirv: 2.0.4 - vite: 5.0.10(@types/node@20.10.6) - transitivePeerDependencies: - - rollup - - supports-color - dev: true - /vite-plugin-vue-inspector@4.0.2(vite@5.0.10): resolution: {integrity: sha512-KPvLEuafPG13T7JJuQbSm5PwSxKFnVS965+MP1we2xGw9BPkkc/+LPix5MMWenpKWqtjr0ws8THrR+KuoDC8hg==} peerDependencies: