diff --git a/docs/content/1.getting-started/2.configuration.md b/docs/content/1.getting-started/2.configuration.md index 8909abeb..f5aa7624 100644 --- a/docs/content/1.getting-started/2.configuration.md +++ b/docs/content/1.getting-started/2.configuration.md @@ -167,13 +167,13 @@ You can edit the endpoint by `viewer.endpoint` and if you'd like to export the v - Default: `false` -You can take advantage of some DX utilities this modules provide to you as you develop your Nuxt applicatio with Tailwind. Read more in [Editor Support](/tailwind/editor-support). +You can take advantage of some DX utilities this modules provide to you as you develop your Nuxt application with Tailwind. Read more in [Editor Support](/tailwind/editor-support). ```ts [nuxt.config.ts] export default defineNuxtConfig({ tailwindcss: { editorSupport: true - // editorSupport: { autocompleteUtil: { as: 'tailwindClasses' }, generateConfig: true } + // editorSupport: { autocompleteUtil: { as: 'tailwindClasses' } } } }) ``` diff --git a/docs/content/2.tailwind/3.editor-support.md b/docs/content/2.tailwind/3.editor-support.md index 8ac710eb..9377de60 100644 --- a/docs/content/2.tailwind/3.editor-support.md +++ b/docs/content/2.tailwind/3.editor-support.md @@ -20,7 +20,7 @@ Add the following configuration to your `.vscode/settings.json` file, so that Ta If you use pnpm, ensure that tailwindcss is installed in your top-level node_modules folder. -## Autocomplete +## String Classes Autocomplete When using strings of Tailwind classes, you can enable IntelliSense suggestions using the [`editorSupport.autocompleteUtil`](/getting-started/configuration#editorsupport) option. You will have to add the following VSCode setting: @@ -44,9 +44,20 @@ const variantClasses = { ``` -## Load Config File +## Configuration IntelliSense -Since Tailwind CSS v3.3, [ESM/TS configuration has been supported](https://tailwindcss.com/blog/tailwindcss-v3-3#esm-and-type-script-support) so your editor should automatically configure autocomplete based on your `tailwind.config`. If you happen to use a lower version and/or require to generate a flat configuration, you can do so using [`editorSupport.generateConfig`](/getting-started/configuration#editorsupport) option, or you can use the `tailwindcss:resolvedConfig` hook and a custom Nuxt module: +Since Tailwind CSS v3.3, [ESM/TS configuration has been supported](https://tailwindcss.com/blog/tailwindcss-v3-3#esm-and-type-script-support) so your editor should automatically configure autocomplete based on your `tailwind.config`. If you have a complex Nuxt project with multiple Tailwind configurations that are within layers, passed from hooks or inline `nuxt.config` and want to use a merged configuration, the module generates it in `.nuxt/tailwind.config.cjs` that you can use by adding the following VSCode setting: + +```diff [.vscode/settings.json] +// ... ++ "tailwindCSS.experimental.configFile": ".nuxt/tailwind.config.cjs", +"files.associations": { + "*.css": "tailwindcss" +}, +// ... +``` + +If you require more customisation to what configuration the IntelliSense extension reads, you can take advantage of hooks, especially the `tailwindcss:resolvedConfig` hook that runs the configuration through [`tailwindcss/resolveConfig`](https://github.com/tailwindlabs/tailwindcss/blob/master/resolveConfig.js) to provide the complete config object. ```ts [modules/tw-cjs-config.ts] import { defineNuxtModule, addTemplate } from '@nuxt/kit' @@ -55,8 +66,11 @@ export default defineNuxtModule({ setup (options, nuxt) { nuxt.hook('tailwindcss:resolvedConfig', (config) => { addTemplate({ - filename: 'tailwind.config.cjs', // gets prepended by .nuxt/ - getContents: () => `module.exports = ${JSON.stringify(config)}`, + filename: 'intellisense-tw.cjs', // gets prepended by .nuxt/ + getContents: () => ` + /* my-comment */ + module.exports = ${JSON.stringify(config)} + `, write: true }) }) @@ -65,12 +79,3 @@ export default defineNuxtModule({ ``` This hook allows you to customize your generated template in different ways (e.g., different filename, contents, etc.) through a module. Please be aware that using `JSON.stringify` will remove plugins from your configuration. - -```diff [.vscode/settings.json] -// ... -+ "tailwindCSS.experimental.configFile": ".nuxt/tailwind.config.cjs", -"files.associations": { - "*.css": "tailwindcss" -}, -// ... -``` diff --git a/package.json b/package.json index a4cb35d8..f9bb3975 100755 --- a/package.json +++ b/package.json @@ -43,38 +43,34 @@ "test:types": "pnpm dev:prepare && tsc --noEmit && nuxi typecheck playground" }, "dependencies": { - "@nuxt/kit": "^3.9.3", - "autoprefixer": "^10.4.17", - "chokidar": "^3.5.3", - "clear-module": "^4.1.2", + "@nuxt/kit": "^3.11.1", + "autoprefixer": "^10.4.19", "consola": "^3.2.3", "defu": "^6.1.4", - "h3": "^1.10.0", - "micromatch": "^4.0.5", + "h3": "^1.11.1", "pathe": "^1.1.2", "postcss": "^8.4.33", - "postcss-custom-properties": "^13.3.4", - "postcss-nesting": "^12.0.2", + "postcss-nesting": "^12.1.0", "tailwind-config-viewer": "^1.7.3", "tailwindcss": "~3.4.1", - "ufo": "^1.3.2" + "ufo": "^1.5.3", + "unctx": "^2.3.1" }, "devDependencies": { - "@fontsource/inter": "^5.0.16", - "@nuxt/content": "^2.10.0", - "@nuxt/devtools": "^1.0.8", + "@fontsource/inter": "^5.0.17", + "@nuxt/content": "^2.12.1", + "@nuxt/devtools": "^1.1.5", "@nuxt/eslint-config": "latest", "@nuxt/module-builder": "^0.5.5", - "@nuxt/test-utils": "^3.10.0", - "@tailwindcss/typography": "^0.5.10", - "@types/micromatch": "^4.0.6", + "@nuxt/test-utils": "^3.12.0", + "@tailwindcss/typography": "^0.5.12", "changelogen": "^0.5.5", - "destr": "^2.0.2", + "destr": "^2.0.3", "eslint": "latest", "happy-dom": "^13.1.4", - "nuxt": "^3.9.3", - "typescript": "^5.3.3", - "vitest": "1.1.0" + "nuxt": "^3.11.1", + "typescript": "^5.4.3", + "vitest": "1.4.0" }, "packageManager": "pnpm@8.14.1", "resolutions": { @@ -83,4 +79,4 @@ "stackblitz": { "startCommand": "pnpm dev:prepare && pnpm dev" } -} \ No newline at end of file +} diff --git a/playground/app.vue b/playground/app.vue index 22c929af..9f22a4b0 100644 --- a/playground/app.vue +++ b/playground/app.vue @@ -5,4 +5,4 @@ \ No newline at end of file + diff --git a/playground/modules/resolved.ts b/playground/modules/resolved.ts new file mode 100644 index 00000000..8c1fe1fa --- /dev/null +++ b/playground/modules/resolved.ts @@ -0,0 +1,34 @@ +import { defineNuxtModule, addTemplate, updateTemplates } from '@nuxt/kit' +import { resolve } from 'pathe' +import loadConfig from 'tailwindcss/loadConfig.js' +import resolveConfig from 'tailwindcss/resolveConfig.js' + +export default defineNuxtModule({ + setup (_options, nuxt) { + // logger.info('Creating test-tailwind.config.cjs...') + let counter = 1 + + nuxt.hook('tailwindcss:resolvedConfig', (config, oldConfig) => + oldConfig + ? setTimeout(() => updateTemplates({ filter: t => t.filename === 'resolved-config.cjs' }), 100) + : addTemplate({ + filename: 'resolved-config.cjs', + getContents: () => `module.exports = /* ${counter++}, ${Boolean(oldConfig)} */ ${JSON.stringify(config, null, 2)}`, + write: true + }) + ) + + // const template = addTemplate({ + // filename: 'resolved-config.config.cjs', // gets prepended by .nuxt/ + // getContents: ({ nuxt }) => { + // const config = loadConfig(resolve(nuxt.options.buildDir, 'tailwind.config.cjs')) + // return `module.exports = ${JSON.stringify(resolveConfig(config), null, 2)}` + // }, + // write: true + // }) + + // nuxt.hook('app:templatesGenerated', (_app, templates) => { + // templates.map(t => t.dst).includes(resolve(nuxt.options.buildDir, 'tailwind.config.cjs')) && updateTemplates({ filter: t => t.dst === template.dst }) + // }) + } +}) diff --git a/playground/modules/template.js b/playground/modules/template.js new file mode 100644 index 00000000..cb3765ea --- /dev/null +++ b/playground/modules/template.js @@ -0,0 +1,27 @@ +import { defineNuxtModule, addTemplate } from '@nuxt/kit' + +export default defineNuxtModule((_, nuxt) => { + const template = addTemplate({ + filename: 'my-tw-config.cjs', + write: true, + getContents: () => ` + const colors = require('tailwindcss/colors') + + module.exports = { + theme: { + extend: { + colors: { + accent: colors.slate['500'] + } + } + } + } + ` + }) + + nuxt.options.tailwindcss = nuxt.options.tailwindcss ?? {} + if (!Array.isArray(nuxt.options.tailwindcss.configPath)) { + nuxt.options.tailwindcss.configPath = nuxt.options.tailwindcss.configPath ? [nuxt.options.tailwindcss.configPath] : ['tailwind.config'] + } + nuxt.options.tailwindcss.configPath.push(template.dst) +}) diff --git a/playground/nuxt.config.ts b/playground/nuxt.config.ts index d628c5a4..4eefda25 100644 --- a/playground/nuxt.config.ts +++ b/playground/nuxt.config.ts @@ -1,19 +1,58 @@ +import { defineNuxtConfig } from 'nuxt/config' import { existsSync } from 'node:fs' import { resolve } from 'pathe' +import { consola } from 'consola' +import typography from '@tailwindcss/typography' + +import type { ModuleHooks, ModuleOptions } from '../src/types' + +const logger = consola.withTag('nuxt:tailwindcss:playground') export default defineNuxtConfig({ extends: ['./theme'], + // builder: 'webpack', modules: [ - '@nuxt/content', existsSync(resolve(__dirname, '../dist/module.mjs')) ? '@nuxtjs/tailwindcss' : '../src/module', - '@nuxt/devtools' + '@nuxt/content', ], + // @ts-ignore tailwindcss: { // viewer: false, + config: { plugins: [typography()] }, exposeConfig: true, cssPath: '~/assets/css/tailwind.css', editorSupport: true - }, + } satisfies Partial, + hooks: { + 'tailwindcss:loadConfig': (config, configPath, idx) => { + logger.info('Running `tailwindcss:loadConfig` hook...', Object.keys(config || {}), { configPath, idx }) + + if (idx === 0 && config) { + config.theme = config.theme ?? {} + config.theme.extend = config.theme.extend ?? {} + config.theme.extend.screens = { md2: '100px' } + config.theme.extend.colors = config.theme.extend.colors ?? {} + // @ts-ignore + config.theme.extend.colors.zeroLayer = '#0fe325' + } else if (idx === 1 && config) { + config.content = config.content ?? [] + Array.isArray(config.content) ? config.content.push('my-content') : config.content.files.push('my-file-content') + } + }, + 'tailwindcss:config': (config) => { + logger.info('Running `tailwindcss:config` hook...') + + config.theme = config.theme ?? {} + config.theme.extend = config.theme.extend ?? {} + config.theme.extend.colors = config.theme.extend.colors ?? {} + // @ts-ignore + config.theme.extend.colors.twConfig = '#f0ff0f' + }, + 'tailwindcss:resolvedConfig': (config, oldConfig) => { + // @ts-ignore + logger.info('Running `tailwindcss:resolvedConfig` hook...', { typography: Boolean(config.theme.typography), hasOld: Boolean(oldConfig) }) + } + } satisfies Partial, content: { documentDriven: true }, diff --git a/playground/package.json b/playground/package.json index 71181acb..8c3060cb 100644 --- a/playground/package.json +++ b/playground/package.json @@ -6,7 +6,5 @@ "dev": "nuxi dev", "build": "nuxi build", "generate": "nuxi generate" - }, - "dependencies": {}, - "devDependencies": {} + } } \ No newline at end of file diff --git a/playground/pages/index.vue b/playground/pages/index.vue index 5e85022d..7e6fde48 100644 --- a/playground/pages/index.vue +++ b/playground/pages/index.vue @@ -9,8 +9,20 @@ meow!

+ This color comes from the `./tailwind.config` +

+

This color comes from the `./theme` layer

+

+ This color comes from the `./modules/template` module +

+

+ This color comes from the `tailwindcss:loadConfig` hook +

+

+ This color comes from the `tailwindcss:config` hook +

