diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 5926170..0000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -test/fixtures/* diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 09c2e42..0000000 --- a/.eslintrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "@antfu" -} diff --git a/.vscode/settings.json b/.vscode/settings.json index 50aead7..abd048b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,69 @@ { - "prettier.enable": false + // Enable the ESlint flat config support + "eslint.experimental.useFlatConfig": true, + // Disable the default formatter, use eslint instead + "prettier.enable": false, + "editor.formatOnSave": false, + // Auto fix + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" + }, + // Silent the stylistic rules in you IDE, but still auto fix them + "eslint.rules.customizations": [ + { + "rule": "style/*", + "severity": "off" + }, + { + "rule": "format/*", + "severity": "off" + }, + { + "rule": "*-indent", + "severity": "off" + }, + { + "rule": "*-spacing", + "severity": "off" + }, + { + "rule": "*-spaces", + "severity": "off" + }, + { + "rule": "*-order", + "severity": "off" + }, + { + "rule": "*-dangle", + "severity": "off" + }, + { + "rule": "*-newline", + "severity": "off" + }, + { + "rule": "*quotes", + "severity": "off" + }, + { + "rule": "*semi", + "severity": "off" + } + ], + // Enable eslint for all supported languages + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml", + "toml" + ] } diff --git a/README.md b/README.md index 6721654..6839198 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,6 @@ export default {
-
Webpack
@@ -146,9 +145,6 @@ console.log('Verbose output version') // #endif ``` -> [!WARNING] -> `#define` and `#undef` are Hoisting, like `var` in JavaScript. - ### Conditional compilation - `#if`: Opens a conditional compilation, where code is compiled only if the specified symbol is defined and evaluated to true. @@ -204,34 +200,78 @@ You can used `defineDirective` to define your own directive. Taking the built-in directive as an example: ```ts -/** @see https://xregexp.com/ */ -import type { NamedGroupsArray } from 'xregexp' -import { defineDirective } from '../directive' - -export default defineDirective(() => ({ - nested: false, - name: '#define', - pattern: /.*?#(?(?:un)?def(?:ine)?)\s*(?[\w]*)\s/gm, - processor({ ctx }) { - return (...args) => { - const group = args[args.length - 1] as NamedGroupsArray - if (group.directive === 'define') - // @ts-expect-error ignore - ctx.env[group.key] = true - - else if (group.directive === 'undef') - delete ctx.env[group.key] - - return '' +export const MessageDirective = defineDirective(context => ({ + lex(comment) { + return simpleMatchToken(comment, /#(error|warning|info)\s*(.*)/) + }, + parse(token) { + if (token.type === 'error' || token.type === 'warning' || token.type === 'info') { + this.current++ + return { + type: 'MessageStatement', + kind: token.type, + value: token.value, + } + } + }, + transform(node) { + if (node.type === 'MessageStatement') { + switch (node.kind) { + case 'error': + context.logger.error(node.value, { timestamp: true }) + break + case 'warning': + context.logger.warn(node.value, { timestamp: true }) + break + case 'info': + context.logger.info(node.value, { timestamp: true }) + break + } + return createProgramNode() + } + }, + generate(node, comment) { + if (node.type === 'MessageStatement' && comment) + return `${comment.start} #${node.kind} ${node.value} ${comment.end}` + }, +})) +export const MessageDirective = defineDirective(context => ({ + lex(comment) { + return simpleMatchToken(comment, /#(error|warning|info)\s*(.*)/) + }, + parse(token) { + if (token.type === 'error' || token.type === 'warning' || token.type === 'info') { + this.current++ + return { + type: 'MessageStatement', + kind: token.type, + value: token.value, + } } }, + transform(node) { + if (node.type === 'MessageStatement') { + switch (node.kind) { + case 'error': + context.logger.error(node.value, { timestamp: true }) + break + case 'warning': + context.logger.warn(node.value, { timestamp: true }) + break + case 'info': + context.logger.info(node.value, { timestamp: true }) + break + } + return createProgramNode() + } + }, + generate(node, comment) { + if (node.type === 'MessageStatement' && comment) + return `${comment.start} #${node.kind} ${node.value} ${comment.end}` + }, })) ``` -### `name: string` - -directive name, used to identify the directive in warning and error messages - ### `enforce: 'pre' | 'post'` Execution priority of directives @@ -239,17 +279,6 @@ Execution priority of directives - `pre`: Execute as early as possible - `post`: Execute as late as possible -### `nested: boolean` - -Is it a nested instruction, The default is `false`. If it is `true`, `matchRecursive` will be used internally for replace and recursive calls. Otherwise, `replace` will be used` - -### `pattern` - -The regular expression of the directive, if it is a nested instruction, needs to specify the `start` and `end` regular expressions -### `processor` - -The processing function of the directive. - [npm-version-src]: https://img.shields.io/npm/v/unplugin-preprocessor-directives?style=flat&colorA=18181B&colorB=F0DB4F [npm-version-href]: https://npmjs.com/package/unplugin-preprocessor-directives [npm-downloads-src]: https://img.shields.io/npm/dm/unplugin-preprocessor-directives?style=flat&colorA=18181B&colorB=F0DB4F diff --git a/README.zh-cn.md b/README.zh-cn.md index fd0cead..b253ada 100644 --- a/README.zh-cn.md +++ b/README.zh-cn.md @@ -50,7 +50,6 @@ export default {
-
Webpack
@@ -146,9 +145,6 @@ console.log('Verbose output version') // #endif ``` -> [!WARNING] -> `#define` 和 `#undef` 是提升的,类似 JavaScript 的 `var`。 - ### 条件编译 - `#if`: 打开条件编译,只有当指定的 symbol 被定义并求值为 true 时,代码才会被编译。 @@ -205,34 +201,43 @@ class MyClass { 以内置指令为例: ```ts -/** @see https://xregexp.com/ */ -import type { NamedGroupsArray } from 'xregexp' -import { defineDirective } from '../directive' - -export default defineDirective(() => ({ - nested: false, - name: '#define', - pattern: /.*?#(?(?:un)?def(?:ine)?)\s*(?[\w]*)\s/gm, - processor({ ctx }) { - return (...args) => { - const group = args[args.length - 1] as NamedGroupsArray - if (group.directive === 'define') - // @ts-expect-error ignore - ctx.env[group.key] = true - - else if (group.directive === 'undef') - delete ctx.env[group.key] - - return '' +export const MessageDirective = defineDirective(context => ({ + lex(comment) { + return simpleMatchToken(comment, /#(error|warning|info)\s*(.*)/) + }, + parse(token) { + if (token.type === 'error' || token.type === 'warning' || token.type === 'info') { + this.current++ + return { + type: 'MessageStatement', + kind: token.type, + value: token.value, + } + } + }, + transform(node) { + if (node.type === 'MessageStatement') { + switch (node.kind) { + case 'error': + context.logger.error(node.value, { timestamp: true }) + break + case 'warning': + context.logger.warn(node.value, { timestamp: true }) + break + case 'info': + context.logger.info(node.value, { timestamp: true }) + break + } + return createProgramNode() } }, + generate(node, comment) { + if (node.type === 'MessageStatement' && comment) + return `${comment.start} #${node.kind} ${node.value} ${comment.end}` + }, })) ``` -### `name: string` - -指令的名称,用于在警告和错误消息中标识指令。 - ### `enforce: 'pre' | 'post'` 指令的执行优先级 @@ -240,19 +245,6 @@ export default defineDirective(() => ({ - `pre` 尽可能早执行 - `post` 尽可能晚执行 -### `nested: boolean` - -是否为嵌套指令,默认为 `false`,如果为 `true` 在内部将使用 `matchRecursive` 进行 `replace` 并递归调用, 否则使用 `replace` - -### `pattern` - -指令的正则表达式,如果是嵌套指令,需要指定开始和结束的正则表达式 - -### `processor` - -指令的处理函数。 - - [npm-version-src]: https://img.shields.io/npm/v/unplugin-preprocessor-directives?style=flat&colorA=18181B&colorB=F0DB4F [npm-version-href]: https://npmjs.com/package/unplugin-preprocessor-directives [npm-downloads-src]: https://img.shields.io/npm/dm/unplugin-preprocessor-directives?style=flat&colorA=18181B&colorB=F0DB4F diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..d8c85cd --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,5 @@ +import antfu from '@antfu/eslint-config' + +export default antfu({ + ignores: ['**/test/fixtures/**/*.*'], +}) diff --git a/examples/vite-vue-ts/package.json b/examples/vite-vue-ts/package.json index 3a00e42..f738f74 100644 --- a/examples/vite-vue-ts/package.json +++ b/examples/vite-vue-ts/package.json @@ -9,13 +9,13 @@ "preview": "vite preview" }, "dependencies": { - "vue": "^3.3.4" + "vue": "^3.4.15" }, "devDependencies": { - "@vitejs/plugin-vue": "^4.3.4", - "typescript": "^5.2.2", + "@vitejs/plugin-vue": "^5.0.3", + "typescript": "^5.3.3", "unplugin-preprocessor-directives": "workspace:*", - "vite": "^4.4.9", - "vue-tsc": "^1.8.15" + "vite": "^5.0.12", + "vue-tsc": "^1.8.27" } } diff --git a/examples/vite-vue-ts/tsconfig.json b/examples/vite-vue-ts/tsconfig.json index f82888f..bc0dad8 100644 --- a/examples/vite-vue-ts/tsconfig.json +++ b/examples/vite-vue-ts/tsconfig.json @@ -1,25 +1,36 @@ { "compilerOptions": { "target": "ES2020", + "jsx": "preserve", + "lib": [ + "ES2020", + "DOM", + "DOM.Iterable" + ], "useDefineForClassFields": true, "module": "ESNext", - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "skipLibCheck": true, - /* Bundler mode */ "moduleResolution": "bundler", - "allowImportingTsExtensions": true, "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "preserve", - + "allowImportingTsExtensions": true, /* Linting */ "strict": true, + "noFallthroughCasesInSwitch": true, "noUnusedLocals": true, "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true + "noEmit": true, + "isolatedModules": true, + "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], - "references": [{ "path": "./tsconfig.node.json" }] + "references": [ + { + "path": "./tsconfig.node.json" + } + ], + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue" + ] } diff --git a/examples/vite-vue-ts/tsconfig.node.json b/examples/vite-vue-ts/tsconfig.node.json index 42872c5..dde0894 100644 --- a/examples/vite-vue-ts/tsconfig.node.json +++ b/examples/vite-vue-ts/tsconfig.node.json @@ -1,10 +1,10 @@ { "compilerOptions": { "composite": true, - "skipLibCheck": true, "module": "ESNext", "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true + "allowSyntheticDefaultImports": true, + "skipLibCheck": true }, "include": ["vite.config.ts"] } diff --git a/examples/vue-cli/package.json b/examples/vue-cli/package.json index a2cd1ce..5b73877 100644 --- a/examples/vue-cli/package.json +++ b/examples/vue-cli/package.json @@ -7,7 +7,7 @@ "build": "vue-cli-service build" }, "dependencies": { - "vue": "^3.3.4" + "vue": "^3.4.15" }, "devDependencies": { "@vue/cli-service": "~5.0.8", diff --git a/package.json b/package.json index 90f6531..deffcfe 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "unplugin-preprocessor-directives", "type": "module", "version": "0.0.8", - "packageManager": "pnpm@8.8.0", + "packageManager": "pnpm@8.14.1", "description": "", "license": "MIT", "homepage": "https://github.com/kejunmao/unplugin-preprocessor-directives#readme", @@ -147,13 +147,10 @@ "webpack": "^4 || ^5" }, "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "rollup": { + "@nuxt/kit": { "optional": true }, - "vite": { + "@nuxt/schema": { "optional": true }, "@rspack/core": { @@ -162,35 +159,38 @@ "esbuild": { "optional": true }, - "@nuxt/kit": { + "rollup": { "optional": true }, - "@nuxt/schema": { + "vite": { + "optional": true + }, + "webpack": { "optional": true } }, "dependencies": { - "magic-string": "^0.30.3", - "unplugin": "^1.5.0", - "xregexp": "^5.1.1" + "@ampproject/remapping": "^2.2.1", + "magic-string": "^0.30.5", + "unplugin": "^1.6.0" }, "devDependencies": { - "@antfu/eslint-config": "^0.42.1", - "@nuxt/kit": "^3.7.4", - "@nuxt/schema": "^3.7.4", - "@types/node": "^20.7.1", - "bumpp": "^9.2.0", + "@antfu/eslint-config": "^2.6.3", + "@nuxt/kit": "^3.9.3", + "@nuxt/schema": "^3.9.3", + "@types/node": "^20.11.5", + "bumpp": "^9.3.0", "chalk": "^5.3.0", - "eslint": "^8.50.0", - "esno": "^0.17.0", - "fast-glob": "^3.3.1", - "nodemon": "^3.0.1", + "eslint": "^8.56.0", + "esno": "^4.0.0", + "fast-glob": "^3.3.2", + "nodemon": "^3.0.3", "rimraf": "^5.0.5", - "rollup": "^3.29.4", - "tsup": "^7.2.0", - "typescript": "^5.2.2", - "vite": "^4.4.9", - "vitest": "^0.34.5", - "webpack": "^5.88.2" + "rollup": "^4.9.5", + "tsup": "^8.0.1", + "typescript": "^5.3.3", + "vite": "^5.0.12", + "vitest": "^1.2.1", + "webpack": "^5.89.0" } } diff --git a/playground/main.ts b/playground/main.ts index 4e025ff..35e963c 100644 --- a/playground/main.ts +++ b/playground/main.ts @@ -1,18 +1,18 @@ /* eslint-disable no-console */ -/* eslint-disable @typescript-eslint/indent */ +// eslint-disable @typescript-eslint/indent /* prettier-ignore */ document.getElementById('app')!.innerHTML = '__UNPLUGIN__' - +// #undef DEV // #error this is an error message // #warning this is a warning message // #info this is an info message console.log(1) // #if DEV - console.log(2) - // #if ASD != '233' - console.log(3) - // #endif +console.log(2) +// #if ASD != '233' +console.log(3) +// #endif console.log(4) // #elif NODE_ENV == 'development' console.log(5) diff --git a/playground/package.json b/playground/package.json index 27781b1..dd2be8f 100644 --- a/playground/package.json +++ b/playground/package.json @@ -4,7 +4,7 @@ "dev": "nodemon -w '../src/**/*.ts' -e .ts -x vite dev" }, "devDependencies": { - "vite": "^4.4.9", - "vite-plugin-inspect": "^0.7.38" + "vite": "^5.0.12", + "vite-plugin-inspect": "^0.8.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 75d70b0..82be522 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,105 +8,105 @@ importers: .: dependencies: + '@ampproject/remapping': + specifier: ^2.2.1 + version: 2.2.1 '@rspack/core': specifier: '*' version: 0.3.4 esbuild: specifier: '*' - version: 0.18.20 + version: 0.19.11 magic-string: - specifier: ^0.30.3 - version: 0.30.3 + specifier: ^0.30.5 + version: 0.30.5 unplugin: - specifier: ^1.5.0 - version: 1.5.0 - xregexp: - specifier: ^5.1.1 - version: 5.1.1 + specifier: ^1.6.0 + version: 1.6.0 devDependencies: '@antfu/eslint-config': - specifier: ^0.42.1 - version: 0.42.1(eslint@8.50.0)(typescript@5.2.2) + specifier: ^2.6.3 + version: 2.6.3(@vue/compiler-sfc@3.4.15)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.2.1) '@nuxt/kit': - specifier: ^3.7.4 - version: 3.7.4(rollup@3.29.4) + specifier: ^3.9.3 + version: 3.9.3(rollup@4.9.5) '@nuxt/schema': - specifier: ^3.7.4 - version: 3.7.4(rollup@3.29.4) + specifier: ^3.9.3 + version: 3.9.3(rollup@4.9.5) '@types/node': - specifier: ^20.7.1 - version: 20.7.1 + specifier: ^20.11.5 + version: 20.11.5 bumpp: - specifier: ^9.2.0 - version: 9.2.0 + specifier: ^9.3.0 + version: 9.3.0 chalk: specifier: ^5.3.0 version: 5.3.0 eslint: - specifier: ^8.50.0 - version: 8.50.0 + specifier: ^8.56.0 + version: 8.56.0 esno: - specifier: ^0.17.0 - version: 0.17.0 + specifier: ^4.0.0 + version: 4.0.0 fast-glob: - specifier: ^3.3.1 - version: 3.3.1 + specifier: ^3.3.2 + version: 3.3.2 nodemon: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.3 + version: 3.0.3 rimraf: specifier: ^5.0.5 version: 5.0.5 rollup: - specifier: ^3.29.4 - version: 3.29.4 + specifier: ^4.9.5 + version: 4.9.5 tsup: - specifier: ^7.2.0 - version: 7.2.0(typescript@5.2.2) + specifier: ^8.0.1 + version: 8.0.1(typescript@5.3.3) typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.3 + version: 5.3.3 vite: - specifier: ^4.4.9 - version: 4.4.9(@types/node@20.7.1) + specifier: ^5.0.12 + version: 5.0.12(@types/node@20.11.5) vitest: - specifier: ^0.34.5 - version: 0.34.5 + specifier: ^1.2.1 + version: 1.2.1(@types/node@20.11.5) webpack: - specifier: ^5.88.2 - version: 5.88.2(esbuild@0.18.20) + specifier: ^5.89.0 + version: 5.89.0(esbuild@0.19.11) examples/vite-vue-ts: dependencies: vue: - specifier: ^3.3.4 - version: 3.3.4 + specifier: ^3.4.15 + version: 3.4.15(typescript@5.3.3) devDependencies: '@vitejs/plugin-vue': - specifier: ^4.3.4 - version: 4.3.4(vite@4.4.9)(vue@3.3.4) + specifier: ^5.0.3 + version: 5.0.3(vite@5.0.12)(vue@3.4.15) typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.3 + version: 5.3.3 unplugin-preprocessor-directives: specifier: workspace:* version: link:../.. vite: - specifier: ^4.4.9 - version: 4.4.9(@types/node@20.7.1) + specifier: ^5.0.12 + version: 5.0.12(@types/node@20.11.5) vue-tsc: - specifier: ^1.8.15 - version: 1.8.15(typescript@5.2.2) + specifier: ^1.8.27 + version: 1.8.27(typescript@5.3.3) examples/vue-cli: dependencies: vue: - specifier: ^3.3.4 - version: 3.3.4 + specifier: ^3.4.15 + version: 3.4.15(typescript@5.3.3) devDependencies: '@vue/cli-service': specifier: ~5.0.8 - version: 5.0.8(esbuild@0.18.20)(vue@3.3.4) + version: 5.0.8(@vue/compiler-sfc@3.4.15)(esbuild@0.19.11)(vue@3.4.15) unplugin-preprocessor-directives: specifier: workspace:* version: link:../.. @@ -114,11 +114,11 @@ importers: playground: devDependencies: vite: - specifier: ^4.4.9 - version: 4.4.9(@types/node@20.7.1) + specifier: ^5.0.12 + version: 5.0.12(@types/node@20.11.5) vite-plugin-inspect: - specifier: ^0.7.38 - version: 0.7.38(@nuxt/kit@3.7.4)(rollup@3.29.4)(vite@4.4.9) + specifier: ^0.8.1 + version: 0.8.1(@nuxt/kit@3.9.3)(rollup@4.9.5)(vite@5.0.12) packages: @@ -142,103 +142,92 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 - dev: true - /@antfu/eslint-config-basic@0.42.1(@typescript-eslint/eslint-plugin@6.7.0)(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-VYcWpDXAYytrYNH4LjNy42t0d/fq1dFOsnIs6DyqDKdvMAlXN7ScksFAgm/NBaTnBcaBrySCIG+cLQPk5wLTIg==} + /@antfu/eslint-config@2.6.3(@vue/compiler-sfc@3.4.15)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.2.1): + resolution: {integrity: sha512-sfkamrOatMwMZkp14mBerHKIw8FY0SD1iCb5UZ6Y5hgb+FeDpNQPlVA0i2PN95TQ8NSYyPC1QnoM+UA5NSl0Kg==} + hasBin: true peerDependencies: - eslint: '>=7.4.0' - dependencies: - eslint: 8.50.0 - eslint-plugin-antfu: 0.42.1(eslint@8.50.0)(typescript@5.2.2) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.50.0) - eslint-plugin-html: 7.1.0 - eslint-plugin-import: /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.7.0)(eslint@8.50.0) - eslint-plugin-jsdoc: 46.8.1(eslint@8.50.0) - eslint-plugin-jsonc: 2.9.0(eslint@8.50.0) - eslint-plugin-markdown: 3.0.1(eslint@8.50.0) - eslint-plugin-n: 16.1.0(eslint@8.50.0) + '@unocss/eslint-plugin': '>=0.50.0' + eslint: '>=8.40.0' + eslint-plugin-format: '>=0.1.0' + eslint-plugin-react: ^7.33.2 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-refresh: ^0.4.4 + eslint-plugin-svelte: ^2.34.1 + svelte-eslint-parser: ^0.33.1 + peerDependenciesMeta: + '@unocss/eslint-plugin': + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-react: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-svelte: + optional: true + svelte-eslint-parser: + optional: true + dependencies: + '@antfu/eslint-define-config': 1.23.0-2 + '@antfu/install-pkg': 0.3.1 + '@eslint-types/jsdoc': 46.8.2-1 + '@eslint-types/typescript-eslint': 6.18.1 + '@eslint-types/unicorn': 50.0.1 + '@stylistic/eslint-plugin': 1.5.4(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-flat-gitignore: 0.1.2 + eslint-merge-processors: 0.1.0(eslint@8.56.0) + eslint-plugin-antfu: 2.1.1(eslint@8.56.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) + eslint-plugin-i: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) + eslint-plugin-jsdoc: 48.0.2(eslint@8.56.0) + eslint-plugin-jsonc: 2.12.2(eslint@8.56.0) + eslint-plugin-markdown: 3.0.1(eslint@8.56.0) + eslint-plugin-n: 16.6.2(eslint@8.56.0) eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-promise: 6.1.1(eslint@8.50.0) - eslint-plugin-unicorn: 48.0.1(eslint@8.50.0) - eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.7.0)(eslint@8.50.0) - eslint-plugin-yml: 1.9.0(eslint@8.50.0) - jsonc-eslint-parser: 2.3.0 + eslint-plugin-perfectionist: 2.5.0(eslint@8.56.0)(typescript@5.3.3)(vue-eslint-parser@9.4.0) + eslint-plugin-toml: 0.9.2(eslint@8.56.0) + eslint-plugin-unicorn: 50.0.1(eslint@8.56.0) + eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.19.0)(eslint@8.56.0) + eslint-plugin-vitest: 0.3.20(@typescript-eslint/eslint-plugin@6.19.0)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.2.1) + eslint-plugin-vue: 9.20.1(eslint@8.56.0) + eslint-plugin-yml: 1.12.2(eslint@8.56.0) + eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.56.0) + globals: 13.24.0 + jsonc-eslint-parser: 2.4.0 + local-pkg: 0.5.0 + parse-gitignore: 2.0.0 + picocolors: 1.0.0 + prompts: 2.4.2 + toml-eslint-parser: 0.9.3 + vue-eslint-parser: 9.4.0(eslint@8.56.0) yaml-eslint-parser: 1.2.2 + yargs: 17.7.2 transitivePeerDependencies: - - '@typescript-eslint/eslint-plugin' - - '@typescript-eslint/parser' + - '@vue/compiler-sfc' + - astro-eslint-parser - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + - svelte - typescript + - vitest dev: true - /@antfu/eslint-config-ts@0.42.1(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-gCz6sapcwZIsXu8LB9THR0r4hHKnNY7HZe4op0AwlK/lA5dO4sSLk68M9ig3CdaRkIW8LTC/sAKyQhX7md6++w==} - peerDependencies: - eslint: '>=7.4.0' - typescript: '>=3.9' - dependencies: - '@antfu/eslint-config-basic': 0.42.1(@typescript-eslint/eslint-plugin@6.7.0)(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/eslint-plugin': 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.7.0(eslint@8.50.0)(typescript@5.2.2) - eslint: 8.50.0 - eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@6.7.0)(eslint@8.50.0)(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - jest - - supports-color + /@antfu/eslint-define-config@1.23.0-2: + resolution: {integrity: sha512-LvxY21+ZhpuBf/aHeBUtGQhSEfad4PkNKXKvDOSvukaM3XVTfBhwmHX2EKwAsdq5DlfjbT3qqYyMiueBIO5iDQ==} + engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'} dev: true - /@antfu/eslint-config-vue@0.42.1(@typescript-eslint/eslint-plugin@6.7.0)(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-9F+AyDHw9exEcg1RNhDoTyHgsanBkKE2kZ8Atadn2O8EMbrFE383tETxO+VTv1Dr71z9qaVA2SVQjesPzctQVg==} - peerDependencies: - eslint: '>=7.4.0' + /@antfu/install-pkg@0.3.1: + resolution: {integrity: sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==} dependencies: - '@antfu/eslint-config-basic': 0.42.1(@typescript-eslint/eslint-plugin@6.7.0)(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2) - '@antfu/eslint-config-ts': 0.42.1(eslint@8.50.0)(typescript@5.2.2) - eslint: 8.50.0 - eslint-plugin-vue: 9.17.0(eslint@8.50.0) - local-pkg: 0.4.3 - transitivePeerDependencies: - - '@typescript-eslint/eslint-plugin' - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - jest - - supports-color - - typescript - dev: true - - /@antfu/eslint-config@0.42.1(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-/U5PRCTPUI5khNMl4jBw1tLii7biJcrgD3yJEnxCQiTOjkfuVJeESSZieI5Qlu0zVXuudpq8R5VApCKjH4TpsA==} - peerDependencies: - eslint: '>=7.4.0' - dependencies: - '@antfu/eslint-config-vue': 0.42.1(@typescript-eslint/eslint-plugin@6.7.0)(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/eslint-plugin': 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.7.0(eslint@8.50.0)(typescript@5.2.2) - eslint: 8.50.0 - eslint-plugin-eslint-comments: 3.2.0(eslint@8.50.0) - eslint-plugin-html: 7.1.0 - eslint-plugin-import: /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.7.0)(eslint@8.50.0) - eslint-plugin-jsonc: 2.9.0(eslint@8.50.0) - eslint-plugin-n: 16.1.0(eslint@8.50.0) - eslint-plugin-promise: 6.1.1(eslint@8.50.0) - eslint-plugin-unicorn: 48.0.1(eslint@8.50.0) - eslint-plugin-vue: 9.17.0(eslint@8.50.0) - eslint-plugin-yml: 1.9.0(eslint@8.50.0) - jsonc-eslint-parser: 2.3.0 - yaml-eslint-parser: 1.2.2 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - jest - - supports-color - - typescript + execa: 8.0.1 dev: true /@antfu/utils@0.7.6: @@ -273,7 +262,7 @@ packages: '@babel/traverse': 7.22.10 '@babel/types': 7.22.10 convert-source-map: 1.9.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -361,6 +350,11 @@ packages: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-identifier@7.22.5: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} @@ -396,14 +390,14 @@ packages: hasBin: true dependencies: '@babel/types': 7.22.10 + dev: true - /@babel/runtime-corejs3@7.22.15: - resolution: {integrity: sha512-SAj8oKi8UogVi6eXQXKNPu8qZ78Yzy7zawrlTr0M+IuW/g8Qe9gVDhGcF9h1S69OyACpYoLxEzpjs1M15sI5wQ==} - engines: {node: '>=6.9.0'} + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true dependencies: - core-js-pure: 3.32.1 - regenerator-runtime: 0.14.0 - dev: false + '@babel/types': 7.22.10 /@babel/standalone@7.22.10: resolution: {integrity: sha512-VmK2sWxUTfDDh9mPfCtFJPIehZToteqK+Zpwq8oJUjJ+WeeKIFTTQIrDzH7jEdom+cAaaguU7FI/FBsBWFkIeQ==} @@ -431,7 +425,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.22.10 '@babel/types': 7.22.10 - debug: 4.3.4 + debug: 4.3.4(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -450,417 +444,206 @@ packages: engines: {node: '>=10.0.0'} dev: true - /@es-joy/jsdoccomment@0.40.1: - resolution: {integrity: sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==} + /@es-joy/jsdoccomment@0.41.0: + resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} engines: {node: '>=16'} dependencies: - comment-parser: 1.4.0 + comment-parser: 1.4.1 esquery: 1.5.0 jsdoc-type-pratt-parser: 4.0.0 dev: true - /@esbuild-kit/cjs-loader@2.4.2: - resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} - dependencies: - '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.7.0 - dev: true - - /@esbuild-kit/core-utils@3.1.0: - resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} - dependencies: - esbuild: 0.17.19 - source-map-support: 0.5.21 - dev: true - - /@esbuild-kit/esm-loader@2.5.5: - resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} - dependencies: - '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.7.0 - dev: true - - /@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} engines: {node: '>=12'} - cpu: [arm64] - os: [android] + cpu: [ppc64] + os: [aix] requiresBuild: true - dev: true optional: true - /@esbuild/android-arm64@0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true optional: true - /@esbuild/android-x64@0.17.19: - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - optional: true - - /@esbuild/darwin-arm64@0.17.19: - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true optional: true - /@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@esbuild/darwin-x64@0.17.19: - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.17.19: - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.17.19: - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true - /@esbuild/freebsd-x64@0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - optional: true - - /@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-arm64@0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-arm@0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ia32@0.17.19: - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-loong64@0.17.19: - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-loong64@0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-mips64el@0.17.19: - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true - /@esbuild/linux-mips64el@0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-ppc64@0.17.19: - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.17.19: - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/linux-s390x@0.17.19: - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true optional: true - /@esbuild/linux-s390x@0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-x64@0.17.19: - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/netbsd-x64@0.17.19: - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true optional: true - /@esbuild/netbsd-x64@0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.17.19: - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /@esbuild/sunos-x64@0.17.19: - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true - /@esbuild/win32-arm64@0.17.19: - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - /@esbuild/win32-ia32@0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true optional: true - /@esbuild/win32-ia32@0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-x64@0.17.19: - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true - /@esbuild/win32-x64@0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.50.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.50.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true @@ -869,15 +652,27 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + /@eslint-types/jsdoc@46.8.2-1: + resolution: {integrity: sha512-FwD7V0xX0jyaqj8Ul5ZY+TAAPohDfVqtbuXJNHb+OIv1aTIqZi5+Zn3F2UwQ5O3BnQd2mTduyK0+HjGx3/AMFg==} + dev: true + + /@eslint-types/typescript-eslint@6.18.1: + resolution: {integrity: sha512-sROyc1rWhtvSdszkR3VAv2fioXIyKNFFRbIgoiije2FA+iNn4FEDhP2+kvbq8wPda2adcrNhSZyWSEFsef+lbg==} + dev: true + + /@eslint-types/unicorn@50.0.1: + resolution: {integrity: sha512-nuJuipTNcg9f+oxZ+3QZw4tuDLmir4RJOPfM/oujgToiy1s+tePDZhwg5jUGc3q8OzTtPbVpsFSYX7QApjO3EA==} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.4(supports-color@5.5.0) espree: 9.6.1 globals: 13.20.0 - ignore: 5.2.4 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -886,8 +681,8 @@ packages: - supports-color dev: true - /@eslint/js@8.50.0: - resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -901,12 +696,12 @@ packages: '@hapi/hoek': 9.3.0 dev: true - /@humanwhocodes/config-array@0.11.11: - resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -917,8 +712,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true /@isaacs/cliui@8.0.2: @@ -933,8 +728,8 @@ packages: wrap-ansi-cjs: /wrap-ansi@7.0.0 dev: true - /@jest/schemas@29.6.0: - resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 @@ -947,17 +742,14 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.18 - dev: true /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/source-map@0.3.3: resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==} @@ -968,7 +760,6 @@ packages: /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} @@ -978,7 +769,6 @@ packages: dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /@jsdevtools/ez-spawn@3.0.4: resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} @@ -1022,47 +812,47 @@ packages: fastq: 1.13.0 dev: true - /@nuxt/kit@3.7.4(rollup@3.29.4): - resolution: {integrity: sha512-/S5abZL62BITCvC/TY3KWA6N721U1Osln3cQdBb56XHIeafZCBVqTi92Xb0o7ovl72mMRhrKwRu7elzvz9oT/g==} + /@nuxt/kit@3.9.3(rollup@4.9.5): + resolution: {integrity: sha512-bHGXpTB6E+YJCC1L9tTwrP7txgLZzyuFes/tgy1ZM4dlfrCsGqLK/K4mddROMdC3D81scnH84u7yQsN0JRgoTg==} engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@nuxt/schema': 3.7.4(rollup@3.29.4) - c12: 1.4.2 + '@nuxt/schema': 3.9.3(rollup@4.9.5) + c12: 1.6.1 consola: 3.2.3 - defu: 6.1.2 - globby: 13.2.2 + defu: 6.1.4 + globby: 14.0.0 hash-sum: 2.0.0 - ignore: 5.2.4 - jiti: 1.20.0 + ignore: 5.3.0 + jiti: 1.21.0 knitwork: 1.0.0 - mlly: 1.4.2 - pathe: 1.1.1 + mlly: 1.5.0 + pathe: 1.1.2 pkg-types: 1.0.3 - scule: 1.0.0 + scule: 1.2.0 semver: 7.5.4 - ufo: 1.3.0 + ufo: 1.3.2 unctx: 2.3.1 - unimport: 3.3.0(rollup@3.29.4) + unimport: 3.7.1(rollup@4.9.5) untyped: 1.4.0 transitivePeerDependencies: - rollup - supports-color dev: true - /@nuxt/schema@3.7.4(rollup@3.29.4): - resolution: {integrity: sha512-q6js+97vDha4Fa2x2kDVEuokJr+CGIh1TY2wZp2PLZ7NhG3XEeib7x9Hq8XE8B6pD0GKBRy3eRPPOY69gekBCw==} + /@nuxt/schema@3.9.3(rollup@4.9.5): + resolution: {integrity: sha512-pchkGBYdEJ9TAOoC5DKnLuAaFPjzgn2k0OUTr31QwbtHdTR3Q2Ua/oKsS1g9CPU7KRzSE5Vkf7ECE8zVydqF5A==} engines: {node: ^14.18.0 || >=16.10.0} dependencies: '@nuxt/ui-templates': 1.3.1 consola: 3.2.3 - defu: 6.1.2 + defu: 6.1.4 hookable: 5.5.3 - pathe: 1.1.1 + pathe: 1.1.2 pkg-types: 1.0.3 - postcss-import-resolver: 2.0.0 - std-env: 3.4.3 - ufo: 1.3.0 - unimport: 3.3.0(rollup@3.29.4) + scule: 1.2.0 + std-env: 3.7.0 + ufo: 1.3.2 + unimport: 3.7.1(rollup@4.9.5) untyped: 1.4.0 transitivePeerDependencies: - rollup @@ -1084,35 +874,129 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rollup/pluginutils@5.0.2(rollup@3.29.4): - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + /@rollup/pluginutils@5.1.0(rollup@4.9.5): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.29.4 + rollup: 4.9.5 dev: true - /@rollup/pluginutils@5.0.4(rollup@3.29.4): - resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.0 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 3.29.4 + /@rollup/rollup-android-arm-eabi@4.9.5: + resolution: {integrity: sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.9.5: + resolution: {integrity: sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.5: + resolution: {integrity: sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.5: + resolution: {integrity: sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.5: + resolution: {integrity: sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.5: + resolution: {integrity: sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.5: + resolution: {integrity: sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.5: + resolution: {integrity: sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.5: + resolution: {integrity: sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.5: + resolution: {integrity: sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.5: + resolution: {integrity: sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.5: + resolution: {integrity: sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.5: + resolution: {integrity: sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true /@rspack/binding-darwin-arm64@0.3.4: resolution: {integrity: sha512-/B9Xp9mfz+tiq2caM37PvrWDyzvQ4aGBPCbKbnRq13kfOrwJmT9nUAy1y+D8bDl1gLYT+7eVHczGZwMooPa2AA==} @@ -1243,6 +1127,11 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true + /@sindresorhus/merge-streams@1.0.0: + resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} + engines: {node: '>=18'} + dev: true + /@soda/friendly-errors-webpack-plugin@1.8.1(webpack@5.88.2): resolution: {integrity: sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==} engines: {node: '>=8.0.0'} @@ -1253,13 +1142,79 @@ packages: error-stack-parser: 2.1.4 string-width: 4.2.3 strip-ansi: 6.0.1 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true /@soda/get-current-script@1.0.2: resolution: {integrity: sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==} dev: true + /@stylistic/eslint-plugin-js@1.5.4(eslint@8.56.0): + resolution: {integrity: sha512-3ctWb3NvJNV1MsrZN91cYp2EGInLPSoZKphXIbIRx/zjZxKwLDr9z4LMOWtqjq14li/OgqUUcMq5pj8fgbLoTw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + dependencies: + acorn: 8.11.3 + escape-string-regexp: 4.0.0 + eslint: 8.56.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + dev: true + + /@stylistic/eslint-plugin-jsx@1.5.4(eslint@8.56.0): + resolution: {integrity: sha512-JUfrpCkeBCqt1IZ4QsP4WgxGza4PhK4LPbc0VnCjHKygl+rgqoDAovqOuzFJ49wJ4Ix3r6OIHFuwiBGswZEVvg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + dependencies: + '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0) + eslint: 8.56.0 + estraverse: 5.3.0 + dev: true + + /@stylistic/eslint-plugin-plus@1.5.4(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-dI0Cs5vYX/0uMhQDY+NK0cKQ0Pe9B6jWYxd0Ndud+mNloDaVLrsmJocK4zn+YfhGEDs1E4Nk5uAPZEumIpDuSg==} + peerDependencies: + eslint: '*' + dependencies: + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@stylistic/eslint-plugin-ts@1.5.4(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-NZDFVIlVNjuPvhT+0Cidm5IS3emtx338xbJTqs2xfOVRDGTpYwRHhNVEGa1rFOpYHmv0sAj6+OXbMDn7ul0K/g==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + dependencies: + '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@stylistic/eslint-plugin@1.5.4(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-zWPXr+O67GC9KDAFkbL1U9UVqE6Iv69YMKhkIECCmE0GvClUJwdfsimm4XebEDondV7kfjMrTDZaYfrI5aS0Jg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + dependencies: + '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0) + '@stylistic/eslint-plugin-jsx': 1.5.4(eslint@8.56.0) + '@stylistic/eslint-plugin-plus': 1.5.4(eslint@8.56.0)(typescript@5.3.3) + '@stylistic/eslint-plugin-ts': 1.5.4(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@swc/helpers@0.5.1: resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: @@ -1275,60 +1230,54 @@ packages: resolution: {integrity: sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==} dependencies: '@types/connect': 3.4.37 - '@types/node': 20.7.1 + '@types/node': 20.11.5 dev: true /@types/bonjour@3.5.12: resolution: {integrity: sha512-ky0kWSqXVxSqgqJvPIkgFkcn4C8MnRog308Ou8xBBIVo39OmUFy+jqNe0nPwLCDFxUpmT9EvT91YzOJgkDRcFg==} dependencies: - '@types/node': 20.7.1 - dev: true - - /@types/chai-subset@1.3.3: - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} - dependencies: - '@types/chai': 4.3.5 - dev: true - - /@types/chai@4.3.5: - resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + '@types/node': 20.11.5 dev: true /@types/connect-history-api-fallback@1.5.2: resolution: {integrity: sha512-gX2j9x+NzSh4zOhnRPSdPPmTepS4DfxES0AvIFv3jGv5QyeAJf6u6dY5/BAoAJU9Qq1uTvwOku8SSC2GnCRl6Q==} dependencies: '@types/express-serve-static-core': 4.17.38 - '@types/node': 20.7.1 + '@types/node': 20.11.5 dev: true /@types/connect@3.4.37: resolution: {integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==} dependencies: - '@types/node': 20.7.1 + '@types/node': 20.11.5 dev: true /@types/eslint-scope@3.7.3: resolution: {integrity: sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==} dependencies: '@types/eslint': 8.4.1 - '@types/estree': 1.0.0 + '@types/estree': 1.0.5 dev: true /@types/eslint@8.4.1: resolution: {integrity: sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==} dependencies: - '@types/estree': 1.0.0 - '@types/json-schema': 7.0.11 + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.12 dev: true /@types/estree@1.0.0: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} dev: true + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + /@types/express-serve-static-core@4.17.38: resolution: {integrity: sha512-hXOtc0tuDHZPFwwhuBJXPbjemWtXnJjbvuuyNH2Y5Z6in+iXc63c4eXYDc7GGGqHy+iwYqAJMdaItqdnbcBKmg==} dependencies: - '@types/node': 20.7.1 + '@types/node': 20.11.5 '@types/qs': 6.9.9 '@types/range-parser': 1.2.6 '@types/send': 0.17.3 @@ -1354,7 +1303,7 @@ packages: /@types/http-proxy@1.17.13: resolution: {integrity: sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw==} dependencies: - '@types/node': 20.7.1 + '@types/node': 20.11.5 dev: true /@types/json-schema@7.0.11: @@ -1382,8 +1331,10 @@ packages: resolution: {integrity: sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==} dev: true - /@types/node@20.7.1: - resolution: {integrity: sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==} + /@types/node@20.11.5: + resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} + dependencies: + undici-types: 5.26.5 dev: true /@types/normalize-package-data@2.4.1: @@ -1414,7 +1365,7 @@ packages: resolution: {integrity: sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==} dependencies: '@types/mime': 1.3.4 - '@types/node': 20.7.1 + '@types/node': 20.11.5 dev: true /@types/serve-index@1.9.3: @@ -1428,13 +1379,13 @@ packages: dependencies: '@types/http-errors': 2.0.3 '@types/mime': 3.0.3 - '@types/node': 20.7.1 + '@types/node': 20.11.5 dev: true /@types/sockjs@0.3.35: resolution: {integrity: sha512-tIF57KB+ZvOBpAQwSaACfEu7htponHXaFzP7RfKYgsOS0NoYnn+9+jzp7bbq4fWerizI3dTB4NfAZoyeQKWJLw==} dependencies: - '@types/node': 20.7.1 + '@types/node': 20.11.5 dev: true /@types/unist@2.0.6: @@ -1448,11 +1399,11 @@ packages: /@types/ws@8.5.8: resolution: {integrity: sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==} dependencies: - '@types/node': 20.7.1 + '@types/node': 20.11.5 dev: true - /@typescript-eslint/eslint-plugin@6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==} + /@typescript-eslint/eslint-plugin@6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1463,25 +1414,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.7.0(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.7.0 - '@typescript-eslint/type-utils': 6.7.0(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.0(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.7.0 - debug: 4.3.4 - eslint: 8.50.0 + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/type-utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.0 + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.56.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.7.0(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==} + /@typescript-eslint/parser@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1490,35 +1441,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.7.0 - '@typescript-eslint/types': 6.7.0 - '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.7.0 - debug: 4.3.4 - eslint: 8.50.0 - typescript: 5.2.2 + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.0 + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.56.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.8: - resolution: {integrity: sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/visitor-keys': 5.59.8 - dev: true - - /@typescript-eslint/scope-manager@6.7.0: - resolution: {integrity: sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==} + /@typescript-eslint/scope-manager@6.19.0: + resolution: {integrity: sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.7.0 - '@typescript-eslint/visitor-keys': 6.7.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 dev: true - /@typescript-eslint/type-utils@6.7.0(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==} + /@typescript-eslint/type-utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1527,49 +1470,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.0(eslint@8.50.0)(typescript@5.2.2) - debug: 4.3.4 - eslint: 8.50.0 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.56.0 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.59.8: - resolution: {integrity: sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/types@6.7.0: - resolution: {integrity: sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==} + /@typescript-eslint/types@6.19.0: + resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.8(typescript@5.2.2): - resolution: {integrity: sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/visitor-keys': 5.59.8 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree@6.7.0(typescript@5.2.2): - resolution: {integrity: sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==} + /@typescript-eslint/typescript-estree@6.19.0(typescript@5.3.3): + resolution: {integrity: sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1577,138 +1494,117 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.7.0 - '@typescript-eslint/visitor-keys': 6.7.0 - debug: 4.3.4 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 + debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils@5.59.8(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.59.8 - '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.2.2) - eslint: 8.50.0 - eslint-scope: 5.1.1 - semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color - - typescript dev: true - /@typescript-eslint/utils@6.7.0(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==} + /@typescript-eslint/utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.7.0 - '@typescript-eslint/types': 6.7.0 - '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) - eslint: 8.50.0 + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.59.8: - resolution: {integrity: sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/visitor-keys@6.19.0: + resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.59.8 + '@typescript-eslint/types': 6.19.0 eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.7.0: - resolution: {integrity: sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.7.0 - eslint-visitor-keys: 3.4.3 + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-vue@4.3.4(vite@4.4.9)(vue@3.3.4): - resolution: {integrity: sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==} - engines: {node: ^14.18.0 || >=16.0.0} + /@vitejs/plugin-vue@5.0.3(vite@5.0.12)(vue@3.4.15): + resolution: {integrity: sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vite: ^4.0.0 + vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 4.4.9(@types/node@20.7.1) - vue: 3.3.4 + vite: 5.0.12(@types/node@20.11.5) + vue: 3.4.15(typescript@5.3.3) dev: true - /@vitest/expect@0.34.5: - resolution: {integrity: sha512-/3RBIV9XEH+nRpRMqDJBufKIOQaYUH2X6bt0rKSCW0MfKhXFLYsR5ivHifeajRSTsln0FwJbitxLKHSQz/Xwkw==} + /@vitest/expect@1.2.1: + resolution: {integrity: sha512-/bqGXcHfyKgFWYwIgFr1QYDaR9e64pRKxgBNWNXPefPFRhgm+K3+a/dS0cUGEreWngets3dlr8w8SBRw2fCfFQ==} dependencies: - '@vitest/spy': 0.34.5 - '@vitest/utils': 0.34.5 - chai: 4.3.7 + '@vitest/spy': 1.2.1 + '@vitest/utils': 1.2.1 + chai: 4.4.1 dev: true - /@vitest/runner@0.34.5: - resolution: {integrity: sha512-RDEE3ViVvl7jFSCbnBRyYuu23XxmvRTSZWW6W4M7eC5dOsK75d5LIf6uhE5Fqf809DQ1+9ICZZNxhIolWHU4og==} + /@vitest/runner@1.2.1: + resolution: {integrity: sha512-zc2dP5LQpzNzbpaBt7OeYAvmIsRS1KpZQw4G3WM/yqSV1cQKNKwLGmnm79GyZZjMhQGlRcSFMImLjZaUQvNVZQ==} dependencies: - '@vitest/utils': 0.34.5 - p-limit: 4.0.0 + '@vitest/utils': 1.2.1 + p-limit: 5.0.0 pathe: 1.1.1 dev: true - /@vitest/snapshot@0.34.5: - resolution: {integrity: sha512-+ikwSbhu6z2yOdtKmk/aeoDZ9QPm2g/ZO5rXT58RR9Vmu/kB2MamyDSx77dctqdZfP3Diqv4mbc/yw2kPT8rmA==} + /@vitest/snapshot@1.2.1: + resolution: {integrity: sha512-Tmp/IcYEemKaqAYCS08sh0vORLJkMr0NRV76Gl8sHGxXT5151cITJCET20063wk0Yr/1koQ6dnmP6eEqezmd/Q==} dependencies: - magic-string: 0.30.3 + magic-string: 0.30.5 pathe: 1.1.1 - pretty-format: 29.6.2 + pretty-format: 29.7.0 dev: true - /@vitest/spy@0.34.5: - resolution: {integrity: sha512-epsicsfhvBjRjCMOC/3k00mP/TBGQy8/P0DxOFiWyLt55gnZ99dqCfCiAsKO17BWVjn4eZRIjKvcqNmSz8gvmg==} + /@vitest/spy@1.2.1: + resolution: {integrity: sha512-vG3a/b7INKH7L49Lbp0IWrG6sw9j4waWAucwnksPB1r1FTJgV7nkBByd9ufzu6VWya/QTvQW4V9FShZbZIB2UQ==} dependencies: - tinyspy: 2.1.1 + tinyspy: 2.2.0 dev: true - /@vitest/utils@0.34.5: - resolution: {integrity: sha512-ur6CmmYQoeHMwmGb0v+qwkwN3yopZuZyf4xt1DBBSGBed8Hf9Gmbm/5dEWqgpLPdRx6Av6jcWXrjcKfkTzg/pw==} + /@vitest/utils@1.2.1: + resolution: {integrity: sha512-bsH6WVZYe/J2v3+81M5LDU8kW76xWObKIURpPrOXm2pjBniBu2MERI/XP60GpS4PHU3jyK50LUutOwrx4CyHUg==} dependencies: - diff-sequences: 29.4.3 - loupe: 2.3.6 - pretty-format: 29.6.2 + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 dev: true - /@volar/language-core@1.10.1: - resolution: {integrity: sha512-JnsM1mIPdfGPxmoOcK1c7HYAsL6YOv0TCJ4aW3AXPZN/Jb4R77epDyMZIVudSGjWMbvv/JfUa+rQ+dGKTmgwBA==} + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} dependencies: - '@volar/source-map': 1.10.1 + '@volar/source-map': 1.11.1 dev: true - /@volar/source-map@1.10.1: - resolution: {integrity: sha512-3/S6KQbqa7pGC8CxPrg69qHLpOvkiPHGJtWPkI/1AXCsktkJ6gIk/5z4hyuMp8Anvs6eS/Kvp/GZa3ut3votKA==} + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} dependencies: muggle-string: 0.3.1 dev: true - /@volar/typescript@1.10.1: - resolution: {integrity: sha512-+iiO9yUSRHIYjlteT+QcdRq8b44qH19/eiUZtjNtuh6D9ailYM7DVR0zO2sEgJlvCaunw/CF9Ov2KooQBpR4VQ==} + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} dependencies: - '@volar/language-core': 1.10.1 + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 dev: true /@vue/cli-overlay@5.0.8: @@ -1720,7 +1616,7 @@ packages: peerDependencies: '@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0 dependencies: - '@vue/cli-service': 5.0.8(esbuild@0.18.20)(vue@3.3.4) + '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.4.15)(esbuild@0.19.11)(vue@3.4.15) '@vue/cli-shared-utils': 5.0.8 transitivePeerDependencies: - encoding @@ -1731,10 +1627,10 @@ packages: peerDependencies: '@vue/cli-service': ^3.0.0 || ^4.0.0 || ^5.0.0-0 dependencies: - '@vue/cli-service': 5.0.8(esbuild@0.18.20)(vue@3.3.4) + '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.4.15)(esbuild@0.19.11)(vue@3.4.15) dev: true - /@vue/cli-service@5.0.8(esbuild@0.18.20)(vue@3.3.4): + /@vue/cli-service@5.0.8(@vue/compiler-sfc@3.4.15)(esbuild@0.19.11)(vue@3.4.15): resolution: {integrity: sha512-nV7tYQLe7YsTtzFrfOMIHc5N2hp5lHG2rpYr0aNja9rNljdgcPZLyQRb2YRivTHqTv7lI962UXFURcpStHgyFw==} engines: {node: ^12.0.0 || >= 14.0.0} hasBin: true @@ -1774,7 +1670,7 @@ packages: '@vue/cli-plugin-vuex': 5.0.8(@vue/cli-service@5.0.8) '@vue/cli-shared-utils': 5.0.8 '@vue/component-compiler-utils': 3.3.0 - '@vue/vue-loader-v15': /vue-loader@15.11.1(css-loader@6.8.1)(webpack@5.88.2) + '@vue/vue-loader-v15': /vue-loader@15.11.1(@vue/compiler-sfc@3.4.15)(css-loader@6.8.1)(webpack@5.88.2) '@vue/web-component-wrapper': 1.3.0 acorn: 8.10.0 acorn-walk: 8.2.0 @@ -1787,9 +1683,9 @@ packages: cliui: 7.0.4 copy-webpack-plugin: 9.1.0(webpack@5.88.2) css-loader: 6.8.1(webpack@5.88.2) - css-minimizer-webpack-plugin: 3.4.1(esbuild@0.18.20)(webpack@5.88.2) + css-minimizer-webpack-plugin: 3.4.1(esbuild@0.19.11)(webpack@5.88.2) cssnano: 5.1.15(postcss@8.4.27) - debug: 4.3.4 + debug: 4.3.4(supports-color@5.5.0) default-gateway: 6.0.3 dotenv: 10.0.0 dotenv-expand: 5.1.0 @@ -1809,11 +1705,11 @@ packages: postcss-loader: 6.2.1(postcss@8.4.27)(webpack@5.88.2) progress-webpack-plugin: 1.0.16(webpack@5.88.2) ssri: 8.0.1 - terser-webpack-plugin: 5.3.9(esbuild@0.18.20)(webpack@5.88.2) + terser-webpack-plugin: 5.3.9(esbuild@0.19.11)(webpack@5.88.2) thread-loader: 3.0.4(webpack@5.88.2) - vue-loader: 17.3.0(vue@3.3.4)(webpack@5.88.2) + vue-loader: 17.3.0(@vue/compiler-sfc@3.4.15)(vue@3.4.15)(webpack@5.88.2) vue-style-loader: 4.1.3 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) webpack-bundle-analyzer: 4.9.1 webpack-chain: 6.5.1 webpack-dev-server: 4.15.1(debug@4.3.4)(webpack@5.88.2) @@ -1916,32 +1812,48 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 source-map-js: 1.0.2 + dev: true + + /@vue/compiler-core@3.4.15: + resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==} + dependencies: + '@babel/parser': 7.23.6 + '@vue/shared': 3.4.15 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 /@vue/compiler-dom@3.3.4: resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 + dev: true - /@vue/compiler-sfc@3.3.4: - resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} + /@vue/compiler-dom@3.4.15: + resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==} dependencies: - '@babel/parser': 7.22.10 - '@vue/compiler-core': 3.3.4 - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-ssr': 3.3.4 - '@vue/reactivity-transform': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/compiler-core': 3.4.15 + '@vue/shared': 3.4.15 + + /@vue/compiler-sfc@3.4.15: + resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==} + dependencies: + '@babel/parser': 7.23.6 + '@vue/compiler-core': 3.4.15 + '@vue/compiler-dom': 3.4.15 + '@vue/compiler-ssr': 3.4.15 + '@vue/shared': 3.4.15 estree-walker: 2.0.2 - magic-string: 0.30.3 - postcss: 8.4.27 + magic-string: 0.30.5 + postcss: 8.4.33 source-map-js: 1.0.2 - /@vue/compiler-ssr@3.3.4: - resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} + /@vue/compiler-ssr@3.4.15: + resolution: {integrity: sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==} dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/compiler-dom': 3.4.15 + '@vue/shared': 3.4.15 /@vue/component-compiler-utils@3.3.0: resolution: {integrity: sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==} @@ -2012,73 +1924,60 @@ packages: - whiskers dev: true - /@vue/language-core@1.8.15(typescript@5.2.2): - resolution: {integrity: sha512-zche5Aw8kkvp3YaghuLiOZyVIpoWHjSQ0EfjxGSsqHOPMamdCoa9x3HtbenpR38UMUoKJ88wiWuiOrV3B/Yq+A==} + /@vue/language-core@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.10.1 - '@volar/source-map': 1.10.1 + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 '@vue/compiler-dom': 3.3.4 - '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 - minimatch: 9.0.1 + computeds: 0.0.1 + minimatch: 9.0.3 muggle-string: 0.3.1 - typescript: 5.2.2 + path-browserify: 1.0.1 + typescript: 5.3.3 vue-template-compiler: 2.7.14 dev: true - /@vue/reactivity-transform@3.3.4: - resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} - dependencies: - '@babel/parser': 7.22.10 - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 - estree-walker: 2.0.2 - magic-string: 0.30.3 - - /@vue/reactivity@3.3.4: - resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} + /@vue/reactivity@3.4.15: + resolution: {integrity: sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==} dependencies: - '@vue/shared': 3.3.4 + '@vue/shared': 3.4.15 - /@vue/runtime-core@3.3.4: - resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} + /@vue/runtime-core@3.4.15: + resolution: {integrity: sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==} dependencies: - '@vue/reactivity': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/reactivity': 3.4.15 + '@vue/shared': 3.4.15 - /@vue/runtime-dom@3.3.4: - resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} + /@vue/runtime-dom@3.4.15: + resolution: {integrity: sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==} dependencies: - '@vue/runtime-core': 3.3.4 - '@vue/shared': 3.3.4 - csstype: 3.1.2 + '@vue/runtime-core': 3.4.15 + '@vue/shared': 3.4.15 + csstype: 3.1.3 - /@vue/server-renderer@3.3.4(vue@3.3.4): - resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} + /@vue/server-renderer@3.4.15(vue@3.4.15): + resolution: {integrity: sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==} peerDependencies: - vue: 3.3.4 + vue: 3.4.15 dependencies: - '@vue/compiler-ssr': 3.3.4 - '@vue/shared': 3.3.4 - vue: 3.3.4 + '@vue/compiler-ssr': 3.4.15 + '@vue/shared': 3.4.15 + vue: 3.4.15(typescript@5.3.3) /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - - /@vue/typescript@1.8.15(typescript@5.2.2): - resolution: {integrity: sha512-qWyanQKXOsK84S8rP7QBrqsvUdQ0nZABZmTjXMpb3ox4Bp5IbkscREA3OPUrkgl64mAxwwCzIWcOc3BPTCPjQw==} - dependencies: - '@volar/typescript': 1.10.1 - '@vue/language-core': 1.8.15(typescript@5.2.2) - transitivePeerDependencies: - - typescript dev: true + /@vue/shared@3.4.15: + resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} + /@vue/web-component-wrapper@1.3.0: resolution: {integrity: sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==} dev: true @@ -2209,20 +2108,28 @@ packages: negotiator: 0.6.3 dev: true - /acorn-import-assertions@1.9.0(acorn@8.8.2): + /acorn-import-assertions@1.9.0(acorn@8.10.0): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.10.0 + dev: true + + /acorn-import-assertions@1.9.0(acorn@8.11.3): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.8.2 + acorn: 8.11.3 dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.3 dev: true /acorn-walk@8.2.0: @@ -2230,31 +2137,27 @@ packages: engines: {node: '>=0.4.0'} dev: true + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true + dev: true - /acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} dev: true - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /ajv-formats@2.1.1(ajv@8.12.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -2546,6 +2449,17 @@ packages: node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001579 + electron-to-chromium: 1.4.640 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) + dev: true + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -2568,19 +2482,18 @@ packages: semver: 7.5.4 dev: true - /bumpp@9.2.0: - resolution: {integrity: sha512-pgp7y3jp33QTaXFVDrE0IKuZF5Y8EsIz+ywZXFALW2nD+ZD+4crxJe/GypBQBoJuZrr5dc6TGrR3wl7fk3+C6w==} + /bumpp@9.3.0: + resolution: {integrity: sha512-P46VikoEZadYCqx7mbClKlaJnOyvc+JfRJPRf1YwlOjwqeYmutgFe1w9hvfXe819VhpU0N0TNXtxyVAUlAgaNA==} engines: {node: '>=10'} hasBin: true dependencies: '@jsdevtools/ez-spawn': 3.0.4 - c12: 1.4.2 + c12: 1.6.1 cac: 6.7.14 - fast-glob: 3.3.1 + fast-glob: 3.3.2 + js-yaml: 4.1.0 prompts: 2.4.2 semver: 7.5.4 - transitivePeerDependencies: - - supports-color dev: true /bundle-name@3.0.0: @@ -2590,13 +2503,13 @@ packages: run-applescript: 5.0.0 dev: true - /bundle-require@4.0.1(esbuild@0.18.20): + /bundle-require@4.0.1(esbuild@0.19.11): resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' dependencies: - esbuild: 0.18.20 + esbuild: 0.19.11 load-tsconfig: 0.2.3 dev: true @@ -2610,22 +2523,20 @@ packages: engines: {node: '>= 0.8'} dev: true - /c12@1.4.2: - resolution: {integrity: sha512-3IP/MuamSVRVw8W8+CHWAz9gKN4gd+voF2zm/Ln6D25C2RhytEZ1ABbC8MjKr4BR9rhoV1JQ7jJA158LDiTkLg==} + /c12@1.6.1: + resolution: {integrity: sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==} dependencies: chokidar: 3.5.3 - defu: 6.1.2 + defu: 6.1.4 dotenv: 16.3.1 - giget: 1.1.2 - jiti: 1.20.0 - mlly: 1.4.2 - ohash: 1.1.2 - pathe: 1.1.1 + giget: 1.2.1 + jiti: 1.21.0 + mlly: 1.5.0 + ohash: 1.1.3 + pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 rc9: 2.1.1 - transitivePeerDependencies: - - supports-color dev: true /cac@6.7.14: @@ -2671,19 +2582,23 @@ packages: /caniuse-lite@1.0.30001551: resolution: {integrity: sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==} + /caniuse-lite@1.0.30001579: + resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} + dev: true + /case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} engines: {node: '>=4'} dev: true - /chai@4.3.7: - resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 + get-func-name: 2.0.2 loupe: 2.3.6 pathval: 1.1.1 type-detect: 4.0.8 @@ -2731,8 +2646,10 @@ packages: resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} dev: true - /check-error@1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 dev: true /chokidar@3.5.3: @@ -2747,7 +2664,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -2759,11 +2676,17 @@ packages: engines: {node: '>=6.0'} dev: true - /ci-info@3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + /ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} dev: true + /citty@0.1.5: + resolution: {integrity: sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==} + dependencies: + consola: 3.2.3 + dev: true + /clean-css@5.3.2: resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} engines: {node: '>= 10.0'} @@ -2827,6 +2750,15 @@ packages: wrap-ansi: 7.0.0 dev: true + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + /clone-deep@4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} @@ -2889,8 +2821,8 @@ packages: engines: {node: '>= 12'} dev: true - /comment-parser@1.4.0: - resolution: {integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==} + /comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} dev: true @@ -2920,6 +2852,10 @@ packages: - supports-color dev: true + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -3134,19 +3070,20 @@ packages: peerDependencies: webpack: ^5.1.0 dependencies: - fast-glob: 3.3.1 + fast-glob: 3.3.2 glob-parent: 6.0.2 globby: 11.1.0 normalize-path: 3.0.0 schema-utils: 3.3.0 serialize-javascript: 6.0.1 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true - /core-js-pure@3.32.1: - resolution: {integrity: sha512-f52QZwkFVDPf7UEQZGHKx6NYxsxmVGJe5DIvbzOdRMJlmT6yv0KDjR8rmy3ngr/t5wU54c7Sp/qIJH0ppbhVpQ==} - requiresBuild: true - dev: false + /core-js-compat@3.35.0: + resolution: {integrity: sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==} + dependencies: + browserslist: 4.22.2 + dev: true /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -3206,10 +3143,10 @@ packages: postcss-modules-values: 4.0.0(postcss@8.4.27) postcss-value-parser: 4.2.0 semver: 7.5.4 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true - /css-minimizer-webpack-plugin@3.4.1(esbuild@0.18.20)(webpack@5.88.2): + /css-minimizer-webpack-plugin@3.4.1(esbuild@0.19.11)(webpack@5.88.2): resolution: {integrity: sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -3229,13 +3166,13 @@ packages: optional: true dependencies: cssnano: 5.1.15(postcss@8.4.27) - esbuild: 0.18.20 + esbuild: 0.19.11 jest-worker: 27.5.1 postcss: 8.4.27 schema-utils: 4.2.0 serialize-javascript: 6.0.1 source-map: 0.6.1 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true /css-select@4.3.0: @@ -3333,8 +3270,8 @@ packages: css-tree: 1.1.3 dev: true - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -3351,7 +3288,7 @@ packages: ms: 2.0.0 dev: true - /debug@3.2.7(supports-color@5.5.0): + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' @@ -3360,10 +3297,9 @@ packages: optional: true dependencies: ms: 2.1.3 - supports-color: 5.5.0 dev: true - /debug@4.3.4: + /debug@4.3.4(supports-color@5.5.0): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -3373,6 +3309,7 @@ packages: optional: true dependencies: ms: 2.1.2 + supports-color: 5.5.0 dev: true /deep-eql@4.1.3: @@ -3432,8 +3369,8 @@ packages: engines: {node: '>=12'} dev: true - /defu@6.1.2: - resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} + /defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} dev: true /depd@1.1.2: @@ -3459,8 +3396,8 @@ packages: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true - /diff-sequences@29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -3482,13 +3419,6 @@ packages: '@leichtgewicht/ip-codec': 2.0.4 dev: true - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -3510,14 +3440,6 @@ packages: entities: 2.2.0 dev: true - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.4.0 - dev: true - /domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true @@ -3529,13 +3451,6 @@ packages: domelementtype: 2.3.0 dev: true - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - /domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: @@ -3544,14 +3459,6 @@ packages: domhandler: 4.3.1 dev: true - /domutils@3.0.1: - resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - dev: true - /dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: @@ -3597,6 +3504,10 @@ packages: /electron-to-chromium@1.4.498: resolution: {integrity: sha512-4LODxAzKGVy7CJyhhN5mebwe7U2L29P+0G+HUriHnabm0d7LSff8Yn7t+Wq+2/9ze2Fu1dhX7mww090xfv7qXQ==} + /electron-to-chromium@1.4.640: + resolution: {integrity: sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA==} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -3621,15 +3532,6 @@ packages: once: 1.4.0 dev: true - /enhanced-resolve@4.5.0: - resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} - engines: {node: '>=6.9.0'} - dependencies: - graceful-fs: 4.2.10 - memory-fs: 0.5.0 - tapable: 1.1.3 - dev: true - /enhanced-resolve@5.12.0: resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} engines: {node: '>=10.13.0'} @@ -3650,17 +3552,9 @@ packages: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true - /entities@4.4.0: - resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - dev: true - - /errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - dependencies: - prr: 1.0.1 - dev: true /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -3682,64 +3576,35 @@ packages: resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==} dev: true - /esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 - dev: true - - /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -3764,17 +3629,50 @@ packages: engines: {node: '>=12'} dev: true - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + /eslint-compat-utils@0.1.2(eslint@8.56.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.56.0 + dev: true + + /eslint-compat-utils@0.4.1(eslint@8.56.0): + resolution: {integrity: sha512-5N7ZaJG5pZxUeNNJfUchurLVrunD1xJvyg5kYOIVF8kg1f3ajTikmAu/5fZ9w100omNPOoMjngRszh/Q/uFGMg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.56.0 + semver: 7.5.4 + dev: true + + /eslint-config-flat-gitignore@0.1.2: + resolution: {integrity: sha512-PcBsqtd5QHEZH4ROvpnRN4EP0qcHh9voCCHgtyHxnJZHGspJREcZn7oPqRG/GfWt9m3C0fkC2l5CuBtMig2wXQ==} + dependencies: + parse-gitignore: 2.0.0 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7 is-core-module: 2.13.0 resolve: 1.22.4 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.7)(eslint@8.50.0): + /eslint-merge-processors@0.1.0(eslint@8.56.0): + resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} + peerDependencies: + eslint: '*' + dependencies: + eslint: 8.56.0 + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -3795,67 +3693,59 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.7.0(eslint@8.50.0)(typescript@5.2.2) - debug: 3.2.7(supports-color@5.5.0) - eslint: 8.50.0 - eslint-import-resolver-node: 0.3.7 + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + debug: 3.2.7 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-antfu@0.42.1(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-uW4Z/j3RSzwloR0Ym4f1rY/ZLrodSC7kd6XTLQccYdhNBgNswTzqPyfPtIeFV0XnlLp/B6AeXfOWcK4c5ZyFkg==} + /eslint-plugin-antfu@2.1.1(eslint@8.56.0): + resolution: {integrity: sha512-HCPo3IP15/gOaruIb1ce6R4LUv/MKBZCmWzqYiLGDFW43WW4juPURnjaQIE3AgWNSoCURqD3wxerXYKzokKTgA==} + peerDependencies: + eslint: '*' dependencies: - '@typescript-eslint/utils': 6.7.0(eslint@8.50.0)(typescript@5.2.2) - transitivePeerDependencies: - - eslint - - supports-color - - typescript + eslint: 8.56.0 dev: true - /eslint-plugin-es-x@7.2.0(eslint@8.50.0): - resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} + /eslint-plugin-es-x@7.5.0(eslint@8.56.0): + resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.6.2 - eslint: 8.50.0 + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.50.0): + /eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} peerDependencies: eslint: '>=4.19.1' dependencies: escape-string-regexp: 1.0.5 - eslint: 8.50.0 - ignore: 5.2.4 - dev: true - - /eslint-plugin-html@7.1.0: - resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==} - dependencies: - htmlparser2: 8.0.1 + eslint: 8.56.0 + ignore: 5.3.0 dev: true - /eslint-plugin-i@2.28.1(@typescript-eslint/parser@6.7.0)(eslint@8.50.0): - resolution: {integrity: sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==} + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0): + resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: eslint: ^7.2.0 || ^8 dependencies: - debug: 3.2.7(supports-color@5.5.0) - doctrine: 2.1.0 - eslint: 8.50.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.7)(eslint@8.50.0) - get-tsconfig: 4.7.0 + debug: 4.3.4(supports-color@5.5.0) + doctrine: 3.0.0 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 - resolve: 1.22.4 semver: 7.5.4 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -3864,83 +3754,67 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@6.7.0)(eslint@8.50.0)(typescript@5.2.2): - resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 - eslint: ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - dependencies: - '@typescript-eslint/eslint-plugin': 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.59.8(eslint@8.50.0)(typescript@5.2.2) - eslint: 8.50.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /eslint-plugin-jsdoc@46.8.1(eslint@8.50.0): - resolution: {integrity: sha512-uTce7IBluPKXIQMWJkIwFsI1gv7sZRmLjctca2K5DIxPi8fSBj9f4iru42XmGwuiMyH2f3nfc60sFmnSGv4Z/A==} - engines: {node: '>=16'} + /eslint-plugin-jsdoc@48.0.2(eslint@8.56.0): + resolution: {integrity: sha512-CBFl5Jc7+jlV36RwDm+PQ8Uw5r28pn2/uW/OaB+Gw5bFwn4Py/1eYMZ3hGf9S4meUFZ/sRvS+hVif2mRAp6WqQ==} + engines: {node: '>=18'} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 dependencies: - '@es-joy/jsdoccomment': 0.40.1 + '@es-joy/jsdoccomment': 0.41.0 are-docs-informative: 0.0.2 - comment-parser: 1.4.0 - debug: 4.3.4 + comment-parser: 1.4.1 + debug: 4.3.4(supports-color@5.5.0) escape-string-regexp: 4.0.0 - eslint: 8.50.0 + eslint: 8.56.0 esquery: 1.5.0 is-builtin-module: 3.2.1 semver: 7.5.4 - spdx-expression-parse: 3.0.1 + spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-jsonc@2.9.0(eslint@8.50.0): - resolution: {integrity: sha512-RK+LeONVukbLwT2+t7/OY54NJRccTXh/QbnXzPuTLpFMVZhPuq1C9E07+qWenGx7rrQl0kAalAWl7EmB+RjpGA==} + /eslint-plugin-jsonc@2.12.2(eslint@8.56.0): + resolution: {integrity: sha512-iv2BLi1bqkSxCPEvDOY6xiBXzAFi5iS2gTOU8fnXGfKxkC6MvC5Tw2XAgbP6R6WRlqV7AtFItx4Xb7mCONtmmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) - eslint: 8.50.0 - jsonc-eslint-parser: 2.3.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + eslint: 8.56.0 + eslint-compat-utils: 0.4.1(eslint@8.56.0) + espree: 9.6.1 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 dev: true - /eslint-plugin-markdown@3.0.1(eslint@8.50.0): + /eslint-plugin-markdown@3.0.1(eslint@8.56.0): resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.50.0 + eslint: 8.56.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-n@16.1.0(eslint@8.50.0): - resolution: {integrity: sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==} + /eslint-plugin-n@16.6.2(eslint@8.56.0): + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) builtins: 5.0.1 - eslint: 8.50.0 - eslint-plugin-es-x: 7.2.0(eslint@8.50.0) + eslint: 8.56.0 + eslint-plugin-es-x: 7.5.0(eslint@8.56.0) get-tsconfig: 4.7.0 - ignore: 5.2.4 + globals: 13.24.0 + ignore: 5.3.0 + is-builtin-module: 3.2.1 is-core-module: 2.13.0 minimatch: 3.1.2 resolve: 1.22.4 @@ -3952,80 +3826,140 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-promise@6.1.1(eslint@8.50.0): - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + /eslint-plugin-perfectionist@2.5.0(eslint@8.56.0)(typescript@5.3.3)(vue-eslint-parser@9.4.0): + resolution: {integrity: sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ==} + peerDependencies: + astro-eslint-parser: ^0.16.0 + eslint: '>=8.0.0' + svelte: '>=3.0.0' + svelte-eslint-parser: ^0.33.0 + vue-eslint-parser: '>=9.0.0' + peerDependenciesMeta: + astro-eslint-parser: + optional: true + svelte: + optional: true + svelte-eslint-parser: + optional: true + vue-eslint-parser: + optional: true + dependencies: + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + minimatch: 9.0.3 + natural-compare-lite: 1.4.0 + vue-eslint-parser: 9.4.0(eslint@8.56.0) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-toml@0.9.2(eslint@8.56.0): + resolution: {integrity: sha512-ri0xf63PYf3pIq/WY9BIwrqxZmGTIwSkAO0bHddI0ajUwN4KGz6W8vOvdXFHOpRdRfzxlmXze/vfsY/aTEXESg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: '>=6.0.0' dependencies: - eslint: 8.50.0 + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.56.0 + eslint-compat-utils: 0.4.1(eslint@8.56.0) + lodash: 4.17.21 + toml-eslint-parser: 0.9.3 + transitivePeerDependencies: + - supports-color dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.50.0): - resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} + /eslint-plugin-unicorn@50.0.1(eslint@8.56.0): + resolution: {integrity: sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA==} engines: {node: '>=16'} peerDependencies: - eslint: '>=8.44.0' + eslint: '>=8.56.0' dependencies: - '@babel/helper-validator-identifier': 7.22.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) - ci-info: 3.8.0 + '@babel/helper-validator-identifier': 7.22.20 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint/eslintrc': 2.1.4 + ci-info: 4.0.0 clean-regexp: 1.0.0 - eslint: 8.50.0 + core-js-compat: 3.35.0 + eslint: 8.56.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 - lodash: 4.17.21 pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 semver: 7.5.4 strip-indent: 3.0.0 + transitivePeerDependencies: + - supports-color dev: true - /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.7.0)(eslint@8.50.0): + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.19.0)(eslint@8.56.0): resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.0.0 - eslint: ^8.0.0 + '@typescript-eslint/eslint-plugin': ^6.0.0 + eslint: ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-rule-composer: 0.3.0 + dev: true + + /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.19.0)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.2.1): + resolution: {integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==} + engines: {node: ^18.0.0 || >= 20.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': '*' + eslint: '>=8.0.0' + vitest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true + vitest: + optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.50.0)(typescript@5.2.2) - eslint: 8.50.0 - eslint-rule-composer: 0.3.0 + '@typescript-eslint/eslint-plugin': 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + vitest: 1.2.1(@types/node@20.11.5) + transitivePeerDependencies: + - supports-color + - typescript dev: true - /eslint-plugin-vue@9.17.0(eslint@8.50.0): - resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==} + /eslint-plugin-vue@9.20.1(eslint@8.56.0): + resolution: {integrity: sha512-GyCs8K3lkEvoyC1VV97GJhP1SvqsKCiWGHnbn0gVUYiUhaH2+nB+Dv1uekv1THFMPbBfYxukrzQdltw950k+LQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) - eslint: 8.50.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + eslint: 8.56.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.13 semver: 7.5.4 - vue-eslint-parser: 9.3.1(eslint@8.50.0) + vue-eslint-parser: 9.4.0(eslint@8.56.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-yml@1.9.0(eslint@8.50.0): - resolution: {integrity: sha512-ayuC57WyVQ5+QZ02y62GiB//5+zsiyzUGxUX/mrhLni+jfsKA4KoITjkbR65iUdjjhWpyTJHPcAIFLKQIOwgsw==} + /eslint-plugin-yml@1.12.2(eslint@8.56.0): + resolution: {integrity: sha512-hvS9p08FhPT7i/ynwl7/Wt7ke7Rf4P2D6fT8lZlL43peZDTsHtH2A0SIFQ7Kt7+mJ6if6P+FX3iJhMkdnxQwpg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - debug: 4.3.4 - eslint: 8.50.0 + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.56.0 + eslint-compat-utils: 0.4.1(eslint@8.56.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -4033,6 +3967,16 @@ packages: - supports-color dev: true + /eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.56.0): + resolution: {integrity: sha512-9+dU5lU881log570oBwpelaJmOfOzSniben7IWEDRYQPPWwlvaV7NhOtsTuUWDqpYT+dtKKWPsgz4OkOi+aZnA==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: ^8.50.0 + dependencies: + '@vue/compiler-sfc': 3.4.15 + eslint: 8.56.0 + dev: true + /eslint-rule-composer@0.3.0: resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} engines: {node: '>=4.0.0'} @@ -4059,22 +4003,23 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.50.0: - resolution: {integrity: sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.50.0 - '@humanwhocodes/config-array': 0.11.11 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.56.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@5.5.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -4105,19 +4050,19 @@ packages: - supports-color dev: true - /esno@0.17.0: - resolution: {integrity: sha512-w78cQGlptQfsBYfootUCitsKS+MD74uR5L6kNsvwVkJsfzEepIafbvWsx2xK4rcFP4IUftt4F6J8EhagUxX+Bg==} + /esno@4.0.0: + resolution: {integrity: sha512-tmaM9gfnSWqzePVJ5FJLYX9mMyE6ZevvOIvd1CMoMk2Fn1F3aKI/OQPjubS5wCIKlPpWfDfKFEtoslCNCiZJpQ==} hasBin: true dependencies: - tsx: 3.12.7 + tsx: 4.7.0 dev: true /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 dev: true @@ -4151,7 +4096,7 @@ packages: /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.5 dev: true /esutils@2.0.3: @@ -4221,6 +4166,21 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /express@4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -4263,8 +4223,8 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4372,7 +4332,7 @@ packages: debug: optional: true dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@5.5.0) dev: true /for-each@0.3.3: @@ -4386,7 +4346,7 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.2 + signal-exit: 4.1.0 dev: true /forwarded@0.2.0: @@ -4437,8 +4397,8 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -4457,8 +4417,8 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-func-name@2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true /get-intrinsic@1.2.1: @@ -4481,25 +4441,35 @@ packages: engines: {node: '>=10'} dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-tsconfig@4.7.0: resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} dependencies: resolve-pkg-maps: 1.0.0 dev: true - /giget@1.1.2: - resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==} + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /giget@1.2.1: + resolution: {integrity: sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==} hasBin: true dependencies: - colorette: 2.0.20 - defu: 6.1.2 - https-proxy-agent: 5.0.1 - mri: 1.2.0 - node-fetch-native: 1.1.1 - pathe: 1.1.1 - tar: 6.1.15 - transitivePeerDependencies: - - supports-color + citty: 0.1.5 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.1 + nypm: 0.3.4 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.0 dev: true /glob-parent@5.1.2: @@ -4525,7 +4495,7 @@ packages: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.1 + minimatch: 9.0.3 minipass: 6.0.2 path-scurry: 1.10.1 dev: true @@ -4564,27 +4534,35 @@ packages: type-fest: 0.20.2 dev: true + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 + fast-glob: 3.3.2 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 dev: true - /globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /globby@14.0.0: + resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} + engines: {node: '>=18'} dependencies: - dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 4.0.0 + '@sindresorhus/merge-streams': 1.0.0 + fast-glob: 3.3.2 + ignore: 5.3.0 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 dev: true /gopd@1.0.1: @@ -4704,7 +4682,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true /htmlparser2@6.1.0: @@ -4716,15 +4694,6 @@ packages: entities: 2.2.0 dev: true - /htmlparser2@8.0.1: - resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.0.1 - entities: 4.4.0 - dev: true - /http-deceiver@1.2.7: resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} dev: true @@ -4784,16 +4753,6 @@ packages: - debug dev: true - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -4804,6 +4763,11 @@ packages: engines: {node: '>=14.18.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -4833,6 +4797,11 @@ packages: engines: {node: '>= 4'} dev: true + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -5078,13 +5047,13 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.7.1 + '@types/node': 20.11.5 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jiti@1.20.0: - resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true dev: true @@ -5173,11 +5142,11 @@ packages: hasBin: true dev: true - /jsonc-eslint-parser@2.3.0: - resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==} + /jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 + acorn: 8.11.3 eslint-visitor-keys: 3.4.3 espree: 9.6.1 semver: 7.5.4 @@ -5272,9 +5241,12 @@ packages: json5: 2.2.3 dev: true - /local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 dev: true /locate-path@5.0.0: @@ -5362,8 +5334,15 @@ packages: /loupe@2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5 dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 + dev: true + + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 dev: true /lower-case@2.0.2: @@ -5397,8 +5376,8 @@ packages: engines: {node: 14 || >=16.14} dev: true - /magic-string@0.30.3: - resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -5435,14 +5414,6 @@ packages: fs-monkey: 1.0.5 dev: true - /memory-fs@0.5.0: - resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - dependencies: - errno: 0.1.8 - readable-stream: 2.3.8 - dev: true - /merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} dev: true @@ -5470,7 +5441,7 @@ packages: /micromark@2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@5.5.0) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -5529,7 +5500,7 @@ packages: webpack: ^5.0.0 dependencies: schema-utils: 4.2.0 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true /minimalistic-assert@1.0.1: @@ -5542,8 +5513,8 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@9.0.1: - resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -5594,12 +5565,21 @@ packages: /mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: - acorn: 8.10.0 + acorn: 8.11.3 pathe: 1.1.1 pkg-types: 1.0.3 ufo: 1.3.0 dev: true + /mlly@1.5.0: + resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.3.2 + dev: true + /module-alias@2.2.3: resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==} dev: true @@ -5650,6 +5630,16 @@ packages: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -5674,8 +5664,8 @@ packages: tslib: 2.6.2 dev: true - /node-fetch-native@1.1.1: - resolution: {integrity: sha512-9VvspTSUp2Sxbl+9vbZTlFGq9lHwE8GDVVekxx6YsNd1YH59sb3Ba8v3Y3cD8PkLNcileGGcA21PFjVl0jzDaw==} + /node-fetch-native@1.6.1: + resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==} dev: true /node-fetch@2.7.0: @@ -5698,17 +5688,21 @@ packages: /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + /node-releases@2.0.3: resolution: {integrity: sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==} dev: true - /nodemon@3.0.1: - resolution: {integrity: sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==} + /nodemon@3.0.3: + resolution: {integrity: sha512-7jH/NXbFPxVaMwmBCC2B9F/V6X1VkEdNgx3iu9jji8WxWcvhMWkmhNWhI5077zknOnZnBzba9hZP6bCPJLSReQ==} engines: {node: '>=10'} hasBin: true dependencies: chokidar: 3.5.3 - debug: 3.2.7(supports-color@5.5.0) + debug: 4.3.4(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 pstree.remy: 1.1.8 @@ -5776,6 +5770,17 @@ packages: boolbase: 1.0.0 dev: true + /nypm@0.3.4: + resolution: {integrity: sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + dependencies: + citty: 0.1.5 + execa: 8.0.1 + pathe: 1.1.2 + ufo: 1.3.2 + dev: true + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5789,8 +5794,8 @@ packages: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: true - /ohash@1.1.2: - resolution: {integrity: sha512-9CIOSq5945rI045GFtcO3uudyOkYVY1nyfFxVQp+9BRgslr8jPNiSSrsFGg/BNTUFOLqx0P5tng6G32brIPw0w==} + /ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} dev: true /on-finished@2.4.1: @@ -5902,9 +5907,9 @@ packages: yocto-queue: 0.1.0 dev: true - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} dependencies: yocto-queue: 1.0.0 dev: true @@ -5961,6 +5966,11 @@ packages: is-hexadecimal: 1.0.4 dev: true + /parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + dev: true + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -5997,6 +6007,10 @@ packages: tslib: 2.6.2 dev: true + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -6043,10 +6057,19 @@ packages: engines: {node: '>=8'} dev: true + /path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + dev: true + /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: true + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true + /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true @@ -6075,8 +6098,8 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.4.2 - pathe: 1.1.1 + mlly: 1.5.0 + pathe: 1.1.2 dev: true /pluralize@8.0.0: @@ -6089,7 +6112,7 @@ packages: engines: {node: '>= 0.12.0'} dependencies: async: 2.6.4 - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7 mkdirp: 0.5.6 transitivePeerDependencies: - supports-color @@ -6165,12 +6188,6 @@ packages: postcss: 8.4.27 dev: true - /postcss-import-resolver@2.0.0: - resolution: {integrity: sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==} - dependencies: - enhanced-resolve: 4.5.0 - dev: true - /postcss-load-config@4.0.1: resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} @@ -6198,7 +6215,7 @@ packages: klona: 2.0.6 postcss: 8.4.27 semver: 7.5.4 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true /postcss-merge-longhand@5.1.7(postcss@8.4.27): @@ -6481,6 +6498,15 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true + + /postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -6502,11 +6528,11 @@ packages: renderkid: 3.0.0 dev: true - /pretty-format@29.6.2: - resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.6.0 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true @@ -6524,7 +6550,7 @@ packages: chalk: 2.4.2 figures: 2.0.0 log-update: 2.3.0 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true /prompts@2.4.2: @@ -6543,10 +6569,6 @@ packages: ipaddr.js: 1.9.1 dev: true - /prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - dev: true - /pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: true @@ -6601,7 +6623,7 @@ packages: /rc9@2.1.1: resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} dependencies: - defu: 6.1.2 + defu: 6.1.4 destr: 2.0.1 flat: 5.0.2 dev: true @@ -6661,10 +6683,6 @@ packages: dependencies: picomatch: 2.3.1 - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - dev: false - /regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -6769,20 +6787,27 @@ packages: glob: 10.3.10 dev: true - /rollup@3.29.2: - resolution: {integrity: sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + /rollup@4.9.5: + resolution: {integrity: sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: - fsevents: 2.3.2 + '@rollup/rollup-android-arm-eabi': 4.9.5 + '@rollup/rollup-android-arm64': 4.9.5 + '@rollup/rollup-darwin-arm64': 4.9.5 + '@rollup/rollup-darwin-x64': 4.9.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.5 + '@rollup/rollup-linux-arm64-gnu': 4.9.5 + '@rollup/rollup-linux-arm64-musl': 4.9.5 + '@rollup/rollup-linux-riscv64-gnu': 4.9.5 + '@rollup/rollup-linux-x64-gnu': 4.9.5 + '@rollup/rollup-linux-x64-musl': 4.9.5 + '@rollup/rollup-win32-arm64-msvc': 4.9.5 + '@rollup/rollup-win32-ia32-msvc': 4.9.5 + '@rollup/rollup-win32-x64-msvc': 4.9.5 + fsevents: 2.3.3 dev: true /run-applescript@5.0.0: @@ -6828,8 +6853,8 @@ packages: ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) - /scule@1.0.0: - resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} + /scule@1.2.0: + resolution: {integrity: sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==} dev: true /select-hose@2.0.0: @@ -6974,8 +6999,8 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /signal-exit@4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: true @@ -7004,9 +7029,9 @@ packages: engines: {node: '>=8'} dev: true - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} + /slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} dev: true /sockjs@0.3.24: @@ -7058,6 +7083,13 @@ packages: spdx-license-ids: 3.0.11 dev: true + /spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.11 + dev: true + /spdx-license-ids@3.0.11: resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} dev: true @@ -7065,7 +7097,7 @@ packages: /spdy-transport@3.0.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@5.5.0) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -7079,7 +7111,7 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@5.5.0) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -7118,8 +7150,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /std-env@3.4.3: - resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true /string-argv@0.3.1: @@ -7210,7 +7242,7 @@ packages: /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - acorn: 8.10.0 + acorn: 8.11.3 dev: true /stylehacks@5.1.1(postcss@8.4.27): @@ -7284,17 +7316,12 @@ packages: stable: 0.1.8 dev: true - /tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - dev: true - /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - /tar@6.1.15: - resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} + /tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 @@ -7313,7 +7340,32 @@ packages: supports-hyperlinks: 2.3.0 dev: false - /terser-webpack-plugin@5.3.9(esbuild@0.18.20)(webpack@5.88.2): + /terser-webpack-plugin@5.3.9(esbuild@0.19.11)(webpack@5.88.2): + resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.18 + esbuild: 0.19.11 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.1 + terser: 5.17.7 + webpack: 5.88.2(esbuild@0.19.11) + dev: true + + /terser-webpack-plugin@5.3.9(esbuild@0.19.11)(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -7330,12 +7382,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.18 - esbuild: 0.18.20 + esbuild: 0.19.11 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.17.7 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.89.0(esbuild@0.19.11) dev: true /terser@5.17.7: @@ -7344,7 +7396,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.3 - acorn: 8.10.0 + acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -7377,24 +7429,24 @@ packages: loader-utils: 2.0.4 neo-async: 2.6.2 schema-utils: 3.3.0 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true /thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: true - /tinybench@2.5.0: - resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} + /tinybench@2.6.0: + resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} dev: true - /tinypool@0.7.0: - resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + /tinypool@0.8.2: + resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy@2.1.1: - resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + /tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} dev: true @@ -7418,6 +7470,13 @@ packages: engines: {node: '>=0.6'} dev: true + /toml-eslint-parser@0.9.3: + resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.3 + dev: true + /totalist@3.0.0: resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} engines: {node: '>=6'} @@ -7445,35 +7504,34 @@ packages: hasBin: true dev: true - /ts-api-utils@1.0.1(typescript@5.2.2): + /ts-api-utils@1.0.1(typescript@5.3.3): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.2.2 + typescript: 5.3.3 dev: true /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsup@7.2.0(typescript@5.2.2): - resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} - engines: {node: '>=16.14'} + /tsup@8.0.1(typescript@5.3.3): + resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} + engines: {node: '>=18'} hasBin: true peerDependencies: + '@microsoft/api-extractor': ^7.36.0 '@swc/core': ^1 postcss: ^8.4.12 - typescript: '>=4.1.0' + typescript: '>=4.5.0' peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true '@swc/core': optional: true postcss: @@ -7481,45 +7539,35 @@ packages: typescript: optional: true dependencies: - bundle-require: 4.0.1(esbuild@0.18.20) + bundle-require: 4.0.1(esbuild@0.19.11) cac: 6.7.14 chokidar: 3.5.3 - debug: 4.3.4 - esbuild: 0.18.20 + debug: 4.3.4(supports-color@5.5.0) + esbuild: 0.19.11 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 postcss-load-config: 4.0.1 resolve-from: 5.0.0 - rollup: 3.29.4 + rollup: 4.9.5 source-map: 0.8.0-beta.0 sucrase: 3.21.0 tree-kill: 1.2.2 - typescript: 5.2.2 + typescript: 5.3.3 transitivePeerDependencies: - supports-color - ts-node dev: true - /tsutils@3.21.0(typescript@5.2.2): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.2.2 - dev: true - - /tsx@3.12.7: - resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} + /tsx@4.7.0: + resolution: {integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==} + engines: {node: '>=18.0.0'} hasBin: true dependencies: - '@esbuild-kit/cjs-loader': 2.4.2 - '@esbuild-kit/core-utils': 3.1.0 - '@esbuild-kit/esm-loader': 2.5.5 + esbuild: 0.19.11 + get-tsconfig: 4.7.2 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /type-check@0.4.0: @@ -7562,43 +7610,57 @@ packages: mime-types: 2.1.35 dev: true - /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true - dev: true /ufo@1.3.0: resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} dev: true + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + dev: true + /unctx@2.3.1: resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} dependencies: - acorn: 8.10.0 + acorn: 8.11.3 estree-walker: 3.0.3 - magic-string: 0.30.3 - unplugin: 1.5.0 + magic-string: 0.30.5 + unplugin: 1.6.0 dev: true /undefsafe@2.0.5: resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} dev: true - /unimport@3.3.0(rollup@3.29.4): - resolution: {integrity: sha512-3jhq3ZG5hFZzrWGDCpx83kjPzefP/EeuKkIO1T0MA4Zwj+dO/Og1mFvZ4aZ5WSDm0FVbbdVIRH1zKBG7c4wOpg==} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + dev: true + + /unimport@3.7.1(rollup@4.9.5): + resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.29.4) + '@rollup/pluginutils': 5.1.0(rollup@4.9.5) + acorn: 8.11.3 escape-string-regexp: 5.0.0 - fast-glob: 3.3.1 - local-pkg: 0.4.3 - magic-string: 0.30.3 - mlly: 1.4.2 - pathe: 1.1.1 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.5 + mlly: 1.5.0 + pathe: 1.1.2 pkg-types: 1.0.3 - scule: 1.0.0 + scule: 1.2.0 strip-literal: 1.3.0 - unplugin: 1.5.0 + unplugin: 1.6.0 transitivePeerDependencies: - rollup dev: true @@ -7619,13 +7681,13 @@ packages: engines: {node: '>= 0.8'} dev: true - /unplugin@1.5.0: - resolution: {integrity: sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==} + /unplugin@1.6.0: + resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} dependencies: - acorn: 8.10.0 + acorn: 8.11.3 chokidar: 3.5.3 webpack-sources: 3.2.3 - webpack-virtual-modules: 0.5.0 + webpack-virtual-modules: 0.6.1 /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} @@ -7639,10 +7701,10 @@ packages: '@babel/core': 7.22.10 '@babel/standalone': 7.22.10 '@babel/types': 7.22.10 - defu: 6.1.2 - jiti: 1.20.0 + defu: 6.1.4 + jiti: 1.21.0 mri: 1.2.0 - scule: 1.0.0 + scule: 1.2.0 transitivePeerDependencies: - supports-color dev: true @@ -7657,6 +7719,17 @@ packages: escalade: 3.1.1 picocolors: 1.0.0 + /update-browserslist-db@1.0.13(browserslist@4.22.2): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.2 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -7702,17 +7775,16 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite-node@0.34.5(@types/node@20.7.1): - resolution: {integrity: sha512-RNZ+DwbCvDoI5CbCSQSyRyzDTfFvFauvMs6Yq4ObJROKlIKuat1KgSX/Ako5rlDMfVCyMcpMRMTkJBxd6z8YRA==} - engines: {node: '>=v14.18.0'} + /vite-node@1.2.1(@types/node@20.11.5): + resolution: {integrity: sha512-fNzHmQUSOY+y30naohBvSW7pPn/xn3Ib/uqm+5wAJQJiqQsU0NBR78XdRJb04l4bOFKjpTWld0XAfkKlrDbySg==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4 - mlly: 1.4.2 + debug: 4.3.4(supports-color@5.5.0) pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@20.7.1) + vite: 5.0.12(@types/node@20.11.5) transitivePeerDependencies: - '@types/node' - less @@ -7724,37 +7796,37 @@ packages: - terser dev: true - /vite-plugin-inspect@0.7.38(@nuxt/kit@3.7.4)(rollup@3.29.4)(vite@4.4.9): - resolution: {integrity: sha512-+p6pJVtBOLGv+RBrcKAFUdx+euizg0bjL35HhPyM0MjtKlqoC5V9xkCmO9Ctc8JrTyXqODbHqiLWJKumu5zJ7g==} + /vite-plugin-inspect@0.8.1(@nuxt/kit@3.9.3)(rollup@4.9.5)(vite@5.0.12): + resolution: {integrity: sha512-oPBPVGp6tBd5KdY/qY6lrbLXqrbHRG0hZLvEaJfiZ/GQfDB+szRuLHblQh1oi1Hhh8GeLit/50l4xfs2SA+TCA==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' - vite: ^3.1.0 || ^4.0.0 + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@nuxt/kit': optional: true dependencies: '@antfu/utils': 0.7.6 - '@nuxt/kit': 3.7.4(rollup@3.29.4) - '@rollup/pluginutils': 5.0.2(rollup@3.29.4) - debug: 4.3.4 + '@nuxt/kit': 3.9.3(rollup@4.9.5) + '@rollup/pluginutils': 5.1.0(rollup@4.9.5) + debug: 4.3.4(supports-color@5.5.0) error-stack-parser-es: 0.1.1 fs-extra: 11.1.1 open: 9.1.0 picocolors: 1.0.0 sirv: 2.0.3 - vite: 4.4.9(@types/node@20.7.1) + vite: 5.0.12(@types/node@20.11.5) transitivePeerDependencies: - rollup - supports-color dev: true - /vite@4.4.9(@types/node@20.7.1): - resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} - engines: {node: ^14.18.0 || >=16.0.0} + /vite@5.0.12(@types/node@20.11.5): + resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@types/node': '>= 14' + '@types/node': ^18.0.0 || >=20.0.0 less: '*' lightningcss: ^1.21.0 sass: '*' @@ -7777,30 +7849,30 @@ packages: terser: optional: true dependencies: - '@types/node': 20.7.1 - esbuild: 0.18.20 - postcss: 8.4.27 - rollup: 3.29.2 + '@types/node': 20.11.5 + esbuild: 0.19.11 + postcss: 8.4.33 + rollup: 4.9.5 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /vitest@0.34.5: - resolution: {integrity: sha512-CPI68mmnr2DThSB3frSuE5RLm9wo5wU4fbDrDwWQQB1CWgq9jQVoQwnQSzYAjdoBOPoH2UtXpOgHVge/uScfZg==} - engines: {node: '>=v14.18.0'} + /vitest@1.2.1(@types/node@20.11.5): + resolution: {integrity: sha512-TRph8N8rnSDa5M2wKWJCMnztCZS9cDcgVTQ6tsTFTG/odHJ4l5yNVqvbeDJYJRZ6is3uxaEpFs8LL6QM+YFSdA==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': ^1.0.0 + '@vitest/ui': ^1.0.0 happy-dom: '*' jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/node': + optional: true '@vitest/browser': optional: true '@vitest/ui': @@ -7809,36 +7881,28 @@ packages: optional: true jsdom: optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true dependencies: - '@types/chai': 4.3.5 - '@types/chai-subset': 1.3.3 - '@types/node': 20.7.1 - '@vitest/expect': 0.34.5 - '@vitest/runner': 0.34.5 - '@vitest/snapshot': 0.34.5 - '@vitest/spy': 0.34.5 - '@vitest/utils': 0.34.5 - acorn: 8.10.0 - acorn-walk: 8.2.0 + '@types/node': 20.11.5 + '@vitest/expect': 1.2.1 + '@vitest/runner': 1.2.1 + '@vitest/snapshot': 1.2.1 + '@vitest/spy': 1.2.1 + '@vitest/utils': 1.2.1 + acorn-walk: 8.3.2 cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.3 + chai: 4.4.1 + debug: 4.3.4(supports-color@5.5.0) + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.5 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.4.3 + std-env: 3.7.0 strip-literal: 1.3.0 - tinybench: 2.5.0 - tinypool: 0.7.0 - vite: 4.4.9(@types/node@20.7.1) - vite-node: 0.34.5(@types/node@20.7.1) + tinybench: 2.6.0 + tinypool: 0.8.2 + vite: 5.0.12(@types/node@20.11.5) + vite-node: 1.2.1(@types/node@20.11.5) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -7850,14 +7914,14 @@ packages: - terser dev: true - /vue-eslint-parser@9.3.1(eslint@8.50.0): - resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==} + /vue-eslint-parser@9.4.0(eslint@8.56.0): + resolution: {integrity: sha512-7KsNBb6gHFA75BtneJsoK/dbZ281whUIwFYdQxA68QrCrGMXYzUMbPDHGcOQ0OocIVKrWSKWXZ4mL7tonCXoUw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: - debug: 4.3.4 - eslint: 8.50.0 + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.56.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -7872,7 +7936,7 @@ packages: resolution: {integrity: sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==} dev: true - /vue-loader@15.11.1(css-loader@6.8.1)(webpack@5.88.2): + /vue-loader@15.11.1(@vue/compiler-sfc@3.4.15)(css-loader@6.8.1)(webpack@5.88.2): resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==} peerDependencies: '@vue/compiler-sfc': ^3.0.8 @@ -7891,13 +7955,14 @@ packages: vue-template-compiler: optional: true dependencies: + '@vue/compiler-sfc': 3.4.15 '@vue/component-compiler-utils': 3.3.0 css-loader: 6.8.1(webpack@5.88.2) hash-sum: 1.0.2 loader-utils: 1.4.2 vue-hot-reload-api: 2.3.4 vue-style-loader: 4.1.3 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) transitivePeerDependencies: - arc-templates - atpl @@ -7954,7 +8019,7 @@ packages: - whiskers dev: true - /vue-loader@17.3.0(vue@3.3.4)(webpack@5.88.2): + /vue-loader@17.3.0(@vue/compiler-sfc@3.4.15)(vue@3.4.15)(webpack@5.88.2): resolution: {integrity: sha512-VUURABiN0TIUz0yvJJ/V/rZjGUh10JZtD+IDI5bXFslzFi9mV6ebKkPzoqiSi8e0vh8Ip7JHJx+I0AzAG0KsCA==} peerDependencies: '@vue/compiler-sfc': '*' @@ -7966,11 +8031,12 @@ packages: vue: optional: true dependencies: + '@vue/compiler-sfc': 3.4.15 chalk: 4.1.2 hash-sum: 2.0.0 - vue: 3.3.4 + vue: 3.4.15(typescript@5.3.3) watchpack: 2.4.0 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true /vue-style-loader@4.1.3: @@ -7991,26 +8057,32 @@ packages: resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==} dev: true - /vue-tsc@1.8.15(typescript@5.2.2): - resolution: {integrity: sha512-4DoB3LUj7IToLmggoCxRiFG+QU5lem0nv03m1ocqugXA9rSVoTOEoYYaP8vu8b99Eh+/cCVdYOeIAQ+RsgUYUw==} + /vue-tsc@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.15(typescript@5.2.2) - '@vue/typescript': 1.8.15(typescript@5.2.2) + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.3.3) semver: 7.5.4 - typescript: 5.2.2 + typescript: 5.3.3 dev: true - /vue@3.3.4: - resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} + /vue@3.4.15(typescript@5.3.3): + resolution: {integrity: sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-sfc': 3.3.4 - '@vue/runtime-dom': 3.3.4 - '@vue/server-renderer': 3.3.4(vue@3.3.4) - '@vue/shared': 3.3.4 + '@vue/compiler-dom': 3.4.15 + '@vue/compiler-sfc': 3.4.15 + '@vue/runtime-dom': 3.4.15 + '@vue/server-renderer': 3.4.15(vue@3.4.15) + '@vue/shared': 3.4.15 + typescript: 5.3.3 /watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} @@ -8045,7 +8117,7 @@ packages: hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.10.0 + acorn: 8.11.3 acorn-walk: 8.2.0 commander: 7.2.0 escape-string-regexp: 4.0.0 @@ -8085,7 +8157,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) dev: true /webpack-dev-server@4.15.1(debug@4.3.4)(webpack@5.88.2): @@ -8129,7 +8201,7 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.88.2(esbuild@0.18.20) + webpack: 5.88.2(esbuild@0.19.11) webpack-dev-middleware: 5.3.3(webpack@5.88.2) ws: 8.14.2 transitivePeerDependencies: @@ -8156,10 +8228,10 @@ packages: resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} dev: true - /webpack-virtual-modules@0.5.0: - resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + /webpack-virtual-modules@0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} - /webpack@5.88.2(esbuild@0.18.20): + /webpack@5.88.2(esbuild@0.19.11): resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} engines: {node: '>=10.13.0'} hasBin: true @@ -8170,12 +8242,12 @@ packages: optional: true dependencies: '@types/eslint-scope': 3.7.3 - '@types/estree': 1.0.0 + '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.11.6 '@webassemblyjs/wasm-edit': 1.11.6 '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.8.2 - acorn-import-assertions: 1.9.0(acorn@8.8.2) + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) browserslist: 4.20.2 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 @@ -8190,7 +8262,47 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(esbuild@0.18.20)(webpack@5.88.2) + terser-webpack-plugin: 5.3.9(esbuild@0.19.11)(webpack@5.88.2) + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /webpack@5.89.0(esbuild@0.19.11): + resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.3 + '@types/estree': 1.0.0 + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/wasm-edit': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + acorn: 8.10.0 + acorn-import-assertions: 1.9.0(acorn@8.10.0) + browserslist: 4.21.10 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.2.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.9(esbuild@0.19.11)(webpack@5.89.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -8332,12 +8444,6 @@ packages: engines: {node: '>=12'} dev: true - /xregexp@5.1.1: - resolution: {integrity: sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==} - dependencies: - '@babel/runtime-corejs3': 7.22.15 - dev: false - /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -8379,6 +8485,11 @@ packages: engines: {node: '>=10'} dev: true + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} @@ -8392,6 +8503,19 @@ packages: yargs-parser: 20.2.9 dev: true + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} diff --git a/src/core/constant.ts b/src/core/constant.ts new file mode 100644 index 0000000..cc6ebfa --- /dev/null +++ b/src/core/constant.ts @@ -0,0 +1,25 @@ +import type { Comment } from './types' + +export const comments: Comment[] = [ + // js + { + type: 'js', + start: '// ', + end: '', + regex: /^\/\/\s?(.*)$/, + }, + // css + { + type: 'css', + start: '/* ', + end: ' */', + regex: /^\/\*\s?(.*)\*\/$/, + }, + // html + { + type: 'html', + start: '', + regex: /^$/, + }, +] diff --git a/src/core/context.ts b/src/core/context.ts deleted file mode 100644 index 1b533b2..0000000 --- a/src/core/context.ts +++ /dev/null @@ -1,203 +0,0 @@ -import process from 'node:process' -import MagicString from 'magic-string' - -import type { Logger } from 'vite' -import { createFilter, createLogger, loadEnv } from 'vite' -import XRegExp from 'xregexp' -import type { - Directive, - MatchGroup, - NormalDirective, - RecursiveDirective, - UserOptions, -} from '../types' - -import { builtinDirectives } from './directives' - -export interface replaceOptions { - code: string - id: string - directive: Directive -} -export function sortUserDirectives( - directives: Directive[], -): [Directive[], Directive[], Directive[]] { - const preDirectives: Directive[] = [] - const postDirectives: Directive[] = [] - const normalDirectives: Directive[] = [] - - if (directives) { - directives.forEach((p) => { - if (p.enforce === 'pre') - preDirectives.push(p) - else if (p.enforce === 'post') - postDirectives.push(p) - else normalDirectives.push(p) - }) - } - - return [preDirectives, normalDirectives, postDirectives] -} - -export class Context { - cwd: string - XRegExp: typeof XRegExp - env: Record - directives: Directive[] = [] - logger: Logger - directiveLoggers: Record - filter: (id: unknown) => boolean - constructor({ cwd = process.cwd(), directives = [], exclude = [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/], include = ['**/*'] }: UserOptions = {}) { - this.cwd = cwd - this.XRegExp = XRegExp - this.env = loadEnv( - process.env.NODE_ENV || 'development', - cwd, - '', - ) - - if (directives.length === 0) { - directives = [...builtinDirectives.map(v => - typeof v === 'function' ? v(this) : v, - )] - } - - const [preDirectives, normalDirectives, postDirectives] = sortUserDirectives(directives.map(v => - typeof v === 'function' ? v(this) : v, - )) - - this.directives = [...preDirectives, ...normalDirectives, ...postDirectives] - - this.logger = createLogger(undefined, { - prefix: 'unplugin-preprocessor-directives', - }) - this.directiveLoggers = this.directives.reduce((acc, directive) => { - acc[directive.name] = createLogger(undefined, { - prefix: `unplugin-preprocessor-directives:${directive.name}`, - }) - return acc - }, {} as Record) - - this.filter = createFilter(include, exclude) - } - - replace({ code, id, directive: _directive }: replaceOptions) { - const directive = _directive as NormalDirective - return this.XRegExp.replace(code, directive.pattern, directive.processor({ - id, - code, - directive, - ctx: this, - })) - } - - replaceRecursive({ - code, - id, - directive: _directive, - }: replaceOptions) { - const directive = _directive as RecursiveDirective - const startRegex = new RegExp(directive.pattern.start, 'mi') - const endRegex = new RegExp(directive.pattern.end, 'mi') - - const replace = (code: string) => { - const matches = XRegExp.matchRecursive( - code, - startRegex.source, - endRegex.source, - 'gmi', - { - valueNames: ['between', 'left', 'match', 'right'], - }, - ) - let builder = '' - const matchGroup: MatchGroup = { - left: null, - match: '', - right: null, - } - - if (!matches.length) - builder += code - - matches.forEach((match) => { - switch (match.name) { - case 'between': - builder += match.value - break - case 'left': - matchGroup.left = startRegex.exec(match.value) - break - case 'match': - matchGroup.match = match.value - break - case 'right': - matchGroup.right = endRegex.exec(match.value) - builder += directive.processor({ - id, - code, - directive, - ctx: this, - - replace, - matchGroup, - }) - break - } - }) - - return builder - } - - return replace(code) - } - - createSource(code: string, id: string) { - return new MagicString(code, { - filename: id, - }) - } - - transform(code: string, id: string) { - if (!this.filter(id)) - return - const source = this.createSource(code, id) - const data = this.directives.reduce((acc, directive) => { - const { exclude = [], include = ['**/*'] } = directive - const filter = createFilter(include, exclude) - if (!filter(id)) - return acc - try { - acc = directive.nested - ? this.replaceRecursive({ - code, - id, - directive: directive as RecursiveDirective, - }) - : this.replace({ - code: acc, - id, - directive: directive as NormalDirective, - }) - return acc - } - catch (error: any) { - this.directiveLoggers[directive.name].error(error) - return acc - } - }, code) - if (data !== code) - source.overwrite(0, source.length(), data) - - if (source.hasChanged()) { - return { - code: source.toString(), - map: source.generateMap({ - source: id, - file: `${id}.map`, - includeContent: true, - }), - } - } - } -} diff --git a/src/core/context/generator.ts b/src/core/context/generator.ts new file mode 100644 index 0000000..eb260cf --- /dev/null +++ b/src/core/context/generator.ts @@ -0,0 +1,33 @@ +import type { Generate, SimpleNode } from '../types' +import { findComment } from '../utils' + +export class Generator { + constructor(public node: SimpleNode, public generates: Generate[] = []) { + } + + walk(node: SimpleNode): string | void { + switch (node.type) { + case 'Program': + return node.body.map(this.walk.bind(this)).filter((n: any) => !!n).join('\n') + case 'CodeStatement': + return node.value + } + + for (const generate of this.generates) { + const comment = findComment(node.comment!) + const generated = generate.call(this, node, comment) + if (generated) + return generated + } + + throw new Error(`Generator: Unknown node type: ${node.type}`) + } + + private generate(): string { + return this.walk(this.node) as string + } + + static generate(node: SimpleNode, generates: Generate[] = []) { + return new Generator(node, generates).generate() + } +} diff --git a/src/core/context/index.ts b/src/core/context/index.ts new file mode 100644 index 0000000..2c438e4 --- /dev/null +++ b/src/core/context/index.ts @@ -0,0 +1,99 @@ +import process from 'node:process' +import type { Logger } from 'vite' +import { createFilter, createLogger, loadEnv } from 'vite' +import MagicString from 'magic-string' +import type { UserOptions } from '../../types' +import type { Generate, Lex, ObjectDirective, Parse, Transform } from '../types' +import { Generator } from './generator' +import { Lexer } from './lexer' +import { Parser } from './parser' +import { Transformer } from './transformer' + +export * from './lexer' +export * from './parser' + +export function resolveOptions(options?: UserOptions): Required { + return { + cwd: process.cwd(), + include: ['**/*'], + exclude: [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/], + directives: [], + ...options, + } +} + +export function sortUserDirectives( + directives: ObjectDirective[], +): [ObjectDirective[], ObjectDirective[], ObjectDirective[]] { + const preDirectives: ObjectDirective[] = [] + const postDirectives: ObjectDirective[] = [] + const normalDirectives: ObjectDirective[] = [] + + if (directives) { + directives.forEach((p) => { + if (p.enforce === 'pre') + preDirectives.push(p) + else if (p.enforce === 'post') + postDirectives.push(p) + else normalDirectives.push(p) + }) + } + + return [preDirectives, normalDirectives, postDirectives] +} + +export class Context { + options: Required + directives: ObjectDirective[] + lexers: Lex[] + parsers: Parse[] + transforms: Transform[] + generates: Generate[] + filter: (id: string) => boolean + env: Record = process.env + logger: Logger + constructor(options?: UserOptions) { + this.options = resolveOptions(options) + this.directives = sortUserDirectives(this.options.directives.map(d => typeof d === 'function' ? d(this) : d)).flat() + + this.lexers = this.directives.map(d => d.lex) + this.parsers = this.directives.map(d => d.parse) + this.transforms = this.directives.map(d => d.transform) + this.generates = this.directives.map(d => d.generate) + + this.filter = createFilter(this.options.include, this.options.exclude) + this.logger = createLogger(undefined, { + prefix: 'unplugin-preprocessor-directives', + }) + this.env = this.loadEnv() + } + + loadEnv(mode = process.env.NODE_ENV || 'development') { + return loadEnv( + mode, + this.options.cwd, + '', + ) + } + + transform(code: string, _id: string) { + const tokens = Lexer.lex(code, this.lexers) + const ast = Parser.parse(tokens, this.parsers) + + const transformed = Transformer.transform(ast, this.transforms) + if (transformed) + return Generator.generate(transformed, this.generates) + } + + transformWithMap(code: string, _id: string) { + const generated = this.transform(code, _id) + if (generated) { + const ms = new MagicString(code, { filename: _id }) + ms.overwrite(0, code.length, generated) + return { + code: ms.toString(), + map: ms.generateMap({ hires: true }), + } + } + } +} diff --git a/src/core/context/lexer.ts b/src/core/context/lexer.ts new file mode 100644 index 0000000..080af53 --- /dev/null +++ b/src/core/context/lexer.ts @@ -0,0 +1,47 @@ +/* eslint-disable no-restricted-syntax */ +/* eslint-disable no-labels */ +import { isComment, parseComment } from '../utils' +import type { CodeToken, Lex, SimpleToken } from '../types' + +export class Lexer { + current = 0 + tokens: SimpleToken[] = [] + constructor(public code: string, public lexers: Lex[] = []) { + } + + private lex() { + const code = this.code + scanner: + while (this.current < code.length) { + const startIndex = this.current + let endIndex = code.indexOf('\n', startIndex + 1) + if (endIndex === -1) + endIndex = code.length + + const line = code.slice(startIndex, endIndex).trim() + if (isComment(line)) { + for (const lex of this.lexers) { + const comment = parseComment(line) + + const token = lex.bind(this)(comment.content!) + if (token) { + this.tokens.push({ comment: comment.type, ...token }) + this.current = endIndex + continue scanner + } + } + } + this.tokens.push({ + type: 'code', + value: line, + } as CodeToken) + this.current = endIndex + } + return this.tokens + } + + static lex(code: string, lexers: Lex[] = []) { + const lexer = new Lexer(code, lexers) + return lexer.lex() + } +} diff --git a/src/core/context/parser.ts b/src/core/context/parser.ts new file mode 100644 index 0000000..2aa1be3 --- /dev/null +++ b/src/core/context/parser.ts @@ -0,0 +1,38 @@ +import type { CodeStatement, Parse, SimpleToken } from '../types' +import { createProgramNode } from '../utils' + +export class Parser { + ast = createProgramNode() + current = 0 + constructor(public tokens: SimpleToken[], public parsers: Parse[] = []) { + } + + walk() { + const token = this.tokens[this.current] + + if (token.type === 'code') { + this.current++ + return { type: 'CodeStatement', value: token.value } as CodeStatement + } + + for (const parser of this.parsers) { + const node = parser.bind(this)(token) + if (node) + return { comment: token.comment, ...node } + } + + throw new Error(`Parser: Unknown token type: ${token.type}`) + } + + private parse() { + while (this.current < this.tokens.length) + this.ast.body.push(this.walk()) + + return this.ast + } + + static parse(tokens: SimpleToken[], parsers: Parse[] = []) { + const parser = new Parser(tokens, parsers) + return parser.parse() + } +} diff --git a/src/core/context/transformer.ts b/src/core/context/transformer.ts new file mode 100644 index 0000000..2b83dc4 --- /dev/null +++ b/src/core/context/transformer.ts @@ -0,0 +1,37 @@ +import type { ProgramNode, SimpleNode, Transform } from '../types' + +export class Transformer { + constructor(public program: ProgramNode, public transforms: Transform[] = []) { + } + + public walk(node: SimpleNode): SimpleNode | void { + switch (node.type) { + case 'Program': + return { + ...node, + body: node.body.map(this.walk.bind(this)).filter((n: any) => !!n), + } as ProgramNode + case 'CodeStatement': + return node + } + + for (const transformer of this.transforms) { + const transformed = transformer.bind(this)(node) + if (transformed) + return transformed + } + + throw new Error(`Transformer: Unknown node type: ${node.type}`) + } + + private transform(): SimpleNode | void { + const ast = this.walk(this.program) + + return ast + } + + static transform(program: ProgramNode, transforms: Transform[] = []) { + const transformer = new Transformer(program, transforms) + return transformer.transform() + } +} diff --git a/src/core/directive.ts b/src/core/directive.ts index b83e745..ea933f3 100644 --- a/src/core/directive.ts +++ b/src/core/directive.ts @@ -1,9 +1,5 @@ -import type { DirectiveFactory } from '../types' +import type { Directive, SimpleNode, SimpleToken } from './types/index' -export function defineDirective( - factory: DirectiveFactory, -) { - return (userOptions?: UserOptions) => { - return factory(userOptions!) - } +export function defineDirective(directive: Directive) { + return directive } diff --git a/src/core/directives/define.ts b/src/core/directives/define.ts index 7a8ad6d..5b9c964 100644 --- a/src/core/directives/define.ts +++ b/src/core/directives/define.ts @@ -1,21 +1,68 @@ -import type { NamedGroupsArray } from 'xregexp' +/* eslint-disable curly */ +/* eslint-disable no-new-func */ +import process from 'node:process' import { defineDirective } from '../directive' +import type { DefineStatement, DefineToken } from '../types' +import { createProgramNode } from '../utils' -export default defineDirective(() => ({ - nested: false, - name: '#define', - pattern: /.*?#(?(?:un)?def(?:ine)?)\s*(?[\w]*)\s/gm, - processor({ ctx }) { - return (...args) => { - const group = args[args.length - 1] as NamedGroupsArray - if (group.directive === 'define') - // @ts-expect-error ignore - ctx.env[group.key] = true +function resolveDefineNameAndValue(expression: string, env = process.env): [string, boolean] { + if (/^\w*$/.test(expression)) { + return [expression, true] + } - else if (group.directive === 'undef') - delete ctx.env[group.key] + else { + const evaluateExpression = new Function('env', `with (env){ return {${expression.replace('=', ':')}} }`) + return Object.entries(evaluateExpression(env))[0] as any + } +} - return '' +export const theDefineDirective = defineDirective(context => ({ + lex(comment) { + const defineMath = comment.match(/#define\s?(.*)/) + + if (defineMath) { + return { + type: 'define', + value: defineMath[1]?.trim(), + } + } + const undefMatch = comment.match(/#undef\s?(\w*)/) + if (undefMatch) { + return { + type: 'undef', + value: undefMatch[1]?.trim(), + } + } + }, + parse(token) { + if (token.type === 'define' || token.type === 'undef') { + this.current++ + return { + type: 'DefineStatement', + kind: token.type, + value: token.value, + } + } + }, + transform(node) { + if (node.type === 'DefineStatement') { + if (node.kind === 'define') { + const [name, value] = resolveDefineNameAndValue(node.value, context.env) + context.env[name] = value + } + else if (node.kind === 'undef') + context.env[node.value] = false + + return createProgramNode() + } + }, + generate(node, comment) { + if (node.type === 'DefineStatement' && comment) { + if (node.kind === 'define') + return `${comment.start} #${node.kind} ${node.value} ${comment.end}` + + else if (node.kind === 'undef') + return `${comment.start} #${node.kind} ${node.value} ${comment.end}` } }, })) diff --git a/src/core/directives/error.ts b/src/core/directives/error.ts deleted file mode 100644 index b7a6125..0000000 --- a/src/core/directives/error.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { relative } from 'node:path' -import type { NamedGroupsArray } from 'xregexp' -import { defineDirective } from '../directive' - -export default defineDirective(() => ({ - nested: false, - name: '#error', - pattern: /.*?#(?(?:warning)|(?:error)|(?:info))\s*(?[\u4E00-\u9FA5 \t\w]*).*?$/gm, - processor({ ctx, id }) { - return (...args) => { - const group = args[args.length - 1] as NamedGroupsArray - const source = args[args.length - 2] as string - const index = args[args.length - 3] as number - const lineNumber = (source.substring(0, index).match(/\n/g) || []).length + 1 - const file = `${relative(ctx.cwd, id)}:${lineNumber}` - if (group.directive === 'warning') - group.directive = 'warn' - // @ts-expect-error ignore - ctx.logger[group.directive](`${file}: ${group.message}`, { timestamp: true }) - return '' - } - }, -})) diff --git a/src/core/directives/if.ts b/src/core/directives/if.ts index 7a4f4aa..89c6716 100644 --- a/src/core/directives/if.ts +++ b/src/core/directives/if.ts @@ -1,15 +1,18 @@ import process from 'node:process' import { defineDirective } from '../directive' +import type { IfStatement, IfToken } from '../types' +import { simpleMatchToken } from '../utils' export function resolveConditional(test: string, env = process.env) { test = test || 'true' test = test.trim() test = test.replace(/([^=!])=([^=])/g, '$1==$2') + // eslint-disable-next-line no-new-func const evaluateCondition = new Function('env', `with (env){ return ( ${test} ) }`) try { - return evaluateCondition(env) + return evaluateCondition(env) === 'false' ? false : !!evaluateCondition(env) } catch (error) { if (error instanceof ReferenceError) { @@ -25,32 +28,76 @@ export function resolveConditional(test: string, env = process.env) { } } -export default defineDirective(() => ({ - name: '#if', - nested: true, - pattern: { - start: /.*?#if\s([\w !=&|()'"]*).*[\r\n]{1,2}/gm, - end: /\s*.*?#endif.*?$/gm, - }, - processor({ matchGroup, replace, ctx }) { - const code = replace(matchGroup.match) - const regex = /.*?(#el(?:if|se))\s?([\w !=&|()'"]*).*[\r\n]{1,2}/gm - const codeBlock = [ - '#if', - matchGroup.left?.[1] || '', - ...ctx.XRegExp.split(code, regex), - ].map(v => v.trim()) - - while (codeBlock.length) { - const [variant, conditional, block] = codeBlock.splice(0, 3) - if (variant === '#if' || variant === '#elif') { - if (resolveConditional(conditional, ctx.env)) - return block +export const ifDirective = defineDirective((context) => { + return { + lex(comment) { + return simpleMatchToken(comment, /#(if|else|elif|endif)\s?(.*)/) + }, + parse(token) { + if (token.type === 'if' || token.type === 'elif' || token.type === 'else') { + const node: IfStatement = { + type: 'IfStatement', + test: token.value, + consequent: [], + alternate: [], + kind: token.type, + } + this.current++ + + while (this.current < this.tokens.length) { + const nextToken = this.tokens[this.current] + + if (nextToken.type === 'elif' || nextToken.type === 'else') { + node.alternate.push(this.walk()) + break + } + else if (nextToken.type === 'endif') { + this.current++ // Skip 'endif' + break + } + else { + node.consequent.push(this.walk()) + } + } + return node } - else if (variant === '#else') { - return block + }, + transform(node) { + if (node.type === 'IfStatement') { + if (resolveConditional(node.test, context.env)) { + return { + type: 'Program', + body: node.consequent.map(this.walk.bind(this)).filter(n => n != null), + } + } + else if (node.alternate) { + return { + type: 'Program', + body: node.alternate.map(this.walk.bind(this)).filter(n => n != null), + } + } } - } - return '' - }, -})) + }, + generate(node, comment) { + if (node.type === 'IfStatement' && comment) { + let code = '' + if (node.kind === 'else') + code = `${comment.start} ${node.kind} ${comment.end}` + + else + code = `${comment.start} #${node.kind} ${node.test}${comment.end}` + + const consequentCode = node.consequent.map(this.walk.bind(this)).join('\n') + code += `\n${consequentCode}` + if (node.alternate.length) { + const alternateCode = node.alternate.map(this.walk.bind(this)).join('\n') + code += `\n${alternateCode}` + } + else { + code += `\n${comment.start} #endif ${comment.end}` + } + return code + } + }, + } +}) diff --git a/src/core/directives/index.ts b/src/core/directives/index.ts index c556c3e..80382f3 100644 --- a/src/core/directives/index.ts +++ b/src/core/directives/index.ts @@ -1,9 +1,3 @@ -import IfDirective from './if' -import DefineDirective from './define' -import ErrorDirective from './error' - -export { default as IfDirective } from './if' -export { default as DefineDirective } from './define' -export { default as ErrorDirective } from './error' - -export const builtinDirectives = [DefineDirective(), IfDirective(), ErrorDirective()] +export * from './if' +export * from './define' +export * from './message' diff --git a/src/core/directives/message.ts b/src/core/directives/message.ts new file mode 100644 index 0000000..a55ab74 --- /dev/null +++ b/src/core/directives/message.ts @@ -0,0 +1,39 @@ +import { defineDirective } from '../directive' +import type { MessageStatement, MessageToken } from '../types' +import { createProgramNode, simpleMatchToken } from '../utils' + +export const MessageDirective = defineDirective(context => ({ + lex(comment) { + return simpleMatchToken(comment, /#(error|warning|info)\s*(.*)/) + }, + parse(token) { + if (token.type === 'error' || token.type === 'warning' || token.type === 'info') { + this.current++ + return { + type: 'MessageStatement', + kind: token.type, + value: token.value, + } + } + }, + transform(node) { + if (node.type === 'MessageStatement') { + switch (node.kind) { + case 'error': + context.logger.error(node.value, { timestamp: true }) + break + case 'warning': + context.logger.warn(node.value, { timestamp: true }) + break + case 'info': + context.logger.info(node.value, { timestamp: true }) + break + } + return createProgramNode() + } + }, + generate(node, comment) { + if (node.type === 'MessageStatement' && comment) + return `${comment.start} #${node.kind} ${node.value} ${comment.end}` + }, +})) diff --git a/src/core/index.ts b/src/core/index.ts index 4c67edd..88febb5 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -1,4 +1,7 @@ +export * from './unplugin' export * from './context' -export * from './directive' export * from './directives' -export * from './unplugin' +export * from './directive' +export * from './types' +export * from './utils' +export * from './constant' diff --git a/src/core/types/comment.ts b/src/core/types/comment.ts new file mode 100644 index 0000000..67a08b4 --- /dev/null +++ b/src/core/types/comment.ts @@ -0,0 +1,6 @@ +export interface Comment { + type: string + start: string + end: string + regex: RegExp +} diff --git a/src/core/types/directive.ts b/src/core/types/directive.ts new file mode 100644 index 0000000..f6dc994 --- /dev/null +++ b/src/core/types/directive.ts @@ -0,0 +1,38 @@ +import type { Context } from '../context' +import type { Lexer } from '../context/lexer' +import type { Parser } from '../context/parser' +import type { Transformer } from '../context/transformer' +import type { Generator } from '../context/generator' +import type { Comment } from '../types' + +export interface SimpleToken { + comment?: string + type: string + value: string + [x: string]: any +} + +export interface SimpleNode { + comment?: string + type: string + [x: string]: any +} + +export type Lex = (this: Lexer, currentLine: string) => (T | void) +export type Parse = (this: Parser, currentToken: T) => (N | void) +export type Transform = (this: Transformer, currentNode: N) => (ResultN | void) +export type Generate = (this: Generator, ast: SimpleNode, comment?: Comment) => (string | void) + +export interface ObjectDirective { + enforce?: 'pre' | 'post' + lex: Lex + parse: Parse + transform: Transform + generate: Generate +} + +export interface FunctionDirective { + (context: Context): ObjectDirective +} + +export type Directive = ObjectDirective | FunctionDirective diff --git a/src/core/types/index.ts b/src/core/types/index.ts new file mode 100644 index 0000000..f45a56e --- /dev/null +++ b/src/core/types/index.ts @@ -0,0 +1,4 @@ +export * from './directive' +export * from './token' +export * from './node' +export * from './comment' diff --git a/src/core/types/node.ts b/src/core/types/node.ts new file mode 100644 index 0000000..f68f5fd --- /dev/null +++ b/src/core/types/node.ts @@ -0,0 +1,31 @@ +import type { IfToken, SimpleNode } from '.' + +export interface ProgramNode extends SimpleNode { + type: 'Program' + body: SimpleNode[] +} + +export interface CodeStatement extends SimpleNode { + type: 'CodeStatement' + value: string +} + +export interface IfStatement extends SimpleNode { + type: 'IfStatement' + test: string + consequent: SimpleNode[] + alternate: SimpleNode[] + kind: IfToken['type'] +} + +export interface DefineStatement extends SimpleNode { + type: 'DefineStatement' + kind: 'define' | 'undef' + value: string +} + +export interface MessageStatement extends SimpleNode { + type: 'MessageStatement' + kind: 'error' | 'warning' | 'info' + value: string +} diff --git a/src/core/types/token.ts b/src/core/types/token.ts new file mode 100644 index 0000000..d43b43b --- /dev/null +++ b/src/core/types/token.ts @@ -0,0 +1,19 @@ +import type { SimpleToken } from '.' + +export interface CodeToken extends SimpleToken { + type: 'code' + value: string +} +export interface IfToken extends SimpleToken { + type: 'if' | 'else' | 'elif' | 'endif' + value: string +} +export interface DefineToken extends SimpleToken { + type: 'define' | 'undef' + value: string +} + +export interface MessageToken extends SimpleToken { + type: 'error' | 'warning' | 'info' + value: string +} diff --git a/src/core/unplugin.ts b/src/core/unplugin.ts index 6ca7a88..d4c79fe 100644 --- a/src/core/unplugin.ts +++ b/src/core/unplugin.ts @@ -1,12 +1,15 @@ import type { UnpluginFactory } from 'unplugin' import { createUnplugin } from 'unplugin' +import remapping from '@ampproject/remapping' import type { UserOptions } from '../types' import { Context } from './context' +import { MessageDirective, ifDirective, theDefineDirective } from './directives' export const unpluginFactory: UnpluginFactory = ( options, ) => { - const ctx = new Context(options) + // @ts-expect-error ignore + const ctx = new Context({ ...options, directives: [ifDirective, theDefineDirective, MessageDirective, ...options?.directives ?? []] }) return { name: 'unplugin-preprocessor-directives', enforce: 'pre', @@ -16,7 +19,25 @@ export const unpluginFactory: UnpluginFactory = ( }, vite: { configResolved(config) { - ctx.env = { ...ctx.env, ...config.env } + ctx.env = { + ...ctx.loadEnv(config.mode), + ...config.env, + } + }, + transform(code, id) { + if (ctx.filter(id)) { + const transformed = ctx.transformWithMap(code, id) + if (transformed) { + const map = remapping( + [transformed.map, this.getCombinedSourcemap() as any], + () => null, + ) as any + return { + code: transformed.code, + map, + } + } + } }, }, } diff --git a/src/core/utils.ts b/src/core/utils.ts new file mode 100644 index 0000000..3c64977 --- /dev/null +++ b/src/core/utils.ts @@ -0,0 +1,37 @@ +import { comments } from './constant' +import type { ProgramNode, SimpleNode, SimpleToken } from './types' + +export function simpleMatchToken(comment: string, regex: RegExp) { + const match = comment.match(regex) + if (match) { + return { + type: match[1], + value: match[2]?.trim(), + } as T + } +} + +export function createProgramNode(body: SimpleNode[] = []) { + return { + type: 'Program', + body, + } as ProgramNode +} + +export function isComment(line: string) { + return comments.some(comment => comment.regex.test(line)) +} + +export function parseComment(line: string) { + const comment = comments.find(comment => comment.start === line.slice(0, comment.start.length)) + const content = comment?.regex.exec(line)?.[1] + + return { + type: comment?.type, + content: content?.trim(), + } +} + +export function findComment(type: string) { + return comments.find(comment => comment.type === type)! +} diff --git a/src/types.ts b/src/types.ts index 27d3f0e..3c8b5a4 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,66 +1,11 @@ -import type { ReplacementValue } from 'xregexp' import type { FilterPattern } from 'vite' -import type { Context } from './core/context' - -export interface MatchGroup { - left: RegExpExecArray | null - match: string - right: RegExpExecArray | null -} - -interface BaseDirective { - name: string - enforce?: 'pre' | 'post' - nested?: boolean - include?: FilterPattern - exclude?: FilterPattern -} - -export interface _ProcessorOptions { - code: string - id: string - directive: Directive - ctx: Context -} - -export interface NormalProcessorOptions extends _ProcessorOptions { - directive: NormalDirective -} - -export interface RecursiveProcessorOptions extends _ProcessorOptions { - directive: RecursiveDirective - matchGroup: MatchGroup - replace: (code: string) => string -} - -export interface RecursiveDirective extends BaseDirective { - nested: true - pattern: { - start: string | RegExp - end: string | RegExp - } - processor(options: RecursiveProcessorOptions): string -} - -export interface NormalDirective extends BaseDirective { - nested?: false - pattern: string | RegExp - processor(options: NormalProcessorOptions): ReplacementValue -} - -export type Directive = RecursiveDirective | NormalDirective -export type FunctionDirective = ((ctx: DirectiveContext) => Directive) -export type Plugin = Directive - -export type DirectiveContext = Context +import type { Directive } from './core/types' export interface Options { cwd: string - directives: (Directive | FunctionDirective)[] + directives: Directive[] include: FilterPattern exclude: FilterPattern } export interface UserOptions extends Partial { } - -export type DirectiveFactory = (options: UserOptions) => FunctionDirective | Directive diff --git a/test/__snapshots__/if.test.ts.snap b/test/__snapshots__/if.test.ts.snap new file mode 100644 index 0000000..d9069e8 --- /dev/null +++ b/test/__snapshots__/if.test.ts.snap @@ -0,0 +1,55 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`if > should parse if.css, dev = false 1`] = ` +"body { +} +body { +content: "!DEV"; +} +body { +content: "!DEV"; +} +body { +}" +`; + +exports[`if > should parse if.css, dev = true 1`] = ` +"body { +content: "DEV"; +} +body { +content: "!DEV else"; +} +body { +content: "TEST"; +} +body { +content: "else"; +}" +`; + +exports[`if > should parse if.html, dev = false 1`] = ` +"
!DEV
+
!DEV
" +`; + +exports[`if > should parse if.html, dev = true 1`] = ` +"
DEV
+
!DEV else
+
TEST
+
+
else
+
" +`; + +exports[`if > should parse if.js, dev = false 1`] = ` +"console.log('!DEV') +console.log('!DEV')" +`; + +exports[`if > should parse if.js, dev = true 1`] = ` +"console.log('DEV') +console.log('!DEV else') +console.log('TEST') +console.log('else')" +`; diff --git a/test/define.test.ts b/test/define.test.ts new file mode 100644 index 0000000..37194f2 --- /dev/null +++ b/test/define.test.ts @@ -0,0 +1,31 @@ +import { resolve } from 'node:path' +import { readFileSync } from 'node:fs' +import { describe, expect, it } from 'vitest' +import { Context, theDefineDirective } from '../src' + +describe('define', () => { + const root = resolve(__dirname, './fixtures') + const context = new Context({ + // @ts-expect-error ignore + directives: [theDefineDirective], + }) + + it('should define env', () => { + const code = readFileSync(resolve(root, 'define.txt'), 'utf-8') + context.transform(code, 'define.txt') + + expect(context.env.html).toBeTruthy() + expect(context.env.css).toBeTruthy() + expect(context.env.js).toBeTruthy() + expect(context.env.DEV).toBe('2') + }) + it('should undef env', () => { + const code = readFileSync(resolve(root, 'undef.txt'), 'utf-8') + context.transform(code, 'undef.txt') + + expect(context.env.html).toBeFalsy() + expect(context.env.css).toBeFalsy() + expect(context.env.js).toBeFalsy() + expect(context.env.DEV).toBeFalsy() + }) +}) diff --git a/test/directive.test.ts b/test/directive.test.ts deleted file mode 100644 index cdacec8..0000000 --- a/test/directive.test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { describe, expect, it } from 'vitest' -import { defineDirective } from '../src' - -describe('directive', () => { - it('define', () => { - const directive = defineDirective({ - name: '#test', - nested: false, - pattern: /#test/g, - processor({ code }) { - return code - }, - }) - expect(directive).to.toBeDefined() - }) -}) diff --git a/test/directives/__snapshots__/if.test.ts.snap b/test/directives/__snapshots__/if.test.ts.snap deleted file mode 100644 index 78f9b14..0000000 --- a/test/directives/__snapshots__/if.test.ts.snap +++ /dev/null @@ -1,71 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`css > elif 1`] = ` -"body { -content: \\"TEST\\"; -} -" -`; - -exports[`css > else 1`] = ` -"body { -content: \\"!DEV else\\"; -} -" -`; - -exports[`css > if 1`] = ` -"body { -content: \\"DEV\\"; -} -" -`; - -exports[`css > nested 1`] = ` -"body { -content: \\"else\\"; -} -" -`; - -exports[`html > elif 1`] = ` -"
TEST
-" -`; - -exports[`html > else 1`] = ` -"
!DEV else
-" -`; - -exports[`html > if 1`] = ` -"
DEV
-" -`; - -exports[`html > nested 1`] = ` -"
-
else
-
-" -`; - -exports[`js > elif 1`] = ` -"console.log(\\"TEST\\") -" -`; - -exports[`js > else 1`] = ` -"console.log(\\"!DEV else\\") -" -`; - -exports[`js > if 1`] = ` -"console.log(\\"DEV\\") -" -`; - -exports[`js > nested 1`] = ` -"console.log(\\"else\\") -" -`; diff --git a/test/directives/define.test.ts b/test/directives/define.test.ts deleted file mode 100644 index 02081ac..0000000 --- a/test/directives/define.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { resolve } from 'node:path' -import fs from 'node:fs' -import { describe, expect, it } from 'vitest' -import { Context } from '../../src/core/context' - -describe('css', () => { - const root = resolve(__dirname, '../fixtures/css') - const ctx = new Context({ - cwd: root, - }) - function transform(fileName: string) { - const filePath = resolve(root, fileName) - const code = fs.readFileSync(filePath, { encoding: 'utf-8' }) - return ctx.transform(code, filePath)?.code - } - - it('define', () => { - transform('define.css') - expect(ctx.env.CSS).to.true - }) - - it('undef', () => { - transform('undef.css') - expect(ctx.env.CSS).to.undefined - }) -}) - -describe('js', () => { - const root = resolve(__dirname, '../fixtures/js') - const ctx = new Context({ - cwd: root, - }) - function transform(fileName: string) { - const filePath = resolve(root, fileName) - const code = fs.readFileSync(filePath, { encoding: 'utf-8' }) - return ctx.transform(code, filePath)?.code - } - - it('define', () => { - transform('define.js') - expect(ctx.env.JS).to.true - }) - - it('undef', () => { - transform('undef.js') - expect(ctx.env.JS).to.undefined - }) -}) - -describe('html', () => { - const root = resolve(__dirname, '../fixtures/html') - const ctx = new Context({ - cwd: root, - }) - function transform(fileName: string) { - const filePath = resolve(root, fileName) - const code = fs.readFileSync(filePath, { encoding: 'utf-8' }) - return ctx.transform(code, filePath)?.code - } - - it('define', () => { - transform('define.html') - expect(ctx.env.HTML).to.true - }) - - it('undef', () => { - transform('undef.html') - expect(ctx.env.HTML).to.undefined - }) -}) diff --git a/test/directives/error.test.ts b/test/directives/error.test.ts deleted file mode 100644 index b62d361..0000000 --- a/test/directives/error.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { resolve } from 'node:path' -import fs from 'node:fs' -import { afterEach, describe, expect, it, vi } from 'vitest' -import { Context } from '../../src/core/context' - -describe('css', () => { - afterEach(() => { - vi.restoreAllMocks() - }) - const root = resolve(__dirname, '../fixtures/css') - const ctx = new Context({ - cwd: root, - }) - function transform(fileName: string) { - const filePath = resolve(root, fileName) - const code = fs.readFileSync(filePath, { encoding: 'utf-8' }) - return ctx.transform(code, filePath)?.code - } - it('error', () => { - const spy = vi.spyOn(console, 'error') - transform('error.css') - expect(spy).toHaveBeenCalled() - }) - it('warning', () => { - const spy = vi.spyOn(console, 'warn') - transform('warning.css') - expect(spy).toHaveBeenCalled() - }) - it('info', () => { - const spy = vi.spyOn(console, 'log') - transform('info.css') - expect(spy).toHaveBeenCalled() - }) -}) diff --git a/test/directives/if.test.ts b/test/directives/if.test.ts deleted file mode 100644 index 3f7b45e..0000000 --- a/test/directives/if.test.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { resolve } from 'node:path' -import fs from 'node:fs' -import { describe, expect, it } from 'vitest' -import { Context } from '../../src/core/context' - -describe('css', () => { - const root = resolve(__dirname, '../fixtures/css') - const ctx = new Context({ - cwd: root, - }) - function transform(fileName: string) { - const filePath = resolve(root, fileName) - const code = fs.readFileSync(filePath, { encoding: 'utf-8' }) - return ctx.transform(code, filePath)?.code - } - - it('if', () => { - expect(transform('if.css')).toMatchSnapshot() - }) - - it('else', () => { - expect(transform('else.css')).toMatchSnapshot() - }) - - it('elif', () => { - expect(transform('elif.css')).toMatchSnapshot() - }) - - it('nested', () => { - expect(transform('nested.css')).toMatchSnapshot() - }) - - it('empty', () => { - expect(transform('empty.css')).toBe(undefined) - }) -}) - -describe('js', () => { - const root = resolve(__dirname, '../fixtures/js') - const ctx = new Context({ - cwd: root, - }) - function transform(fileName: string) { - const filePath = resolve(root, fileName) - const code = fs.readFileSync(filePath, { encoding: 'utf-8' }) - return ctx.transform(code, filePath)?.code - } - - it('if', () => { - expect(transform('if.js')).toMatchSnapshot() - }) - - it('else', () => { - expect(transform('else.js')).toMatchSnapshot() - }) - - it('elif', () => { - expect(transform('elif.js')).toMatchSnapshot() - }) - - it('nested', () => { - expect(transform('nested.js')).toMatchSnapshot() - }) - - it('empty', () => { - expect(transform('empty.js')).toBe(undefined) - }) -}) -describe('html', () => { - const root = resolve(__dirname, '../fixtures/html') - const ctx = new Context({ - cwd: root, - }) - function transform(fileName: string) { - const filePath = resolve(root, fileName) - const code = fs.readFileSync(filePath, { encoding: 'utf-8' }) - return ctx.transform(code, filePath)?.code - } - - it('if', () => { - expect(transform('if.html')).toMatchSnapshot() - }) - - it('else', () => { - expect(transform('else.html')).toMatchSnapshot() - }) - - it('elif', () => { - expect(transform('elif.html')).toMatchSnapshot() - }) - - it('nested', () => { - expect(transform('nested.html')).toMatchSnapshot() - }) - - it('empty', () => { - expect(transform('empty.html')).toBe(undefined) - }) -}) diff --git a/test/fixtures/css/define.css b/test/fixtures/css/define.css deleted file mode 100644 index f59489d..0000000 --- a/test/fixtures/css/define.css +++ /dev/null @@ -1 +0,0 @@ -/* #define CSS */ diff --git a/test/fixtures/css/elif.css b/test/fixtures/css/elif.css deleted file mode 100644 index 8c064c9..0000000 --- a/test/fixtures/css/elif.css +++ /dev/null @@ -1,9 +0,0 @@ -body { - /* #if !DEV */ - content: "!DEV"; - /* #elif TEST */ - content: "TEST"; - /* #else */ - content: "!DEV else"; - /* #endif */ -} diff --git a/test/fixtures/css/else.css b/test/fixtures/css/else.css deleted file mode 100644 index 88c91e3..0000000 --- a/test/fixtures/css/else.css +++ /dev/null @@ -1,7 +0,0 @@ -body { - /* #if !DEV */ - content: "!DEV"; - /* #else */ - content: "!DEV else"; - /* #endif */ -} diff --git a/test/fixtures/css/empty.css b/test/fixtures/css/empty.css deleted file mode 100644 index e69de29..0000000 diff --git a/test/fixtures/css/error.css b/test/fixtures/css/error.css deleted file mode 100644 index 9788fd1..0000000 --- a/test/fixtures/css/error.css +++ /dev/null @@ -1 +0,0 @@ -/* #error this is message */ diff --git a/test/fixtures/css/if.css b/test/fixtures/css/if.css deleted file mode 100644 index 8616e40..0000000 --- a/test/fixtures/css/if.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - /* #if DEV */ - content: "DEV"; - /* #endif */ -} diff --git a/test/fixtures/css/info.css b/test/fixtures/css/info.css deleted file mode 100644 index 0c539d9..0000000 --- a/test/fixtures/css/info.css +++ /dev/null @@ -1 +0,0 @@ -/* #info this is message */ diff --git a/test/fixtures/css/nested.css b/test/fixtures/css/nested.css deleted file mode 100644 index 289f9ae..0000000 --- a/test/fixtures/css/nested.css +++ /dev/null @@ -1,9 +0,0 @@ -body { - /* #if DEV */ - /* #if !TEST */ - content: "!DEV !TEST"; - /* #else */ - content: "else"; - /* #endif */ - /* #endif */ -} diff --git a/test/fixtures/css/undef.css b/test/fixtures/css/undef.css deleted file mode 100644 index 40b56f7..0000000 --- a/test/fixtures/css/undef.css +++ /dev/null @@ -1 +0,0 @@ -/* #undef CSS */ diff --git a/test/fixtures/css/warning.css b/test/fixtures/css/warning.css deleted file mode 100644 index 0b219c0..0000000 --- a/test/fixtures/css/warning.css +++ /dev/null @@ -1 +0,0 @@ -/* #warning this is message */ diff --git a/test/fixtures/define.txt b/test/fixtures/define.txt new file mode 100644 index 0000000..8aaa9a3 --- /dev/null +++ b/test/fixtures/define.txt @@ -0,0 +1,4 @@ + +/* #define css */ +// #define js +// #define DEV = !TEST ? '1' : '2' diff --git a/test/fixtures/html/define.html b/test/fixtures/html/define.html deleted file mode 100644 index a882857..0000000 --- a/test/fixtures/html/define.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/fixtures/html/elif.html b/test/fixtures/html/elif.html deleted file mode 100644 index 728974d..0000000 --- a/test/fixtures/html/elif.html +++ /dev/null @@ -1,7 +0,0 @@ - -
!DEV
- -
TEST
- -
!DEV else
- diff --git a/test/fixtures/html/else.html b/test/fixtures/html/else.html deleted file mode 100644 index 351fe13..0000000 --- a/test/fixtures/html/else.html +++ /dev/null @@ -1,5 +0,0 @@ - -
!DEV
- -
!DEV else
- diff --git a/test/fixtures/html/empty.html b/test/fixtures/html/empty.html deleted file mode 100644 index e69de29..0000000 diff --git a/test/fixtures/html/if.html b/test/fixtures/html/if.html deleted file mode 100644 index 9f64ba6..0000000 --- a/test/fixtures/html/if.html +++ /dev/null @@ -1,3 +0,0 @@ - -
DEV
- diff --git a/test/fixtures/html/nested.html b/test/fixtures/html/nested.html deleted file mode 100644 index a7a4217..0000000 --- a/test/fixtures/html/nested.html +++ /dev/null @@ -1,9 +0,0 @@ - -
- -
!DEV !TEST
- -
else
- -
- diff --git a/test/fixtures/html/undef.html b/test/fixtures/html/undef.html deleted file mode 100644 index 5f6fae7..0000000 --- a/test/fixtures/html/undef.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/fixtures/if.css b/test/fixtures/if.css new file mode 100644 index 0000000..549e709 --- /dev/null +++ b/test/fixtures/if.css @@ -0,0 +1,36 @@ +body { + /* #if DEV */ + content: "DEV"; + /* #endif */ +} + + +body { + /* #if !DEV */ + content: "!DEV"; + /* #else */ + content: "!DEV else"; + /* #endif */ +} + + +body { + /* #if !DEV */ + content: "!DEV"; + /* #elif TEST */ + content: "TEST"; + /* #else */ + content: "!DEV else"; + /* #endif */ +} + + +body { + /* #if DEV */ + /* #if !TEST */ + content: "!DEV !TEST"; + /* #else */ + content: "else"; + /* #endif */ + /* #endif */ +} diff --git a/test/fixtures/if.html b/test/fixtures/if.html new file mode 100644 index 0000000..1a0645d --- /dev/null +++ b/test/fixtures/if.html @@ -0,0 +1,27 @@ + +
DEV
+ + + +
!DEV
+ +
!DEV else
+ + + +
!DEV
+ +
TEST
+ +
!DEV else
+ + + +
+ +
!DEV !TEST
+ +
else
+ +
+ diff --git a/test/fixtures/if.js b/test/fixtures/if.js new file mode 100644 index 0000000..6cd9f3b --- /dev/null +++ b/test/fixtures/if.js @@ -0,0 +1,25 @@ +// #if DEV +console.log('DEV') +// #endif + +// #if !DEV +console.log('!DEV') +// #else +console.log('!DEV else') +// #endif + +// #if !DEV +console.log('!DEV') +// #elif TEST +console.log('TEST') +// #else +console.log('!DEV else') +// #endif + +// #if DEV +// #if !TEST +console.log('!DEV !TEST') +// #else +console.log('else') +// #endif +// #endif diff --git a/test/fixtures/js/define.js b/test/fixtures/js/define.js deleted file mode 100644 index 70f44db..0000000 --- a/test/fixtures/js/define.js +++ /dev/null @@ -1 +0,0 @@ -// #define JS diff --git a/test/fixtures/js/elif.js b/test/fixtures/js/elif.js deleted file mode 100644 index ae54c0c..0000000 --- a/test/fixtures/js/elif.js +++ /dev/null @@ -1,7 +0,0 @@ -// #if !DEV -console.log("!DEV") -// #elif TEST -console.log("TEST") -// #else -console.log("!DEV else") -// #endif diff --git a/test/fixtures/js/else.js b/test/fixtures/js/else.js deleted file mode 100644 index 06612e7..0000000 --- a/test/fixtures/js/else.js +++ /dev/null @@ -1,5 +0,0 @@ -// #if !DEV -console.log("!DEV") -// #else -console.log("!DEV else") -// #endif diff --git a/test/fixtures/js/empty.js b/test/fixtures/js/empty.js deleted file mode 100644 index e69de29..0000000 diff --git a/test/fixtures/js/if.js b/test/fixtures/js/if.js deleted file mode 100644 index dd8e5fd..0000000 --- a/test/fixtures/js/if.js +++ /dev/null @@ -1,3 +0,0 @@ -// #if DEV -console.log("DEV") -// #endif diff --git a/test/fixtures/js/nested.js b/test/fixtures/js/nested.js deleted file mode 100644 index 14cb932..0000000 --- a/test/fixtures/js/nested.js +++ /dev/null @@ -1,7 +0,0 @@ -// #if DEV - // #if !TEST - console.log("!DEV !TEST") - // #else - console.log("else") - // #endif -// #endif diff --git a/test/fixtures/js/undef.js b/test/fixtures/js/undef.js deleted file mode 100644 index ecfa019..0000000 --- a/test/fixtures/js/undef.js +++ /dev/null @@ -1 +0,0 @@ -// #undef JS diff --git a/test/fixtures/undef.txt b/test/fixtures/undef.txt new file mode 100644 index 0000000..fb62c61 --- /dev/null +++ b/test/fixtures/undef.txt @@ -0,0 +1,4 @@ + +/* #undef css */ +// #undef js +// #undef DEV diff --git a/test/generator.test.ts b/test/generator.test.ts new file mode 100644 index 0000000..8555b99 --- /dev/null +++ b/test/generator.test.ts @@ -0,0 +1,45 @@ +import { readFileSync } from 'node:fs' +import { resolve } from 'node:path' +import { describe, expect, it } from 'vitest' +import { Generator } from '../src/core/context/generator' +import { Context, Lexer, Parser } from '../src' + +describe('generator', () => { + it('should generate code for Program node', () => { + const node = { + type: 'Program', + body: [ + { type: 'CodeStatement', value: 'console.log("Hello, World!");' }, + { type: 'CodeStatement', value: 'console.log("Hello, KeJun");' }, + ], + } + const result = Generator.generate(node) + expect(result).toBe('console.log("Hello, World!");\nconsole.log("Hello, KeJun");') + }) + + it('should generate code for CodeStatement node', () => { + const node = { + type: 'CodeStatement', + value: 'console.log("Hello, World!");', + } + const result = Generator.generate(node) + expect(result).toBe('console.log("Hello, World!");') + }) + + it('should generate code without transform', () => { + const ctx = new Context() + const code = readFileSync(resolve(__dirname, './fixtures/if.html'), 'utf-8') + const tokens = Lexer.lex(code, ctx.lexers) + const ast = Parser.parse(tokens, ctx.parsers) + const generated = Generator.generate(ast, ctx.generates) + expect(generated.replaceAll(/\s/g, '')).toBe(code.replaceAll(/\s/g, '')) + }) + + it('should throw an error for unknown node type', () => { + const node = { + type: 'UnknownNode', + value: 'console.log("Hello, World!");', + } + expect(() => Generator.generate(node)).toThrowError('Generator: Unknown node type: UnknownNode') + }) +}) diff --git a/test/if.test.ts b/test/if.test.ts new file mode 100644 index 0000000..7a5eb9c --- /dev/null +++ b/test/if.test.ts @@ -0,0 +1,31 @@ +import { resolve } from 'node:path' +import { readFileSync } from 'node:fs' +import { describe, expect, it } from 'vitest' +import fg from 'fast-glob' +import { Context, ifDirective } from '../src' + +describe('if', () => { + const root = resolve(__dirname, './fixtures') + const context = new Context({ + // @ts-expect-error ignore + directives: [ifDirective], + }) + + fg.sync('if.*', { cwd: root }).forEach((file) => { + it(`should parse ${file}, dev = true`, () => { + context.env.DEV = true + const code = readFileSync(resolve(root, file), 'utf-8') + const result = context.transform(code, file) + expect(result).toMatchSnapshot() + }) + }) + + fg.sync('if.*', { cwd: root }).forEach((file) => { + it(`should parse ${file}, dev = false`, () => { + context.env.DEV = false + const code = readFileSync(resolve(root, file), 'utf-8') + const result = context.transform(code, file) + expect(result).toMatchSnapshot() + }) + }) +}) diff --git a/test/lexer.test.ts b/test/lexer.test.ts new file mode 100644 index 0000000..bdc1a64 --- /dev/null +++ b/test/lexer.test.ts @@ -0,0 +1,36 @@ +import { describe, expect, it } from 'vitest' +import { Lexer } from '../src' + +describe('lexer', () => { + it('should tokenize code with comments', () => { + const code = ` + // This is a comment + const foo = 'bar'; + // Another comment + const baz = 'qux';` + const expectedTokens = [ + { type: 'code', value: '// This is a comment' }, + { type: 'code', value: 'const foo = \'bar\';' }, + { type: 'code', value: '// Another comment' }, + { type: 'code', value: 'const baz = \'qux\';' }, + ] + + const tokens = Lexer.lex(code) + + expect(tokens).toEqual(expectedTokens) + }) + + it('should tokenize code without comments', () => { + const code = ` + const foo = 'bar'; + const baz = 'qux';` + const expectedTokens = [ + { type: 'code', value: 'const foo = \'bar\';' }, + { type: 'code', value: 'const baz = \'qux\';' }, + ] + + const tokens = Lexer.lex(code) + + expect(tokens).toEqual(expectedTokens) + }) +}) diff --git a/test/parser.test.ts b/test/parser.test.ts new file mode 100644 index 0000000..78de640 --- /dev/null +++ b/test/parser.test.ts @@ -0,0 +1,17 @@ +import { describe, expect, it } from 'vitest' +import { Parser } from '../src' + +describe('parser', () => { + it('should parse code statements', () => { + const tokens = [{ type: 'code', value: 'console.log("Hello, World!")' }] + const ast = Parser.parse(tokens) + expect(ast.body).toHaveLength(1) + expect(ast.body[0].type).toBe('CodeStatement') + expect(ast.body[0].value).toBe('console.log("Hello, World!")') + }) + + it('should throw an error for unknown token type', () => { + const tokens = [{ type: 'unknown', value: 'unknown token' }] + expect(() => Parser.parse(tokens)).toThrowError('Parser: Unknown token type: unknown') + }) +}) diff --git a/test/transformer.test.ts b/test/transformer.test.ts new file mode 100644 index 0000000..8474554 --- /dev/null +++ b/test/transformer.test.ts @@ -0,0 +1,37 @@ +import { describe, expect, it } from 'vitest' +import { Transformer } from '../src/core/context/transformer' +import type { ProgramNode } from '../src' +import { createProgramNode } from '../src' + +describe('transformer', () => { + it('should transform the program correctly', () => { + const program = createProgramNode([ + { + type: 'CodeStatement', + code: 'console.log("Hello, world!");', + }, + ]) + const transformedProgram = Transformer.transform(program) + + // Assert the transformed program + expect(transformedProgram).toEqual({ + type: 'Program', + body: [ + { + type: 'CodeStatement', + code: 'console.log("Hello, world!");', + }, + ], + }) + }) + + it('should throw an error for unknown node type', () => { + const program = { + type: 'UnknownNodeType', + body: [], + } as unknown as ProgramNode + expect(() => { + Transformer.transform(program) + }).toThrowError('Transformer: Unknown node type: UnknownNodeType') + }) +}) diff --git a/tsconfig.json b/tsconfig.json index 374365d..e5c524f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { "target": "es2017", - "module": "esnext", "lib": ["esnext", "DOM"], + "module": "esnext", "moduleResolution": "node", - "esModuleInterop": true, + "resolveJsonModule": true, "strict": true, "strictNullChecks": true, - "resolveJsonModule": true + "esModuleInterop": true } }