(s: T) => s const mainDivClass = tw`max-w-screen-lg p-4 mx-auto space-y-4` diff --git a/playground/theme/tailwind.config.cjs b/playground/theme/tailwind.config.cjs index 2fdfc700..def310f7 100644 --- a/playground/theme/tailwind.config.cjs +++ b/playground/theme/tailwind.config.cjs @@ -4,7 +4,8 @@ module.exports = { theme: { extend: { colors: { - brand: colors.fuchsia['500'] + brand: colors.fuchsia['500'], + secondary: colors.fuchsia['500'] } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1365f86a..0c92343e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,17 +12,11 @@ importers: .: dependencies: '@nuxt/kit': - specifier: ^3.9.3 - version: 3.9.3(rollup@3.29.4) + specifier: ^3.11.1 + version: 3.11.1(rollup@3.29.4) autoprefixer: - specifier: ^10.4.17 - version: 10.4.17(postcss@8.4.33) - chokidar: - specifier: ^3.5.3 - version: 3.5.3 - clear-module: - specifier: ^4.1.2 - version: 4.1.2 + specifier: ^10.4.19 + version: 10.4.19(postcss@8.4.33) consola: specifier: ^3.2.3 version: 3.2.3 @@ -30,23 +24,17 @@ importers: specifier: ^6.1.4 version: 6.1.4 h3: - specifier: ^1.10.0 - version: 1.10.0 - micromatch: - specifier: ^4.0.5 - version: 4.0.5 + specifier: ^1.11.1 + version: 1.11.1 pathe: specifier: ^1.1.2 version: 1.1.2 postcss: specifier: ^8.4.33 version: 8.4.33 - postcss-custom-properties: - specifier: ^13.3.4 - version: 13.3.4(postcss@8.4.33) postcss-nesting: - specifier: ^12.0.2 - version: 12.0.2(postcss@8.4.33) + specifier: ^12.1.0 + version: 12.1.0(postcss@8.4.33) tailwind-config-viewer: specifier: ^1.7.3 version: 1.7.3(tailwindcss@3.4.1) @@ -54,54 +42,54 @@ importers: specifier: ~3.4.1 version: 3.4.1 ufo: - specifier: ^1.3.2 - version: 1.3.2 + specifier: ^1.5.3 + version: 1.5.3 + unctx: + specifier: ^2.3.1 + version: 2.3.1 devDependencies: '@fontsource/inter': - specifier: ^5.0.16 - version: 5.0.16 + specifier: ^5.0.17 + version: 5.0.17 '@nuxt/content': - specifier: ^2.10.0 - version: 2.10.0(nuxt@3.9.3)(rollup@3.29.4)(vue@3.4.15) + specifier: ^2.12.1 + version: 2.12.1(nuxt@3.11.1)(rollup@3.29.4)(vue@3.4.21) '@nuxt/devtools': - specifier: ^1.0.8 - version: 1.0.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11) + specifier: ^1.1.5 + version: 1.1.5(@unocss/reset@0.58.3)(floating-vue@5.2.2)(nuxt@3.11.1)(rollup@3.29.4)(unocss@0.58.3)(vite@5.2.6)(vue@3.4.21) '@nuxt/eslint-config': specifier: latest version: 0.2.0(eslint@8.56.0) '@nuxt/module-builder': specifier: ^0.5.5 - version: 0.5.5(@nuxt/kit@3.9.3)(nuxi@3.10.0)(typescript@5.3.3) + version: 0.5.5(@nuxt/kit@3.11.1)(nuxi@3.11.1)(typescript@5.4.3) '@nuxt/test-utils': - specifier: ^3.10.0 - version: 3.10.0(h3@1.10.0)(happy-dom@13.1.4)(rollup@3.29.4)(vite@5.0.11)(vitest@1.1.0)(vue-router@4.2.5)(vue@3.4.15) + specifier: ^3.12.0 + version: 3.12.0(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21) '@tailwindcss/typography': - specifier: ^0.5.10 - version: 0.5.10(tailwindcss@3.4.1) - '@types/micromatch': - specifier: ^4.0.6 - version: 4.0.6 + specifier: ^0.5.12 + version: 0.5.12(tailwindcss@3.4.1) changelogen: specifier: ^0.5.5 version: 0.5.5 destr: - specifier: ^2.0.2 - version: 2.0.2 + specifier: ^2.0.3 + version: 2.0.3 eslint: specifier: latest version: 8.56.0 happy-dom: specifier: ^13.1.4 - version: 13.1.4 + version: 13.10.1 nuxt: - specifier: ^3.9.3 - version: 3.9.3(eslint@8.56.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.0.11) + specifier: ^3.11.1 + version: 3.11.1(@unocss/reset@0.58.3)(eslint@8.56.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.3)(unocss@0.58.3)(vite@5.2.6) typescript: - specifier: ^5.3.3 - version: 5.3.3 + specifier: ^5.4.3 + version: 5.4.3 vitest: - specifier: 1.1.0 - version: 1.1.0(happy-dom@13.1.4) + specifier: 1.4.0 + version: 1.4.0(happy-dom@13.10.1) docs: dependencies: @@ -116,7 +104,7 @@ importers: version: 1.1.90 '@nuxt/ui-pro': specifier: ^0.7.5 - version: 0.7.5(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15) + version: 0.7.5(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21) '@nuxtjs/fontaine': specifier: ^0.4.1 version: 0.4.1(rollup@3.29.4) @@ -128,7 +116,7 @@ importers: version: 0.2.4(rollup@3.29.4) nuxt-og-image: specifier: ^2.2.4 - version: 2.2.4(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.15)(nuxt@3.9.3)(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15)(webpack@5.89.0) + version: 2.2.4(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) devDependencies: '@nuxthq/studio': specifier: latest @@ -158,7 +146,6 @@ packages: dependencies: execa: 5.1.1 find-up: 5.0.0 - dev: false /@antfu/utils@0.7.7: resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} @@ -344,6 +331,7 @@ packages: /@babel/highlight@7.23.4: resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} + requiresBuild: true dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 @@ -356,6 +344,13 @@ packages: dependencies: '@babel/types': 7.23.6 + /@babel/parser@7.24.1: + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.6 + /@babel/plugin-proposal-decorators@7.23.7(@babel/core@7.23.7): resolution: {integrity: sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==} engines: {node: '>=6.9.0'} @@ -421,7 +416,6 @@ packages: '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - dev: false /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.7): resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} @@ -447,7 +441,6 @@ packages: '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) - dev: false /@babel/runtime@7.23.8: resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==} @@ -507,38 +500,22 @@ packages: - encoding dev: false - /@cloudflare/kv-asset-handler@0.3.0: - resolution: {integrity: sha512-9CB/MKf/wdvbfkUdfrj+OkEwZ5b7rws0eogJ4293h+7b6KX5toPwym+VQKmILafNB9YiehqY0DlNrDcDhdWHSQ==} + /@cloudflare/kv-asset-handler@0.3.1: + resolution: {integrity: sha512-lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==} dependencies: mime: 3.0.0 - /@csstools/cascade-layer-name-parser@1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-9J4aMRJ7A2WRjaRLvsMeWrL69FmEuijtiW1XlK/sG+V0UJiHVYUyvj9mY4WAXfU/hGIiGOgL8e0jJcRyaZTjDQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-parser-algorithms': ^2.5.0 - '@csstools/css-tokenizer': ^2.2.3 - dependencies: - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - dev: false - - /@csstools/css-parser-algorithms@2.5.0(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==} + /@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.0.15): + resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.2.3 + postcss-selector-parser: ^6.0.13 dependencies: - '@csstools/css-tokenizer': 2.2.3 - dev: false - - /@csstools/css-tokenizer@2.2.3: - resolution: {integrity: sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==} - engines: {node: ^14 || ^16 || >=18} + postcss-selector-parser: 6.0.15 dev: false - /@csstools/selector-specificity@3.0.1(postcss-selector-parser@6.0.15): - resolution: {integrity: sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==} + /@csstools/selector-specificity@3.0.2(postcss-selector-parser@6.0.15): + resolution: {integrity: sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 @@ -565,6 +542,14 @@ packages: requiresBuild: true optional: true + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + optional: true + /@esbuild/android-arm64@0.19.11: resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} engines: {node: '>=12'} @@ -573,6 +558,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-arm@0.19.11: resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} engines: {node: '>=12'} @@ -581,6 +574,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-x64@0.19.11: resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} engines: {node: '>=12'} @@ -589,6 +590,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/darwin-arm64@0.19.11: resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} engines: {node: '>=12'} @@ -597,6 +606,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/darwin-x64@0.19.11: resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} engines: {node: '>=12'} @@ -605,6 +622,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/freebsd-arm64@0.19.11: resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} engines: {node: '>=12'} @@ -613,6 +638,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/freebsd-x64@0.19.11: resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} engines: {node: '>=12'} @@ -621,6 +654,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/linux-arm64@0.19.11: resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} engines: {node: '>=12'} @@ -629,6 +670,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-arm@0.19.11: resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} engines: {node: '>=12'} @@ -637,6 +686,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ia32@0.19.11: resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} @@ -645,6 +702,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-loong64@0.19.11: resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} engines: {node: '>=12'} @@ -653,6 +718,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-mips64el@0.19.11: resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} engines: {node: '>=12'} @@ -661,6 +734,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ppc64@0.19.11: resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} engines: {node: '>=12'} @@ -669,6 +750,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-riscv64@0.19.11: resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} engines: {node: '>=12'} @@ -677,6 +766,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-s390x@0.19.11: resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} engines: {node: '>=12'} @@ -685,6 +782,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-x64@0.19.11: resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} engines: {node: '>=12'} @@ -693,6 +798,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/netbsd-x64@0.19.11: resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} engines: {node: '>=12'} @@ -701,6 +814,14 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + /@esbuild/openbsd-x64@0.19.11: resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} engines: {node: '>=12'} @@ -709,6 +830,14 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + /@esbuild/sunos-x64@0.19.11: resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} engines: {node: '>=12'} @@ -717,6 +846,14 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + /@esbuild/win32-arm64@0.19.11: resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} engines: {node: '>=12'} @@ -725,6 +862,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-ia32@0.19.11: resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} engines: {node: '>=12'} @@ -733,6 +878,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-x64@0.19.11: resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} engines: {node: '>=12'} @@ -741,6 +894,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@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} @@ -778,8 +939,21 @@ packages: resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} engines: {node: '>=14'} - /@fontsource/inter@5.0.16: - resolution: {integrity: sha512-qF0aH5UiZvCmneX5orJbVRoc2VTyLTV3X/7laMp03Qt28L+B9tFlZODOGUL64wDWc69YVdi1LeJB0cIgd51lvw==} + /@floating-ui/core@1.6.0: + resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} + dependencies: + '@floating-ui/utils': 0.2.1 + + /@floating-ui/dom@1.1.1: + resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==} + dependencies: + '@floating-ui/core': 1.6.0 + + /@floating-ui/utils@0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + + /@fontsource/inter@5.0.17: + resolution: {integrity: sha512-2meBGx1kt7u5LwzGc5Sz5rka6ZDrydg6nT3x6Wkt310vHXUchIywrO8pooWMzZdHYcyFY/cv4lEpJZgMD94bCg==} dev: true /@headlessui/tailwindcss@0.2.0(tailwindcss@3.4.1): @@ -791,13 +965,13 @@ packages: tailwindcss: 3.4.1 dev: false - /@headlessui/vue@1.7.16(vue@3.4.15): + /@headlessui/vue@1.7.16(vue@3.4.21): resolution: {integrity: sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg==} engines: {node: '>=10'} peerDependencies: vue: ^3.2.0 dependencies: - vue: 3.4.15(typescript@5.3.3) + vue: 3.4.21(typescript@5.4.3) dev: false /@humanwhocodes/config-array@0.11.14: @@ -867,7 +1041,6 @@ packages: /@iconify/types@2.0.0: resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - dev: false /@iconify/utils@2.1.14: resolution: {integrity: sha512-9pKIntkbLbjVVFxH32td21Am3AGGJfyI2KY2d8yDQxkZe4BBZtufJI8NgcamFn8B5QKLU9ai2VMo8OEov8jAtw==} @@ -880,15 +1053,14 @@ packages: local-pkg: 0.4.3 transitivePeerDependencies: - supports-color - dev: false - /@iconify/vue@4.1.1(vue@3.4.15): + /@iconify/vue@4.1.1(vue@3.4.21): resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==} peerDependencies: vue: '>=3' dependencies: '@iconify/types': 2.0.0 - vue: 3.4.15(typescript@5.3.3) + vue: 3.4.21(typescript@5.4.3) dev: false /@ioredis/commands@1.2.0: @@ -943,6 +1115,13 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + /@koa/router@12.0.1: resolution: {integrity: sha512-ribfPYfHb+Uw3b27Eiw6NPqjhIhTpVFzEWLwyc/1Xp+DCdwRRyIlAUODX+9bPARF6aQtUu1+/PHzdNvRzcs/+Q==} engines: {node: '>= 12'} @@ -977,25 +1156,24 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.5.4 + semver: 7.6.0 tar: 6.2.0 transitivePeerDependencies: - encoding - supports-color - /@netlify/functions@2.4.1: - resolution: {integrity: sha512-sRFYBaz6dJP1MdUtk/5QNmshhg5UDmB+DUssmH6v9WUG85MrwyExEfGfJA5eClXATjXm0coTvO5nLAlyCpK7QQ==} + /@netlify/functions@2.6.0: + resolution: {integrity: sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==} engines: {node: '>=14.0.0'} dependencies: - '@netlify/serverless-functions-api': 1.12.3 - is-promise: 4.0.0 + '@netlify/serverless-functions-api': 1.14.0 /@netlify/node-cookies@0.1.0: resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} engines: {node: ^14.16.0 || >=16.0.0} - /@netlify/serverless-functions-api@1.12.3: - resolution: {integrity: sha512-g1AZ78pCvMnalZtbnViVLGfG5ufjKyKoi3plLSUtZqh0wVuMR7ZGegeZHhOoY4wRfkkETVvWfhgfcpLMbGM5Lg==} + /@netlify/serverless-functions-api@1.14.0: + resolution: {integrity: sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@netlify/node-cookies': 0.1.0 @@ -1035,7 +1213,7 @@ packages: resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.5.4 + semver: 7.6.0 /@npmcli/git@5.0.4: resolution: {integrity: sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==} @@ -1047,7 +1225,7 @@ packages: proc-log: 3.0.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.5.4 + semver: 7.6.0 which: 4.0.0 transitivePeerDependencies: - bluebird @@ -1082,20 +1260,20 @@ packages: transitivePeerDependencies: - supports-color - /@nuxt/content@2.10.0(nuxt@3.9.3)(rollup@3.29.4)(vue@3.4.15): - resolution: {integrity: sha512-HZ+1RJJc2SZc/FPYvbsME7b8++a2uf6g9JlMm+qUMDjnCWJaF38pbrsmYq2b9whXx/3WjpBmCRkWCJy6bjSP+g==} + /@nuxt/content@2.12.1(nuxt@3.11.1)(rollup@3.29.4)(vue@3.4.21): + resolution: {integrity: sha512-xW4xjyYm6zqglb17Tu0J+rpKUV1PF9zp6SLu1lopylFnerdyImtce84206HT6Zd/DJgivKtoW4dyyJn0ZaSqCQ==} dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) - '@nuxtjs/mdc': 0.3.0(rollup@3.29.4) - '@vueuse/core': 10.7.1(vue@3.4.15) - '@vueuse/head': 2.0.0(vue@3.4.15) - '@vueuse/nuxt': 10.7.1(nuxt@3.9.3)(rollup@3.29.4)(vue@3.4.15) + '@nuxt/kit': 3.11.1(rollup@3.29.4) + '@nuxtjs/mdc': 0.6.1(rollup@3.29.4) + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/head': 2.0.0(vue@3.4.21) + '@vueuse/nuxt': 10.9.0(nuxt@3.11.1)(rollup@3.29.4)(vue@3.4.21) consola: 3.2.3 defu: 6.1.4 - destr: 2.0.2 + destr: 2.0.3 json5: 2.2.3 knitwork: 1.0.0 - listhen: 1.5.6 + listhen: 1.7.2 mdast-util-to-string: 4.0.0 mdurl: 2.0.0 micromark: 4.0.0 @@ -1104,11 +1282,11 @@ packages: minisearch: 6.3.0 ohash: 1.1.3 pathe: 1.1.2 - scule: 1.2.0 - shiki-es: 0.14.0 + scule: 1.3.0 + shiki: 1.2.1 slugify: 1.6.6 - socket.io-client: 4.7.3 - ufo: 1.3.2 + socket.io-client: 4.7.4 + ufo: 1.5.3 unist-util-stringify-position: 4.0.0 unstorage: 1.10.1 ws: 8.16.0 @@ -1130,6 +1308,7 @@ packages: - nuxt - rollup - supports-color + - uWebSockets.js - utf-8-validate - vue dev: true @@ -1137,22 +1316,38 @@ packages: /@nuxt/devalue@2.0.2: resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - /@nuxt/devtools-kit@1.0.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11): + /@nuxt/devtools-kit@1.0.8(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6): resolution: {integrity: sha512-j7bNZmoAXQ1a8qv6j6zk4c/aekrxYqYVQM21o/Hy4XHCUq4fajSgpoc8mjyWJSTfpkOmuLyEzMexpDWiIVSr6A==} peerDependencies: nuxt: ^3.9.0 vite: '*' dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) - '@nuxt/schema': 3.9.1(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) + '@nuxt/schema': 3.10.0(rollup@3.29.4) execa: 7.2.0 - nuxt: 3.9.3(eslint@8.56.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.0.11) - vite: 5.0.11 + nuxt: 3.11.1(@unocss/reset@0.58.3)(eslint@8.56.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.3)(unocss@0.58.3)(vite@5.2.6) + vite: 5.2.6 + transitivePeerDependencies: + - rollup + - supports-color + dev: false + + /@nuxt/devtools-kit@1.1.5(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6): + resolution: {integrity: sha512-Nb/NKFCRtxyqcPD6snB52rXtbRQMjGtn3ncpa8cLWsnoqnkd9emQ4uwV8IwCNxTnqUBtbGU79/TlJ79SKH9TAw==} + peerDependencies: + nuxt: ^3.9.0 + vite: '*' + dependencies: + '@nuxt/kit': 3.11.1(rollup@3.29.4) + '@nuxt/schema': 3.11.1(rollup@3.29.4) + execa: 7.2.0 + nuxt: 3.11.1(@unocss/reset@0.58.3)(eslint@8.56.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.3)(unocss@0.58.3)(vite@5.2.6) + vite: 5.2.6 transitivePeerDependencies: - rollup - supports-color - /@nuxt/devtools-ui-kit@1.0.8(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.15)(nuxt@3.9.3)(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15)(webpack@5.89.0): + /@nuxt/devtools-ui-kit@1.0.8(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): resolution: {integrity: sha512-oPkyQ+nkvCvveWxHWAHpZt9uEycHFD00Rh46KYKe5KLl81Wr/L3KacIIYpiocPog0YZZhjvX5CmrIe8zXopNOA==} peerDependencies: '@nuxt/devtools': 1.0.8 @@ -1161,24 +1356,24 @@ packages: '@iconify-json/logos': 1.1.42 '@iconify-json/ri': 1.1.18 '@iconify-json/tabler': 1.1.103 - '@nuxt/devtools': 1.0.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11) - '@nuxt/devtools-kit': 1.0.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11) - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/devtools': 1.0.8(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6) + '@nuxt/devtools-kit': 1.0.8(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6) + '@nuxt/kit': 3.11.1(rollup@3.29.4) '@nuxtjs/color-mode': 3.3.2(rollup@3.29.4) '@unocss/core': 0.58.3 - '@unocss/nuxt': 0.58.3(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11)(webpack@5.89.0) + '@unocss/nuxt': 0.58.3(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6)(webpack@5.91.0) '@unocss/preset-attributify': 0.58.3 '@unocss/preset-icons': 0.58.3 '@unocss/preset-mini': 0.58.3 '@unocss/reset': 0.58.3 - '@vueuse/core': 10.7.1(vue@3.4.15) - '@vueuse/integrations': 10.7.1(focus-trap@7.5.4)(vue@3.4.15) - '@vueuse/nuxt': 10.7.1(nuxt@3.9.3)(rollup@3.29.4)(vue@3.4.15) + '@vueuse/core': 10.7.2(vue@3.4.21) + '@vueuse/integrations': 10.7.1(focus-trap@7.5.4)(vue@3.4.21) + '@vueuse/nuxt': 10.7.1(nuxt@3.11.1)(rollup@3.29.4)(vue@3.4.21) defu: 6.1.4 focus-trap: 7.5.4 splitpanes: 3.1.5 - unocss: 0.58.3(@unocss/webpack@0.58.3)(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11) - v-lazy-show: 0.2.4(@vue/compiler-core@3.4.15) + unocss: 0.58.3(@unocss/webpack@0.58.3)(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6) + v-lazy-show: 0.2.4(@vue/compiler-core@3.4.21) transitivePeerDependencies: - '@unocss/webpack' - '@vue/compiler-core' @@ -1208,17 +1403,33 @@ packages: hasBin: true dependencies: consola: 3.2.3 - diff: 5.1.0 + diff: 5.2.0 execa: 7.2.0 global-directory: 4.0.1 - magicast: 0.3.2 + magicast: 0.3.3 pathe: 1.1.2 pkg-types: 1.0.3 prompts: 2.4.2 rc9: 2.1.1 - semver: 7.5.4 + semver: 7.6.0 + dev: false + + /@nuxt/devtools-wizard@1.1.5: + resolution: {integrity: sha512-bWLgLvYFbYCQYlLPttZaUo58cS1VJo1uEFguHaCwZ7Fzkm4Iv+lFTv5BzD+gOHwohaXLr3YecgZOO4YNJTgXyA==} + hasBin: true + dependencies: + consola: 3.2.3 + diff: 5.2.0 + execa: 7.2.0 + global-directory: 4.0.1 + magicast: 0.3.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + prompts: 2.4.2 + rc9: 2.1.1 + semver: 7.6.0 - /@nuxt/devtools@1.0.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11): + /@nuxt/devtools@1.0.8(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6): resolution: {integrity: sha512-o6aBFEBxc8OgVHV4OPe2g0q9tFIe9HiTxRiJnlTJ+jHvOQsBLS651ArdVtwLChf9UdMouFlpLLJ1HteZqTbtsQ==} hasBin: true peerDependencies: @@ -1226,39 +1437,39 @@ packages: vite: '*' dependencies: '@antfu/utils': 0.7.7 - '@nuxt/devtools-kit': 1.0.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11) + '@nuxt/devtools-kit': 1.0.8(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6) '@nuxt/devtools-wizard': 1.0.8 - '@nuxt/kit': 3.9.3(rollup@3.29.4) - birpc: 0.2.14 + '@nuxt/kit': 3.11.2(rollup@3.29.4) + birpc: 0.2.17 consola: 3.2.3 - destr: 2.0.2 + destr: 2.0.3 error-stack-parser-es: 0.1.1 execa: 7.2.0 fast-glob: 3.3.2 - flatted: 3.2.9 + flatted: 3.3.1 get-port-please: 3.1.2 hookable: 5.5.3 image-meta: 0.2.0 is-installed-globally: 1.0.0 launch-editor: 2.6.1 local-pkg: 0.5.0 - magicast: 0.3.2 - nuxt: 3.9.3(eslint@8.56.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.0.11) - nypm: 0.3.4 + magicast: 0.3.3 + nuxt: 3.11.1(@unocss/reset@0.58.3)(eslint@8.56.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.3)(unocss@0.58.3)(vite@5.2.6) + nypm: 0.3.8 ohash: 1.1.3 - pacote: 17.0.5 + pacote: 17.0.6 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 rc9: 2.1.1 - scule: 1.2.0 - semver: 7.5.4 - simple-git: 3.22.0 + scule: 1.3.0 + semver: 7.6.0 + simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.1(rollup@3.29.4) - vite: 5.0.11 - vite-plugin-inspect: 0.8.1(@nuxt/kit@3.9.3)(rollup@3.29.4)(vite@5.0.11) - vite-plugin-vue-inspector: 4.0.2(vite@5.0.11) + vite: 5.2.6 + vite-plugin-inspect: 0.8.3(@nuxt/kit@3.11.2)(rollup@3.29.4)(vite@5.2.6) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.6) which: 3.0.1 ws: 8.16.0 transitivePeerDependencies: @@ -1267,45 +1478,142 @@ packages: - rollup - supports-color - utf-8-validate + dev: false - /@nuxt/eslint-config@0.2.0(eslint@8.56.0): - resolution: {integrity: sha512-NeJX8TLcnNAjQFiDs3XhP+9CHKK8jaKsP7eUyCSrQdgY7nqWe7VJx64lwzx5FTT4cW3RHMEyH+Y0qzLGYYoa/A==} + /@nuxt/devtools@1.1.5(@unocss/reset@0.58.3)(floating-vue@5.2.2)(nuxt@3.11.1)(rollup@3.29.4)(unocss@0.58.3)(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-aDEqz4L1GDj4DDnX7PL9ety3Wx0kLyKTb2JOSoJR8uX09fC3gonCvj/gYHLSSIKqhPasUjoOO5RPCtT+r9dtsA==} + hasBin: true peerDependencies: - eslint: ^8.48.0 - dependencies: - '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 - eslint-plugin-vue: 9.20.0(eslint@8.56.0) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@nuxt/kit@3.10.0(rollup@3.29.4): - resolution: {integrity: sha512-SNyZqk57kyEvTdFSYhQCYFCwT/EQO13O9SWtY2ULscdhXd2C5D0SQW9E7OM7O/31Fa+KQ9RnSTA8DnwaOFne2g==} - engines: {node: ^14.18.0 || >=16.10.0} + nuxt: ^3.9.0 + vite: '*' dependencies: - '@nuxt/schema': 3.10.0(rollup@3.29.4) - c12: 1.6.1 + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.1.5(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6) + '@nuxt/devtools-wizard': 1.1.5 + '@nuxt/kit': 3.11.1(rollup@3.29.4) + '@vue/devtools-applet': 7.0.25(@unocss/reset@0.58.3)(floating-vue@5.2.2)(unocss@0.58.3)(vite@5.2.6)(vue@3.4.21) + '@vue/devtools-core': 7.0.25(vite@5.2.6)(vue@3.4.21) + '@vue/devtools-kit': 7.0.25(vue@3.4.21) + birpc: 0.2.17 consola: 3.2.3 - defu: 6.1.4 - globby: 14.0.0 - hash-sum: 2.0.0 - ignore: 5.3.0 - jiti: 1.21.0 - knitwork: 1.0.0 - mlly: 1.5.0 + cronstrue: 2.48.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.1 + execa: 7.2.0 + fast-glob: 3.3.2 + flatted: 3.3.1 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.0 + is-installed-globally: 1.0.0 + launch-editor: 2.6.1 + local-pkg: 0.5.0 + magicast: 0.3.3 + nuxt: 3.11.1(@unocss/reset@0.58.3)(eslint@8.56.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.3)(unocss@0.58.3)(vite@5.2.6) + nypm: 0.3.8 + ohash: 1.1.3 + pacote: 17.0.6 pathe: 1.1.2 + perfect-debounce: 1.0.0 pkg-types: 1.0.3 - scule: 1.2.0 - semver: 7.5.4 - ufo: 1.3.2 - unctx: 2.3.1 + rc9: 2.1.1 + scule: 1.3.0 + semver: 7.6.0 + simple-git: 3.24.0 + sirv: 2.0.4 unimport: 3.7.1(rollup@3.29.4) - untyped: 1.4.2 - transitivePeerDependencies: + vite: 5.2.6 + vite-plugin-inspect: 0.8.3(@nuxt/kit@3.11.1)(rollup@3.29.4)(vite@5.2.6) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.6) + which: 3.0.1 + ws: 8.16.0 + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - bluebird + - bufferutil + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - unocss + - utf-8-validate + - vue + + /@nuxt/eslint-config@0.2.0(eslint@8.56.0): + resolution: {integrity: sha512-NeJX8TLcnNAjQFiDs3XhP+9CHKK8jaKsP7eUyCSrQdgY7nqWe7VJx64lwzx5FTT4cW3RHMEyH+Y0qzLGYYoa/A==} + peerDependencies: + eslint: ^8.48.0 + dependencies: + '@rushstack/eslint-patch': 1.6.1 + '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.4.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.4.3) + eslint: 8.56.0 + eslint-plugin-vue: 9.20.0(eslint@8.56.0) + typescript: 5.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@nuxt/kit@3.11.1(rollup@3.29.4): + resolution: {integrity: sha512-8VVlhaY4N+wipgHmSXP+gLM+esms9TEBz13I/J++PbOUJuf2cJlUUTyqMoRVL0xudVKK/8fJgSndRkyidy1m2w==} + engines: {node: ^14.18.0 || >=16.10.0} + dependencies: + '@nuxt/schema': 3.11.1(rollup@3.29.4) + c12: 1.10.0 + consola: 3.2.3 + defu: 6.1.4 + globby: 14.0.1 + hash-sum: 2.0.0 + ignore: 5.3.1 + jiti: 1.21.0 + knitwork: 1.0.0 + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + semver: 7.6.0 + ufo: 1.5.3 + unctx: 2.3.1 + unimport: 3.7.1(rollup@3.29.4) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + + /@nuxt/kit@3.11.2(rollup@3.29.4): + resolution: {integrity: sha512-yiYKP0ZWMW7T3TCmsv4H8+jEsB/nFriRAR8bKoSqSV9bkVYWPE36sf7JDux30dQ91jSlQG6LQkB3vCHYTS2cIg==} + engines: {node: ^14.18.0 || >=16.10.0} + dependencies: + '@nuxt/schema': 3.11.2(rollup@3.29.4) + c12: 1.10.0 + consola: 3.2.3 + defu: 6.1.4 + globby: 14.0.1 + hash-sum: 2.0.0 + ignore: 5.3.1 + jiti: 1.21.0 + knitwork: 1.1.0 + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + semver: 7.6.0 + ufo: 1.5.3 + unctx: 2.3.1 + unimport: 3.7.1(rollup@3.29.4) + untyped: 1.4.2 + transitivePeerDependencies: - rollup - supports-color dev: false @@ -1328,7 +1636,7 @@ packages: pkg-types: 1.0.3 scule: 1.2.0 semver: 7.5.4 - ufo: 1.3.2 + ufo: 1.5.3 unctx: 2.3.1 unimport: 3.7.1(rollup@3.29.4) untyped: 1.4.0 @@ -1355,28 +1663,29 @@ packages: pkg-types: 1.0.3 scule: 1.2.0 semver: 7.5.4 - ufo: 1.3.2 + ufo: 1.5.3 unctx: 2.3.1 unimport: 3.7.1(rollup@3.29.4) untyped: 1.4.0 transitivePeerDependencies: - rollup - supports-color + dev: true - /@nuxt/module-builder@0.5.5(@nuxt/kit@3.9.3)(nuxi@3.10.0)(typescript@5.3.3): + /@nuxt/module-builder@0.5.5(@nuxt/kit@3.11.1)(nuxi@3.11.1)(typescript@5.4.3): resolution: {integrity: sha512-ifFfwA1rbSXSae25RmqA2kAbV3xoShZNrq1yK8VXB/EnIcDn4WiaYR1PytaSxIt5zsvWPn92BJXiIUBiMQZ0hw==} hasBin: true peerDependencies: '@nuxt/kit': ^3.8.2 nuxi: ^3.10.0 dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) citty: 0.1.5 consola: 3.2.3 mlly: 1.4.2 - nuxi: 3.10.0 + nuxi: 3.11.1 pathe: 1.1.2 - unbuild: 2.0.0(typescript@5.3.3) + unbuild: 2.0.0(typescript@5.4.3) transitivePeerDependencies: - sass - supports-color @@ -1395,7 +1704,46 @@ packages: pkg-types: 1.0.3 scule: 1.2.0 std-env: 3.7.0 - ufo: 1.3.2 + ufo: 1.5.3 + unimport: 3.7.1(rollup@3.29.4) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: false + + /@nuxt/schema@3.11.1(rollup@3.29.4): + resolution: {integrity: sha512-XyGlJsf3DtkouBCvBHlvjz+xvN4vza3W7pY3YBNMnktxlMQtfFiF3aB3A2NGLmBnJPqD3oY0j7lljraELb5hkg==} + engines: {node: ^14.18.0 || >=16.10.0} + dependencies: + '@nuxt/ui-templates': 1.3.1 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.3 + unimport: 3.7.1(rollup@3.29.4) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + + /@nuxt/schema@3.11.2(rollup@3.29.4): + resolution: {integrity: sha512-Z0bx7N08itD5edtpkstImLctWMNvxTArsKXzS35ZuqyAyKBPcRjO1CU01slH0ahO30Gg9kbck3/RKNZPwfOjJg==} + engines: {node: ^14.18.0 || >=16.10.0} + dependencies: + '@nuxt/ui-templates': 1.3.3 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.3 unimport: 3.7.1(rollup@3.29.4) untyped: 1.4.2 transitivePeerDependencies: @@ -1415,12 +1763,13 @@ packages: pkg-types: 1.0.3 scule: 1.2.0 std-env: 3.7.0 - ufo: 1.3.2 + ufo: 1.5.3 unimport: 3.7.1(rollup@3.29.4) - untyped: 1.4.0 + untyped: 1.4.2 transitivePeerDependencies: - rollup - supports-color + dev: false /@nuxt/schema@3.9.3(rollup@3.29.4): resolution: {integrity: sha512-pchkGBYdEJ9TAOoC5DKnLuAaFPjzgn2k0OUTr31QwbtHdTR3Q2Ua/oKsS1g9CPU7KRzSE5Vkf7ECE8zVydqF5A==} @@ -1434,23 +1783,24 @@ packages: pkg-types: 1.0.3 scule: 1.2.0 std-env: 3.7.0 - ufo: 1.3.2 + ufo: 1.5.3 unimport: 3.7.1(rollup@3.29.4) - untyped: 1.4.0 + untyped: 1.4.2 transitivePeerDependencies: - rollup - supports-color + dev: true /@nuxt/telemetry@2.5.3(rollup@3.29.4): resolution: {integrity: sha512-Ghv2MgWbJcUM9G5Dy3oQP0cJkUwEgaiuQxEF61FXJdn0a69Q4StZEP/hLF0MWPM9m6EvAwI7orxkJHM7MrmtVg==} hasBin: true dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) ci-info: 4.0.0 consola: 3.2.3 create-require: 1.1.1 defu: 6.1.4 - destr: 2.0.2 + destr: 2.0.3 dotenv: 16.3.1 git-url-parse: 13.1.1 is-docker: 3.0.0 @@ -1466,18 +1816,19 @@ packages: - rollup - supports-color - /@nuxt/test-utils@3.10.0(h3@1.10.0)(happy-dom@13.1.4)(rollup@3.29.4)(vite@5.0.11)(vitest@1.1.0)(vue-router@4.2.5)(vue@3.4.15): - resolution: {integrity: sha512-9ZKKrccCUyZP0P9/BdTNHWwTRvIbBnrmDvqvO0dQpTiUhgDVeO1vdG40o4e4olw7sbzUP51C8uA0OkRur/zBvQ==} + /@nuxt/test-utils@3.12.0(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21): + resolution: {integrity: sha512-Q3HP53TDIYeqHT65r31HZhK/gRwVBmchSdVj1tfiYECyqstckvsQ4Cyt/GX/XmD7cLdD3d5aHow8LaMfP+BSqQ==} engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: '@cucumber/cucumber': ^10.3.1 '@jest/globals': ^29.5.0 + '@playwright/test': ^1.42.1 '@testing-library/vue': ^7.0.0 || ^8.0.1 '@vitest/ui': ^0.34.6 || ^1.0.0 '@vue/test-utils': ^2.4.2 h3: '*' happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 - jsdom: ^22.0.0 || ^23.0.0 + jsdom: ^22.0.0 || ^23.0.0 || ^24.0.0 playwright-core: ^1.34.3 vite: '*' vitest: ^0.34.6 || ^1.0.0 @@ -1488,6 +1839,8 @@ packages: optional: true '@jest/globals': optional: true + '@playwright/test': + optional: true '@testing-library/vue': optional: true '@vitest/ui': @@ -1503,45 +1856,45 @@ packages: vitest: optional: true dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) - '@nuxt/schema': 3.9.3(rollup@3.29.4) - c12: 1.6.1 + '@nuxt/kit': 3.11.1(rollup@3.29.4) + '@nuxt/schema': 3.11.1(rollup@3.29.4) + c12: 1.10.0 consola: 3.2.3 defu: 6.1.4 - destr: 2.0.2 + destr: 2.0.3 estree-walker: 3.0.3 execa: 8.0.1 fake-indexeddb: 5.0.2 get-port-please: 3.1.2 - h3: 1.10.0 - happy-dom: 13.1.4 + h3: 1.11.1 + happy-dom: 13.10.1 local-pkg: 0.5.0 - magic-string: 0.30.5 - node-fetch-native: 1.6.1 + magic-string: 0.30.8 + node-fetch-native: 1.6.4 ofetch: 1.3.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - radix3: 1.1.0 - scule: 1.2.0 + radix3: 1.1.2 + scule: 1.3.0 std-env: 3.7.0 - ufo: 1.3.2 + ufo: 1.5.3 unenv: 1.9.0 - unplugin: 1.6.0 - vite: 5.0.11 - vitest: 1.1.0(happy-dom@13.1.4) - vitest-environment-nuxt: 1.0.0(h3@1.10.0)(happy-dom@13.1.4)(rollup@3.29.4)(vite@5.0.11)(vitest@1.1.0)(vue-router@4.2.5)(vue@3.4.15) - vue: 3.4.15(typescript@5.3.3) - vue-router: 4.2.5(vue@3.4.15) + unplugin: 1.10.0 + vite: 5.2.6 + vitest: 1.4.0(happy-dom@13.10.1) + vitest-environment-nuxt: 1.0.0(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21) + vue: 3.4.21(typescript@5.4.3) + vue-router: 4.3.0(vue@3.4.21) transitivePeerDependencies: - rollup - supports-color dev: true - /@nuxt/ui-pro@0.7.5(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15): + /@nuxt/ui-pro@0.7.5(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21): resolution: {integrity: sha512-Isb+eAjnw6Kn+VCPQZESSLTt+/ZKis5PJKA2exdCWHvWX6Stu8Lr1I7us85P57siv0Y/KtHBBvJmHH+7RNmU2g==} dependencies: - '@nuxt/ui': 2.13.0(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15) - '@vueuse/core': 10.7.2(vue@3.4.15) + '@nuxt/ui': 2.13.0(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21) + '@vueuse/core': 10.7.2(vue@3.4.21) defu: 6.1.4 git-url-parse: 14.0.0 ofetch: 1.3.3 @@ -1573,28 +1926,32 @@ packages: /@nuxt/ui-templates@1.3.1: resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==} - /@nuxt/ui@2.13.0(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15): + /@nuxt/ui-templates@1.3.3: + resolution: {integrity: sha512-3BG5doAREcD50dbKyXgmjD4b1GzY8CUy3T41jMhHZXNDdaNwOd31IBq+D6dV00OSrDVhzrTVj0IxsUsnMyHvIQ==} + dev: false + + /@nuxt/ui@2.13.0(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21): resolution: {integrity: sha512-u7TXMeNGV/lkPO/k2VlhCXUxJ+iw+OKUOaFLWRjHDfVQpBJMhzIvNvQhRPOD2FMpVuUUbpVjdOqbdEg9VQX3Wg==} engines: {node: '>=v16.20.2'} dependencies: '@egoist/tailwindcss-icons': 1.7.2(tailwindcss@3.4.1) '@headlessui/tailwindcss': 0.2.0(tailwindcss@3.4.1) - '@headlessui/vue': 1.7.16(vue@3.4.15) + '@headlessui/vue': 1.7.16(vue@3.4.21) '@iconify-json/heroicons': 1.1.19 - '@nuxt/kit': 3.10.0(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) '@nuxtjs/color-mode': 3.3.2(rollup@3.29.4) '@nuxtjs/tailwindcss': 'link:' '@popperjs/core': 2.11.8 '@tailwindcss/aspect-ratio': 0.4.2(tailwindcss@3.4.1) '@tailwindcss/container-queries': 0.1.1(tailwindcss@3.4.1) '@tailwindcss/forms': 0.5.7(tailwindcss@3.4.1) - '@tailwindcss/typography': 0.5.10(tailwindcss@3.4.1) - '@vueuse/core': 10.7.2(vue@3.4.15) - '@vueuse/integrations': 10.7.2(fuse.js@6.6.2)(vue@3.4.15) - '@vueuse/math': 10.7.2(vue@3.4.15) + '@tailwindcss/typography': 0.5.12(tailwindcss@3.4.1) + '@vueuse/core': 10.7.2(vue@3.4.21) + '@vueuse/integrations': 10.7.2(fuse.js@6.6.2)(vue@3.4.21) + '@vueuse/math': 10.7.2(vue@3.4.21) defu: 6.1.4 fuse.js: 6.6.2 - nuxt-icon: 0.6.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15) + nuxt-icon: 0.6.8(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21) ohash: 1.1.3 pathe: 1.1.2 scule: 1.2.0 @@ -1621,45 +1978,46 @@ packages: - vue dev: false - /@nuxt/vite-builder@3.9.3(eslint@8.56.0)(rollup@3.29.4)(typescript@5.3.3)(vue@3.4.15): - resolution: {integrity: sha512-HruOrxn0g6TS31j3jycJvGZ7pt3JNEbcXNByVh7YJwQx6ToFX8kPWRu4LPeMhrLYvZzeUr2w3iELBECFxbDmvw==} + /@nuxt/vite-builder@3.11.1(eslint@8.56.0)(rollup@3.29.4)(typescript@5.4.3)(vue@3.4.21): + resolution: {integrity: sha512-8DVK2Jb9xgfnvTfKr5mL3UDdAIrd3q3F4EmoVsXVKJe8NTt9LW38QdGwGViIQm9wzLDDEo0mgWF+n7WoGEH0xQ==} engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: vue: ^3.3.4 dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) - '@vitejs/plugin-vue': 5.0.3(vite@5.0.11)(vue@3.4.15) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.0.11)(vue@3.4.15) - autoprefixer: 10.4.17(postcss@8.4.33) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.6)(vue@3.4.21) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.6)(vue@3.4.21) + autoprefixer: 10.4.19(postcss@8.4.38) clear: 0.1.0 consola: 3.2.3 - cssnano: 6.0.3(postcss@8.4.33) + cssnano: 6.1.2(postcss@8.4.38) defu: 6.1.4 - esbuild: 0.19.11 + esbuild: 0.20.2 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 externality: 1.0.2 fs-extra: 11.2.0 get-port-please: 3.1.2 - h3: 1.10.0 + h3: 1.11.1 knitwork: 1.0.0 - magic-string: 0.30.5 - mlly: 1.5.0 + magic-string: 0.30.8 + mlly: 1.6.1 ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 - postcss: 8.4.33 + postcss: 8.4.38 rollup-plugin-visualizer: 5.12.0(rollup@3.29.4) std-env: 3.7.0 strip-literal: 2.0.0 - ufo: 1.3.2 - unplugin: 1.6.0 - vite: 5.0.11 - vite-node: 1.1.3 - vite-plugin-checker: 0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.11) - vue: 3.4.15(typescript@5.3.3) + ufo: 1.5.3 + unenv: 1.9.0 + unplugin: 1.10.0 + vite: 5.2.6 + vite-node: 1.4.0 + vite-plugin-checker: 0.6.4(eslint@8.56.0)(typescript@5.4.3)(vite@5.2.6) + vue: 3.4.21(typescript@5.4.3) vue-bundle-renderer: 2.0.0 transitivePeerDependencies: - '@types/node' @@ -1676,6 +2034,7 @@ packages: - supports-color - terser - typescript + - uWebSockets.js - vls - vti - vue-tsc @@ -1699,7 +2058,7 @@ packages: /@nuxtjs/color-mode@3.3.2(rollup@3.29.4): resolution: {integrity: sha512-BLpBfrYZngV2QWFQ4HNEFwAXa3Pno43Ge+2XHcZJTTa1Z4KzRLvOwku8yiyV3ovIaaXKGwduBdv3Z5Ocdp0/+g==} dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) lodash.template: 4.5.0 pathe: 1.1.2 transitivePeerDependencies: @@ -1732,23 +2091,27 @@ packages: - supports-color dev: false - /@nuxtjs/mdc@0.3.0(rollup@3.29.4): - resolution: {integrity: sha512-WN/5OuudZwsBPBRJNHIfkJF/sPtww5ThDva7Fcs2PMl+TdDA+M38L+AeONIn7Sl2CHU7O9rf1kMHl8p7MrUZeA==} + /@nuxtjs/mdc@0.6.1(rollup@3.29.4): + resolution: {integrity: sha512-zS5QK7DZ/SBrjqQX1DOy7GnxKy+wbj2+LvooefOWmQqHfLTAqJLVIjuv/BmKnQWiRCq19+uysys3iY42EoY5/A==} dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) - '@types/hast': 3.0.3 + '@nuxt/kit': 3.11.1(rollup@3.29.4) + '@shikijs/transformers': 1.2.1 + '@types/hast': 3.0.4 '@types/mdast': 4.0.3 - '@vue/compiler-core': 3.4.10 + '@vue/compiler-core': 3.4.21 consola: 3.2.3 + debug: 4.3.4 defu: 6.1.4 - destr: 2.0.2 + destr: 2.0.3 detab: 3.0.2 github-slugger: 2.0.0 hast-util-to-string: 3.0.0 mdast-util-to-hast: 13.1.0 micromark-util-sanitize-uri: 2.0.0 ohash: 1.1.3 - property-information: 6.4.0 + parse5: 7.1.2 + pathe: 1.1.2 + property-information: 6.4.1 rehype-external-links: 3.0.0 rehype-raw: 7.0.0 rehype-slug: 6.0.0 @@ -1756,16 +2119,16 @@ packages: rehype-sort-attributes: 5.0.0 remark-emoji: 4.0.1 remark-gfm: 4.0.0 - remark-mdc: 3.0.0 + remark-mdc: 3.2.0 remark-parse: 11.0.0 remark-rehype: 11.1.0 - scule: 1.2.0 - shikiji: 0.9.18 - shikiji-transformers: 0.9.18 - ufo: 1.3.2 + scule: 1.3.0 + shiki: 1.2.1 + ufo: 1.5.3 unified: 11.0.4 unist-builder: 4.0.0 unist-util-visit: 5.0.0 + unwasm: 0.3.8 transitivePeerDependencies: - rollup - supports-color @@ -1783,114 +2146,113 @@ packages: - supports-color dev: false - /@parcel/watcher-android-arm64@2.3.0: - resolution: {integrity: sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==} + /@parcel/watcher-android-arm64@2.4.1: + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@parcel/watcher-darwin-arm64@2.3.0: - resolution: {integrity: sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==} + /@parcel/watcher-darwin-arm64@2.4.1: + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@parcel/watcher-darwin-x64@2.3.0: - resolution: {integrity: sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==} + /@parcel/watcher-darwin-x64@2.4.1: + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@parcel/watcher-freebsd-x64@2.3.0: - resolution: {integrity: sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==} + /@parcel/watcher-freebsd-x64@2.4.1: + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@parcel/watcher-linux-arm-glibc@2.3.0: - resolution: {integrity: sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==} + /@parcel/watcher-linux-arm-glibc@2.4.1: + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@parcel/watcher-linux-arm64-glibc@2.3.0: - resolution: {integrity: sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==} + /@parcel/watcher-linux-arm64-glibc@2.4.1: + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@parcel/watcher-linux-arm64-musl@2.3.0: - resolution: {integrity: sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==} + /@parcel/watcher-linux-arm64-musl@2.4.1: + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@parcel/watcher-linux-x64-glibc@2.3.0: - resolution: {integrity: sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==} + /@parcel/watcher-linux-x64-glibc@2.4.1: + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@parcel/watcher-linux-x64-musl@2.3.0: - resolution: {integrity: sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==} + /@parcel/watcher-linux-x64-musl@2.4.1: + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@parcel/watcher-wasm@2.3.0: - resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} + /@parcel/watcher-wasm@2.4.1: + resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} engines: {node: '>= 10.0.0'} dependencies: is-glob: 4.0.3 micromatch: 4.0.5 - napi-wasm: 1.1.0 bundledDependencies: - napi-wasm - /@parcel/watcher-win32-arm64@2.3.0: - resolution: {integrity: sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==} + /@parcel/watcher-win32-arm64@2.4.1: + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@parcel/watcher-win32-ia32@2.3.0: - resolution: {integrity: sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==} + /@parcel/watcher-win32-ia32@2.4.1: + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@parcel/watcher-win32-x64@2.3.0: - resolution: {integrity: sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==} + /@parcel/watcher-win32-x64@2.4.1: + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@parcel/watcher@2.3.0: - resolution: {integrity: sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==} + /@parcel/watcher@2.4.1: + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} engines: {node: '>= 10.0.0'} dependencies: detect-libc: 1.0.3 @@ -1898,18 +2260,18 @@ packages: micromatch: 4.0.5 node-addon-api: 7.0.0 optionalDependencies: - '@parcel/watcher-android-arm64': 2.3.0 - '@parcel/watcher-darwin-arm64': 2.3.0 - '@parcel/watcher-darwin-x64': 2.3.0 - '@parcel/watcher-freebsd-x64': 2.3.0 - '@parcel/watcher-linux-arm-glibc': 2.3.0 - '@parcel/watcher-linux-arm64-glibc': 2.3.0 - '@parcel/watcher-linux-arm64-musl': 2.3.0 - '@parcel/watcher-linux-x64-glibc': 2.3.0 - '@parcel/watcher-linux-x64-musl': 2.3.0 - '@parcel/watcher-win32-arm64': 2.3.0 - '@parcel/watcher-win32-ia32': 2.3.0 - '@parcel/watcher-win32-x64': 2.3.0 + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -2068,7 +2430,7 @@ packages: slash: 4.0.0 dev: true - /@rollup/plugin-alias@5.1.0(rollup@4.9.4): + /@rollup/plugin-alias@5.1.0(rollup@4.13.2): resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2077,7 +2439,7 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.4 + rollup: 4.13.2 slash: 4.0.0 /@rollup/plugin-commonjs@25.0.7(rollup@3.29.4): @@ -2098,7 +2460,7 @@ packages: rollup: 3.29.4 dev: true - /@rollup/plugin-commonjs@25.0.7(rollup@4.9.4): + /@rollup/plugin-commonjs@25.0.7(rollup@4.13.2): resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2107,15 +2469,15 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.30.5 - rollup: 4.9.4 + rollup: 4.13.2 - /@rollup/plugin-inject@5.0.5(rollup@4.9.4): + /@rollup/plugin-inject@5.0.5(rollup@4.13.2): resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2124,10 +2486,10 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) estree-walker: 2.0.2 - magic-string: 0.30.5 - rollup: 4.9.4 + magic-string: 0.30.8 + rollup: 4.13.2 /@rollup/plugin-json@6.1.0(rollup@3.29.4): resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} @@ -2142,7 +2504,7 @@ packages: rollup: 3.29.4 dev: true - /@rollup/plugin-json@6.1.0(rollup@4.9.4): + /@rollup/plugin-json@6.1.0(rollup@4.13.2): resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2151,8 +2513,8 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) - rollup: 4.9.4 + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) + rollup: 4.13.2 /@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} @@ -2172,7 +2534,7 @@ packages: rollup: 3.29.4 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.4): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.13.2): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2181,13 +2543,13 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.4 + rollup: 4.13.2 /@rollup/plugin-replace@5.0.5(rollup@3.29.4): resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} @@ -2202,7 +2564,7 @@ packages: magic-string: 0.30.5 rollup: 3.29.4 - /@rollup/plugin-replace@5.0.5(rollup@4.9.4): + /@rollup/plugin-replace@5.0.5(rollup@4.13.2): resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2211,11 +2573,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) magic-string: 0.30.5 - rollup: 4.9.4 + rollup: 4.13.2 - /@rollup/plugin-terser@0.4.4(rollup@4.9.4): + /@rollup/plugin-terser@0.4.4(rollup@4.13.2): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2224,23 +2586,11 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.4 + rollup: 4.13.2 serialize-javascript: 6.0.2 smob: 1.4.1 terser: 5.26.0 - /@rollup/plugin-wasm@6.2.2(rollup@4.9.4): - resolution: {integrity: sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) - rollup: 4.9.4 - /@rollup/pluginutils@4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -2262,7 +2612,7 @@ packages: picomatch: 2.3.1 rollup: 3.29.4 - /@rollup/pluginutils@5.1.0(rollup@4.9.4): + /@rollup/pluginutils@5.1.0(rollup@4.13.2): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2274,7 +2624,14 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.4 + rollup: 4.13.2 + + /@rollup/rollup-android-arm-eabi@4.13.2: + resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true /@rollup/rollup-android-arm-eabi@4.9.4: resolution: {integrity: sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA==} @@ -2283,6 +2640,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-android-arm64@4.13.2: + resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + /@rollup/rollup-android-arm64@4.9.4: resolution: {integrity: sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA==} cpu: [arm64] @@ -2290,6 +2654,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-darwin-arm64@4.13.2: + resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@rollup/rollup-darwin-arm64@4.9.4: resolution: {integrity: sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA==} cpu: [arm64] @@ -2297,6 +2668,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-darwin-x64@4.13.2: + resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@rollup/rollup-darwin-x64@4.9.4: resolution: {integrity: sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA==} cpu: [x64] @@ -2304,6 +2682,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.13.2: + resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + /@rollup/rollup-linux-arm-gnueabihf@4.9.4: resolution: {integrity: sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw==} cpu: [arm] @@ -2311,6 +2696,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-linux-arm64-gnu@4.13.2: + resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@rollup/rollup-linux-arm64-gnu@4.9.4: resolution: {integrity: sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==} cpu: [arm64] @@ -2318,6 +2710,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-linux-arm64-musl@4.13.2: + resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@rollup/rollup-linux-arm64-musl@4.9.4: resolution: {integrity: sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==} cpu: [arm64] @@ -2325,6 +2724,20 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-linux-powerpc64le-gnu@4.13.2: + resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} + cpu: [ppc64le] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.13.2: + resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + /@rollup/rollup-linux-riscv64-gnu@4.9.4: resolution: {integrity: sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==} cpu: [riscv64] @@ -2332,6 +2745,20 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-linux-s390x-gnu@4.13.2: + resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.13.2: + resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@rollup/rollup-linux-x64-gnu@4.9.4: resolution: {integrity: sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==} cpu: [x64] @@ -2339,6 +2766,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-linux-x64-musl@4.13.2: + resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@rollup/rollup-linux-x64-musl@4.9.4: resolution: {integrity: sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==} cpu: [x64] @@ -2346,6 +2780,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-win32-arm64-msvc@4.13.2: + resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@rollup/rollup-win32-arm64-msvc@4.9.4: resolution: {integrity: sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ==} cpu: [arm64] @@ -2353,6 +2794,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-win32-ia32-msvc@4.13.2: + resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@rollup/rollup-win32-ia32-msvc@4.9.4: resolution: {integrity: sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ==} cpu: [ia32] @@ -2360,6 +2808,13 @@ packages: requiresBuild: true optional: true + /@rollup/rollup-win32-x64-msvc@4.13.2: + resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@rollup/rollup-win32-x64-msvc@4.9.4: resolution: {integrity: sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw==} cpu: [x64] @@ -2371,6 +2826,16 @@ packages: resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} dev: true + /@shikijs/core@1.2.1: + resolution: {integrity: sha512-KaIS0H4EQ3KI2d++TjYqRNgwp8E3M/68e9veR4QtInzA7kKFgcjeiJqb80fuXW+blDy5fmd11PN9g9soz/3ANQ==} + dev: true + + /@shikijs/transformers@1.2.1: + resolution: {integrity: sha512-H7cVtrdv6BW2kx83t2IQgP5ri1IA50mE3QnzgJ0AvOKCGtCEieXu0JIP3245cgjNLrL+LBwb8DtTXdky1iQL9Q==} + dependencies: + shiki: 1.2.1 + dev: true + /@shuding/opentype.js@1.4.0-beta.0: resolution: {integrity: sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==} engines: {node: '>= 8.0.0'} @@ -2380,35 +2845,48 @@ packages: string.prototype.codepointat: 0.2.1 dev: false - /@sigstore/bundle@2.1.0: - resolution: {integrity: sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==} + /@sigstore/bundle@2.2.0: + resolution: {integrity: sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@sigstore/protobuf-specs': 0.2.1 + '@sigstore/protobuf-specs': 0.3.0 + + /@sigstore/core@1.1.0: + resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} + engines: {node: ^16.14.0 || >=18.0.0} - /@sigstore/protobuf-specs@0.2.1: - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} + /@sigstore/protobuf-specs@0.3.0: + resolution: {integrity: sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /@sigstore/sign@2.2.0: - resolution: {integrity: sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==} + /@sigstore/sign@2.2.3: + resolution: {integrity: sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@sigstore/bundle': 2.1.0 - '@sigstore/protobuf-specs': 0.2.1 + '@sigstore/bundle': 2.2.0 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.0 make-fetch-happen: 13.0.0 transitivePeerDependencies: - supports-color - /@sigstore/tuf@2.2.0: - resolution: {integrity: sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==} + /@sigstore/tuf@2.3.2: + resolution: {integrity: sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@sigstore/protobuf-specs': 0.2.1 + '@sigstore/protobuf-specs': 0.3.0 tuf-js: 2.2.0 transitivePeerDependencies: - supports-color + /@sigstore/verify@1.1.1: + resolution: {integrity: sha512-BNANJms49rw9Q5J+fJjrDqOQSzjXDcOq/pgKDaVdDoIvQwqIfaoUriy+fQfh8sBX04hr4bkkrwu3EbhQqoQH7A==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/bundle': 2.2.0 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.0 + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true @@ -2422,6 +2900,10 @@ packages: resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} engines: {node: '>=18'} + /@sindresorhus/merge-streams@2.3.0: + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + /@socket.io/component-emitter@3.1.0: resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} dev: true @@ -2464,8 +2946,8 @@ packages: tailwindcss: 3.4.1 dev: false - /@tailwindcss/typography@0.5.10(tailwindcss@3.4.1): - resolution: {integrity: sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==} + /@tailwindcss/typography@0.5.12(tailwindcss@3.4.1): + resolution: {integrity: sha512-CNwpBpconcP7ppxmuq3qvaCxiRWnbhANpY/ruH4L5qs2GCiVDJXde/pjj2HWPV1+Q4G9+V/etrwUYopdcjAlyg==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' dependencies: @@ -2499,10 +2981,6 @@ packages: universalify: 0.1.2 dev: false - /@types/braces@3.0.4: - resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} - dev: true - /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: @@ -2533,8 +3011,8 @@ packages: '@types/node': 20.11.0 dev: false - /@types/hast@3.0.3: - resolution: {integrity: sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==} + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} dependencies: '@types/unist': 3.0.2 dev: true @@ -2559,12 +3037,6 @@ packages: '@types/unist': 3.0.2 dev: true - /@types/micromatch@4.0.6: - resolution: {integrity: sha512-2eulCHWqjEpk9/vyic4tBhI8a9qQEl6DaK2n/sF7TweX9YESlypgKyhXMDGt4DAOy/jhLPvVrZc8pTDAMsplJA==} - dependencies: - '@types/braces': 3.0.4 - dev: true - /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: true @@ -2592,7 +3064,7 @@ packages: /@types/web-bluetooth@0.0.20: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.4.3): resolution: {integrity: sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2604,10 +3076,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.4.3) '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.4.3) + '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.4.3) '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 eslint: 8.56.0 @@ -2615,13 +3087,13 @@ packages: ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.4.3): resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2633,11 +3105,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.18.1 '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.4.3) '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 eslint: 8.56.0 - typescript: 5.3.3 + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true @@ -2650,7 +3122,7 @@ packages: '@typescript-eslint/visitor-keys': 6.18.1 dev: true - /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.4.3): resolution: {integrity: sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2660,12 +3132,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.4.3) + '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.4.3) debug: 4.3.4 eslint: 8.56.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true @@ -2675,7 +3147,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3): + /@typescript-eslint/typescript-estree@6.18.1(typescript@5.4.3): resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2691,13 +3163,13 @@ packages: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.4.3) + typescript: 5.4.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.4.3): resolution: {integrity: sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2708,7 +3180,7 @@ packages: '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 6.18.1 '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.4.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -2732,52 +3204,52 @@ packages: dependencies: '@unhead/schema': 1.8.10 '@unhead/shared': 1.8.10 + dev: true - /@unhead/dom@1.8.9: - resolution: {integrity: sha512-qY4CUVNKEM7lEAcTz5t71QYca+NXgUY5RwhSzB6sBBzZxQTiFOeTVKC6uWXU0N+3jBUdP/zdD3iN1JIjziDlng==} + /@unhead/dom@1.9.2: + resolution: {integrity: sha512-yREmUAfYJsPV9qR3G85MkdH+FdvsHf8AIJRm7FgQidrPxFr8tCICdID3+jXULz3oq8pFye1tAyHlBHXeq3SIpA==} dependencies: - '@unhead/schema': 1.8.9 - '@unhead/shared': 1.8.9 - dev: true + '@unhead/schema': 1.9.2 + '@unhead/shared': 1.9.2 /@unhead/schema@1.8.10: resolution: {integrity: sha512-cy8RGOPkwOVY5EmRoCgGV8AqLjy/226xBVTY54kBct02Om3hBdpB9FZa9frM910pPUXMI8PNmFgABO23O7IdJA==} dependencies: hookable: 5.5.3 zhead: 2.2.4 + dev: true - /@unhead/schema@1.8.9: - resolution: {integrity: sha512-Cumjt2uLfBMEXflvq7Nk8KNqa/JS4MlRGWkjXx/uUXJ1vUeQqeMV8o3hrnRvDDoTXr9LwPapTMUbtClN3TSBgw==} + /@unhead/schema@1.9.2: + resolution: {integrity: sha512-NRCAcuWtD2WCL8u3qR1yn41JpDB+ExjBnSLAuJseOD9+XJjQBqPRgx/bhxZ3Dx6vrrCnCF+SvKr+W1pa+3mWdA==} dependencies: hookable: 5.5.3 zhead: 2.2.4 - dev: true /@unhead/shared@1.8.10: resolution: {integrity: sha512-pEFryAs3EmV+ShDQx2ZBwUnt5l3RrMrXSMZ50oFf+MImKZNARVvD4+3I8fEI9wZh+Zq0JYG3UAfzo51MUP+Juw==} dependencies: '@unhead/schema': 1.8.10 + dev: true - /@unhead/shared@1.8.9: - resolution: {integrity: sha512-0o4+CBCi9EnTKPF6cEuLacnUHUkF0u/FfiKrWnKWUiB8wTD1v3UCf5ZCrNCjuJmKHTqj6ZtZ2hIfXsqWfc+3tA==} + /@unhead/shared@1.9.2: + resolution: {integrity: sha512-jXQ4vK9wXf66hflOSBUXQKVsOLJrYVSOknDH+9PTwz5CIgJv/Y/o/NkRCJjyf5W7qFf605Te28lbTeLumT+BeQ==} dependencies: - '@unhead/schema': 1.8.9 - dev: true + '@unhead/schema': 1.9.2 /@unhead/ssr@1.8.10: resolution: {integrity: sha512-7wKRKDd8c2NFmMyPetj8Ah5u2hXunDBZT5Y2DH83O16PiMxx4/uobGamTV1EfcqjTvOKJvAqkrYZNYSWss99NQ==} dependencies: '@unhead/schema': 1.8.10 '@unhead/shared': 1.8.10 + dev: true - /@unhead/ssr@1.8.9: - resolution: {integrity: sha512-sQaA4FDFD1tRD2JiiHfdEY5rF1i54qFxCRqdX0pB+15JJCYBfIPJMr5T1SLJBgc9pqX4rS3MPg2Fc9DW+0p9yw==} + /@unhead/ssr@1.9.2: + resolution: {integrity: sha512-XKNAK3A67ZZpNq8arTyUj7brmTOYH3PJrVSx546MCQQvCuP6U3brWyIPy12+a/XiAxr4z62vd2IHCZya8OrZrQ==} dependencies: - '@unhead/schema': 1.8.9 - '@unhead/shared': 1.8.9 - dev: true + '@unhead/schema': 1.9.2 + '@unhead/shared': 1.9.2 - /@unhead/vue@1.8.10(vue@3.4.15): + /@unhead/vue@1.8.10(vue@3.4.21): resolution: {integrity: sha512-KF8pftHnxnlBlgNpKXWLTg3ZUtkuDCxRPUFSDBy9CtqRSX/qvAhLZ26mbqRVmHj8KigiRHP/wnPWNyGnUx20Bg==} peerDependencies: vue: '>=2.7 || >=3' @@ -2786,21 +3258,21 @@ packages: '@unhead/shared': 1.8.10 hookable: 5.5.3 unhead: 1.8.10 - vue: 3.4.15(typescript@5.3.3) + vue: 3.4.21(typescript@5.4.3) + dev: true - /@unhead/vue@1.8.9(vue@3.4.15): - resolution: {integrity: sha512-sL1d2IRBZd5rjzhgTYni2DiociSpt+Cfz3iVWKb0EZwQHgg0GzV8Hkoj5TjZYZow6EjDSPRfVPXDwOwxkVOgug==} + /@unhead/vue@1.9.2(vue@3.4.21): + resolution: {integrity: sha512-wp0eOyb7tu2isSt1IiDGm194W/8DVL3cXZd8uvhVlhS9yPL3TzwrSNbvwx95fhfrGuXFraoLjp4SpZ2BCszFsg==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.8.9 - '@unhead/shared': 1.8.9 + '@unhead/schema': 1.9.2 + '@unhead/shared': 1.9.2 hookable: 5.5.3 - unhead: 1.8.9 - vue: 3.4.15(typescript@5.3.3) - dev: true + unhead: 1.9.2 + vue: 3.4.21(typescript@5.4.3) - /@unocss/astro@0.58.3(rollup@3.29.4)(vite@5.0.11): + /@unocss/astro@0.58.3(rollup@3.29.4)(vite@5.2.6): resolution: {integrity: sha512-qJL+XkWYJhEIX4AmOtbfb2Zu4holTDpRscfvVci4T+2VWjyE3mgtsyNzi9ZChe/hdEPRa7g26gSpNQeMhjh/Kw==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -2810,11 +3282,10 @@ packages: dependencies: '@unocss/core': 0.58.3 '@unocss/reset': 0.58.3 - '@unocss/vite': 0.58.3(rollup@3.29.4)(vite@5.0.11) - vite: 5.0.11 + '@unocss/vite': 0.58.3(rollup@3.29.4)(vite@5.2.6) + vite: 5.2.6 transitivePeerDependencies: - rollup - dev: false /@unocss/cli@0.58.3(rollup@3.29.4): resolution: {integrity: sha512-veGdHhwm7GRvruXCMdqoFu3wVozr7ELEVWsFB6GpqWdGYIJ1i72M18l72UHDA2+TuDillZONnAQ5AvX9x/sYAw==} @@ -2827,16 +3298,15 @@ packages: '@unocss/core': 0.58.3 '@unocss/preset-uno': 0.58.3 cac: 6.7.14 - chokidar: 3.5.3 + chokidar: 3.6.0 colorette: 2.0.20 consola: 3.2.3 fast-glob: 3.3.2 - magic-string: 0.30.5 + magic-string: 0.30.8 pathe: 1.1.2 perfect-debounce: 1.0.0 transitivePeerDependencies: - rollup - dev: false /@unocss/config@0.58.3: resolution: {integrity: sha512-8BQDoLzf/BkyfnkQsjnXI84oj+Spqkr7Bf2AbOGcX14vof0qqHSDvJXQV1e0u7jv2QETe2D1+PI4fnkJCumaRw==} @@ -2844,17 +3314,14 @@ packages: dependencies: '@unocss/core': 0.58.3 unconfig: 0.3.11 - dev: false /@unocss/core@0.58.3: resolution: {integrity: sha512-9hTxzsrSLh+07ql/lGhE+8ZbE9MTTeZeMx131cPf2jDJUxAZooLE5pBCoK0k77ZJGcribRrwPGkUScBNOK0cYQ==} - dev: false /@unocss/extractor-arbitrary-variants@0.58.3: resolution: {integrity: sha512-QszC2atLcvzyoZFsjgtMBbILN4lrYI60iVRWdii+GGiKVtoIaKRWiA/3WERkvYGVPseVWOMflUpfxNeq+s9zUw==} dependencies: '@unocss/core': 0.58.3 - dev: false /@unocss/inspector@0.58.3: resolution: {integrity: sha512-FqkoHiO23lGGcQ+qJbE1Kb8+kPJWc/LxBz3B4Ehml1vQryncNh4p+3sczVn5YVTfPDGBXBCkP05Q+PJRKabPXQ==} @@ -2863,12 +3330,11 @@ packages: '@unocss/rule-utils': 0.58.3 gzip-size: 6.0.0 sirv: 2.0.4 - dev: false - /@unocss/nuxt@0.58.3(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11)(webpack@5.89.0): + /@unocss/nuxt@0.58.3(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6)(webpack@5.91.0): resolution: {integrity: sha512-dDQVKb8VtJt2/8SE6/vK1foEaqoTXVUUVq/TT7rSRLHdvRSVKE7M2eeoTS+k38RYdeooMx9YCtzwZDxun6caeQ==} dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) '@unocss/config': 0.58.3 '@unocss/core': 0.58.3 '@unocss/preset-attributify': 0.58.3 @@ -2879,9 +3345,9 @@ packages: '@unocss/preset-web-fonts': 0.58.3 '@unocss/preset-wind': 0.58.3 '@unocss/reset': 0.58.3 - '@unocss/vite': 0.58.3(rollup@3.29.4)(vite@5.0.11) - '@unocss/webpack': 0.58.3(rollup@3.29.4)(webpack@5.89.0) - unocss: 0.58.3(@unocss/webpack@0.58.3)(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11) + '@unocss/vite': 0.58.3(rollup@3.29.4)(vite@5.2.6) + '@unocss/webpack': 0.58.3(rollup@3.29.4)(webpack@5.91.0) + unocss: 0.58.3(@unocss/webpack@0.58.3)(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6) transitivePeerDependencies: - postcss - rollup @@ -2901,25 +3367,37 @@ packages: '@unocss/rule-utils': 0.58.3 css-tree: 2.3.1 fast-glob: 3.3.2 - magic-string: 0.30.5 + magic-string: 0.30.8 postcss: 8.4.33 + + /@unocss/postcss@0.58.3(postcss@8.4.38): + resolution: {integrity: sha512-y1WQNvLUidypCu/tr6oJfaV4pjd8Lsk1N27ASEVsvockOH3MekRYpHtJfTl2fMk+1Y98AHv7hPAVjM2NlvhDow==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 + dependencies: + '@unocss/config': 0.58.3 + '@unocss/core': 0.58.3 + '@unocss/rule-utils': 0.58.3 + css-tree: 2.3.1 + fast-glob: 3.3.2 + magic-string: 0.30.5 + postcss: 8.4.38 dev: false /@unocss/preset-attributify@0.58.3: resolution: {integrity: sha512-iDXNfnSC0SI51UnMltHmMcPr2SYYkimo86i+SBQqc/WBGcCF7fFqFj8G2WsZfwHvU9SdAHF8tYIwNq06w1WSeg==} dependencies: '@unocss/core': 0.58.3 - dev: false /@unocss/preset-icons@0.58.3: resolution: {integrity: sha512-SA4Eu4rOQ9+zUgIyK6RacS01ygm0PJWkqKlD8ccrBqEyZapqiU+vLL+v6X8YVjoZjR+5CVgcMD5Km7zEQgqXQw==} dependencies: '@iconify/utils': 2.1.14 '@unocss/core': 0.58.3 - ofetch: 1.3.3 + ofetch: 1.3.4 transitivePeerDependencies: - supports-color - dev: false /@unocss/preset-mini@0.58.3: resolution: {integrity: sha512-vPC97vZPY6J9uZ+KmK4x7atKFlZJPH4tR7+SmzTmguaGIHZJG8k1cjBCg+5M7P4MaxINRMukUQS8/mM/uWFqvQ==} @@ -2927,20 +3405,17 @@ packages: '@unocss/core': 0.58.3 '@unocss/extractor-arbitrary-variants': 0.58.3 '@unocss/rule-utils': 0.58.3 - dev: false /@unocss/preset-tagify@0.58.3: resolution: {integrity: sha512-9CEh4p8M8zFuNFzmPIs1paExWRcwr0Gp6lSMffFnqaVToeRBgEH7VnRj6/R3ZPAmQ2rEemZ1+3eOQlsspEE6aw==} dependencies: '@unocss/core': 0.58.3 - dev: false /@unocss/preset-typography@0.58.3: resolution: {integrity: sha512-hOQa2Sjkxo5v+jMwPXYv1MpHSrirf73FKPqwwHlvEUSCq9iweGDOU/MVOc5fI9qCg0SrfWhIvrZb4ASlgAuzWQ==} dependencies: '@unocss/core': 0.58.3 '@unocss/preset-mini': 0.58.3 - dev: false /@unocss/preset-uno@0.58.3: resolution: {integrity: sha512-E/g2BS4KXS9E/4OqyJSt0xSB6gbbk2VGjgIXrpcSXuDr2S2F29XLVlhJA5HJBADPlEfbo41z7Mk3LA3nQPWxQQ==} @@ -2949,14 +3424,12 @@ packages: '@unocss/preset-mini': 0.58.3 '@unocss/preset-wind': 0.58.3 '@unocss/rule-utils': 0.58.3 - dev: false /@unocss/preset-web-fonts@0.58.3: resolution: {integrity: sha512-g+ru8gX74uZVSfKgdSGp46XQ+wMr66Hp3wtI01yyu9wqmJRAVWQmeehFYZ0hDnGgX20veYSbG+ybZfxIKeTy6w==} dependencies: '@unocss/core': 0.58.3 - ofetch: 1.3.3 - dev: false + ofetch: 1.3.4 /@unocss/preset-wind@0.58.3: resolution: {integrity: sha512-/YhvKDFGnTNvKxNaBv1dazHaqNmBM0Ulh0U9lhycGz11qsJTQSl/Y9ZP64fVC7fuo+Uiaj8AN/9gpmpVrCgt4A==} @@ -2964,23 +3437,19 @@ packages: '@unocss/core': 0.58.3 '@unocss/preset-mini': 0.58.3 '@unocss/rule-utils': 0.58.3 - dev: false /@unocss/reset@0.58.3: resolution: {integrity: sha512-Q2KiRQlam2iYsTZgKdvnXEfUN4TA2oVpGIVD9Wa0ggs0XlYj5aOo0g0+4Tgqqn+YaviZQeJKnDs/JWE+ygHhZA==} - dev: false /@unocss/rule-utils@0.58.3: resolution: {integrity: sha512-0Px9gIW+VOKetZuYET19uamIRpk7A9c8sCzQuGlNvCLXKEWamqXz5asLtnvPzw6SwCXEQDgWXE9i+aeoXaM0Jg==} engines: {node: '>=14'} dependencies: '@unocss/core': 0.58.3 - magic-string: 0.30.5 - dev: false + magic-string: 0.30.8 /@unocss/scope@0.58.3: resolution: {integrity: sha512-Bkf6sk/0wry+fa5P8eLnzjC4pdrRlBY29g4F64qjsMBR0gk0stFRNzeoMOk412gmJXWjjlAQgNYiBZDHoPghZw==} - dev: false /@unocss/transformer-attributify-jsx-babel@0.58.3: resolution: {integrity: sha512-ar+s1rUVHpTy5Yz31WP4DGF2IHxyD4sk/t9ayvR2nOZddAZipdLGSShG03GLkRv4h2/r0x+BIyJGdwAC0BgVZQ==} @@ -2991,19 +3460,16 @@ packages: '@unocss/core': 0.58.3 transitivePeerDependencies: - supports-color - dev: false /@unocss/transformer-attributify-jsx@0.58.3: resolution: {integrity: sha512-H6wLJ5aAdHz8K/Z9/7OfiCBpOmKM7Gah2YtooT/Vfxu66bGehZO4QF6fcla6St53HifNvZ5odhlzqVEyHvQEaQ==} dependencies: '@unocss/core': 0.58.3 - dev: false /@unocss/transformer-compile-class@0.58.3: resolution: {integrity: sha512-VmnByb3N8uGAEXjnfhra3DzKq8ZeVCL30n46GG5RTC03MK0rZmKVOmBOBIB99rmSV+D/WVrb12Gf4fHsoLca7g==} dependencies: '@unocss/core': 0.58.3 - dev: false /@unocss/transformer-directives@0.58.3: resolution: {integrity: sha512-JMfeA8GJz106UqafqsCDp6BBEU7TozZHpLw414CKZjOW1CuMmaKEGrlr2UCjCYgM1vH7KEFKRMwTRUEV3NvywQ==} @@ -3011,15 +3477,13 @@ packages: '@unocss/core': 0.58.3 '@unocss/rule-utils': 0.58.3 css-tree: 2.3.1 - dev: false /@unocss/transformer-variant-group@0.58.3: resolution: {integrity: sha512-/8CyzLwzpJC5cdiA/Wd5/Pg+HEIK+xxJJ3/VXoo93OPNCCbA9/h6DPwDh1ogKk15c6b5H75Ow6zKq1rYQAz2EA==} dependencies: '@unocss/core': 0.58.3 - dev: false - /@unocss/vite@0.58.3(rollup@3.29.4)(vite@5.0.11): + /@unocss/vite@0.58.3(rollup@3.29.4)(vite@5.2.6): resolution: {integrity: sha512-gmB2//z7lDEK7Bw5HbHTSQ3abOM0iveAY/W3L3FFXpvduoxMQyuI5dDk0hOCtzhAWeJoynnVN4MBGVmXM4Y/Mg==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -3031,15 +3495,14 @@ packages: '@unocss/inspector': 0.58.3 '@unocss/scope': 0.58.3 '@unocss/transformer-directives': 0.58.3 - chokidar: 3.5.3 + chokidar: 3.6.0 fast-glob: 3.3.2 - magic-string: 0.30.5 - vite: 5.0.11 + magic-string: 0.30.8 + vite: 5.2.6 transitivePeerDependencies: - rollup - dev: false - /@unocss/webpack@0.58.3(rollup@3.29.4)(webpack@5.89.0): + /@unocss/webpack@0.58.3(rollup@3.29.4)(webpack@5.91.0): resolution: {integrity: sha512-pBPM27+vnyOZzR7aLGrWAlVgpVZU5I0+57eRQFpnGUggOU3ppDdb0B9KdZ9KY96fxmfIQHc8BLKfSXSbVV//7A==} peerDependencies: webpack: ^4 || ^5 @@ -3052,20 +3515,21 @@ packages: fast-glob: 3.3.2 magic-string: 0.30.5 unplugin: 1.6.0 - webpack: 5.89.0 + webpack: 5.91.0 webpack-sources: 3.2.3 transitivePeerDependencies: - rollup dev: false - /@vercel/nft@0.24.4: - resolution: {integrity: sha512-KjYAZty7boH5fi5udp6p+lNu6nawgs++pHW+3koErMgbRkkHuToGX/FwjN5clV1FcaM3udfd4zW/sUapkMgpZw==} + /@vercel/nft@0.26.4: + resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} engines: {node: '>=16'} hasBin: true dependencies: '@mapbox/node-pre-gyp': 1.0.11 '@rollup/pluginutils': 4.2.1 acorn: 8.11.3 + acorn-import-attributes: 1.9.4(acorn@8.11.3) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 @@ -3078,7 +3542,7 @@ packages: - encoding - supports-color - /@vitejs/plugin-vue-jsx@3.1.0(vite@5.0.11)(vue@3.4.15): + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.6)(vue@3.4.21): resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3088,55 +3552,56 @@ packages: '@babel/core': 7.23.7 '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.7) - vite: 5.0.11 - vue: 3.4.15(typescript@5.3.3) + vite: 5.2.6 + vue: 3.4.21(typescript@5.4.3) transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@5.0.3(vite@5.0.11)(vue@3.4.15): - resolution: {integrity: sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA==} + /@vitejs/plugin-vue@5.0.4(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 5.0.11 - vue: 3.4.15(typescript@5.3.3) + vite: 5.2.6 + vue: 3.4.21(typescript@5.4.3) - /@vitest/expect@1.1.0: - resolution: {integrity: sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==} + /@vitest/expect@1.4.0: + resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} dependencies: - '@vitest/spy': 1.1.0 - '@vitest/utils': 1.1.0 + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 chai: 4.4.0 dev: true - /@vitest/runner@1.1.0: - resolution: {integrity: sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==} + /@vitest/runner@1.4.0: + resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} dependencies: - '@vitest/utils': 1.1.0 + '@vitest/utils': 1.4.0 p-limit: 5.0.0 pathe: 1.1.2 dev: true - /@vitest/snapshot@1.1.0: - resolution: {integrity: sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==} + /@vitest/snapshot@1.4.0: + resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} dependencies: magic-string: 0.30.5 pathe: 1.1.2 pretty-format: 29.7.0 dev: true - /@vitest/spy@1.1.0: - resolution: {integrity: sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==} + /@vitest/spy@1.4.0: + resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} dependencies: tinyspy: 2.2.0 dev: true - /@vitest/utils@1.1.0: - resolution: {integrity: sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==} + /@vitest/utils@1.4.0: + resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} dependencies: diff-sequences: 29.6.3 + estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 dev: true @@ -3160,7 +3625,7 @@ packages: path-browserify: 1.0.1 dev: true - /@vue-macros/common@1.10.0(rollup@3.29.4)(vue@3.4.15): + /@vue-macros/common@1.10.0(rollup@3.29.4)(vue@3.4.21): resolution: {integrity: sha512-4DZsPeQA/nBQDw2RkYAmH7KrFjJVrMdAhJhO1JCl1bbbFXCGeoGjXfkg9wHPppj47s2HpAB3GrqNwqVGbi12NQ==} engines: {node: '>=16.14.0'} peerDependencies: @@ -3175,7 +3640,7 @@ packages: ast-kit: 0.11.3(rollup@3.29.4) local-pkg: 0.5.0 magic-string-ast: 0.3.0 - vue: 3.4.15(typescript@5.3.3) + vue: 3.4.21(typescript@5.4.3) transitivePeerDependencies: - rollup @@ -3200,15 +3665,6 @@ packages: transitivePeerDependencies: - supports-color - /@vue/compiler-core@3.4.10: - resolution: {integrity: sha512-53vxh7K9qbx+JILnGEhrFRyr7H7e4NdT8RuTNU3m6HhJKFvcAqFTNXpYMHnyuAzzRGdsbsYHBgQC3H6xEXTG6w==} - dependencies: - '@babel/parser': 7.23.6 - '@vue/shared': 3.4.10 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.0.2 - /@vue/compiler-core@3.4.15: resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==} dependencies: @@ -3218,11 +3674,14 @@ packages: estree-walker: 2.0.2 source-map-js: 1.0.2 - /@vue/compiler-dom@3.4.10: - resolution: {integrity: sha512-QAALBJksIFpXGYuo74rtMgnwpVZDvd3kYbUa4gYX9s/5QiqEvZSgbKtOdUGydXcxKPt3ifC+0/bhPVHXN2694A==} + /@vue/compiler-core@3.4.21: + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} dependencies: - '@vue/compiler-core': 3.4.10 - '@vue/shared': 3.4.10 + '@babel/parser': 7.24.1 + '@vue/shared': 3.4.21 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 /@vue/compiler-dom@3.4.15: resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==} @@ -3230,6 +3689,12 @@ packages: '@vue/compiler-core': 3.4.15 '@vue/shared': 3.4.15 + /@vue/compiler-dom@3.4.21: + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + dependencies: + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + /@vue/compiler-sfc@3.4.15: resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==} dependencies: @@ -3239,20 +3704,131 @@ packages: '@vue/compiler-ssr': 3.4.15 '@vue/shared': 3.4.15 estree-walker: 2.0.2 - magic-string: 0.30.5 + magic-string: 0.30.8 postcss: 8.4.33 source-map-js: 1.0.2 + /@vue/compiler-sfc@3.4.21: + resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + dependencies: + '@babel/parser': 7.24.1 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + estree-walker: 2.0.2 + magic-string: 0.30.8 + postcss: 8.4.38 + source-map-js: 1.0.2 + /@vue/compiler-ssr@3.4.15: resolution: {integrity: sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==} dependencies: '@vue/compiler-dom': 3.4.15 '@vue/shared': 3.4.15 + /@vue/compiler-ssr@3.4.21: + resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} + dependencies: + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 + /@vue/devtools-api@6.5.1: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} - /@vue/language-core@1.8.27(typescript@5.3.3): + /@vue/devtools-applet@7.0.25(@unocss/reset@0.58.3)(floating-vue@5.2.2)(unocss@0.58.3)(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-9JwnjRO2tAHxFjA+cHSpQ/DKIqUKILvYaWJkOt1KqkedXPHzUWU1NfQAto+p6ycaKInA5A0VdXdmIl4N8YJCrw==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@vue/devtools-core': 7.0.25(vite@5.2.6)(vue@3.4.21) + '@vue/devtools-kit': 7.0.25(vue@3.4.21) + '@vue/devtools-shared': 7.0.25 + '@vue/devtools-ui': 7.0.25(@unocss/reset@0.58.3)(floating-vue@5.2.2)(unocss@0.58.3)(vue@3.4.21) + perfect-debounce: 1.0.0 + splitpanes: 3.1.5 + vue: 3.4.21(typescript@5.4.3) + vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.21) + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + - unocss + - vite + + /@vue/devtools-core@7.0.25(vite@5.2.6)(vue@3.4.21): + resolution: {integrity: sha512-aCsY4J6SvSBDuGdYADszByT0wy0GgpgdCApxcZzQEqYlyVchX7vqznJQrm7Y1GCLqAvoLaxsQqew7Cz+KQ3Idg==} + dependencies: + '@vue/devtools-kit': 7.0.25(vue@3.4.21) + '@vue/devtools-shared': 7.0.25 + mitt: 3.0.1 + nanoid: 3.3.7 + pathe: 1.1.2 + vite-hot-client: 0.2.3(vite@5.2.6) + transitivePeerDependencies: + - vite + - vue + + /@vue/devtools-kit@7.0.25(vue@3.4.21): + resolution: {integrity: sha512-wbLkSnOTsKHPb1mB9koFHUoSAF8Dp6Ii/ocR2+DeXFY4oKqIjCeJb/4Lihk4rgqEhCy1WwxLfTgNDo83VvDYkQ==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@vue/devtools-shared': 7.0.25 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + vue: 3.4.21(typescript@5.4.3) + + /@vue/devtools-shared@7.0.25: + resolution: {integrity: sha512-5+XYhcHSXuJSguYnNwL6/e6VTmXwCfryWQOkffh9ZU2zMByybqqqBrMWqvBkqTmMFCjPdzulo66xXbVbwLaElQ==} + dependencies: + rfdc: 1.3.1 + + /@vue/devtools-ui@7.0.25(@unocss/reset@0.58.3)(floating-vue@5.2.2)(unocss@0.58.3)(vue@3.4.21): + resolution: {integrity: sha512-OxcwecnKmKm/zIG/VSixRgSqzjRU9UFld26LIq8kunxvr4zswjHT2xHMb/iauBC2c9TNo8Uk5muUTFLmNbYwnA==} + peerDependencies: + '@unocss/reset': '>=0.50.0-0' + floating-vue: '>=2.0.0-0' + unocss: '>=0.50.0-0' + vue: '>=3.0.0-0' + dependencies: + '@unocss/reset': 0.58.3 + '@vueuse/components': 10.9.0(vue@3.4.21) + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.21) + colord: 2.9.3 + floating-vue: 5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21) + focus-trap: 7.5.4 + unocss: 0.58.3(postcss@8.4.33)(rollup@3.29.4)(vite@5.2.6) + vue: 3.4.21(typescript@5.4.3) + transitivePeerDependencies: + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + + /@vue/language-core@1.8.27(typescript@5.4.3): resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} peerDependencies: typescript: '*' @@ -3268,79 +3844,101 @@ packages: minimatch: 9.0.3 muggle-string: 0.3.1 path-browserify: 1.0.1 - typescript: 5.3.3 + typescript: 5.4.3 vue-template-compiler: 2.7.16 dev: true - /@vue/reactivity@3.4.15: - resolution: {integrity: sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==} + /@vue/reactivity@3.4.21: + resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} dependencies: - '@vue/shared': 3.4.15 + '@vue/shared': 3.4.21 - /@vue/runtime-core@3.4.15: - resolution: {integrity: sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==} + /@vue/runtime-core@3.4.21: + resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} dependencies: - '@vue/reactivity': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/reactivity': 3.4.21 + '@vue/shared': 3.4.21 - /@vue/runtime-dom@3.4.15: - resolution: {integrity: sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==} + /@vue/runtime-dom@3.4.21: + resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} dependencies: - '@vue/runtime-core': 3.4.15 - '@vue/shared': 3.4.15 + '@vue/runtime-core': 3.4.21 + '@vue/shared': 3.4.21 csstype: 3.1.3 - /@vue/server-renderer@3.4.15(vue@3.4.15): - resolution: {integrity: sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==} + /@vue/server-renderer@3.4.21(vue@3.4.21): + resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} peerDependencies: - vue: 3.4.15 + vue: 3.4.21 dependencies: - '@vue/compiler-ssr': 3.4.15 - '@vue/shared': 3.4.15 - vue: 3.4.15(typescript@5.3.3) - - /@vue/shared@3.4.10: - resolution: {integrity: sha512-C0mIVhwW1xQLMFyqMJxnhq6fWyE02lCgcE+TDdtGpg6B3H6kh/0YcqS54qYc76UJNlWegf3VgsLqgk6D9hBmzQ==} + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + vue: 3.4.21(typescript@5.4.3) /@vue/shared@3.4.15: resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} - /@vueuse/core@10.7.1(vue@3.4.15): + /@vue/shared@3.4.21: + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} + + /@vueuse/components@10.9.0(vue@3.4.21): + resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/shared': 10.9.0(vue@3.4.21) + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@vueuse/core@10.7.1(vue@3.4.21): resolution: {integrity: sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==} dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.7.1 - '@vueuse/shared': 10.7.1(vue@3.4.15) - vue-demi: 0.14.6(vue@3.4.15) + '@vueuse/shared': 10.7.1(vue@3.4.21) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue + dev: false - /@vueuse/core@10.7.2(vue@3.4.15): + /@vueuse/core@10.7.2(vue@3.4.21): resolution: {integrity: sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==} dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.7.2 - '@vueuse/shared': 10.7.2(vue@3.4.15) - vue-demi: 0.14.6(vue@3.4.15) + '@vueuse/shared': 10.7.2(vue@3.4.21) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/head@2.0.0(vue@3.4.15): + /@vueuse/core@10.9.0(vue@3.4.21): + resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.4.21) + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@vueuse/head@2.0.0(vue@3.4.21): resolution: {integrity: sha512-ykdOxTGs95xjD4WXE4na/umxZea2Itl0GWBILas+O4oqS7eXIods38INvk3XkJKjqMdWPcpCyLX/DioLQxU1KA==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/dom': 1.8.9 - '@unhead/schema': 1.8.9 - '@unhead/ssr': 1.8.9 - '@unhead/vue': 1.8.9(vue@3.4.15) - vue: 3.4.15(typescript@5.3.3) + '@unhead/dom': 1.8.10 + '@unhead/schema': 1.8.10 + '@unhead/ssr': 1.8.10 + '@unhead/vue': 1.8.10(vue@3.4.21) + vue: 3.4.21(typescript@5.4.3) dev: true - /@vueuse/integrations@10.7.1(focus-trap@7.5.4)(vue@3.4.15): + /@vueuse/integrations@10.7.1(focus-trap@7.5.4)(vue@3.4.21): resolution: {integrity: sha512-cKo5LEeKVHdBRBtMTOrDPdR0YNtrmN9IBfdcnY2P3m5LHVrsD0xiHUtAH1WKjHQRIErZG6rJUa6GA4tWZt89Og==} peerDependencies: async-validator: '*' @@ -3381,16 +3979,16 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.7.1(vue@3.4.15) - '@vueuse/shared': 10.7.1(vue@3.4.15) + '@vueuse/core': 10.7.1(vue@3.4.21) + '@vueuse/shared': 10.7.1(vue@3.4.21) focus-trap: 7.5.4 - vue-demi: 0.14.6(vue@3.4.15) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/integrations@10.7.2(fuse.js@6.6.2)(vue@3.4.15): + /@vueuse/integrations@10.7.2(fuse.js@6.6.2)(vue@3.4.21): resolution: {integrity: sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==} peerDependencies: async-validator: '*' @@ -3431,20 +4029,69 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.7.2(vue@3.4.15) - '@vueuse/shared': 10.7.2(vue@3.4.15) + '@vueuse/core': 10.7.2(vue@3.4.21) + '@vueuse/shared': 10.7.2(vue@3.4.21) fuse.js: 6.6.2 - vue-demi: 0.14.6(vue@3.4.15) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/math@10.7.2(vue@3.4.15): + /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.21): + resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/shared': 10.9.0(vue@3.4.21) + focus-trap: 7.5.4 + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@vueuse/math@10.7.2(vue@3.4.21): resolution: {integrity: sha512-Z1h/kdW5f4c/v/QOpWFFaEx4UaIt7xQTxoDnxQAx1gHGHpGYTtBlQHm80zrRodCz0auyBZMkALkCgKinzGggXw==} dependencies: - '@vueuse/shared': 10.7.2(vue@3.4.15) - vue-demi: 0.14.6(vue@3.4.15) + '@vueuse/shared': 10.7.2(vue@3.4.21) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -3452,47 +4099,79 @@ packages: /@vueuse/metadata@10.7.1: resolution: {integrity: sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==} + dev: false /@vueuse/metadata@10.7.2: resolution: {integrity: sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==} dev: false - /@vueuse/nuxt@10.7.1(nuxt@3.9.3)(rollup@3.29.4)(vue@3.4.15): + /@vueuse/metadata@10.9.0: + resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} + + /@vueuse/nuxt@10.7.1(nuxt@3.11.1)(rollup@3.29.4)(vue@3.4.21): resolution: {integrity: sha512-/cPFPIUusKS6y0J16xBJ08OOXdfPUEkQBF9+/eIaG/ZIGuUYyRENZuGLj+V8BArP8uzH+EY6SWQXhT1lWw6Q+A==} peerDependencies: nuxt: ^3.0.0 dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) - '@vueuse/core': 10.7.1(vue@3.4.15) + '@nuxt/kit': 3.11.1(rollup@3.29.4) + '@vueuse/core': 10.7.1(vue@3.4.21) '@vueuse/metadata': 10.7.1 local-pkg: 0.5.0 - nuxt: 3.9.3(eslint@8.56.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.0.11) - vue-demi: 0.14.6(vue@3.4.15) + nuxt: 3.11.1(@unocss/reset@0.58.3)(eslint@8.56.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.3)(unocss@0.58.3)(vite@5.2.6) + vue-demi: 0.14.6(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - rollup + - supports-color + - vue + dev: false + + /@vueuse/nuxt@10.9.0(nuxt@3.11.1)(rollup@3.29.4)(vue@3.4.21): + resolution: {integrity: sha512-nC4Efg28Q6E41fUD5R+zM9uT5c+NfaDzaJCpqaEV/qHj+/BNJmkDBK8POLIUsiVOY35d0oD/YxZ+eVizqWBZow==} + peerDependencies: + nuxt: ^3.0.0 + dependencies: + '@nuxt/kit': 3.11.1(rollup@3.29.4) + '@vueuse/core': 10.9.0(vue@3.4.21) + '@vueuse/metadata': 10.9.0 + local-pkg: 0.5.0 + nuxt: 3.11.1(@unocss/reset@0.58.3)(eslint@8.56.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.3)(unocss@0.58.3)(vite@5.2.6) + vue-demi: 0.14.7(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - rollup - supports-color - vue + dev: true - /@vueuse/shared@10.7.1(vue@3.4.15): + /@vueuse/shared@10.7.1(vue@3.4.21): resolution: {integrity: sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==} dependencies: - vue-demi: 0.14.6(vue@3.4.15) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue + dev: false - /@vueuse/shared@10.7.2(vue@3.4.15): + /@vueuse/shared@10.7.2(vue@3.4.21): resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==} dependencies: - vue-demi: 0.14.6(vue@3.4.15) + vue-demi: 0.14.6(vue@3.4.21) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@webassemblyjs/ast@1.11.6: - resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} + /@vueuse/shared@10.9.0(vue@3.4.21): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + dependencies: + vue-demi: 0.14.7(vue@3.4.21) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@webassemblyjs/ast@1.12.1: + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 @@ -3506,8 +4185,8 @@ packages: resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} dev: false - /@webassemblyjs/helper-buffer@1.11.6: - resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} + /@webassemblyjs/helper-buffer@1.12.1: + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} dev: false /@webassemblyjs/helper-numbers@1.11.6: @@ -3522,13 +4201,13 @@ packages: resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} dev: false - /@webassemblyjs/helper-wasm-section@1.11.6: - resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} + /@webassemblyjs/helper-wasm-section@1.12.1: + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 dev: false /@webassemblyjs/ieee754@1.11.6: @@ -3547,42 +4226,42 @@ packages: resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} dev: false - /@webassemblyjs/wasm-edit@1.11.6: - resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} + /@webassemblyjs/wasm-edit@1.12.1: + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-opt': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 - '@webassemblyjs/wast-printer': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 dev: false - /@webassemblyjs/wasm-gen@1.11.6: - resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} + /@webassemblyjs/wasm-gen@1.12.1: + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} dependencies: - '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/ieee754': 1.11.6 '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 dev: false - /@webassemblyjs/wasm-opt@1.11.6: - resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} + /@webassemblyjs/wasm-opt@1.12.1: + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 dev: false - /@webassemblyjs/wasm-parser@1.11.6: - resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} + /@webassemblyjs/wasm-parser@1.12.1: + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} dependencies: - '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/ieee754': 1.11.6 @@ -3590,10 +4269,10 @@ packages: '@webassemblyjs/utf8': 1.11.6 dev: false - /@webassemblyjs/wast-printer@1.11.6: - resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} + /@webassemblyjs/wast-printer@1.12.1: + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} dependencies: - '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 dev: false @@ -3612,6 +4291,12 @@ packages: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -3628,6 +4313,13 @@ packages: acorn: 8.11.3 dev: false + /acorn-import-attributes@1.9.4(acorn@8.11.3): + resolution: {integrity: sha512-dNIX/5UEnZvVL94dV2scl4VIooK36D8AteP4xiz7cPKhDbhLhSuWkzG580g+Q7TXJklp+Z21SiaK7/HpLO84Qg==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -3705,6 +4397,7 @@ packages: /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} + requiresBuild: true dependencies: color-convert: 1.9.3 @@ -3736,28 +4429,29 @@ packages: /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - /archiver-utils@4.0.1: - resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} - engines: {node: '>= 12.0.0'} + /archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} dependencies: - glob: 8.1.0 + glob: 10.3.10 graceful-fs: 4.2.11 + is-stream: 2.0.1 lazystream: 1.0.1 lodash: 4.17.21 normalize-path: 3.0.0 - readable-stream: 3.6.2 + readable-stream: 4.5.2 - /archiver@6.0.1: - resolution: {integrity: sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ==} - engines: {node: '>= 12.0.0'} + /archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} dependencies: - archiver-utils: 4.0.1 + archiver-utils: 5.0.2 async: 3.2.5 - buffer-crc32: 0.2.13 - readable-stream: 3.6.2 + buffer-crc32: 1.0.0 + readable-stream: 4.5.2 readdir-glob: 1.1.3 tar-stream: 3.1.6 - zip-stream: 5.0.1 + zip-stream: 6.0.1 /are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} @@ -3827,21 +4521,36 @@ packages: engines: {node: '>= 4.0.0'} dev: false - /autoprefixer@10.4.17(postcss@8.4.33): - resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} + /autoprefixer@10.4.19(postcss@8.4.33): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.22.2 - caniuse-lite: 1.0.30001579 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001600 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 postcss: 8.4.33 postcss-value-parser: 4.2.0 + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001600 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + /b4a@1.6.4: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} @@ -3859,11 +4568,11 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false /big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} + dev: true /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} @@ -3876,6 +4585,10 @@ packages: /birpc@0.2.14: resolution: {integrity: sha512-37FHE8rqsYM5JEKCnXFyHpBCzvgHEExwVVTq+nUmloInU7l8ezD1TpOhKpS8oe1DTYFqEK27rFZVKG43oTqXRA==} + dev: false + + /birpc@0.2.17: + resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} /blob-to-buffer@1.2.9: resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} @@ -3889,6 +4602,7 @@ packages: engines: {node: '>= 5.10.0'} dependencies: big-integer: 1.6.52 + dev: true /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -3923,12 +4637,29 @@ packages: node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) - /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001600 + electron-to-chromium: 1.4.720 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) + + /buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -3936,18 +4667,41 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.4 + semver: 7.6.0 /bundle-name@3.0.0: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} dependencies: run-applescript: 5.0.0 + dev: true - /c12@1.6.1: - resolution: {integrity: sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==} + /bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} dependencies: - chokidar: 3.5.3 + run-applescript: 7.0.0 + + /c12@1.10.0: + resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} + dependencies: + chokidar: 3.6.0 + confbox: 0.1.3 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.1 + jiti: 1.21.0 + mlly: 1.6.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + rc9: 2.1.1 + + /c12@1.6.1: + resolution: {integrity: sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==} + dependencies: + chokidar: 3.5.3 defu: 6.1.4 dotenv: 16.3.1 giget: 1.2.1 @@ -4008,16 +4762,16 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001576 + caniuse-lite: 1.0.30001579 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - /caniuse-lite@1.0.30001576: - resolution: {integrity: sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==} - /caniuse-lite@1.0.30001579: resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} + /caniuse-lite@1.0.30001600: + resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: true @@ -4038,6 +4792,7 @@ packages: /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} + requiresBuild: true dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 @@ -4116,6 +4871,20 @@ packages: optionalDependencies: fsevents: 2.3.3 + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -4147,18 +4916,15 @@ packages: dependencies: consola: 3.2.3 + /citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + dependencies: + consola: 3.2.3 + /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - /clear-module@4.1.2: - resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} - engines: {node: '>=8'} - dependencies: - parent-module: 2.0.0 - resolve-from: 5.0.0 - dev: false - /clear@0.1.0: resolution: {integrity: sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==} @@ -4194,6 +4960,7 @@ packages: /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + requiresBuild: true dependencies: color-name: 1.1.3 @@ -4205,6 +4972,7 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + requiresBuild: true /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -4246,14 +5014,15 @@ packages: /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - /compress-commons@5.0.1: - resolution: {integrity: sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag==} - engines: {node: '>= 12.0.0'} + /compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} dependencies: crc-32: 1.2.2 - crc32-stream: 5.0.0 + crc32-stream: 6.0.0 + is-stream: 2.0.1 normalize-path: 3.0.0 - readable-stream: 3.6.2 + readable-stream: 4.5.2 /computeds@0.0.1: resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} @@ -4262,6 +5031,9 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /confbox@0.1.3: + resolution: {integrity: sha512-eH3ZxAihl1PhKfpr4VfEN6/vUd87fmgb6JkldHgg/YR6aEBhW63qUDgzP2Y6WM0UumdsYp5H3kibalXAdHfbgg==} + /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -4307,16 +5079,24 @@ packages: engines: {node: '>=0.8'} hasBin: true - /crc32-stream@5.0.0: - resolution: {integrity: sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw==} - engines: {node: '>= 12.0.0'} + /crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} dependencies: crc-32: 1.2.2 - readable-stream: 3.6.2 + readable-stream: 4.5.2 /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + /croner@8.0.1: + resolution: {integrity: sha512-Hq1+lXVgjJjcS/U+uk6+yVmtxami0r0b+xVtlGyABgdz110l/kOnHWvlSI7nVzrTl8GCdZHwZS4pbBFT7hSL/g==} + engines: {node: '>=18.0'} + + /cronstrue@2.48.0: + resolution: {integrity: sha512-w+VAWjiBJmKYeeK+i0ur3G47LcKNgFuWwb8LVJTaXSS2ExtQ5zdiIVnuysgB3N457gTaSllme0qTpdsJWK/wIg==} + hasBin: true + /cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} dependencies: @@ -4333,6 +5113,14 @@ packages: shebang-command: 2.0.0 which: 2.0.2 + /crossws@0.2.4: + resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} + peerDependencies: + uWebSockets.js: '*' + peerDependenciesMeta: + uWebSockets.js: + optional: true + /css-background-parser@0.1.0: resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} dev: false @@ -4353,6 +5141,15 @@ packages: postcss: ^8.0.9 dependencies: postcss: 8.4.33 + dev: true + + /css-declaration-sorter@7.2.0(postcss@8.4.38): + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.38 /css-inline@0.11.2: resolution: {integrity: sha512-c/oie5Yqa2lVRwUO7A8nd3c3r0x7yE6MQH2PPB/R1LaUb6ohZD7vNXj23fod5y4QNsNhsQi98/AWfUwo1K6R7g==} @@ -4393,10 +5190,6 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - /css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - dev: true - /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -4438,6 +5231,45 @@ packages: postcss-reduce-transforms: 6.0.1(postcss@8.4.33) postcss-svgo: 6.0.2(postcss@8.4.33) postcss-unique-selectors: 6.0.2(postcss@8.4.33) + dev: true + + /cssnano-preset-default@6.1.2(postcss@8.4.38): + resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + css-declaration-sorter: 7.2.0(postcss@8.4.38) + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-calc: 9.0.1(postcss@8.4.38) + postcss-colormin: 6.1.0(postcss@8.4.38) + postcss-convert-values: 6.1.0(postcss@8.4.38) + postcss-discard-comments: 6.0.2(postcss@8.4.38) + postcss-discard-duplicates: 6.0.3(postcss@8.4.38) + postcss-discard-empty: 6.0.3(postcss@8.4.38) + postcss-discard-overridden: 6.0.2(postcss@8.4.38) + postcss-merge-longhand: 6.0.5(postcss@8.4.38) + postcss-merge-rules: 6.1.1(postcss@8.4.38) + postcss-minify-font-values: 6.1.0(postcss@8.4.38) + postcss-minify-gradients: 6.0.3(postcss@8.4.38) + postcss-minify-params: 6.1.0(postcss@8.4.38) + postcss-minify-selectors: 6.0.4(postcss@8.4.38) + postcss-normalize-charset: 6.0.2(postcss@8.4.38) + postcss-normalize-display-values: 6.0.2(postcss@8.4.38) + postcss-normalize-positions: 6.0.2(postcss@8.4.38) + postcss-normalize-repeat-style: 6.0.2(postcss@8.4.38) + postcss-normalize-string: 6.0.2(postcss@8.4.38) + postcss-normalize-timing-functions: 6.0.2(postcss@8.4.38) + postcss-normalize-unicode: 6.1.0(postcss@8.4.38) + postcss-normalize-url: 6.0.2(postcss@8.4.38) + postcss-normalize-whitespace: 6.0.2(postcss@8.4.38) + postcss-ordered-values: 6.0.2(postcss@8.4.38) + postcss-reduce-initial: 6.1.0(postcss@8.4.38) + postcss-reduce-transforms: 6.0.2(postcss@8.4.38) + postcss-svgo: 6.0.3(postcss@8.4.38) + postcss-unique-selectors: 6.0.4(postcss@8.4.38) /cssnano-utils@4.0.1(postcss@8.4.33): resolution: {integrity: sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==} @@ -4446,6 +5278,15 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.33 + dev: true + + /cssnano-utils@4.0.2(postcss@8.4.38): + resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 /cssnano@6.0.3(postcss@8.4.33): resolution: {integrity: sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==} @@ -4456,6 +5297,17 @@ packages: cssnano-preset-default: 6.0.3(postcss@8.4.33) lilconfig: 3.0.0 postcss: 8.4.33 + dev: true + + /cssnano@6.1.2(postcss@8.4.38): + resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-preset-default: 6.1.2(postcss@8.4.38) + lilconfig: 3.1.1 + postcss: 8.4.38 /csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} @@ -4466,6 +5318,20 @@ packages: /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + /db0@0.1.4: + resolution: {integrity: sha512-Ft6eCwONYxlwLjBXSJxw0t0RYtA5gW9mq8JfBXn9TtC0nDPlqePAhpv9v4g9aONBi6JI1OXHTKKkUYGd+BOrCA==} + peerDependencies: + '@libsql/client': ^0.5.2 + better-sqlite3: ^9.4.3 + drizzle-orm: ^0.29.4 + peerDependenciesMeta: + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true + /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true @@ -4532,6 +5398,11 @@ packages: dependencies: bplist-parser: 0.2.0 untildify: 4.0.0 + dev: true + + /default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} /default-browser@4.0.0: resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} @@ -4541,6 +5412,14 @@ packages: default-browser-id: 3.0.0 execa: 7.2.0 titleize: 3.0.0 + dev: true + + /default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -4574,8 +5453,8 @@ packages: engines: {node: '>=6'} dev: true - /destr@2.0.2: - resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} + /destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} @@ -4615,8 +5494,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} /dir-glob@3.0.1: @@ -4667,6 +5546,10 @@ packages: resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} engines: {node: '>=12'} + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -4679,6 +5562,9 @@ packages: /electron-to-chromium@1.4.628: resolution: {integrity: sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw==} + /electron-to-chromium@1.4.720: + resolution: {integrity: sha512-5zwcKNkOj3GN0jBzpcpGonNPkn667VJpQwRYWdo/TiJEHTQswZyA/vALhZFiAXgL5NuK9UarX1tbdvXu3hG6Yw==} + /emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} dev: false @@ -4734,6 +5620,14 @@ packages: graceful-fs: 4.2.11 tapable: 2.2.1 + /enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: false + /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -4782,6 +5676,36 @@ packages: '@esbuild/win32-ia32': 0.19.11 '@esbuild/win32-x64': 0.19.11 + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -4792,6 +5716,7 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + requiresBuild: true /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -4941,10 +5866,13 @@ packages: through: 2.3.8 dev: false + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - dev: false /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} @@ -4999,9 +5927,9 @@ packages: resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} dependencies: enhanced-resolve: 5.15.0 - mlly: 1.5.0 + mlly: 1.6.1 pathe: 1.1.2 - ufo: 1.3.2 + ufo: 1.5.3 /fake-indexeddb@5.0.2: resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==} @@ -5082,11 +6010,27 @@ packages: /flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + /floating-vue@5.2.2(@nuxt/kit@3.11.1)(vue@3.4.21): + resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} + peerDependencies: + '@nuxt/kit': ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@floating-ui/dom': 1.1.1 + '@nuxt/kit': 3.11.1(rollup@3.29.4) + vue: 3.4.21(typescript@5.4.3) + vue-resize: 2.0.0-alpha.1(vue@3.4.21) + /focus-trap@7.5.4: resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} dependencies: tabbable: 6.2.0 - dev: false /fontaine@0.4.1: resolution: {integrity: sha512-Ps7KS0xFkbeZWa+ynuNQncHYz6j7gs6+SXcWWeA7+HCeidXTnIQNryCuUxQdjxBwmRBY0Or998brldt4WFwfcQ==} @@ -5096,7 +6040,7 @@ packages: magic-regexp: 0.7.0 magic-string: 0.30.5 pathe: 1.1.2 - ufo: 1.3.2 + ufo: 1.5.3 unplugin: 1.6.0 transitivePeerDependencies: - encoding @@ -5362,13 +6306,24 @@ packages: slash: 5.1.0 unicorn-magic: 0.1.0 + /globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + engines: {node: '>=18'} + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.0 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + /google-fonts-helper@3.4.1: resolution: {integrity: sha512-unq9c1NF771916DrVR2MTpMJ5iHiMSjMBApErjhWT1FZIE+7x+Qik+w6cYi5jw/KtHELz+tyGAKgQetTU9wrlA==} dependencies: deepmerge: 4.3.1 hookable: 5.5.3 ofetch: 1.3.3 - ufo: 1.3.2 + ufo: 1.5.3 dev: false /graceful-fs@4.2.11: @@ -5382,7 +6337,6 @@ packages: engines: {node: '>=10'} dependencies: duplexer: 0.1.2 - dev: false /gzip-size@7.0.0: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} @@ -5390,32 +6344,35 @@ packages: dependencies: duplexer: 0.1.2 - /h3@1.10.0: - resolution: {integrity: sha512-Tw1kcIC+AeimwRmviiObaD5EB430Yt+lTgOxLJxNr96Vd/fGRu04EF7aKfOAcpwKCI+U2JlbxOLhycD86p3Ciw==} + /h3@1.11.1: + resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} dependencies: cookie-es: 1.0.0 + crossws: 0.2.4 defu: 6.1.4 - destr: 2.0.2 + destr: 2.0.3 iron-webcrypto: 1.0.0 - radix3: 1.1.0 - ufo: 1.3.2 + ohash: 1.1.3 + radix3: 1.1.2 + ufo: 1.5.3 uncrypto: 0.1.3 unenv: 1.9.0 + transitivePeerDependencies: + - uWebSockets.js - /happy-dom@13.1.4: - resolution: {integrity: sha512-f8STa4iuJcpXn7YjgqBEemzinyPAdjlHMxlCNbIERdRIjJO9Z9Cj3XW5LuiEhsURFfl0AOWqj0hQitme4gq+Gg==} + /happy-dom@13.10.1: + resolution: {integrity: sha512-9GZLEFvQL5EgfJX2zcBgu1nsPUn98JF/EiJnSfQbdxI6YEQGqpd09lXXxOmYonRBIEFz9JlGCOiPflDzgS1p8w==} + engines: {node: '>=16.0.0'} dependencies: - css.escape: 1.5.1 entities: 4.5.0 - iconv-lite: 0.6.3 webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 dev: true /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + requiresBuild: true /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -5448,11 +6405,11 @@ packages: /hast-util-from-parse5@8.0.1: resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/unist': 3.0.2 devlop: 1.1.0 hastscript: 8.0.0 - property-information: 6.4.0 + property-information: 6.4.1 vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 @@ -5461,25 +6418,25 @@ packages: /hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 dev: true /hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 dev: true /hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 dev: true /hast-util-raw@9.0.1: resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/unist': 3.0.2 '@ungap/structured-clone': 1.2.0 hast-util-from-parse5: 8.0.1 @@ -5497,10 +6454,10 @@ packages: /hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 6.4.0 + property-information: 6.4.1 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -5509,16 +6466,16 @@ packages: /hast-util-to-string@3.0.0: resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 dev: true /hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 6.4.0 + property-information: 6.4.1 space-separated-tokens: 2.0.2 dev: true @@ -5640,8 +6597,13 @@ packages: /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: safer-buffer: 2.1.2 + optional: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} /ignore-walk@6.0.4: resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} @@ -5653,6 +6615,10 @@ packages: resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + /image-meta@0.2.0: resolution: {integrity: sha512-ZBGjl0ZMEMeOC3Ns0wUF/5UdUmr3qQhBSCniT0LxOgGGIRHiNFOkMtIHB7EOznRU47V2AxPgiVP+s+0/UCU0Hg==} @@ -5834,9 +6800,6 @@ packages: resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==} engines: {node: '>=0.10.0'} - /is-promise@4.0.0: - resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - /is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: @@ -5906,6 +6869,7 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + requiresBuild: true /js-tokens@8.0.2: resolution: {integrity: sha512-Olnt+V7xYdvGze9YTbGFZIfQXuGV4R3nQwwl8BrtgaPE/wq8UFpUHWuTNc05saowhSr1ZO6tx+V6RjE9D5YQog==} @@ -5994,6 +6958,10 @@ packages: /knitwork@1.0.0: resolution: {integrity: sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==} + /knitwork@1.1.0: + resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} + dev: false + /koa-compose@4.1.0: resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} dev: false @@ -6097,6 +7065,10 @@ packages: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + /linebreak@1.1.0: resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==} dependencies: @@ -6107,27 +7079,30 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /listhen@1.5.6: - resolution: {integrity: sha512-gTpEJhT5L85L0bFgmu+Boqu5rP4DwDtEb4Exq5gdQUxWRwx4jbzdInZkmyLONo5EwIcQB0k7ZpWlpCDPdL77EQ==} + /listhen@1.7.2: + resolution: {integrity: sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g==} hasBin: true dependencies: - '@parcel/watcher': 2.3.0 - '@parcel/watcher-wasm': 2.3.0 - citty: 0.1.5 + '@parcel/watcher': 2.4.1 + '@parcel/watcher-wasm': 2.4.1 + citty: 0.1.6 clipboardy: 4.0.0 consola: 3.2.3 + crossws: 0.2.4 defu: 6.1.4 get-port-please: 3.1.2 - h3: 1.10.0 + h3: 1.11.1 http-shutdown: 1.2.2 jiti: 1.21.0 - mlly: 1.4.2 + mlly: 1.6.1 node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.7.0 - ufo: 1.3.2 + ufo: 1.5.3 untun: 0.1.3 uqr: 0.1.2 + transitivePeerDependencies: + - uWebSockets.js /loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} @@ -6142,7 +7117,7 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} dependencies: - mlly: 1.4.2 + mlly: 1.5.0 pkg-types: 1.0.3 /locate-path@6.0.0: @@ -6158,9 +7133,6 @@ packages: /lodash.castarray@4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - /lodash.defaults@4.2.0: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} @@ -6176,9 +7148,6 @@ packages: /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - /lodash.pick@4.4.0: - resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} - /lodash.template@4.5.0: resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} dependencies: @@ -6212,6 +7181,10 @@ packages: resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} engines: {node: 14 || >=16.14} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -6228,9 +7201,9 @@ packages: dependencies: estree-walker: 3.0.3 magic-string: 0.30.5 - mlly: 1.4.2 + mlly: 1.5.0 type-level-regexp: 0.1.17 - ufo: 1.3.2 + ufo: 1.5.3 unplugin: 1.6.0 dev: false @@ -6238,7 +7211,7 @@ packages: resolution: {integrity: sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==} engines: {node: '>=16.14.0'} dependencies: - magic-string: 0.30.5 + magic-string: 0.30.8 /magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} @@ -6246,8 +7219,14 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - /magicast@0.3.2: - resolution: {integrity: sha512-Fjwkl6a0syt9TFN0JSYpOybxiMCkYNEeOTnOTNRbjphirLakznZXAqrXgj/7GG3D1dvETONNwrBfinvAbpunDg==} + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + /magicast@0.3.3: + resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} dependencies: '@babel/parser': 7.23.6 '@babel/types': 7.23.6 @@ -6396,7 +7375,7 @@ packages: /mdast-util-to-hast@13.1.0: resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/mdast': 4.0.3 '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 @@ -6583,7 +7562,7 @@ packages: resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} dependencies: micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 dev: true @@ -6595,6 +7574,13 @@ packages: micromark-util-types: 2.0.0 dev: true + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + /micromark-util-chunked@2.0.0: resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} dependencies: @@ -6626,7 +7612,7 @@ packages: resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} dependencies: decode-named-character-reference: 1.0.2 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 dev: true @@ -6729,6 +7715,11 @@ packages: engines: {node: '>=10.0.0'} hasBin: true + /mime@4.0.1: + resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} + engines: {node: '>=16'} + hasBin: true + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -6828,6 +7819,12 @@ packages: minipass: 3.3.6 yallist: 4.0.0 + /mitt@2.1.0: + resolution: {integrity: sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==} + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -6840,7 +7837,7 @@ packages: engines: {node: '>=10'} hasBin: true - /mkdist@1.4.0(typescript@5.3.3): + /mkdist@1.4.0(typescript@5.4.3): resolution: {integrity: sha512-LzzdzWDx6cWWPd8saIoO+kT5jnbijfeDaE6jZfmCYEi3YL2aJSyF23/tCFee/mDuh/ek1UQeSYdLeSa6oesdiw==} hasBin: true peerDependencies: @@ -6852,7 +7849,7 @@ packages: typescript: optional: true dependencies: - autoprefixer: 10.4.17(postcss@8.4.33) + autoprefixer: 10.4.19(postcss@8.4.33) citty: 0.1.5 cssnano: 6.0.3(postcss@8.4.33) defu: 6.1.4 @@ -6865,7 +7862,7 @@ packages: pathe: 1.1.2 postcss: 8.4.33 postcss-nested: 6.0.1(postcss@8.4.33) - typescript: 5.3.3 + typescript: 5.4.3 dev: true /mlly@1.4.2: @@ -6874,7 +7871,7 @@ packages: acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.0.3 - ufo: 1.3.2 + ufo: 1.5.3 /mlly@1.5.0: resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} @@ -6882,7 +7879,15 @@ packages: acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.0.3 - ufo: 1.3.2 + ufo: 1.5.3 + + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.5.3 /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -6922,9 +7927,6 @@ packages: engines: {node: ^14 || ^16 || >=18} hasBin: true - /napi-wasm@1.1.0: - resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -6936,8 +7938,8 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: false - /nitropack@2.8.1: - resolution: {integrity: sha512-pODv2kEEzZSDQR+1UMXbGyNgMedUDq/qUomtiAnQKQvLy52VGlecXO1xDfH3i0kP1yKEcKTnWsx1TAF5gHM7xQ==} + /nitropack@2.9.5: + resolution: {integrity: sha512-ClanSILi9O6HX95QNIC+TwxojpRpOSn9n3e3wmHExAHhLN5HdnHGmHN4LwtJdE2p91nse3kDULOTR7k1xRVJ/g==} engines: {node: ^16.11.0 || >=17.0.0} hasBin: true peerDependencies: @@ -6946,70 +7948,73 @@ packages: xml2js: optional: true dependencies: - '@cloudflare/kv-asset-handler': 0.3.0 - '@netlify/functions': 2.4.1 - '@rollup/plugin-alias': 5.1.0(rollup@4.9.4) - '@rollup/plugin-commonjs': 25.0.7(rollup@4.9.4) - '@rollup/plugin-inject': 5.0.5(rollup@4.9.4) - '@rollup/plugin-json': 6.1.0(rollup@4.9.4) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.9.4) - '@rollup/plugin-replace': 5.0.5(rollup@4.9.4) - '@rollup/plugin-terser': 0.4.4(rollup@4.9.4) - '@rollup/plugin-wasm': 6.2.2(rollup@4.9.4) - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) + '@cloudflare/kv-asset-handler': 0.3.1 + '@netlify/functions': 2.6.0 + '@rollup/plugin-alias': 5.1.0(rollup@4.13.2) + '@rollup/plugin-commonjs': 25.0.7(rollup@4.13.2) + '@rollup/plugin-inject': 5.0.5(rollup@4.13.2) + '@rollup/plugin-json': 6.1.0(rollup@4.13.2) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.13.2) + '@rollup/plugin-replace': 5.0.5(rollup@4.13.2) + '@rollup/plugin-terser': 0.4.4(rollup@4.13.2) + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) '@types/http-proxy': 1.17.14 - '@vercel/nft': 0.24.4 - archiver: 6.0.1 - c12: 1.6.1 + '@vercel/nft': 0.26.4 + archiver: 7.0.1 + c12: 1.10.0 chalk: 5.3.0 - chokidar: 3.5.3 - citty: 0.1.5 + chokidar: 3.6.0 + citty: 0.1.6 consola: 3.2.3 cookie-es: 1.0.0 + croner: 8.0.1 + crossws: 0.2.4 + db0: 0.1.4 defu: 6.1.4 - destr: 2.0.2 + destr: 2.0.3 dot-prop: 8.0.2 - esbuild: 0.19.11 + esbuild: 0.20.2 escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 etag: 1.8.1 fs-extra: 11.2.0 - globby: 14.0.0 + globby: 14.0.1 gzip-size: 7.0.0 - h3: 1.10.0 + h3: 1.11.1 hookable: 5.5.3 httpxy: 0.1.5 + ioredis: 5.3.2 is-primitive: 3.0.1 jiti: 1.21.0 klona: 2.0.6 knitwork: 1.0.0 - listhen: 1.5.6 - magic-string: 0.30.5 - mime: 3.0.0 - mlly: 1.5.0 + listhen: 1.7.2 + magic-string: 0.30.8 + mime: 4.0.1 + mlly: 1.6.1 mri: 1.2.0 - node-fetch-native: 1.6.1 - ofetch: 1.3.3 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 ohash: 1.1.3 - openapi-typescript: 6.7.3 + openapi-typescript: 6.7.5 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 pretty-bytes: 6.1.1 - radix3: 1.1.0 - rollup: 4.9.4 - rollup-plugin-visualizer: 5.12.0(rollup@4.9.4) - scule: 1.2.0 - semver: 7.5.4 + radix3: 1.1.2 + rollup: 4.13.2 + rollup-plugin-visualizer: 5.12.0(rollup@4.13.2) + scule: 1.3.0 + semver: 7.6.0 serve-placeholder: 2.0.1 serve-static: 1.15.0 std-env: 3.7.0 - ufo: 1.3.2 + ufo: 1.5.3 uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.9.0 - unimport: 3.7.1(rollup@4.9.4) - unstorage: 1.10.1 + unimport: 3.7.1(rollup@4.13.2) + unstorage: 1.10.2(ioredis@5.3.2) + unwasm: 0.3.8 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7018,13 +8023,17 @@ packages: - '@azure/keyvault-secrets' - '@azure/storage-blob' - '@capacitor/preferences' + - '@libsql/client' - '@netlify/blobs' - '@planetscale/database' - '@upstash/redis' - '@vercel/kv' + - better-sqlite3 + - drizzle-orm - encoding - idb-keyval - supports-color + - uWebSockets.js /node-addon-api@7.0.0: resolution: {integrity: sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==} @@ -7042,6 +8051,9 @@ packages: /node-fetch-native@1.6.1: resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==} + /node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + /node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -7073,7 +8085,7 @@ packages: make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 - semver: 7.5.4 + semver: 7.6.0 tar: 6.2.0 which: 4.0.0 transitivePeerDependencies: @@ -7102,7 +8114,7 @@ packages: dependencies: hosted-git-info: 7.0.1 is-core-module: 2.13.1 - semver: 7.5.4 + semver: 7.6.0 validate-npm-package-license: 3.0.4 /normalize-path@3.0.0: @@ -7123,7 +8135,7 @@ packages: resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.5.4 + semver: 7.6.0 /npm-normalize-package-bin@3.0.1: resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} @@ -7135,7 +8147,7 @@ packages: dependencies: hosted-git-info: 7.0.1 proc-log: 3.0.0 - semver: 7.5.4 + semver: 7.6.0 validate-npm-package-name: 5.0.0 /npm-packlist@8.0.2: @@ -7151,7 +8163,7 @@ packages: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 11.0.1 - semver: 7.5.4 + semver: 7.6.0 /npm-registry-fetch@16.1.0: resolution: {integrity: sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==} @@ -7192,9 +8204,9 @@ packages: dependencies: boolbase: 1.0.0 - /nuxi@3.10.0: - resolution: {integrity: sha512-veZXw2NuaQ1PrpvHrnQ1dPgkAjv0WqPlvFReg5Iubum0QVGWdJJvGuNsltDQyPcZ7X7mhMXq9SLIpokK4kpvKA==} - engines: {node: ^14.18.0 || >=16.10.0} + /nuxi@3.11.1: + resolution: {integrity: sha512-AW71TpxRHNg8MplQVju9tEFvXPvX42e0wPYknutSStDuAjV99vWTWYed4jxr/grk2FtKAuv2KvdJxcn2W59qyg==} + engines: {node: ^16.10.0 || >=18.0.0} hasBin: true optionalDependencies: fsevents: 2.3.3 @@ -7203,23 +8215,23 @@ packages: resolution: {integrity: sha512-GdqnSMC1vqabry7WSj3GWA2LZ1gBiWeS2lj943c9TjkL9SN/rABEFXVZA6RO4sOTKF1qV947UGi27PdRd7u+tA==} hasBin: true dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) citty: 0.1.5 scule: 1.2.0 - typescript: 5.3.3 - vue-component-meta: 1.8.27(typescript@5.3.3) + typescript: 5.4.3 + vue-component-meta: 1.8.27(typescript@5.4.3) transitivePeerDependencies: - rollup - supports-color dev: true - /nuxt-icon@0.6.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15): + /nuxt-icon@0.6.8(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21): resolution: {integrity: sha512-6eWlNOb6Uvp63uXFdhcmsB1JlubDv76Pot/VwmIu0yJxDYhwytbnv3WAjw2khl2l7W/65V4eMGIEeX9C5Ahxng==} dependencies: '@iconify/collections': 1.0.379 - '@iconify/vue': 4.1.1(vue@3.4.15) - '@nuxt/devtools-kit': 1.0.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11) - '@nuxt/kit': 3.10.0(rollup@3.29.4) + '@iconify/vue': 4.1.1(vue@3.4.21) + '@nuxt/devtools-kit': 1.0.8(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6) + '@nuxt/kit': 3.11.1(rollup@3.29.4) transitivePeerDependencies: - nuxt - rollup @@ -7228,7 +8240,7 @@ packages: - vue dev: false - /nuxt-og-image@2.2.4(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.15)(nuxt@3.9.3)(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15)(webpack@5.89.0): + /nuxt-og-image@2.2.4(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): resolution: {integrity: sha512-A7QNMi+/DueEOPgxIWCvUJU8UxgxyUtRrLd7QB6YVeXrBEFFhWD8/2wLbcSdZyAzpVmuE6cA7bSU3z3U/e7K/w==} dependencies: '@nuxt/kit': 3.9.1(rollup@3.29.4) @@ -7248,8 +8260,8 @@ packages: globby: 13.2.2 image-size: 1.1.1 launch-editor: 2.6.1 - nuxt-site-config: 1.6.7(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.15)(nuxt@3.9.3)(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15)(webpack@5.89.0) - nuxt-site-config-kit: 1.6.7(rollup@3.29.4)(vue@3.4.15) + nuxt-site-config: 1.6.7(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + nuxt-site-config-kit: 1.6.7(rollup@3.29.4)(vue@3.4.21) nypm: 0.3.4 ofetch: 1.3.3 ohash: 1.1.3 @@ -7294,34 +8306,34 @@ packages: - webpack dev: false - /nuxt-site-config-kit@1.6.7(rollup@3.29.4)(vue@3.4.15): + /nuxt-site-config-kit@1.6.7(rollup@3.29.4)(vue@3.4.21): resolution: {integrity: sha512-dq7W5ra1KRRi8gW/v8j3e7rNCN8jEZHXnGZ9Ao4r7JZvyHpJyntQYcftcI2N7VViT+6xWdIE7ge4oma7+gvjVQ==} dependencies: - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) '@nuxt/schema': 3.9.1(rollup@3.29.4) pkg-types: 1.0.3 - site-config-stack: 1.6.7(vue@3.4.15) + site-config-stack: 1.6.7(vue@3.4.21) std-env: 3.7.0 - ufo: 1.3.2 + ufo: 1.5.3 transitivePeerDependencies: - rollup - supports-color - vue dev: false - /nuxt-site-config@1.6.7(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.15)(nuxt@3.9.3)(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15)(webpack@5.89.0): + /nuxt-site-config@1.6.7(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0): resolution: {integrity: sha512-X9HPq0ldfFf9vatXcOLt1Fl9xPydhC+fZw5KVxACcOyNK92KwJgvzrHAooURdoQhohaVgPbK+xnfVP8S6GCkQA==} dependencies: - '@nuxt/devtools-kit': 1.0.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11) - '@nuxt/devtools-ui-kit': 1.0.8(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.15)(nuxt@3.9.3)(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11)(vue@3.4.15)(webpack@5.89.0) - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/devtools-kit': 1.0.8(nuxt@3.11.1)(rollup@3.29.4)(vite@5.2.6) + '@nuxt/devtools-ui-kit': 1.0.8(@nuxt/devtools@1.0.8)(@vue/compiler-core@3.4.21)(nuxt@3.11.1)(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6)(vue@3.4.21)(webpack@5.91.0) + '@nuxt/kit': 3.11.1(rollup@3.29.4) '@nuxt/schema': 3.9.1(rollup@3.29.4) - nuxt-site-config-kit: 1.6.7(rollup@3.29.4)(vue@3.4.15) + nuxt-site-config-kit: 1.6.7(rollup@3.29.4)(vue@3.4.21) pathe: 1.1.2 shiki-es: 0.14.0 sirv: 2.0.4 - site-config-stack: 1.6.7(vue@3.4.15) - ufo: 1.3.2 + site-config-stack: 1.6.7(vue@3.4.21) + ufo: 1.5.3 transitivePeerDependencies: - '@nuxt/devtools' - '@unocss/webpack' @@ -7347,8 +8359,8 @@ packages: - webpack dev: false - /nuxt@3.9.3(eslint@8.56.0)(rollup@3.29.4)(typescript@5.3.3)(vite@5.0.11): - resolution: {integrity: sha512-IzBJAJImqCGfspVZzvznrALnFIJ5rPe+VJvY8OiccwRzWT8sEygVRjh3Mc64yWV6P59rz497wp9RBBBhuV2MVA==} + /nuxt@3.11.1(@unocss/reset@0.58.3)(eslint@8.56.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.3)(unocss@0.58.3)(vite@5.2.6): + resolution: {integrity: sha512-CsncE1dxP0cmOYT+PBdjMD0bOK8eZizG5tgNWUOJAAAtU45sO38maoBumYYL2kUpT/SC/dMP+831DAcVPvi9pQ==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true peerDependencies: @@ -7361,60 +8373,61 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.0.8(nuxt@3.9.3)(rollup@3.29.4)(vite@5.0.11) - '@nuxt/kit': 3.9.3(rollup@3.29.4) - '@nuxt/schema': 3.9.3(rollup@3.29.4) + '@nuxt/devtools': 1.1.5(@unocss/reset@0.58.3)(floating-vue@5.2.2)(nuxt@3.11.1)(rollup@3.29.4)(unocss@0.58.3)(vite@5.2.6)(vue@3.4.21) + '@nuxt/kit': 3.11.1(rollup@3.29.4) + '@nuxt/schema': 3.11.1(rollup@3.29.4) '@nuxt/telemetry': 2.5.3(rollup@3.29.4) '@nuxt/ui-templates': 1.3.1 - '@nuxt/vite-builder': 3.9.3(eslint@8.56.0)(rollup@3.29.4)(typescript@5.3.3)(vue@3.4.15) - '@unhead/dom': 1.8.10 - '@unhead/ssr': 1.8.10 - '@unhead/vue': 1.8.10(vue@3.4.15) - '@vue/shared': 3.4.15 + '@nuxt/vite-builder': 3.11.1(eslint@8.56.0)(rollup@3.29.4)(typescript@5.4.3)(vue@3.4.21) + '@unhead/dom': 1.9.2 + '@unhead/ssr': 1.9.2 + '@unhead/vue': 1.9.2(vue@3.4.21) + '@vue/shared': 3.4.21 acorn: 8.11.3 - c12: 1.6.1 - chokidar: 3.5.3 + c12: 1.10.0 + chokidar: 3.6.0 cookie-es: 1.0.0 defu: 6.1.4 - destr: 2.0.2 + destr: 2.0.3 devalue: 4.3.2 - esbuild: 0.19.11 + esbuild: 0.20.2 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 fs-extra: 11.2.0 - globby: 14.0.0 - h3: 1.10.0 + globby: 14.0.1 + h3: 1.11.1 hookable: 5.5.3 jiti: 1.21.0 klona: 2.0.6 knitwork: 1.0.0 - magic-string: 0.30.5 - mlly: 1.5.0 - nitropack: 2.8.1 - nuxi: 3.10.0 - nypm: 0.3.4 + magic-string: 0.30.8 + mlly: 1.6.1 + nitropack: 2.9.5 + nuxi: 3.11.1 + nypm: 0.3.8 ofetch: 1.3.3 ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.0.3 - radix3: 1.1.0 - scule: 1.2.0 + radix3: 1.1.2 + scule: 1.3.0 std-env: 3.7.0 strip-literal: 2.0.0 - ufo: 1.3.2 - ultrahtml: 1.5.2 + ufo: 1.5.3 + ultrahtml: 1.5.3 uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.9.0 unimport: 3.7.1(rollup@3.29.4) - unplugin: 1.6.0 - unplugin-vue-router: 0.7.0(rollup@3.29.4)(vue-router@4.2.5)(vue@3.4.15) - untyped: 1.4.0 - vue: 3.4.15(typescript@5.3.3) + unplugin: 1.10.0 + unplugin-vue-router: 0.7.0(rollup@3.29.4)(vue-router@4.3.0)(vue@3.4.21) + unstorage: 1.10.2(ioredis@5.3.2) + untyped: 1.4.2 + vue: 3.4.21(typescript@5.4.3) vue-bundle-renderer: 2.0.0 vue-devtools-stub: 0.1.0 - vue-router: 4.2.5(vue@3.4.15) + vue-router: 4.3.0(vue@3.4.21) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7423,27 +8436,46 @@ packages: - '@azure/keyvault-secrets' - '@azure/storage-blob' - '@capacitor/preferences' + - '@libsql/client' - '@netlify/blobs' - '@planetscale/database' + - '@unocss/reset' - '@upstash/redis' - '@vercel/kv' + - '@vue/composition-api' + - async-validator + - axios + - better-sqlite3 - bluebird - bufferutil + - change-case + - drauu + - drizzle-orm - encoding - eslint + - floating-vue + - fuse.js - idb-keyval + - ioredis + - jwt-decode - less - lightningcss - meow + - nprogress - optionator + - qrcode - rollup - sass + - sortablejs - stylelint - stylus - sugarss - supports-color - terser - typescript + - uWebSockets.js + - universal-cookie + - unocss - utf-8-validate - vite - vls @@ -7459,7 +8491,18 @@ packages: citty: 0.1.5 execa: 8.0.1 pathe: 1.1.2 - ufo: 1.3.2 + ufo: 1.5.3 + + /nypm@0.3.8: + resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + dependencies: + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + ufo: 1.5.3 /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -7472,11 +8515,18 @@ packages: /ofetch@1.3.3: resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} dependencies: - destr: 2.0.2 + destr: 2.0.3 node-fetch-native: 1.6.1 - ufo: 1.3.2 + ufo: 1.5.3 - /ohash@1.1.3: + /ofetch@1.3.4: + resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.3 + + /ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} /on-finished@2.4.1: @@ -7506,6 +8556,15 @@ packages: resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} dev: false + /open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + /open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -7530,9 +8589,10 @@ packages: define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 2.2.0 + dev: true - /openapi-typescript@6.7.3: - resolution: {integrity: sha512-es3mGcDXV6TKPo6n3aohzHm0qxhLyR39MhF6mkD1FwFGjhxnqMqfSIgM0eCpInZvqatve4CxmXcMZw3jnnsaXw==} + /openapi-typescript@6.7.5: + resolution: {integrity: sha512-ZD6dgSZi0u1QCP55g8/2yS5hNJfIpgqsSGHLxxdOjvY7eIrXzj271FJEQw33VwsZ6RCtO/NOuhxa7GBWmEudyA==} hasBin: true dependencies: ansi-colors: 4.1.3 @@ -7578,8 +8638,8 @@ packages: dependencies: aggregate-error: 3.1.0 - /pacote@17.0.5: - resolution: {integrity: sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==} + /pacote@17.0.6: + resolution: {integrity: sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: @@ -7598,7 +8658,7 @@ packages: promise-retry: 2.0.1 read-package-json: 7.0.0 read-package-json-fast: 3.0.2 - sigstore: 2.1.0 + sigstore: 2.2.2 ssri: 10.0.5 tar: 6.2.0 transitivePeerDependencies: @@ -7615,13 +8675,6 @@ packages: dependencies: callsites: 3.1.0 - /parent-module@2.0.0: - resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} - engines: {node: '>=8'} - dependencies: - callsites: 3.1.0 - dev: false - /parse-css-color@0.2.1: resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} dependencies: @@ -7780,6 +8833,17 @@ packages: postcss: 8.4.33 postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 + dev: true + + /postcss-calc@9.0.1(postcss@8.4.38): + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.15 + postcss-value-parser: 4.2.0 /postcss-colormin@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==} @@ -7792,6 +8856,19 @@ packages: colord: 2.9.3 postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-convert-values@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==} @@ -7802,19 +8879,17 @@ packages: browserslist: 4.22.2 postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true - /postcss-custom-properties@13.3.4(postcss@8.4.33): - resolution: {integrity: sha512-9YN0gg9sG3OH+Z9xBrp2PWRb+O4msw+5Sbp3ZgqrblrwKspXVQe5zr5sVqi43gJGwW/Rv1A483PRQUzQOEewvA==} - engines: {node: ^14 || ^16 || >=18} + /postcss-convert-values@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.4 + postcss: ^8.4.31 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.33 + browserslist: 4.23.0 + postcss: 8.4.38 postcss-value-parser: 4.2.0 - dev: false /postcss-discard-comments@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==} @@ -7823,6 +8898,15 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.33 + dev: true + + /postcss-discard-comments@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 /postcss-discard-duplicates@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==} @@ -7831,6 +8915,15 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.33 + dev: true + + /postcss-discard-duplicates@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 /postcss-discard-empty@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==} @@ -7839,6 +8932,15 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.33 + dev: true + + /postcss-discard-empty@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 /postcss-discard-overridden@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==} @@ -7847,6 +8949,15 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.33 + dev: true + + /postcss-discard-overridden@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 /postcss-import@15.1.0(postcss@8.4.33): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} @@ -7893,6 +9004,17 @@ packages: postcss: 8.4.33 postcss-value-parser: 4.2.0 stylehacks: 6.0.2(postcss@8.4.33) + dev: true + + /postcss-merge-longhand@6.0.5(postcss@8.4.38): + resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + stylehacks: 6.1.1(postcss@8.4.38) /postcss-merge-rules@6.0.3(postcss@8.4.33): resolution: {integrity: sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==} @@ -7905,6 +9027,19 @@ packages: cssnano-utils: 4.0.1(postcss@8.4.33) postcss: 8.4.33 postcss-selector-parser: 6.0.15 + dev: true + + /postcss-merge-rules@6.1.1(postcss@8.4.38): + resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 /postcss-minify-font-values@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==} @@ -7914,6 +9049,16 @@ packages: dependencies: postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-font-values@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-minify-gradients@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==} @@ -7925,6 +9070,18 @@ packages: cssnano-utils: 4.0.1(postcss@8.4.33) postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-gradients@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-minify-params@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==} @@ -7936,6 +9093,18 @@ packages: cssnano-utils: 4.0.1(postcss@8.4.33) postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-params@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-minify-selectors@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==} @@ -7945,6 +9114,16 @@ packages: dependencies: postcss: 8.4.33 postcss-selector-parser: 6.0.15 + dev: true + + /postcss-minify-selectors@6.0.4(postcss@8.4.38): + resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 /postcss-nested@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} @@ -7955,13 +9134,14 @@ packages: postcss: 8.4.33 postcss-selector-parser: 6.0.15 - /postcss-nesting@12.0.2(postcss@8.4.33): - resolution: {integrity: sha512-63PpJHSeNs93S3ZUIyi+7kKx4JqOIEJ6QYtG3x+0qA4J03+4n0iwsyA1GAHyWxsHYljQS4/4ZK1o2sMi70b5wQ==} + /postcss-nesting@12.1.0(postcss@8.4.33): + resolution: {integrity: sha512-QOYnosaZ+mlP6plQrAxFw09UUp2Sgtxj1BVHN+rSVbtV0Yx48zRt9/9F/ZOoxOKBBEsaJk2MYhhVRjeRRw5yuw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) + '@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.0.15) + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.15) postcss: 8.4.33 postcss-selector-parser: 6.0.15 dev: false @@ -7973,6 +9153,15 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.33 + dev: true + + /postcss-normalize-charset@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 /postcss-normalize-display-values@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==} @@ -7982,6 +9171,16 @@ packages: dependencies: postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-display-values@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-normalize-positions@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==} @@ -7991,6 +9190,16 @@ packages: dependencies: postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-positions@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-normalize-repeat-style@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==} @@ -8000,6 +9209,16 @@ packages: dependencies: postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-repeat-style@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-normalize-string@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==} @@ -8009,6 +9228,16 @@ packages: dependencies: postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-string@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-normalize-timing-functions@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==} @@ -8018,6 +9247,16 @@ packages: dependencies: postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-timing-functions@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-normalize-unicode@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==} @@ -8028,6 +9267,17 @@ packages: browserslist: 4.22.2 postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-unicode@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-normalize-url@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==} @@ -8037,6 +9287,16 @@ packages: dependencies: postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-url@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-normalize-whitespace@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==} @@ -8046,6 +9306,16 @@ packages: dependencies: postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-whitespace@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-ordered-values@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==} @@ -8056,6 +9326,17 @@ packages: cssnano-utils: 4.0.1(postcss@8.4.33) postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-ordered-values@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-reduce-initial@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==} @@ -8066,6 +9347,17 @@ packages: browserslist: 4.22.2 caniuse-api: 3.0.0 postcss: 8.4.33 + dev: true + + /postcss-reduce-initial@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + postcss: 8.4.38 /postcss-reduce-transforms@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==} @@ -8075,6 +9367,16 @@ packages: dependencies: postcss: 8.4.33 postcss-value-parser: 4.2.0 + dev: true + + /postcss-reduce-transforms@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 /postcss-selector-parser@6.0.10: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} @@ -8090,6 +9392,13 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + /postcss-svgo@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==} engines: {node: ^14 || ^16 || >= 18} @@ -8099,6 +9408,17 @@ packages: postcss: 8.4.33 postcss-value-parser: 4.2.0 svgo: 3.2.0 + dev: true + + /postcss-svgo@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + svgo: 3.2.0 /postcss-unique-selectors@6.0.2(postcss@8.4.33): resolution: {integrity: sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==} @@ -8108,6 +9428,16 @@ packages: dependencies: postcss: 8.4.33 postcss-selector-parser: 6.0.15 + dev: true + + /postcss-unique-selectors@6.0.4(postcss@8.4.38): + resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -8120,6 +9450,14 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -8144,6 +9482,10 @@ packages: /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -8166,8 +9508,8 @@ packages: kleur: 3.0.3 sisteransi: 1.0.5 - /property-information@6.4.0: - resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} + /property-information@6.4.1: + resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} dev: true /protocols@2.0.1: @@ -8199,6 +9541,10 @@ packages: /radix3@1.1.0: resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} + dev: false + + /radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -8213,7 +9559,7 @@ packages: resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} dependencies: defu: 6.1.4 - destr: 2.0.2 + destr: 2.0.3 flat: 5.0.2 /react-is@18.2.0: @@ -8260,6 +9606,16 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 + /readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + /readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} dependencies: @@ -8288,7 +9644,7 @@ packages: /rehype-external-links@3.0.0: resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@ungap/structured-clone': 1.2.0 hast-util-is-element: 3.0.0 is-absolute-url: 4.0.1 @@ -8299,7 +9655,7 @@ packages: /rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 hast-util-raw: 9.0.1 vfile: 6.0.1 dev: true @@ -8307,7 +9663,7 @@ packages: /rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 hast-util-to-string: 3.0.0 @@ -8317,7 +9673,7 @@ packages: /rehype-sort-attribute-values@5.0.0: resolution: {integrity: sha512-dQdHdCIRnpiU+BkrLSqH+aM4lWJyLqGzv49KvH4gHj+JxYwNqvGhoTXckS3AJu4V9ZutwsTcawP0pC7PhwX0tQ==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 hast-util-is-element: 3.0.0 unist-util-visit: 5.0.0 dev: true @@ -8325,7 +9681,7 @@ packages: /rehype-sort-attributes@5.0.0: resolution: {integrity: sha512-6tJUH4xHFcdO85CZRwAcEtHNCzjZ9V9S0VZLgo1pzbN04qy8jiVCZ3oAxDmBVG3Rth5b1xFTDet5WG/UYZeJLQ==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 unist-util-visit: 5.0.0 dev: true @@ -8353,8 +9709,8 @@ packages: - supports-color dev: true - /remark-mdc@3.0.0: - resolution: {integrity: sha512-VbCe8w416KRFDJy9Nz7r+tRm2O2o8dIHBwnzrSSU2ZSqwMf9EAh/TMU79piTEdajOMElHYtpM3n2EkccCuceeg==} + /remark-mdc@3.2.0: + resolution: {integrity: sha512-zRi5frIC3O/bcxXgUPHfQ3lyRBKPtokrGnsOPvNrt9bqp4EfjPtduzcWgO4R1WeHYUnvl0zeBStvGsFkJIZf+Q==} dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -8366,10 +9722,10 @@ packages: micromark-core-commonmark: 2.0.0 micromark-factory-space: 2.0.0 micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 parse-entities: 4.0.1 - scule: 1.2.0 + scule: 1.3.0 stringify-entities: 4.0.3 unified: 11.0.4 unist-util-visit: 5.0.0 @@ -8392,7 +9748,7 @@ packages: /remark-rehype@11.1.0: resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/mdast': 4.0.3 mdast-util-to-hast: 13.1.0 unified: 11.0.4 @@ -8457,13 +9813,16 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.3 - /rollup-plugin-dts@6.1.0(rollup@3.29.4)(typescript@5.3.3): + /rollup-plugin-dts@6.1.0(rollup@3.29.4)(typescript@5.4.3): resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} engines: {node: '>=16'} peerDependencies: @@ -8472,7 +9831,7 @@ packages: dependencies: magic-string: 0.30.5 rollup: 3.29.4 - typescript: 5.3.3 + typescript: 5.4.3 optionalDependencies: '@babel/code-frame': 7.23.5 dev: true @@ -8493,7 +9852,7 @@ packages: source-map: 0.7.4 yargs: 17.7.2 - /rollup-plugin-visualizer@5.12.0(rollup@4.9.4): + /rollup-plugin-visualizer@5.12.0(rollup@4.13.2): resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} engines: {node: '>=14'} hasBin: true @@ -8505,7 +9864,7 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 4.9.4 + rollup: 4.13.2 source-map: 0.7.4 yargs: 17.7.2 @@ -8516,6 +9875,30 @@ packages: optionalDependencies: fsevents: 2.3.3 + /rollup@4.13.2: + resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.13.2 + '@rollup/rollup-android-arm64': 4.13.2 + '@rollup/rollup-darwin-arm64': 4.13.2 + '@rollup/rollup-darwin-x64': 4.13.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 + '@rollup/rollup-linux-arm64-gnu': 4.13.2 + '@rollup/rollup-linux-arm64-musl': 4.13.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 + '@rollup/rollup-linux-riscv64-gnu': 4.13.2 + '@rollup/rollup-linux-s390x-gnu': 4.13.2 + '@rollup/rollup-linux-x64-gnu': 4.13.2 + '@rollup/rollup-linux-x64-musl': 4.13.2 + '@rollup/rollup-win32-arm64-msvc': 4.13.2 + '@rollup/rollup-win32-ia32-msvc': 4.13.2 + '@rollup/rollup-win32-x64-msvc': 4.13.2 + fsevents: 2.3.3 + /rollup@4.9.4: resolution: {integrity: sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -8543,6 +9926,11 @@ packages: engines: {node: '>=12'} dependencies: execa: 5.1.1 + dev: true + + /run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -8557,6 +9945,8 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + requiresBuild: true + optional: true /satori-html@0.3.2: resolution: {integrity: sha512-wjTh14iqADFKDK80e51/98MplTGfxz2RmIzh0GqShlf4a67+BooLywF17TvJPD6phO0Hxm7Mf1N5LtRYvdkYRA==} @@ -8592,6 +9982,9 @@ packages: /scule@1.2.0: resolution: {integrity: sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==} + /scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -8603,6 +9996,13 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -8670,21 +10070,12 @@ packages: /shiki-es@0.14.0: resolution: {integrity: sha512-e+/aueHx0YeIEut6RXC6K8gSf0PykwZiHD7q7AHtpTW8Kd8TpFUIWqTwhAnrGjOyOMyrwv+syr5WPagMpDpVYQ==} deprecated: Please migrate to https://github.com/antfu/shikiji + dev: false - /shikiji-core@0.9.18: - resolution: {integrity: sha512-PKTXptbrp/WEDjNHV8OFG9KkfhmR0pSd161kzlDDlgQ0HXAnqJYNDSjqsy1CYZMx5bSvLMy42yJj9oFTqmkNTQ==} - dev: true - - /shikiji-transformers@0.9.18: - resolution: {integrity: sha512-lvKVfgx1ETDqUNxqiUn+whlnjQiunsAg76DOpzjjxkHE/bLcwa+jrghcMxQhui86SLR1tzCdM4Imh+RxW0LI2Q==} - dependencies: - shikiji: 0.9.18 - dev: true - - /shikiji@0.9.18: - resolution: {integrity: sha512-/tFMIdV7UQklzN13VjF0/XFzmii6C606Jc878hNezvB8ZR8FG8FW9j0I4J9EJre0owlnPntgLVPpHqy27Gs+DQ==} + /shiki@1.2.1: + resolution: {integrity: sha512-u+XW6o0vCkUNlneZb914dLO+AayEIwK5tI62WeS//R5HIXBFiYaj/Hc5xcq27Yh83Grr4JbNtUBV8W6zyK4hWg==} dependencies: - shikiji-core: 0.9.18 + '@shikijs/core': 1.2.1 dev: true /siginfo@2.0.0: @@ -8698,19 +10089,21 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - /sigstore@2.1.0: - resolution: {integrity: sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==} + /sigstore@2.2.2: + resolution: {integrity: sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@sigstore/bundle': 2.1.0 - '@sigstore/protobuf-specs': 0.2.1 - '@sigstore/sign': 2.2.0 - '@sigstore/tuf': 2.2.0 + '@sigstore/bundle': 2.2.0 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.0 + '@sigstore/sign': 2.2.3 + '@sigstore/tuf': 2.3.2 + '@sigstore/verify': 1.1.1 transitivePeerDependencies: - supports-color - /simple-git@3.22.0: - resolution: {integrity: sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw==} + /simple-git@3.24.0: + resolution: {integrity: sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==} dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 @@ -8729,13 +10122,13 @@ packages: /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - /site-config-stack@1.6.7(vue@3.4.15): + /site-config-stack@1.6.7(vue@3.4.21): resolution: {integrity: sha512-LcZAAaMo4t/LKcePG6eghCt5oG+0JS1fhWG/8dHbfRuD3yWKmijKy2wd0/rcvTxDBEp5Pn2lAqe92jeAHRNjQA==} peerDependencies: vue: ^3 dependencies: - ufo: 1.3.2 - vue: 3.4.15(typescript@5.3.3) + ufo: 1.5.3 + vue: 3.4.21(typescript@5.4.3) dev: false /skin-tone@2.0.0: @@ -8758,32 +10151,18 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} - /slugify@1.6.6: - resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} - engines: {node: '>=8.0.0'} - dev: true - - /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - /smob@1.4.1: - resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==} - - /socket.io-client@4.7.3: - resolution: {integrity: sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==} - engines: {node: '>=10.0.0'} - dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 - engine.io-client: 6.5.3 - socket.io-parser: 4.2.4 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + /slugify@1.6.6: + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} dev: true + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + /smob@1.4.1: + resolution: {integrity: sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==} + /socket.io-client@4.7.4: resolution: {integrity: sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==} engines: {node: '>=10.0.0'} @@ -8829,6 +10208,10 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: @@ -8865,6 +10248,10 @@ packages: /spdx-license-ids@3.0.16: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + /speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + /split@0.3.3: resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} dependencies: @@ -8873,7 +10260,6 @@ packages: /splitpanes@3.1.5: resolution: {integrity: sha512-r3Mq2ITFQ5a2VXLOy4/Sb2Ptp7OfEO8YIbhVJqJXoFc9hc5nTXXkCvtVDjIGbvC0vdE7tse+xTM9BMjsszP6bw==} - dev: false /ssri@10.0.5: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} @@ -8992,6 +10378,17 @@ packages: browserslist: 4.22.2 postcss: 8.4.33 postcss-selector-parser: 6.0.15 + dev: true + + /stylehacks@6.1.1(postcss@8.4.38): + resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 /sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} @@ -9009,6 +10406,7 @@ packages: /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} + requiresBuild: true dependencies: has-flag: 3.0.0 @@ -9059,7 +10457,6 @@ packages: /tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - dev: false /tailwind-config-viewer@1.7.3(tailwindcss@3.4.1): resolution: {integrity: sha512-rgeFXe9vL4njtaSI1y2uUAD1aRx05RYHbReN72ARAVEVSlNmS0Zf46pj3/ORc3xQwLK/AzbaIs6UFcK7hJSIlA==} @@ -9146,7 +10543,7 @@ packages: ps-tree: 1.2.0 dev: false - /terser-webpack-plugin@5.3.10(webpack@5.89.0): + /terser-webpack-plugin@5.3.10(webpack@5.91.0): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -9162,12 +10559,12 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.26.0 - webpack: 5.89.0 + webpack: 5.91.0 dev: false /terser@5.26.0: @@ -9209,8 +10606,8 @@ packages: resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} dev: true - /tinypool@0.8.1: - resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} + /tinypool@0.8.3: + resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} engines: {node: '>=14.0.0'} dev: true @@ -9231,6 +10628,7 @@ packages: /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} + dev: true /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} @@ -9261,13 +10659,13 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true - /ts-api-utils@1.0.3(typescript@5.3.3): + /ts-api-utils@1.0.3(typescript@5.4.3): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.3 dev: true /ts-interface-checker@0.1.13: @@ -9340,18 +10738,25 @@ packages: resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} dev: false - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + /typescript@5.4.3: + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} engines: {node: '>=14.17'} hasBin: true /ufo@1.3.2: resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + /ultrahtml@1.5.2: resolution: {integrity: sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw==} + dev: false + + /ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} - /unbuild@2.0.0(typescript@5.3.3): + /unbuild@2.0.0(typescript@5.4.3): resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} hasBin: true peerDependencies: @@ -9375,15 +10780,15 @@ packages: hookable: 5.5.3 jiti: 1.21.0 magic-string: 0.30.5 - mkdist: 1.4.0(typescript@5.3.3) + mkdist: 1.4.0(typescript@5.4.3) mlly: 1.4.2 pathe: 1.1.2 pkg-types: 1.0.3 pretty-bytes: 6.1.1 rollup: 3.29.4 - rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.3.3) + rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.4.3) scule: 1.2.0 - typescript: 5.3.3 + typescript: 5.4.3 untyped: 1.4.0 transitivePeerDependencies: - sass @@ -9396,8 +10801,7 @@ packages: '@antfu/utils': 0.7.7 defu: 6.1.4 jiti: 1.21.0 - mlly: 1.5.0 - dev: false + mlly: 1.6.1 /uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} @@ -9425,7 +10829,7 @@ packages: consola: 3.2.3 defu: 6.1.4 mime: 3.0.0 - node-fetch-native: 1.6.1 + node-fetch-native: 1.6.4 pathe: 1.1.2 /unhead@1.8.10: @@ -9435,15 +10839,15 @@ packages: '@unhead/schema': 1.8.10 '@unhead/shared': 1.8.10 hookable: 5.5.3 + dev: true - /unhead@1.8.9: - resolution: {integrity: sha512-qqCNmA4KOEDjcl+OtRZTllGehXewcQ31zbHjvhl/jqCs2MfRcZoxFW1y7A4Y4BgR/O7PI89K+GoWGcxK3gn64Q==} + /unhead@1.9.2: + resolution: {integrity: sha512-CveP8bjL8gUJnZ1NqcMU1roe+VuM14wr0cJfNek/LCSI2i968mHDD5tbDXNcMSAVOhffKj6WkTngTUKNOZxA7g==} dependencies: - '@unhead/dom': 1.8.9 - '@unhead/schema': 1.8.9 - '@unhead/shared': 1.8.9 + '@unhead/dom': 1.9.2 + '@unhead/schema': 1.9.2 + '@unhead/shared': 1.9.2 hookable: 5.5.3 - dev: true /unicode-emoji-modifier-base@1.0.0: resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} @@ -9490,7 +10894,7 @@ packages: fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.5 - mlly: 1.4.2 + mlly: 1.5.0 pathe: 1.1.2 pkg-types: 1.0.3 scule: 1.2.0 @@ -9499,17 +10903,17 @@ packages: transitivePeerDependencies: - rollup - /unimport@3.7.1(rollup@4.9.4): + /unimport@3.7.1(rollup@4.13.2): resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.4) + '@rollup/pluginutils': 5.1.0(rollup@4.13.2) acorn: 8.11.3 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.5 - mlly: 1.4.2 + mlly: 1.5.0 pathe: 1.1.2 pkg-types: 1.0.3 scule: 1.2.0 @@ -9578,7 +10982,7 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - /unocss@0.58.3(@unocss/webpack@0.58.3)(postcss@8.4.33)(rollup@3.29.4)(vite@5.0.11): + /unocss@0.58.3(@unocss/webpack@0.58.3)(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.6): resolution: {integrity: sha512-2rnvghfiIDRQ2cOrmN4P7J7xV2p3yBK+bPAt1aoUxCXcszkLczAnQzh9c7IZ+p70kSVstK45cJTYV6TMzOLF7Q==} engines: {node: '>=14'} peerDependencies: @@ -9590,11 +10994,11 @@ packages: vite: optional: true dependencies: - '@unocss/astro': 0.58.3(rollup@3.29.4)(vite@5.0.11) + '@unocss/astro': 0.58.3(rollup@3.29.4)(vite@5.2.6) '@unocss/cli': 0.58.3(rollup@3.29.4) '@unocss/core': 0.58.3 '@unocss/extractor-arbitrary-variants': 0.58.3 - '@unocss/postcss': 0.58.3(postcss@8.4.33) + '@unocss/postcss': 0.58.3(postcss@8.4.38) '@unocss/preset-attributify': 0.58.3 '@unocss/preset-icons': 0.58.3 '@unocss/preset-mini': 0.58.3 @@ -9609,16 +11013,54 @@ packages: '@unocss/transformer-compile-class': 0.58.3 '@unocss/transformer-directives': 0.58.3 '@unocss/transformer-variant-group': 0.58.3 - '@unocss/vite': 0.58.3(rollup@3.29.4)(vite@5.0.11) - '@unocss/webpack': 0.58.3(rollup@3.29.4)(webpack@5.89.0) - vite: 5.0.11 + '@unocss/vite': 0.58.3(rollup@3.29.4)(vite@5.2.6) + '@unocss/webpack': 0.58.3(rollup@3.29.4)(webpack@5.91.0) + vite: 5.2.6 transitivePeerDependencies: - postcss - rollup - supports-color dev: false - /unplugin-vue-router@0.7.0(rollup@3.29.4)(vue-router@4.2.5)(vue@3.4.15): + /unocss@0.58.3(postcss@8.4.33)(rollup@3.29.4)(vite@5.2.6): + resolution: {integrity: sha512-2rnvghfiIDRQ2cOrmN4P7J7xV2p3yBK+bPAt1aoUxCXcszkLczAnQzh9c7IZ+p70kSVstK45cJTYV6TMzOLF7Q==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.58.3 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.58.3(rollup@3.29.4)(vite@5.2.6) + '@unocss/cli': 0.58.3(rollup@3.29.4) + '@unocss/core': 0.58.3 + '@unocss/extractor-arbitrary-variants': 0.58.3 + '@unocss/postcss': 0.58.3(postcss@8.4.33) + '@unocss/preset-attributify': 0.58.3 + '@unocss/preset-icons': 0.58.3 + '@unocss/preset-mini': 0.58.3 + '@unocss/preset-tagify': 0.58.3 + '@unocss/preset-typography': 0.58.3 + '@unocss/preset-uno': 0.58.3 + '@unocss/preset-web-fonts': 0.58.3 + '@unocss/preset-wind': 0.58.3 + '@unocss/reset': 0.58.3 + '@unocss/transformer-attributify-jsx': 0.58.3 + '@unocss/transformer-attributify-jsx-babel': 0.58.3 + '@unocss/transformer-compile-class': 0.58.3 + '@unocss/transformer-directives': 0.58.3 + '@unocss/transformer-variant-group': 0.58.3 + '@unocss/vite': 0.58.3(rollup@3.29.4)(vite@5.2.6) + vite: 5.2.6 + transitivePeerDependencies: + - postcss + - rollup + - supports-color + + /unplugin-vue-router@0.7.0(rollup@3.29.4)(vue-router@4.3.0)(vue@3.4.21): resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} peerDependencies: vue-router: ^4.1.0 @@ -9628,22 +11070,31 @@ packages: dependencies: '@babel/types': 7.23.6 '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - '@vue-macros/common': 1.10.0(rollup@3.29.4)(vue@3.4.15) + '@vue-macros/common': 1.10.0(rollup@3.29.4)(vue@3.4.21) ast-walker-scope: 0.5.0(rollup@3.29.4) - chokidar: 3.5.3 + chokidar: 3.6.0 fast-glob: 3.3.2 json5: 2.2.3 local-pkg: 0.4.3 - mlly: 1.5.0 + mlly: 1.6.1 pathe: 1.1.2 - scule: 1.2.0 - unplugin: 1.6.0 - vue-router: 4.2.5(vue@3.4.15) + scule: 1.3.0 + unplugin: 1.10.0 + vue-router: 4.3.0(vue@3.4.21) yaml: 2.3.4 transitivePeerDependencies: - rollup - vue + /unplugin@1.10.0: + resolution: {integrity: sha512-CuZtvvO8ua2Wl+9q2jEaqH6m3DoQ38N7pvBYQbbaeNlWGvK2l6GHiKi29aIHDPoSxdUzQ7Unevf1/ugil5X6Pg==} + engines: {node: '>=14.0.0'} + dependencies: + acorn: 8.11.3 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + /unplugin@1.6.0: resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} dependencies: @@ -9695,27 +11146,88 @@ packages: dependencies: anymatch: 3.1.3 chokidar: 3.5.3 - destr: 2.0.2 - h3: 1.10.0 + destr: 2.0.3 + h3: 1.11.1 ioredis: 5.3.2 - listhen: 1.5.6 + listhen: 1.7.2 lru-cache: 10.1.0 mri: 1.2.0 node-fetch-native: 1.6.1 ofetch: 1.3.3 - ufo: 1.3.2 + ufo: 1.5.3 transitivePeerDependencies: - supports-color + - uWebSockets.js + dev: true + + /unstorage@1.10.2(ioredis@5.3.2): + resolution: {integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==} + peerDependencies: + '@azure/app-configuration': ^1.5.0 + '@azure/cosmos': ^4.0.0 + '@azure/data-tables': ^13.2.2 + '@azure/identity': ^4.0.1 + '@azure/keyvault-secrets': ^4.8.0 + '@azure/storage-blob': ^12.17.0 + '@capacitor/preferences': ^5.0.7 + '@netlify/blobs': ^6.5.0 || ^7.0.0 + '@planetscale/database': ^1.16.0 + '@upstash/redis': ^1.28.4 + '@vercel/kv': ^1.0.1 + idb-keyval: ^6.2.1 + ioredis: ^5.3.2 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/kv': + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + destr: 2.0.3 + h3: 1.11.1 + ioredis: 5.3.2 + listhen: 1.7.2 + lru-cache: 10.2.0 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.3 + ufo: 1.5.3 + transitivePeerDependencies: + - uWebSockets.js /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} + dev: true /untun@0.1.3: resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} hasBin: true dependencies: - citty: 0.1.5 + citty: 0.1.6 consola: 3.2.3 pathe: 1.1.2 @@ -9743,10 +11255,19 @@ packages: defu: 6.1.4 jiti: 1.21.0 mri: 1.2.0 - scule: 1.2.0 + scule: 1.3.0 transitivePeerDependencies: - supports-color - dev: false + + /unwasm@0.3.8: + resolution: {integrity: sha512-nIJQXxGl/gTUp5dZkSc8jbxAqSOa9Vv4jjSZXNI6OK0JXdvW3SQUHR+KY66rjI0W//km59jivGgd5TCvBUWsnA==} + dependencies: + knitwork: 1.0.0 + magic-string: 0.30.8 + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + unplugin: 1.10.0 /update-browserslist-db@1.0.13(browserslist@4.22.2): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} @@ -9758,6 +11279,16 @@ packages: escalade: 3.1.1 picocolors: 1.0.0 + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.0 + escalade: 3.1.1 + picocolors: 1.0.0 + /uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} @@ -9772,12 +11303,12 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - /v-lazy-show@0.2.4(@vue/compiler-core@3.4.15): + /v-lazy-show@0.2.4(@vue/compiler-core@3.4.21): resolution: {integrity: sha512-Lx9Str2i+HTh+zGzs9O3YyhGAZOAAfU+6MUUPcQPPiPxQO1sHBEv9sH3MO9bPc4T09gsjsS2+sbaCWQ1MdhpJQ==} peerDependencies: '@vue/compiler-core': ^3.3 dependencies: - '@vue/compiler-core': 3.4.15 + '@vue/compiler-core': 3.4.21 dev: false /validate-npm-package-license@3.0.4: @@ -9819,29 +11350,15 @@ packages: vfile-message: 4.0.2 dev: true - /vite-node@1.1.0: - resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + /vite-hot-client@0.2.3(vite@5.2.6): + resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.0.11 - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true + vite: 5.2.6 - /vite-node@1.1.3: - resolution: {integrity: sha512-BLSO72YAkIUuNrOx+8uznYICJfTEbvBAmWClY3hpath5+h1mbPS5OMn42lrTxXuyCazVyZoDkSRnju78GiVCqA==} + /vite-node@1.4.0: + resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -9860,8 +11377,8 @@ packages: - supports-color - terser - /vite-plugin-checker@0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.11): - resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} + /vite-plugin-checker@0.6.4(eslint@8.56.0)(typescript@5.4.3)(vite@5.2.6): + resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} engines: {node: '>=14.16'} peerDependencies: eslint: '>=7' @@ -9894,26 +11411,24 @@ packages: '@babel/code-frame': 7.23.5 ansi-escapes: 4.3.2 chalk: 4.1.2 - chokidar: 3.5.3 + chokidar: 3.6.0 commander: 8.3.0 eslint: 8.56.0 fast-glob: 3.3.2 fs-extra: 11.2.0 - lodash.debounce: 4.0.8 - lodash.pick: 4.4.0 npm-run-path: 4.0.1 semver: 7.5.4 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - typescript: 5.3.3 - vite: 5.0.11 + typescript: 5.4.3 + vite: 5.2.6 vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - /vite-plugin-inspect@0.8.1(@nuxt/kit@3.9.3)(rollup@3.29.4)(vite@5.0.11): - resolution: {integrity: sha512-oPBPVGp6tBd5KdY/qY6lrbLXqrbHRG0hZLvEaJfiZ/GQfDB+szRuLHblQh1oi1Hhh8GeLit/50l4xfs2SA+TCA==} + /vite-plugin-inspect@0.8.3(@nuxt/kit@3.11.1)(rollup@3.29.4)(vite@5.2.6): + resolution: {integrity: sha512-SBVzOIdP/kwe6hjkt7LSW4D0+REqqe58AumcnCfRNw4Kt3mbS9pEBkch+nupu2PBxv2tQi69EQHQ1ZA1vgB/Og==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' @@ -9923,20 +11438,47 @@ packages: optional: true dependencies: '@antfu/utils': 0.7.7 - '@nuxt/kit': 3.9.3(rollup@3.29.4) + '@nuxt/kit': 3.11.1(rollup@3.29.4) '@rollup/pluginutils': 5.1.0(rollup@3.29.4) debug: 4.3.4 error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 - open: 9.1.0 + open: 10.1.0 + perfect-debounce: 1.0.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 5.0.11 + vite: 5.2.6 + transitivePeerDependencies: + - rollup + - supports-color + + /vite-plugin-inspect@0.8.3(@nuxt/kit@3.11.2)(rollup@3.29.4)(vite@5.2.6): + resolution: {integrity: sha512-SBVzOIdP/kwe6hjkt7LSW4D0+REqqe58AumcnCfRNw4Kt3mbS9pEBkch+nupu2PBxv2tQi69EQHQ1ZA1vgB/Og==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.7 + '@nuxt/kit': 3.11.2(rollup@3.29.4) + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + debug: 4.3.4 + error-stack-parser-es: 0.1.1 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.0.0 + sirv: 2.0.4 + vite: 5.2.6 transitivePeerDependencies: - rollup - supports-color + dev: false - /vite-plugin-vue-inspector@4.0.2(vite@5.0.11): + /vite-plugin-vue-inspector@4.0.2(vite@5.2.6): resolution: {integrity: sha512-KPvLEuafPG13T7JJuQbSm5PwSxKFnVS965+MP1we2xGw9BPkkc/+LPix5MMWenpKWqtjr0ws8THrR+KuoDC8hg==} peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 @@ -9947,10 +11489,10 @@ packages: '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.7) - '@vue/compiler-dom': 3.4.10 + '@vue/compiler-dom': 3.4.15 kolorist: 1.8.0 magic-string: 0.30.5 - vite: 5.0.11 + vite: 5.2.6 transitivePeerDependencies: - supports-color @@ -9988,13 +11530,48 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vitest-environment-nuxt@1.0.0(h3@1.10.0)(happy-dom@13.1.4)(rollup@3.29.4)(vite@5.0.11)(vitest@1.1.0)(vue-router@4.2.5)(vue@3.4.15): + /vite@5.2.6: + resolution: {integrity: sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.13.2 + optionalDependencies: + fsevents: 2.3.3 + + /vitest-environment-nuxt@1.0.0(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21): resolution: {integrity: sha512-AWMO9h4HdbaFdPWZw34gALFI8gbBiOpvfbyeZwHIPfh4kWg/TwElYHvYMQ61WPUlCGaS5LebfHkaI0WPyb//Iw==} dependencies: - '@nuxt/test-utils': 3.10.0(h3@1.10.0)(happy-dom@13.1.4)(rollup@3.29.4)(vite@5.0.11)(vitest@1.1.0)(vue-router@4.2.5)(vue@3.4.15) + '@nuxt/test-utils': 3.12.0(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.6)(vitest@1.4.0)(vue-router@4.3.0)(vue@3.4.21) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' + - '@playwright/test' - '@testing-library/vue' - '@vitest/ui' - '@vue/test-utils' @@ -10010,15 +11587,15 @@ packages: - vue-router dev: true - /vitest@1.1.0(happy-dom@13.1.4): - resolution: {integrity: sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==} + /vitest@1.4.0(happy-dom@13.10.1): + resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 + '@vitest/browser': 1.4.0 + '@vitest/ui': 1.4.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -10035,27 +11612,26 @@ packages: jsdom: optional: true dependencies: - '@vitest/expect': 1.1.0 - '@vitest/runner': 1.1.0 - '@vitest/snapshot': 1.1.0 - '@vitest/spy': 1.1.0 - '@vitest/utils': 1.1.0 + '@vitest/expect': 1.4.0 + '@vitest/runner': 1.4.0 + '@vitest/snapshot': 1.4.0 + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 acorn-walk: 8.3.2 - cac: 6.7.14 chai: 4.4.0 debug: 4.3.4 execa: 8.0.1 - happy-dom: 13.1.4 + happy-dom: 13.10.1 local-pkg: 0.5.0 magic-string: 0.30.5 pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 1.3.0 + strip-literal: 2.0.0 tinybench: 2.5.1 - tinypool: 0.8.1 + tinypool: 0.8.3 vite: 5.0.11 - vite-node: 1.1.0 + vite-node: 1.4.0 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -10103,9 +11679,9 @@ packages: /vue-bundle-renderer@2.0.0: resolution: {integrity: sha512-oYATTQyh8XVkUWe2kaKxhxKVuuzK2Qcehe+yr3bGiaQAhK3ry2kYE4FWOfL+KO3hVFwCdLmzDQTzYhTi9C+R2A==} dependencies: - ufo: 1.3.2 + ufo: 1.5.3 - /vue-component-meta@1.8.27(typescript@5.3.3): + /vue-component-meta@1.8.27(typescript@5.4.3): resolution: {integrity: sha512-j3WJsyQHP4TDlvnjHc/eseo0/eVkf0FaCpkqGwez5zD+Tj31onBzWZEXTnWKs8xRj0n3dMNYdy3SpiS6NubSvg==} peerDependencies: typescript: '*' @@ -10114,9 +11690,9 @@ packages: optional: true dependencies: '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.27(typescript@5.3.3) + '@vue/language-core': 1.8.27(typescript@5.4.3) path-browserify: 1.0.1 - typescript: 5.3.3 + typescript: 5.4.3 vue-component-type-helpers: 1.8.27 dev: true @@ -10124,7 +11700,7 @@ packages: resolution: {integrity: sha512-0vOfAtI67UjeO1G6UiX5Kd76CqaQ67wrRZiOe7UAb9Jm6GzlUr/fC7CV90XfwapJRjpCMaZFhv1V0ajWRmE9Dg==} dev: true - /vue-demi@0.14.6(vue@3.4.15): + /vue-demi@0.14.6(vue@3.4.21): resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} hasBin: true @@ -10136,7 +11712,22 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.15(typescript@5.3.3) + vue: 3.4.21(typescript@5.4.3) + dev: false + + /vue-demi@0.14.7(vue@3.4.21): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.21(typescript@5.4.3) /vue-devtools-stub@0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} @@ -10159,13 +11750,27 @@ packages: - supports-color dev: true - /vue-router@4.2.5(vue@3.4.15): - resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} + /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.21): + resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.21(typescript@5.4.3) + + /vue-resize@2.0.0-alpha.1(vue@3.4.21): + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.21(typescript@5.4.3) + + /vue-router@4.3.0(vue@3.4.21): + resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.5.1 - vue: 3.4.15(typescript@5.3.3) + vue: 3.4.21(typescript@5.4.3) /vue-template-compiler@2.7.16: resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} @@ -10174,23 +11779,33 @@ packages: he: 1.2.0 dev: true - /vue@3.4.15(typescript@5.3.3): - resolution: {integrity: sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==} + /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.21): + resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + mitt: 2.1.0 + vue: 3.4.21(typescript@5.4.3) + vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.21) + vue-resize: 2.0.0-alpha.1(vue@3.4.21) + + /vue@3.4.21(typescript@5.4.3): + resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@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 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/runtime-dom': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.4.21) + '@vue/shared': 3.4.21 + typescript: 5.4.3 - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + /watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 @@ -10216,8 +11831,8 @@ packages: /webpack-virtual-modules@0.6.1: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} - /webpack@5.89.0: - resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} + /webpack@5.91.0: + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -10228,14 +11843,14 @@ packages: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/wasm-edit': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.11.3 acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.22.2 + browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.15.0 + enhanced-resolve: 5.16.0 es-module-lexer: 1.4.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -10247,8 +11862,8 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.89.0) - watchpack: 2.4.0 + terser-webpack-plugin: 5.3.10(webpack@5.91.0) + watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -10256,13 +11871,6 @@ packages: - uglify-js dev: false - /whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - dependencies: - iconv-lite: 0.6.3 - dev: true - /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -10414,13 +12022,13 @@ packages: /zhead@2.2.4: resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} - /zip-stream@5.0.1: - resolution: {integrity: sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA==} - engines: {node: '>= 12.0.0'} + /zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} dependencies: - archiver-utils: 4.0.1 - compress-commons: 5.0.1 - readable-stream: 3.6.2 + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.5.2 /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} diff --git a/src/context.ts b/src/context.ts new file mode 100644 index 00000000..b1c73b79 --- /dev/null +++ b/src/context.ts @@ -0,0 +1,173 @@ +import { getContext } from 'unctx' +import type { ModuleOptions, TWConfig } from './types' +import { addTemplate, createResolver, updateTemplates, useNuxt } from '@nuxt/kit' +import { resolveModulePaths } from './resolvers' +import logger from './logger' +import { join, relative } from 'pathe' +import _loadConfig from 'tailwindcss/loadConfig.js' +import configMerger from './runtime/merger.mjs' +import resolveConfig from 'tailwindcss/resolveConfig.js' + +const CONFIG_TEMPLATE_NAME = 'tailwind.config.cjs' + +const twCtx = getContext('twcss') +const { tryUse, set } = twCtx +twCtx.tryUse = () => { + const ctx = tryUse() + + if (!ctx) { + try { + return resolveConfig(_loadConfig(join(useNuxt().options.buildDir, CONFIG_TEMPLATE_NAME))) as unknown as TWConfig + } catch { /* empty */ } + } + + return ctx +} +twCtx.set = (instance, replace = true) => { + const resolvedConfig = instance && resolveConfig(instance) + resolvedConfig && useNuxt().callHook('tailwindcss:resolvedConfig', resolvedConfig, twCtx.tryUse() ?? undefined) + + set(resolvedConfig as unknown as TWConfig, replace) +} + +const createInternalContext = async (moduleOptions: ModuleOptions, nuxt = useNuxt()) => { + const [configPaths, contentPaths] = await resolveModulePaths(moduleOptions.configPath, nuxt) + const configUpdatedHook: Record = {} + const configResolvedPath = join(nuxt.options.buildDir, CONFIG_TEMPLATE_NAME) + + const trackProxy = (configPath: string, path: (string | symbol)[] = []): ProxyHandler> => ({ + get: (target, key: string) => { + return (typeof target[key] === 'object' && target[key] !== null) + ? new Proxy(target[key], trackProxy(configPath, path.concat(key))) + : target[key] + }, + + set(target, key, value) { + const resultingCode = `cfg${path.concat(key).map((k) => `[${JSON.stringify(k)}]`).join('')} = ${JSON.stringify(value)};` + + if (JSON.stringify(target[key as string]) === JSON.stringify(value) || configUpdatedHook[configPath].endsWith(resultingCode)) { + return Reflect.set(target, key, value) + } + + if (key === 'plugins' && typeof value === 'function') { + logger.warn( + 'You have injected a functional plugin into your Tailwind Config which cannot be serialized.', + 'Please use a configuration file/template instead.' + ) + // return false // removed for backwards compatibility + } + + configUpdatedHook[configPath] += resultingCode + return Reflect.set(target, key, value) + }, + + deleteProperty(target, key) { + configUpdatedHook[configPath] += `delete cfg${path.concat(key).map((k) => `[${JSON.stringify(k)}]`).join('')};` + return Reflect.deleteProperty(target, key) + }, + }) + + const loadConfig = async () => { + configPaths.forEach((p) => configUpdatedHook[p] = '') + + const tailwindConfig = await Promise.all(( + configPaths.map(async (configPath, idx, paths) => { + let _tailwindConfig: Partial | undefined + + try { + _tailwindConfig = configMerger(undefined, _loadConfig(configPath)) + } catch (e) { + if (!configPath.startsWith(nuxt.options.buildDir)) { + configUpdatedHook[configPath] = 'return {};' + logger.warn(`Failed to load Tailwind config at: \`./${relative(nuxt.options.rootDir, configPath)}\``, e) + } else { + configUpdatedHook[configPath] = nuxt.options.dev ? 'return {};' : '' + } + } + + // Transform purge option from Array to object with { content } + if (_tailwindConfig?.purge && !_tailwindConfig.content) { + configUpdatedHook[configPath] += 'cfg.content = cfg.purge;' + } + + await nuxt.callHook('tailwindcss:loadConfig', _tailwindConfig && new Proxy(_tailwindConfig, trackProxy(configPath)), configPath, idx, paths) + return _tailwindConfig || {} + })) + ).then((configs) => configs.reduce( + (prev, curr) => configMerger(curr, prev), + // internal default tailwind config + configMerger(moduleOptions.config, { content: contentPaths }) + )) as TWConfig + + // Allow extending tailwindcss config by other modules + configUpdatedHook['main-config'] = '' + await nuxt.callHook('tailwindcss:config', new Proxy(tailwindConfig, trackProxy('main-config'))) + twCtx.set(tailwindConfig) + + return tailwindConfig +} + + const generateConfig = () => addTemplate({ + filename: CONFIG_TEMPLATE_NAME, + write: true, + getContents: () => { + const serializeConfig = >(config: T) => + JSON.stringify( + Array.isArray(config.plugins) && config.plugins.length > 0 ? configMerger({ plugins: (defaultPlugins: TWConfig['plugins']) => defaultPlugins?.filter((p) => p && typeof p !== 'function') }, config) : config, + (_, v) => typeof v === 'function' ? `() => (${JSON.stringify(v())})` : v).replace(/"(\(\) => \(.*\))"/g, (_, substr) => substr.replace(/\\"/g, '"') + ) + + const layerConfigs = configPaths.map((configPath) => { + const configImport = `require(${JSON.stringify(/[/\\]node_modules[/\\]/.test(configPath) ? configPath : './' + relative(nuxt.options.buildDir, configPath))})` + return configUpdatedHook[configPath] ? configUpdatedHook[configPath].startsWith('return {};') ? '' : `(() => {const cfg=configMerger(undefined, ${configImport});${configUpdatedHook[configPath]};return cfg;})()` : configImport + }).filter(Boolean) + + return [ + `// generated by the @nuxtjs/tailwindcss module at ${(new Date()).toLocaleString()}`, + `const configMerger = require(${JSON.stringify(createResolver(import.meta.url).resolve('./runtime/merger.mjs'))});`, + `\nconst inlineConfig = ${serializeConfig(moduleOptions.config as Partial)};\n`, + 'const config = [', + layerConfigs.join(',\n'), + `].reduce((prev, curr) => configMerger(curr, prev), configMerger(inlineConfig, { content: ${JSON.stringify(contentPaths)} }));\n`, + `module.exports = ${configUpdatedHook['main-config'] ? `(() => {const cfg=config;${configUpdatedHook['main-config']};return cfg;})()` : 'config'}\n` + ].join('\n') + } + }) + + const registerHooks = () => { + nuxt.hook('app:templatesGenerated', async (_app, templates) => { + if (templates.some((t) => configPaths.includes(t.dst))) { + await loadConfig() + setTimeout(async () => { + await updateTemplates({ filter: t => t.filename === CONFIG_TEMPLATE_NAME }) + await nuxt.callHook('tailwindcss:internal:regenerateTemplates', { configTemplateUpdated: true }) + }, 100) + } + }) + + nuxt.hook('vite:serverCreated', (server) => { + nuxt.hook('tailwindcss:internal:regenerateTemplates', (data) => { + if (!data || !data.configTemplateUpdated) return + const configFile = server.moduleGraph.getModuleById(configResolvedPath) + configFile && server.moduleGraph.invalidateModule(configFile) + }) + }) + + moduleOptions.exposeConfig && nuxt.hook('builder:watch', async (_, path) => { + if (configPaths.includes(join(nuxt.options.rootDir, path))) { + twCtx.set(_loadConfig(configResolvedPath)) + setTimeout(async () => { + await nuxt.callHook('tailwindcss:internal:regenerateTemplates') + }, 100) + } + }) + } + + return { + loadConfig, + generateConfig, + registerHooks + } +} + +export { twCtx, createInternalContext } diff --git a/src/expose.ts b/src/expose.ts new file mode 100644 index 00000000..b72622bb --- /dev/null +++ b/src/expose.ts @@ -0,0 +1,118 @@ +import { dirname, join } from 'pathe' +import { useNuxt, addTemplate, addTypeTemplate } from '@nuxt/kit' +import type { ResolvedNuxtTemplate } from 'nuxt/schema' +import type { ExposeConfig } from './types' +import { twCtx } from './context' + +const NON_ALPHANUMERIC_RE = /^[0-9a-z]+$/i +const isJSObject = (value: any) => typeof value === 'object' && !Array.isArray(value) + +export const createExposeTemplates = (config: ExposeConfig, nuxt = useNuxt()) => { + const templates: ResolvedNuxtTemplate[] = [] + const getTWConfig = (objPath: string[] = []) => objPath.reduce((prev, curr) => prev?.[curr], twCtx.tryUse() as any) + + const populateMap = (obj: any, path: string[] = [], level = 1) => { + Object.entries(obj).forEach(([key, value = {} as any]) => { + const subpathComponents = path.concat(key) + const subpath = subpathComponents.join('/') + + if ( + level >= config.level || // if recursive call is more than desired + !isJSObject(value) || // if its not an object, no more recursion required + Object.keys(value).find(k => !k.match(NON_ALPHANUMERIC_RE)) // object has non-alphanumeric property (unsafe var name) + ) { + templates.push(addTemplate({ + filename: `tailwind.config/${subpath}.mjs`, + getContents: () => { + const _value = getTWConfig(subpathComponents) + + if (isJSObject(_value)) { + const [validKeys, invalidKeys]: [string[], string[]] = [[], []] + Object.keys(_value).forEach(i => (NON_ALPHANUMERIC_RE.test(i) ? validKeys : invalidKeys).push(i)) + + return [ + `${validKeys.map(i => `const _${i} = ${JSON.stringify(_value[i])}`).join('\n')}`, + `const config = { ${validKeys.map(i => `"${i}": _${i}, `).join('')}${invalidKeys.map(i => `"${i}": ${JSON.stringify(_value[i])}, `).join('')} }`, + `export { config as default${validKeys.length > 0 ? ', _' : ''}${validKeys.join(', _')} }` + ].join('\n') + } + return `export default ${JSON.stringify(_value, null, 2)}` + }, + write: config.write + })) + } else { + // recurse through nested objects + populateMap(value, path.concat(key), level + 1) + + templates.push(addTemplate({ + filename: `tailwind.config/${subpath}.mjs`, + getContents: () => { + const _value = getTWConfig(subpathComponents) + const values = Object.keys(_value) + + return [ + `${values.map(v => `import _${v} from "./${key}/${v}.mjs"`).join('\n')}`, + `const config = { ${values.map(k => `"${k}": _${k}`).join(', ')} }`, + `export { config as default${values.length > 0 ? ', _' : ''}${values.join(', _')} }` + ].join('\n') + }, + write: config.write + })) + } + }) + } + + populateMap(twCtx.tryUse()) + + const entryTemplate = addTemplate({ + filename: 'tailwind.config/index.mjs', + getContents: () => { + const _tailwindConfig = getTWConfig() + const configOptions = Object.keys(_tailwindConfig) + + return [ + `${configOptions.map(v => `import ${v} from "#build/tailwind.config/${v}.mjs"`).join('\n')}`, + `const config = { ${configOptions.join(', ')} }`, + `export { config as default, ${configOptions.join(', ')} }` + ].join('\n') + }, + write: true + }) + + templates.push(addTypeTemplate({ + filename: 'types/tailwind.config.d.ts', + getContents: () => { + const _tailwindConfig = getTWConfig() + + const declareModule = (obj: any, path: string[] = [], level = 1) => + Object.entries(obj).map(([key, value = {} as any]): string => { + const subpath = path.concat(key).join('/') + if ( + level >= config.level || // if recursive call is more than desired + !isJSObject(value) || // if its not an object, no more recursion required + Object.keys(value).find(k => !k.match(NON_ALPHANUMERIC_RE)) // object has non-alphanumeric property (unsafe var name) + ) { + if (isJSObject(value)) { + const [validKeys, invalidKeys]: [string[], string[]] = [[], []] + Object.keys(value).forEach(i => (NON_ALPHANUMERIC_RE.test(i) ? validKeys : invalidKeys).push(i)) + + return `declare module "${config.alias}/${subpath}" { ${validKeys.map(i => `export const _${i}: ${JSON.stringify(value[i])};`).join('')} const defaultExport: { ${validKeys.map(i => `"${i}": typeof _${i}, `).join('')}${invalidKeys.map(i => `"${i}": ${JSON.stringify(value[i])}, `).join('')} }; export default defaultExport; }\n` + } + + return `declare module "${config.alias}/${subpath}" { const defaultExport: ${JSON.stringify(value)}; export default defaultExport; }\n` + } + + const values = Object.keys(value) + return declareModule(value, path.concat(key), level + 1).join('') + `declare module "${config.alias}/${subpath}" {${Object.keys(value).map(v => ` export const _${v}: typeof import("${config.alias}/${join(`${key}/${subpath}`, `../${v}`)}")["default"];`).join('')} const defaultExport: { ${values.map(k => `"${k}": typeof _${k}`).join(', ')} }; export default defaultExport; }\n` + }) + + const configOptions = Object.keys(_tailwindConfig) + return declareModule(_tailwindConfig).join('') + `declare module "${config.alias}" {${configOptions.map(v => ` export const ${v}: typeof import("${join(config.alias, v)}")["default"];`).join('')} const defaultExport: { ${configOptions.map(v => `"${v}": typeof ${v}`)} }; export default defaultExport; }` + } + })) + + templates.push(entryTemplate) + nuxt.options.alias[config.alias] = dirname(entryTemplate.dst) + + return templates.map((t) => t.dst) +} diff --git a/src/module.ts b/src/module.ts index 6f5f61f5..9d51aebb 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1,50 +1,50 @@ -import { join, relative } from 'pathe' -import { watch } from 'chokidar' - +import { join } from 'pathe' +import { withTrailingSlash } from 'ufo' import { defineNuxtModule, installModule, isNuxt2, getNuxtVersion, resolvePath, - addVitePlugin, useNuxt, - addTemplate, createResolver, - addImports + addImports, + updateTemplates, + addTemplate } from '@nuxt/kit' -// @ts-expect-error +// @ts-expect-error no declaration file import defaultTailwindConfig from 'tailwindcss/stubs/config.simple.js' -import resolveConfig from 'tailwindcss/resolveConfig.js' -import loadConfig from 'tailwindcss/loadConfig.js' -import { configMerger } from './utils' -import { - resolveModulePaths, - resolveCSSPath, - resolveInjectPosition, - resolveExposeConfig, - resolveViewerConfig, - resolveEditorSupportConfig -} from './resolvers' +import * as resolvers from './resolvers' import logger, { LogLevels } from './logger' -import createTemplates from './templates' -import vitePlugin from './vite-hmr' +import { createExposeTemplates } from './expose' import { setupViewer, exportViewer } from './viewer' +import { createInternalContext } from './context' import { name, version, configKey, compatibility } from '../package.json' -import type { ModuleHooks, ModuleOptions, TWConfig } from './types' -import { withTrailingSlash } from 'ufo' +import type { ModuleOptions, ModuleHooks } from './types' export type { ModuleOptions, ModuleHooks } from './types' +const deprecationWarnings = (moduleOptions: ModuleOptions, nuxt = useNuxt()) => + ([ + ['addTwUtil', 'Use `editorSupport.autocompleteUtil` instead.'], + ['exposeLevel', 'Use `exposeConfig.level` instead.'], + ['injectPosition', `Use \`cssPath: [${ + moduleOptions.cssPath === join(nuxt.options.dir.assets, 'css/tailwind.css') + ? '"~/assets/css/tailwind.css"' + : typeof moduleOptions.cssPath === 'string' ? `"${moduleOptions.cssPath}"` : moduleOptions.cssPath + }, { injectPosition: ${JSON.stringify(moduleOptions.injectPosition)} }]\` instead.`] + ] satisfies Array<[keyof ModuleOptions, string]>).forEach( + ([dOption, alternative]) => moduleOptions[dOption] !== undefined && logger.warn(`Deprecated \`${dOption}\`. ${alternative}`) + ) + const defaults = (nuxt = useNuxt()): ModuleOptions => ({ configPath: 'tailwind.config', cssPath: join(nuxt.options.dir.assets, 'css/tailwind.css'), config: defaultTailwindConfig, viewer: true, exposeConfig: false, - disableHmrHotfix: false, quiet: nuxt.options.logLevel === 'silent', editorSupport: false, }) @@ -53,94 +53,16 @@ export default defineNuxtModule({ meta: { name, version, configKey, compatibility }, defaults, async setup (moduleOptions, nuxt) { if (moduleOptions.quiet) logger.level = LogLevels.silent - const deprecatedOptions: Array<[keyof ModuleOptions, string]> = [ - ['addTwUtil', 'Use `editorSupport.autocompleteUtil` instead.'], - ['exposeLevel', 'Use `exposeConfig.level` instead.'], - ['injectPosition', `Use \`cssPath: [${ - moduleOptions.cssPath === join(nuxt.options.dir.assets, 'css/tailwind.css') - ? '"~/assets/css/tailwind.css"' - : typeof moduleOptions.cssPath === 'string' ? `"${moduleOptions.cssPath}"` : moduleOptions.cssPath - }, { injectPosition: ${JSON.stringify(moduleOptions.injectPosition)} }]\` instead.`] - ] - deprecatedOptions.forEach(([dOption, alternative]) => moduleOptions[dOption] !== undefined && logger.warn(`Deprecated \`${dOption}\`. ${alternative}`)) - - const { resolve } = createResolver(import.meta.url) - const [configPaths, contentPaths] = await resolveModulePaths(moduleOptions.configPath, nuxt) - - const tailwindConfig = await Promise.all(( - configPaths.map(async (configPath, idx, paths) => { - let _tailwindConfig: Partial | undefined - try { - _tailwindConfig = loadConfig(configPath) - } catch (e) { - logger.warn(`Failed to load Tailwind config at: \`./${relative(nuxt.options.rootDir, configPath)}\``, e) - } - - // Transform purge option from Array to object with { content } - if (_tailwindConfig && !_tailwindConfig.content) { - _tailwindConfig.content = _tailwindConfig.purge - } - - await nuxt.callHook('tailwindcss:loadConfig', _tailwindConfig, configPath, idx, paths) - return _tailwindConfig || {} - })) - ).then((configs) => configs.reduce( - (prev, curr) => configMerger(curr, prev), - // internal default tailwind config - configMerger(moduleOptions.config, { content: contentPaths }) - )) - - // Allow extending tailwindcss config by other modules - await nuxt.callHook('tailwindcss:config', tailwindConfig) - - const resolvedConfig = resolveConfig(tailwindConfig as TWConfig) - await nuxt.callHook('tailwindcss:resolvedConfig', resolvedConfig) - - // Expose resolved tailwind config as an alias - if (moduleOptions.exposeConfig) { - const exposeConfig = resolveExposeConfig({ level: moduleOptions.exposeLevel, ...(typeof moduleOptions.exposeConfig === 'object' ? moduleOptions.exposeConfig : {})}) - createTemplates(resolvedConfig, exposeConfig, nuxt) - } - - // Compute tailwindConfig hash - tailwindConfig._hash = String(Date.now()) - - - /** CSS file handling */ - const [cssPath, cssPathConfig] = Array.isArray(moduleOptions.cssPath) ? moduleOptions.cssPath : [moduleOptions.cssPath] - const [resolvedCss, loggerInfo] = await resolveCSSPath( - typeof cssPath === 'string' ? await resolvePath(cssPath, { extensions: ['.css', '.sass', '.scss', '.less', '.styl'] }) : false, nuxt - ) - logger.info(loggerInfo) - - nuxt.options.css = nuxt.options.css ?? [] - const resolvedNuxtCss = resolvedCss && await Promise.all(nuxt.options.css.map((p: any) => resolvePath(p.src ?? p))) || [] - - // Inject only if this file isn't listed already by user (e.g. user may put custom path both here and in css): - if (resolvedCss && !resolvedNuxtCss.includes(resolvedCss)) { - let injectPosition: number - try { - injectPosition = resolveInjectPosition(nuxt.options.css, cssPathConfig?.injectPosition || moduleOptions.injectPosition) - } catch (e: any) { - throw new Error('failed to resolve Tailwind CSS injection position: ' + e.message) - } - - nuxt.options.css.splice(injectPosition, 0, resolvedCss) - } - + deprecationWarnings(moduleOptions, nuxt) - /** PostCSS 8 support for Nuxt 2 */ + let enableHMR = true - // Setup postcss plugins - // https://tailwindcss.com/docs/using-with-preprocessors#future-css-features - const postcssOptions = - nuxt.options.postcss || /* nuxt 3 */ /* @ts-ignore */ - nuxt.options.build.postcss.postcssOptions || /* older nuxt3 */ /* @ts-ignore */ - nuxt.options.build.postcss as any - postcssOptions.plugins = { - ...(postcssOptions.plugins || {}), - 'tailwindcss/nesting': postcssOptions.plugins?.['tailwindcss/nesting'] ?? {}, - tailwindcss: tailwindConfig + if (Array.isArray(moduleOptions.config.plugins) && moduleOptions.config.plugins.find((p) => typeof p === 'function' || typeof p?.handler === 'function')) { + logger.warn( + 'You have provided functional plugins in `tailwindcss.config` in your Nuxt configuration that cannot be serialized for Tailwind Config.', + 'Please use `tailwind.config` or a separate file (specifying in `tailwindcss.configPath`) to enable it with additional support for IntelliSense and HMR.' + ) + enableHMR = false } // install postcss8 module on nuxt < 2.16 @@ -151,83 +73,110 @@ export default defineNuxtModule({ }) } - if (moduleOptions.editorSupport || moduleOptions.addTwUtil || isNuxt2()) { - const editorSupportConfig = resolveEditorSupportConfig(moduleOptions.editorSupport) + const ctx = await createInternalContext(moduleOptions, nuxt) + + if (moduleOptions.editorSupport || moduleOptions.addTwUtil) { + const editorSupportConfig = resolvers.resolveEditorSupportConfig(moduleOptions.editorSupport) if ((editorSupportConfig.autocompleteUtil || moduleOptions.addTwUtil) && !isNuxt2()) { addImports({ name: 'autocompleteUtil', - from: resolve('./runtime/utils'), + from: createResolver(import.meta.url).resolve('./runtime/utils'), as: 'tw', ...(typeof editorSupportConfig.autocompleteUtil === 'object' ? editorSupportConfig.autocompleteUtil : {}) }) } + } - if (editorSupportConfig.generateConfig || isNuxt2()) { - addTemplate({ - filename: 'tailwind.config.cjs', - getContents: () => `module.exports = ${JSON.stringify(resolvedConfig, null, 2)}`, - write: true, - ...(typeof editorSupportConfig.generateConfig === 'object' ? editorSupportConfig.generateConfig : {}) - }) + // css file handling + const [cssPath, cssPathConfig] = Array.isArray(moduleOptions.cssPath) ? moduleOptions.cssPath : [moduleOptions.cssPath] + const [resolvedCss, loggerInfo] = await resolvers.resolveCSSPath(cssPath, nuxt) + logger.info(loggerInfo) + + nuxt.options.css = nuxt.options.css ?? [] + const resolvedNuxtCss = resolvedCss && await Promise.all(nuxt.options.css.map((p: any) => resolvePath(p.src ?? p))) || [] + + // inject only if this file isn't listed already by user + if (resolvedCss && !resolvedNuxtCss.includes(resolvedCss)) { + let injectPosition: number + try { + injectPosition = resolvers.resolveInjectPosition(nuxt.options.css, cssPathConfig?.injectPosition || moduleOptions.injectPosition) + } catch (e: any) { + throw new Error('failed to resolve Tailwind CSS injection position: ' + e.message) } + + nuxt.options.css.splice(injectPosition, 0, resolvedCss) } - // enabled only in development - if (nuxt.options.dev) { - // Watch the Tailwind config file to restart the server - if (isNuxt2()) { - nuxt.options.watch = nuxt.options.watch || [] - configPaths.forEach(path => nuxt.options.watch.push(path)) - } else if (Array.isArray(nuxt.options.watch)) { - configPaths.forEach(path => nuxt.options.watch.push(relative(nuxt.options.srcDir, path))) - } else { - const watcher = watch(configPaths, { depth: 0 }).on('change', (path) => { - logger.info(`Tailwind config changed: ${path}`) - logger.warn('Please restart the Nuxt server to apply changes or upgrade to latest Nuxt for automatic restart.') - }) - nuxt.hook('close', () => watcher.close()) + nuxt.hook('modules:done', async () => { + const _config = await ctx.loadConfig() + + const twConfig = enableHMR ? ctx.generateConfig() : { dst: '' } + enableHMR && ctx.registerHooks() + + // expose resolved tailwind config as an alias + if (moduleOptions.exposeConfig) { + const exposeConfig = resolvers.resolveExposeConfig({ level: moduleOptions.exposeLevel, ...(typeof moduleOptions.exposeConfig === 'object' ? moduleOptions.exposeConfig : {})}) + const exposeTemplates = createExposeTemplates(exposeConfig) + nuxt.hook('tailwindcss:internal:regenerateTemplates', () => updateTemplates({ filter: template => exposeTemplates.includes(template.dst) })) } - // Insert Vite plugin to work around HMR issue - if (!moduleOptions.disableHmrHotfix) { - addVitePlugin(vitePlugin(tailwindConfig, nuxt.options.rootDir, resolvedCss)) + // setup postcss plugins (for Nuxt 2/bridge/3) + const postcssOptions = + nuxt.options.postcss || /* nuxt 3 */ /* @ts-ignore */ + nuxt.options.build.postcss.postcssOptions || /* older nuxt3 */ /* @ts-ignore */ + nuxt.options.build.postcss as any + postcssOptions.plugins = { + ...(postcssOptions.plugins || {}), + 'tailwindcss/nesting': postcssOptions.plugins?.['tailwindcss/nesting'] ?? {}, + tailwindcss: enableHMR ? twConfig.dst satisfies string : _config } - // Add _tailwind config viewer endpoint - // TODO: Fix `addServerHandler` on Nuxt 2 w/o Bridge - if (moduleOptions.viewer) { - const viewerConfig = resolveViewerConfig(moduleOptions.viewer) - setupViewer(tailwindConfig, viewerConfig, nuxt) - - // @ts-ignore - nuxt.hook('devtools:customTabs', (tabs) => { - tabs.push({ - title: 'TailwindCSS', - name: 'tailwindcss', - icon: 'logos-tailwindcss-icon', - category: 'modules', - view: { - type: 'iframe', - src: withTrailingSlash(viewerConfig.endpoint) - } + // enabled only in development + if (nuxt.options.dev) { + // add tailwind-config-viewer endpoint + if (moduleOptions.viewer) { + const viewerConfig = resolvers.resolveViewerConfig(moduleOptions.viewer) + setupViewer(enableHMR ? twConfig.dst : _config, viewerConfig, nuxt) + + // @ts-ignore may not infer types properly + nuxt.hook('devtools:customTabs', (tabs: import('@nuxt/devtools').ModuleOptions['customTabs']) => { + tabs?.push({ + title: 'TailwindCSS', + name: 'tailwindcss', + icon: 'logos-tailwindcss-icon', + category: 'modules', + view: { + type: 'iframe', + src: withTrailingSlash(viewerConfig.endpoint) + } + }) }) - }) - } - } else { - // production only - if (moduleOptions.viewer) { - const configTemplate = addTemplate({ filename: 'tailwind.config/viewer-config.cjs', getContents: () => `module.exports = ${JSON.stringify(tailwindConfig)}`, write: true }) - exportViewer(configTemplate.dst, resolveViewerConfig(moduleOptions.viewer)) + } + } else { + // production only + if (moduleOptions.viewer) { + const viewerConfig = resolvers.resolveViewerConfig(moduleOptions.viewer) + + if (enableHMR) { + exportViewer(twConfig.dst, viewerConfig) + } else { + exportViewer(addTemplate({ filename: 'tailwind.config/viewer-config.cjs', getContents: () => `module.exports = ${JSON.stringify(_config)}`, write: true }).dst, viewerConfig) + } + } } - } + }) } }) declare module 'nuxt/schema' { - interface NuxtHooks extends ModuleHooks {} + interface NuxtHooks extends ModuleHooks { + 'tailwindcss:internal:regenerateTemplates': (data?: { configTemplateUpdated?: boolean }) => void | Promise; + } } declare module '@nuxt/schema' { - interface NuxtHooks extends ModuleHooks {} + interface NuxtHooks extends ModuleHooks { + 'tailwindcss:internal:regenerateTemplates': (data?: { configTemplateUpdated?: boolean }) => void | Promise; + } } diff --git a/src/resolvers.ts b/src/resolvers.ts index 062cc999..b04c2982 100644 --- a/src/resolvers.ts +++ b/src/resolvers.ts @@ -1,7 +1,7 @@ import { existsSync } from 'fs' import { defu } from 'defu' import { join, relative, resolve } from 'pathe' -import { findPath, useNuxt, tryResolveModule, resolveAlias } from '@nuxt/kit' +import { findPath, useNuxt, tryResolveModule, resolveAlias, resolvePath } from '@nuxt/kit' import type { EditorSupportConfig, ExposeConfig, InjectPosition, ModuleOptions, ViewerConfig } from './types' /** @@ -10,11 +10,11 @@ import type { EditorSupportConfig, ExposeConfig, InjectPosition, ModuleOptions, * @param path configPath for a layer * @returns array of resolved paths */ -const resolveConfigPath = async (path: ModuleOptions['configPath']) => +const resolveConfigPath = async (path: ModuleOptions['configPath'], nuxtOptions = useNuxt().options) => Promise.all( (Array.isArray(path) ? path : [path]) .filter(Boolean) - .map((path) => findPath(path, { extensions: ['.js', '.cjs', '.mjs', '.ts'] })) + .map((path) => path.startsWith(nuxtOptions.buildDir) ? path : findPath(path, { extensions: ['.js', '.cjs', '.mjs', '.ts'] })) ).then((paths) => paths.filter((p): p is string => Boolean(p))) /** @@ -68,7 +68,7 @@ export const resolveModulePaths = async (configPath: ModuleOptions['configPath'] if (Array.isArray(nuxt.options._layers) && nuxt.options._layers.length > 1) { const layerPaths = await Promise.all( nuxt.options._layers.slice(1).map(async (layer): Promise<[string[], string[]]> => ([ - await resolveConfigPath(layer?.config?.tailwindcss?.configPath || join(layer.cwd, 'tailwind.config')), + await resolveConfigPath(layer?.config?.tailwindcss?.configPath || join(layer.cwd, 'tailwind.config'), nuxt.options), resolveContentPaths(layer?.config?.srcDir || layer.cwd, defu(layer.config, nuxt.options) as typeof nuxt.options) ]))) @@ -89,13 +89,15 @@ export const resolveModulePaths = async (configPath: ModuleOptions['configPath'] */ export async function resolveCSSPath(cssPath: Exclude>, nuxt = useNuxt()): Promise<[string | false, string]> { if (typeof cssPath === 'string') { - return existsSync(cssPath) - ? [cssPath, `Using Tailwind CSS from ~/${relative(nuxt.options.srcDir, cssPath)}`] + const _cssPath = await resolvePath(cssPath, { extensions: ['.css', '.sass', '.scss', '.less', '.styl'] }) + + return existsSync(_cssPath) + ? [_cssPath, `Using Tailwind CSS from ~/${relative(nuxt.options.srcDir, _cssPath)}`] : await tryResolveModule('tailwindcss/package.json') .then(twLocation => twLocation ? [join(twLocation, '../tailwind.css'), 'Using default Tailwind CSS file'] : Promise.reject('Unable to resolve tailwindcss. Is it installed?')) } else { return [ - cssPath && false, + false, 'No Tailwind CSS file found. Skipping...' ] } diff --git a/src/runtime/merger.mjs b/src/runtime/merger.mjs new file mode 100644 index 00000000..4e7297d4 --- /dev/null +++ b/src/runtime/merger.mjs @@ -0,0 +1,39 @@ +/** @typedef {import('tailwindcss').Config} TWConfig */ + +import { createDefu } from 'defu' + +const isJSObject = (value) => typeof value === 'object' && !Array.isArray(value) + +/** + * Merges Tailwind CSS configuration objects. This has special logic to merge Content as Array or Object. + * + * Read . + * + * @type {(...p: Array | Record | undefined>) => Partial} + */ +export default (_base, ...defaults) => { + const base = _base ?? Object.assign({}, defaults[0]) + + return createDefu((obj, key, value) => { + if (key === 'content') { + if (isJSObject(obj[key]) && Array.isArray(value)) { + obj[key] = { ...obj[key], files: [...(obj[key]['files'] || []), ...value] } + return true + } else if (Array.isArray(obj[key]) && isJSObject(value)) { + obj[key] = { ...value, files: [...obj[key], ...(value.files || [])] } + return true + } + } + + // keeping arrayFn + if (Array.isArray(obj[key]) && typeof value === 'function') { + obj[key] = value(obj[key]) + return true + } + + // create copy of object + if (!obj[key] && isJSObject(value)) { + obj[key] = Object.assign({}, value) + } + })(base, ...defaults) +} diff --git a/src/templates.ts b/src/templates.ts deleted file mode 100644 index a5903386..00000000 --- a/src/templates.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { dirname, join } from 'pathe' -import { useNuxt, addTemplate, addTypeTemplate } from '@nuxt/kit' -import { isJSObject, NON_ALPHANUMERIC_RE } from './utils' -import type { ExposeConfig, ResolvedTwConfig, TWConfig } from './types' - -/** - * Creates MJS exports for properties of the config - * - * @param resolvedConfig tailwind config - * @param maxLevel maximum level of depth - * @param nuxt nuxt app - */ -export default function createTemplates (resolvedConfig: Partial | ResolvedTwConfig, config: ExposeConfig, nuxt = useNuxt()) { - const dtsContent: Array = [] - - const populateMap = (obj: any, path: string[] = [], level = 1) => { - Object.entries(obj).forEach(([key, value = {} as any]) => { - const subpath = path.concat(key).join('/') - - if ( - level >= config.level || // if recursive call is more than desired - !isJSObject(value) || // if its not an object, no more recursion required - Object.keys(value).find(k => !k.match(NON_ALPHANUMERIC_RE)) // object has non-alphanumeric property (unsafe var name) - ) { - if (isJSObject(value)) { - const [validKeys, invalidKeys]: [string[], string[]] = [[], []] - Object.keys(value).forEach(i => (NON_ALPHANUMERIC_RE.test(i) ? validKeys : invalidKeys).push(i)) - - addTemplate({ - filename: `tailwind.config/${subpath}.mjs`, - getContents: () => `${validKeys.map(i => `const _${i} = ${JSON.stringify(value[i])}`).join('\n')}\nconst config = { ${validKeys.map(i => `"${i}": _${i}, `).join('')}${invalidKeys.map(i => `"${i}": ${JSON.stringify(value[i])}, `).join('')} }\nexport { config as default${validKeys.length > 0 ? ', _' : ''}${validKeys.join(', _')} }`, - write: config.write - }) - dtsContent.push(`declare module "${config.alias}/${subpath}" { ${validKeys.map(i => `export const _${i}: ${JSON.stringify(value[i])};`).join('')} const defaultExport: { ${validKeys.map(i => `"${i}": typeof _${i}, `).join('')}${invalidKeys.map(i => `"${i}": ${JSON.stringify(value[i])}, `).join('')} }; export default defaultExport; }`) - } else { - addTemplate({ - filename: `tailwind.config/${subpath}.mjs`, - getContents: () => `export default ${JSON.stringify(value, null, 2)}`, - write: config.write - }) - dtsContent.push(`declare module "${config.alias}/${subpath}" { const defaultExport: ${JSON.stringify(value)}; export default defaultExport; }`) - } - } else { - // recurse through nested objects - populateMap(value, path.concat(key), level + 1) - - const values = Object.keys(value) - addTemplate({ - filename: `tailwind.config/${subpath}.mjs`, - getContents: () => `${values.map(v => `import _${v} from "./${key}/${v}.mjs"`).join('\n')}\nconst config = { ${values.map(k => `"${k}": _${k}`).join(', ')} }\nexport { config as default${values.length > 0 ? ', _' : ''}${values.join(', _')} }`, - write: config.write - }) - dtsContent.push(`declare module "${config.alias}/${subpath}" {${Object.keys(value).map(v => ` export const _${v}: typeof import("${config.alias}/${join(`${key}/${subpath}`, `../${v}`)}")["default"];`).join('')} const defaultExport: { ${values.map(k => `"${k}": typeof _${k}`).join(', ')} }; export default defaultExport; }`) - } - }) - } - - populateMap(resolvedConfig) - const configOptions = Object.keys(resolvedConfig) - - const template = addTemplate({ - filename: 'tailwind.config/index.mjs', - getContents: () => `${configOptions.map(v => `import ${v} from "#build/tailwind.config/${v}.mjs"`).join('\n')}\nconst config = { ${configOptions.join(', ')} }\nexport { config as default, ${configOptions.join(', ')} }`, - write: true - }) - - dtsContent.push(`declare module "${config.alias}" {${configOptions.map(v => ` export const ${v}: typeof import("${join(config.alias, v)}")["default"];`).join('')} const defaultExport: { ${configOptions.map(v => `"${v}": typeof ${v}`)} }; export default defaultExport; }`) - addTypeTemplate({ - filename: 'types/tailwind.config.d.ts', - getContents: () => dtsContent.join('\n') - }) - - nuxt.options.alias[config.alias] = dirname(template.dst) -} diff --git a/src/types.ts b/src/types.ts index 4d824d6b..9d044259 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,8 +1,6 @@ type Import = Exclude[0], any[]> export type TWConfig = import('tailwindcss').Config; -export type ResolvedTwConfig = ReturnType; -export type Arrayable = T | Array; export type InjectPosition = 'first' | 'last' | number | { after: string }; interface ExtendTailwindConfig { @@ -52,38 +50,20 @@ export type ExposeConfig = { export type EditorSupportConfig = { /** * Enable utility to write Tailwind CSS classes inside strings. - * + * * You will need to update `.vscode/settings.json` based on this value. This works only for Nuxt 3 or Nuxt 2 with Bridge. - * + * * ```json * { * "tailwindCSS.experimental.classRegex": ["tw`(.*?)`", "tw\\('(.*?)'\\)"] * } * ``` - * - * Read https://tailwindcss.nuxtjs.org/tailwind/editor-support#autocomplete. - * + * + * Read https://tailwindcss.nuxtjs.org/tailwind/editor-support#string-classes-autocomplete. + * * @default false // if true, { as: 'tw' } */ autocompleteUtil: BoolObj>; - /** - * Create a flat configuration template for Intellisense plugin. - * - * You will need to update `.vscode/settings.json` based on this value. - * - * ```json - * { - * "tailwindCSS.experimental.configFile": ".nuxt/tailwind.config.cjs" - * } - * ``` - * - * Read https://tailwindcss.nuxtjs.org/tailwind/editor-support#load-config-file. - * - * Note: this is experimental and may change in future. - * - * @default false // if true, { filename: 'tailwind.config.cjs', write: true } - */ - generateConfig: BoolObj>; }; export interface ModuleOptions { @@ -92,7 +72,7 @@ export interface ModuleOptions { * * @default 'tailwind.config' */ - configPath: Arrayable; + configPath: string | string[]; /** * The path of the Tailwind CSS file. If the file does not exist, the module's default CSS file will be imported instead. * @@ -131,10 +111,6 @@ export interface ModuleOptions { * @deprecated use cssPath as [string | false, { injectPosition: InjectPosition }] */ injectPosition?: InjectPosition; - /** - * @default false - */ - disableHmrHotfix: boolean; /** * Suppress logging to the console when everything is ok * @@ -150,9 +126,9 @@ export interface ModuleOptions { addTwUtil?: boolean; /** * Enable some utilities for better editor support and DX. - * + * * Read https://tailwindcss.nuxtjs.org/tailwind/editor-support. - * + * * @default false // if true, { autocompleteUtil: true } */ editorSupport: BoolObj; @@ -161,26 +137,26 @@ export interface ModuleOptions { export interface ModuleHooks { /** * Passes any Tailwind configuration read by the module for each (extended) [layer](https://nuxt.com/docs/getting-started/layers) and [path](https://tailwindcss.nuxtjs.org/getting-started/options#configpath) before merging all of them. - * - * @param tailwindConfig - * @returns + * + * @param tailwindConfig + * @returns */ 'tailwindcss:config': (tailwindConfig: Partial) => void; /** * Passes the resolved vanilla configuration read from all layers and paths with merging using [defu](https://github.com/unjs/defu). - * - * @param tailwindConfig - * @param configPath - * @param index - * @param configPaths - * @returns + * + * @param tailwindConfig + * @param configPath + * @param index + * @param configPaths + * @returns */ 'tailwindcss:loadConfig': (tailwindConfig: Partial | undefined, configPath: string, index: number, configPaths: string[]) => void; /** * Passes the complete resolved configuration with all defaults from [the full Tailwind config](https://github.com/tailwindlabs/tailwindcss/blob/master/stubs/config.full.js) using resolveConfig. - * + * * @param tailwindConfig - * @returns + * @returns */ - 'tailwindcss:resolvedConfig': (tailwindConfig: ResolvedTwConfig) => void; + 'tailwindcss:resolvedConfig': (tailwindConfig: ReturnType, oldTailwindConfig: TWConfig | undefined) => void; } diff --git a/src/utils.ts b/src/utils.ts deleted file mode 100644 index 25afb42a..00000000 --- a/src/utils.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { createDefu } from 'defu' -import type { TWConfig } from './types' - -export const NON_ALPHANUMERIC_RE = /^[0-9a-z]+$/i -export const isJSObject = (value: any) => typeof value === 'object' && !Array.isArray(value) - -export const configMerger: ( - ...p: Array | Record> -) => Partial = createDefu((obj, key, value) => { - if (key === 'content') { - if (isJSObject(obj[key]) && Array.isArray(value)) { - obj[key]['files'] = [...(obj[key]['files'] || []), ...value] - return true - } else if (Array.isArray(obj[key]) && isJSObject(value)) { - obj[key] = { ...value, files: [...obj[key], ...(value.files || [])]} - return true - } - } - - // keeping arrayFn - if (Array.isArray(obj[key]) && typeof value === 'function') { - obj[key] = value(obj[key]) - return true - } -}) diff --git a/src/viewer.ts b/src/viewer.ts index 50b78b5e..26a56044 100644 --- a/src/viewer.ts +++ b/src/viewer.ts @@ -2,16 +2,17 @@ import { colors } from 'consola/utils' import { eventHandler, sendRedirect, H3Event } from 'h3' import { addDevServerHandler, isNuxt2, isNuxt3, useNuxt } from '@nuxt/kit' import { withTrailingSlash, withoutTrailingSlash, joinURL, cleanDoubleSlashes } from 'ufo' +import loadConfig from 'tailwindcss/loadConfig.js' import logger from './logger' import { relative } from 'pathe' import type { TWConfig, ViewerConfig } from './types' -export const setupViewer = async (twConfig: Partial, config: ViewerConfig, nuxt = useNuxt()) => { +export const setupViewer = async (twConfig: string | TWConfig, config: ViewerConfig, nuxt = useNuxt()) => { const route = joinURL(nuxt.options.app?.baseURL, config.endpoint) const [routeWithSlash, routeWithoutSlash] = [withTrailingSlash(route), withoutTrailingSlash(route)] // @ts-expect-error untyped package export - const viewerServer = (await import('tailwind-config-viewer/server/index.js').then(r => r.default || r))({ tailwindConfigProvider: () => twConfig }).asMiddleware() + const viewerServer = (await import('tailwind-config-viewer/server/index.js').then(r => r.default || r))({ tailwindConfigProvider: typeof twConfig === 'string' ? () => loadConfig(twConfig) : () => twConfig }).asMiddleware() const viewerDevMiddleware = eventHandler(event => viewerServer(event.node?.req || event.req, event.node?.res || event.res)) if (isNuxt3()) { @@ -47,7 +48,7 @@ export const setupViewer = async (twConfig: Partial, config: ViewerCon }) } -export const exportViewer = async (pathToConfig: string, config: ViewerConfig, nuxt = useNuxt()) => { +export const exportViewer = async (twConfig: string, config: ViewerConfig, nuxt = useNuxt()) => { if (!config.exportViewer) { return } // @ts-ignore const cli = await import('tailwind-config-viewer/cli/export.js').then(r => r.default || r) as any @@ -56,7 +57,7 @@ export const exportViewer = async (pathToConfig: string, config: ViewerConfig, n // nitro.options.prerender.ignore.push(config.endpoint); const dir = joinURL(nitro.options.output.publicDir, config.endpoint) - cli(dir, pathToConfig) + cli(dir, twConfig) logger.success(`Exported viewer to ${colors.yellow(relative(nuxt.options.srcDir, dir))}`) }) } diff --git a/src/vite-hmr.ts b/src/vite-hmr.ts deleted file mode 100644 index c7ee24d9..00000000 --- a/src/vite-hmr.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { isAbsolute, resolve } from 'pathe' -import type { Plugin as VitePlugin } from 'vite' -import type { TWConfig } from './types' -import micromatch from 'micromatch' - -export default function (tailwindConfig: Partial = {}, rootDir: string, cssPath: string | false): VitePlugin { - const resolvedContent = ((Array.isArray(tailwindConfig.content) ? tailwindConfig.content : tailwindConfig.content?.files || []).filter(f => typeof f === 'string') as Array).map(f => !isAbsolute(f) ? resolve(rootDir, f) : f) - - return { - name: 'nuxt:tailwindcss', - handleHotUpdate (ctx): void { - if (resolvedContent.findIndex(c => micromatch.isMatch(ctx.file, c)) === -1) { - return - } - - const extraModules = cssPath && ctx.server.moduleGraph.getModulesByFile(cssPath) || new Set() - const timestamp = +Date.now() - - for (const mod of extraModules) { - // This will invalidate Vite cache (e.g. next page reload will be fine), but won't help with HMR on its own - ctx.server.moduleGraph.invalidateModule(mod, undefined, timestamp) - } - - // Surely, this is not the best way to fix that, especially given direct `send` call bypassing all Vite logic. - // But just returning extra modules does not cause Vite to send the update, and I didn't find a way to trigger - // that update manually other than sending it directly - - ctx.server.ws.send({ - type: 'update', - updates: Array.from(extraModules).map((mod) => { - return { - type: mod.type === 'js' ? 'js-update' : 'css-update', - path: mod.url, - acceptedPath: mod.url, - timestamp - } - }) - }) - if (ctx.file.includes('/content-cache/')) { - // @ts-ignore - return true - } - } - } -} diff --git a/test/basic.test.ts b/test/basic.test.ts index 3df72732..2bf2c91f 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -38,7 +38,7 @@ describe('tailwindcss module', async () => { }) test('default js config is merged in', () => { - const vfsFile = getVfsFile('test-tailwind.config.cjs') + const vfsFile = getVfsFile('test-tailwind.config.mjs') // set from default config tailwind.config.js expect(vfsFile).contains('"primary": "#f1e05a"') }) diff --git a/test/configs.test.ts b/test/configs.test.ts index 9dced2b3..4c661b94 100644 --- a/test/configs.test.ts +++ b/test/configs.test.ts @@ -2,6 +2,9 @@ import { describe, test, expect, vi, afterAll } from 'vitest' import type { Config } from 'tailwindcss' import destr from 'destr' import { setupNuxtTailwind, r, getVfsFile } from './utils' +import loadConfig from 'tailwindcss/loadConfig' +import { useTestContext } from '@nuxt/test-utils' +import { join } from 'pathe' type TWConfigWithStringContent< C extends Config = Config, @@ -35,7 +38,19 @@ describe('tailwindcss module configs', async () => { dir: { plugins: 'my-pluggable-modules', modules: 'my-modular-plugins' }, modules: [r('modules/cjs-config.ts'), '@nuxtjs/tailwindcss'], imports: { dirs: ['my-imports-dir1', 'my-imports-dir2'] }, - extensions: ['.json', '.mdc', '.mdx', '.coffee'] + extensions: ['.json', '.mdc', '.mdx', '.coffee'], + hooks: { + 'tailwindcss:config': (tailwindConfig) => { + tailwindConfig.content = tailwindConfig.content ?? [] + + if (Array.isArray(tailwindConfig.content)) { + tailwindConfig.content.push('my-custom-content') + } else { + tailwindConfig.content.files = tailwindConfig.content.files ?? [] + tailwindConfig.content.files.push('my-custom-content') + } + } + } }) test('throws error about malformed config', () => { @@ -48,16 +63,16 @@ describe('tailwindcss module configs', async () => { test('ts config file is loaded and merged', () => { // set from ts-tailwind.config.ts - expect(getVfsFile('test-tailwind.config.cjs')).contains('"typescriptBlue": "#007acc"') + expect(getVfsFile('test-tailwind.config.mjs')).contains('"typescriptBlue": "#007acc"') }) test('js config file is loaded and merged', () => { // set from ts-tailwind.config.ts - expect(getVfsFile('test-tailwind.config.cjs')).contains('"javascriptYellow": "#f1e05a"') + expect(getVfsFile('test-tailwind.config.mjs')).contains('"javascriptYellow": "#f1e05a"') }) test('content is adaptive', () => { - const { content: { files: contentFiles } } = destr(getVfsFile('test-tailwind.config.cjs')!.replace(/^(module\.exports = )/, '')) + const { content: { files: contentFiles } } = destr(getVfsFile('test-tailwind.config.mjs')!.replace(/^export default /, '')) expect(contentFiles.find(c => /my-pluggable-modules|my-modular-plugins/.test(c))).toBeDefined() expect(contentFiles.filter(c => c.includes('my-imports-dir')).length).toBe(2) @@ -66,17 +81,24 @@ describe('tailwindcss module configs', async () => { test('content is overridden', () => { // set from override-tailwind.config.ts - const { content: { files: contentFiles }} = destr(getVfsFile('test-tailwind.config.cjs')!.replace(/^(module\.exports = )/, '')) + const { content: { files: contentFiles }} = destr(getVfsFile('test-tailwind.config.mjs')!.replace(/^export default /, '')) expect(contentFiles[0]).toBe('ts-content/**/*.md') expect(contentFiles[1]).toBe('./custom-theme/**/*.vue') expect(contentFiles.filter(c => /{[AE],[ae]}/.test(c)).length).toBe(0) + expect([...contentFiles].pop()).toBe('my-custom-content') }) test('content merges with objects', () => { - const { content } = destr(getVfsFile('test-tailwind.config.cjs')!.replace(/^(module\.exports = )/, '')) + const { content } = destr(getVfsFile('test-tailwind.config.mjs')!.replace(/^export default /, '')) expect(content.relative).toBeTruthy() - expect(content.files.pop()).toBe('./my-components/**/*.tsx') + expect(content.files.includes('./my-components/**/*.tsx')).toBe(true) + }) + + test('config template compiled properly', () => { + const configFile = getVfsFile('tailwind.config.cjs') + const loadedConfig = loadConfig(join(useTestContext().nuxt!.options.buildDir, 'tailwind.config.cjs')) + expect(configFile).contains(`module.exports = (() => {const cfg=config;cfg["content"]${'files' in loadedConfig.content ? `["files"]["${loadedConfig.content.files.length - 1}"]` : `["${loadedConfig.content.length - 1}"]`} = "my-custom-content";;return cfg;})()`) }) -}) \ No newline at end of file +}) diff --git a/test/fixtures/basic/modules/cjs-config.ts b/test/fixtures/basic/modules/cjs-config.ts index d18c016c..1fa08782 100644 --- a/test/fixtures/basic/modules/cjs-config.ts +++ b/test/fixtures/basic/modules/cjs-config.ts @@ -2,12 +2,12 @@ import { defineNuxtModule, addTemplate } from '@nuxt/kit' export default defineNuxtModule({ setup (_options, nuxt) { - // logger.info('Creating test-tailwind.config.cjs...') + // logger.info('Creating test-tailwind.config.mjs...') nuxt.hook('tailwindcss:resolvedConfig', (config) => { addTemplate({ - filename: 'test-tailwind.config.cjs', // gets prepended by .nuxt/ - getContents: () => `module.exports = ${JSON.stringify(config, null, 2)}`, + filename: 'test-tailwind.config.mjs', // gets prepended by .nuxt/ + getContents: () => `export default ${JSON.stringify(config, null, 2)}`, write: true }) })