diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 6e07fd52419055..6ddcdb6b4ab971 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,6 +1,7 @@ // @ts-check const { builtinModules } = require('node:module') const { defineConfig } = require('eslint-define-config') +const pkg = require('./package.json') module.exports = defineConfig({ root: true, @@ -16,7 +17,7 @@ module.exports = defineConfig({ parser: '@typescript-eslint/parser', parserOptions: { sourceType: 'module', - ecmaVersion: 2021, + ecmaVersion: 2022, }, rules: { eqeqeq: ['warn', 'always', { null: 'never' }], @@ -173,13 +174,13 @@ module.exports = defineConfig({ 'n/no-unsupported-features/es-builtins': [ 'error', { - version: '^14.18.0 || >=16.0.0', + version: pkg.engines.node, }, ], 'n/no-unsupported-features/node-builtins': [ 'error', { - version: '^14.18.0 || >=16.0.0', + version: pkg.engines.node, }, ], '@typescript-eslint/explicit-module-boundary-types': 'off', diff --git a/.github/renovate.json5 b/.github/renovate.json5 index c58ed06430399a..1a37bc89b336ba 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -19,6 +19,5 @@ // breaking changes "kill-port", // `kill-port:^2.0.0 has perf issues (#8392) - "miniflare", // `miniflare:v2.0.0+` only supports node 16.7 ], } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e5ead506804b79..fcc0628ec1540e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node_version: [14, 16, 18, 20] + node_version: [18, 20] include: # Active LTS + other OS - os: macos-latest @@ -67,14 +67,8 @@ jobs: packages/create-vite/template** **.md - - name: Install pnpm (node 14, pnpm 7) - if: steps.changed-files.outputs.only_changed != 'true' && matrix.node_version == 14 - uses: pnpm/action-setup@v2.4.0 - with: - version: 7 - - name: Install pnpm - if: steps.changed-files.outputs.only_changed != 'true' && matrix.node_version != 14 + if: steps.changed-files.outputs.only_changed != 'true' uses: pnpm/action-setup@v2.4.0 - name: Set node version to ${{ matrix.node_version }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ed3cd92dd84f33..3102c7176bf9f8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -23,10 +23,10 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v2.4.0 - - name: Set node version to 16.x + - name: Set node version to 18 uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18 registry-url: https://registry.npmjs.org/ cache: "pnpm" diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 7646fb17286f27..5f33edb898458d 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -164,6 +164,10 @@ export default defineConfig({ text: 'Changelog', link: 'https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md', }, + { + text: 'Contributing', + link: 'https://github.com/vitejs/vite/blob/main/CONTRIBUTING.md', + }, ], }, ], diff --git a/docs/.vitepress/theme/components/AsideSponsors.vue b/docs/.vitepress/theme/components/AsideSponsors.vue index 90e6addab959a5..dcaf44921ae737 100644 --- a/docs/.vitepress/theme/components/AsideSponsors.vue +++ b/docs/.vitepress/theme/components/AsideSponsors.vue @@ -18,5 +18,68 @@ const sponsors = computed(() => { + + diff --git a/docs/config/build-options.md b/docs/config/build-options.md index b5872e363de973..c2c240249c6523 100644 --- a/docs/config/build-options.md +++ b/docs/config/build-options.md @@ -83,7 +83,7 @@ Specify the directory to nest generated assets under (relative to `build.outDir` ## build.assetsInlineLimit - **Type:** `number` -- **Default:** `4096` (4kb) +- **Default:** `4096` (4 KiB) Imported or referenced assets that are smaller than this threshold will be inlined as base64 URLs to avoid extra http requests. Set to `0` to disable inlining altogether. @@ -218,7 +218,6 @@ By default, Vite will empty the `outDir` on build if it is inside project root. ## build.copyPublicDir -- **Experimental:** [Give feedback](https://github.com/vitejs/vite/discussions/13807) - **Type:** `boolean` - **Default:** `true` @@ -236,7 +235,7 @@ Enable/disable gzip-compressed size reporting. Compressing large output files ca - **Type:** `number` - **Default:** `500` -Limit for chunk size warnings (in kbs). It is compared against the uncompressed chunk size as the [JavaScript size itself is related to the execution time](https://v8.dev/blog/cost-of-javascript-2019). +Limit for chunk size warnings (in kB). It is compared against the uncompressed chunk size as the [JavaScript size itself is related to the execution time](https://v8.dev/blog/cost-of-javascript-2019). ## build.watch diff --git a/docs/config/shared-options.md b/docs/config/shared-options.md index fd193f0fde4966..e7708d80c517cf 100644 --- a/docs/config/shared-options.md +++ b/docs/config/shared-options.md @@ -326,7 +326,7 @@ Enabling this disables named imports. - **Type:** `ESBuildOptions | false` -`ESBuildOptions` extends [esbuild's own transform options](https://esbuild.github.io/api/#transform-api). The most common use case is customizing JSX: +`ESBuildOptions` extends [esbuild's own transform options](https://esbuild.github.io/api/#transform). The most common use case is customizing JSX: ```js export default defineConfig({ diff --git a/docs/guide/api-javascript.md b/docs/guide/api-javascript.md index cb1540950ec23c..a9a5a2592bc8cd 100644 --- a/docs/guide/api-javascript.md +++ b/docs/guide/api-javascript.md @@ -201,15 +201,7 @@ import { preview } from 'vite' ## `PreviewServer` ```ts -interface PreviewServer extends PreviewServerForHook { - resolvedUrls: ResolvedServerUrls -} -``` - -## `PreviewServerForHook` - -```ts -interface PreviewServerForHook { +interface PreviewServer { /** * The resolved vite config object */ @@ -228,7 +220,8 @@ interface PreviewServerForHook { */ httpServer: http.Server /** - * The resolved urls Vite prints on the CLI + * The resolved urls Vite prints on the CLI. + * null before server is listening. */ resolvedUrls: ResolvedServerUrls | null /** @@ -268,6 +261,15 @@ Deeply merge two Vite configs. `isRoot` represents the level within the Vite con ::: tip NOTE `mergeConfig` accepts only config in object form. If you have a config in callback form, you should call it before passing into `mergeConfig`. + +You can use the `defineConfig` helper to merge a config in callback form with another config: + +```ts +export default defineConfig((configEnv) => + mergeConfig(configAsCallback(configEnv), configAsObject), +) +``` + ::: ## `searchForWorkspaceRoot` diff --git a/docs/guide/api-plugin.md b/docs/guide/api-plugin.md index 4ca270afcc53fa..d2f3b6ff8e25c9 100644 --- a/docs/guide/api-plugin.md +++ b/docs/guide/api-plugin.md @@ -311,9 +311,9 @@ Vite plugins can also provide hooks that serve Vite-specific purposes. These hoo ### `configurePreviewServer` -- **Type:** `(server: PreviewServerForHook) => (() => void) | void | Promise<(() => void) | void>` +- **Type:** `(server: PreviewServer) => (() => void) | void | Promise<(() => void) | void>` - **Kind:** `async`, `sequential` -- **See also:** [PreviewServerForHook](./api-javascript#previewserverforhook) +- **See also:** [PreviewServer](./api-javascript#previewserver) Same as [`configureServer`](/guide/api-plugin.html#configureserver) but for the preview server. Similarly to `configureServer`, the `configurePreviewServer` hook is called before other middlewares are installed. If you want to inject a middleware **after** other middlewares, you can return a function from `configurePreviewServer`, which will be called after internal middlewares are installed: diff --git a/docs/guide/assets.md b/docs/guide/assets.md index dff926f2c2da31..782d734e2f9ccc 100644 --- a/docs/guide/assets.md +++ b/docs/guide/assets.md @@ -1,3 +1,7 @@ +--- +outline: [2, 3] +--- + # Static Asset Handling - Related: [Public Base Path](./build#public-base-path) diff --git a/docs/guide/build.md b/docs/guide/build.md index b2b210b51fcd28..e08946a8435f81 100644 --- a/docs/guide/build.md +++ b/docs/guide/build.md @@ -170,8 +170,8 @@ Running `vite build` with this config uses a Rollup preset that is oriented towa ``` $ vite build building for production... -dist/my-lib.js 0.08 KiB / gzip: 0.07 KiB -dist/my-lib.umd.cjs 0.30 KiB / gzip: 0.16 KiB +dist/my-lib.js 0.08 kB / gzip: 0.07 kB +dist/my-lib.umd.cjs 0.30 kB / gzip: 0.16 kB ``` Recommended `package.json` for your lib: diff --git a/docs/guide/cli.md b/docs/guide/cli.md index 050610701c4d70..5beece69d9064a 100644 --- a/docs/guide/cli.md +++ b/docs/guide/cli.md @@ -1,3 +1,7 @@ +--- +outline: [2, 3] +--- + # Command Line Interface ## Dev server @@ -14,24 +18,25 @@ vite [root] #### Options -| Options | | -| ------------------------ | ----------------------------------------------------------------- | -| `--host [host]` | Specify hostname (`string`) | -| `--port ` | Specify port (`number`) | -| `--https` | Use TLS + HTTP/2 (`boolean`) | -| `--open [path]` | Open browser on startup (`boolean \| string`) | -| `--cors` | Enable CORS (`boolean`) | -| `--strictPort` | Exit if specified port is already in use (`boolean`) | -| `--force` | Force the optimizer to ignore the cache and re-bundle (`boolean`) | -| `-c, --config ` | Use specified config file (`string`) | -| `--base ` | Public base path (default: `/`) (`string`) | -| `-l, --logLevel ` | Info \| warn \| error \| silent (`string`) | -| `--clearScreen` | Allow/disable clear screen when logging (`boolean`) | -| `-d, --debug [feat]` | Show debug logs (`string \| boolean`) | -| `-f, --filter ` | Filter debug logs (`string`) | -| `-m, --mode ` | Set env mode (`string`) | -| `-h, --help` | Display available CLI options | -| `-v, --version` | Display version number | +| Options | | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `--host [host]` | Specify hostname (`string`) | +| `--port ` | Specify port (`number`) | +| `--https` | Use TLS + HTTP/2 (`boolean`) | +| `--open [path]` | Open browser on startup (`boolean \| string`) | +| `--cors` | Enable CORS (`boolean`) | +| `--strictPort` | Exit if specified port is already in use (`boolean`) | +| `--force` | Force the optimizer to ignore the cache and re-bundle (`boolean`) | +| `-c, --config ` | Use specified config file (`string`) | +| `--base ` | Public base path (default: `/`) (`string`) | +| `-l, --logLevel ` | info \| warn \| error \| silent (`string`) | +| `--clearScreen` | Allow/disable clear screen when logging (`boolean`) | +| `--profile` | Start built-in Node.js inspector (check [Performance bottlenecks](/guide/troubleshooting#performance-bottlenecks)) | +| `-d, --debug [feat]` | Show debug logs (`string \| boolean`) | +| `-f, --filter ` | Filter debug logs (`string`) | +| `-m, --mode ` | Set env mode (`string`) | +| `-h, --help` | Display available CLI options | +| `-v, --version` | Display version number | ## Build @@ -65,6 +70,7 @@ vite build [root] | `--base ` | Public base path (default: `/`) (`string`) | | `-l, --logLevel ` | Info \| warn \| error \| silent (`string`) | | `--clearScreen` | Allow/disable clear screen when logging (`boolean`) | +| `--profile` | Start built-in Node.js inspector (check [Performance bottlenecks](/guide/troubleshooting#performance-bottlenecks)) | | `-d, --debug [feat]` | Show debug logs (`string \| boolean`) | | `-f, --filter ` | Filter debug logs (`string`) | | `-m, --mode ` | Set env mode (`string`) | diff --git a/docs/guide/dep-pre-bundling.md b/docs/guide/dep-pre-bundling.md index ddfad451322c08..1a8f0f226124b6 100644 --- a/docs/guide/dep-pre-bundling.md +++ b/docs/guide/dep-pre-bundling.md @@ -1,3 +1,7 @@ +--- +outline: [2, 3] +--- + # Dependency Pre-Bundling When you run `vite` for the first time, Vite prebundles your project dependencies before loading your site locally. It is done automatically and transparently by default. diff --git a/docs/guide/env-and-mode.md b/docs/guide/env-and-mode.md index e54ba86d1c0cbd..700ecba58f216f 100644 --- a/docs/guide/env-and-mode.md +++ b/docs/guide/env-and-mode.md @@ -8,7 +8,7 @@ Vite exposes env variables on the special **`import.meta.env`** object. Some bui - **`import.meta.env.BASE_URL`**: {string} the base url the app is being served from. This is determined by the [`base` config option](/config/shared-options.md#base). -- **`import.meta.env.PROD`**: {boolean} whether the app is running in production. +- **`import.meta.env.PROD`**: {boolean} whether the app is running in production (running the dev server with `NODE_ENV='production'` or running an app built with `NODE_ENV='production'`). - **`import.meta.env.DEV`**: {boolean} whether the app is running in development (always the opposite of `import.meta.env.PROD`) diff --git a/docs/guide/index.md b/docs/guide/index.md index ebe76458c21984..c45e1711d69dbe 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -42,27 +42,25 @@ The supported template presets are: ## Scaffolding Your First Vite Project ::: tip Compatibility Note -Vite requires [Node.js](https://nodejs.org/en/) version 14.18+, 16+. However, some templates require a higher Node.js version to work, please upgrade if your package manager warns about it. +Vite requires [Node.js](https://nodejs.org/en/) version 18+. 20+. However, some templates require a higher Node.js version to work, please upgrade if your package manager warns about it. ::: -With NPM: +::: code-group -```bash +```bash [NPM] $ npm create vite@latest ``` -With Yarn: - -```bash +```bash [Yarn] $ yarn create vite ``` -With PNPM: - -```bash +```bash [PNPM] $ pnpm create vite ``` +::: + Then follow the prompts! You can also directly specify the project name and the template you want to use via additional command line options. For example, to scaffold a Vite + Vue project, run: diff --git a/docs/guide/troubleshooting.md b/docs/guide/troubleshooting.md index 4108902477bbfa..e5bfd3869fb647 100644 --- a/docs/guide/troubleshooting.md +++ b/docs/guide/troubleshooting.md @@ -144,6 +144,30 @@ You will need to access the file with `http` protocol. The easiest way to achiev The hash key used to invalidate optimized dependencies depend on the package lock contents, the patches applied to dependencies, and the options in the Vite config file that affects the bundling of node modules. This means that Vite will detect when a dependency is overridden using a feature as [npm overrides](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides), and re-bundle your dependencies on the next server start. Vite won't invalidate the dependencies when you use a feature like [npm link](https://docs.npmjs.com/cli/v9/commands/npm-link). In case you link or unlink a dependency, you'll need to force re-optimization on the next server start by using `vite --force`. We recommend using overrides instead, which are supported now by every package manager (see also [pnpm overrides](https://pnpm.io/package_json#pnpmoverrides) and [yarn resolutions](https://yarnpkg.com/configuration/manifest/#resolutions)). +## Performance bottlenecks + +If you suffer any application performance bottlenecks resulting in slow load times, you can start the built-in Node.js inspector with your Vite dev server or when building your application to create the CPU profile: + +::: code-group + +```bash [dev server] +vite --profile --open +``` + +```bash [build] +vite build --profile +``` + +::: + +::: tip Vite Dev Server +Once your application is opened in the browser, just await finish loading it and then go back to the terminal and press `p` key (will stop the Node.js inspector) then press `q` key to stop the dev server. +::: + +Node.js inspector will generate `vite-profile-0.cpuprofile` in the root folder, go to https://www.speedscope.app/, and upload the CPU profile using the `BROWSE` button to inspect the result. + +You can install [vite-plugin-inspect](https://github.com/antfu/vite-plugin-inspect), which lets you inspect the intermediate state of Vite plugins and can also help you to identify which plugins or middlewares are the bottleneck in your applications. The plugin can be used in both dev and build modes. Check the readme file for more details. + ## Others ### Module externalized for browser compatibility diff --git a/docs/guide/why.md b/docs/guide/why.md index d58d165ca0228e..1647c7781e93e4 100644 --- a/docs/guide/why.md +++ b/docs/guide/why.md @@ -1,3 +1,7 @@ +--- +outline: [2, 3] +--- + # Why Vite ## The Problems diff --git a/docs/index.md b/docs/index.md index bdf716bc3d20a7..fb683307bd6f4b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -21,6 +21,9 @@ hero: - theme: alt text: View on GitHub link: https://github.com/vitejs/vite + - theme: brand + text: 🎉 ViteConf 23! + link: https://viteconf.org/23 features: - icon: 💡 diff --git a/docs/public/viteconf.svg b/docs/public/viteconf.svg index a01c0bd224407c..2ca20c23f890ff 100644 --- a/docs/public/viteconf.svg +++ b/docs/public/viteconf.svg @@ -1 +1,24 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/netlify.toml b/netlify.toml index 961d936bd686e5..d78254570def67 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build.environment] - NODE_VERSION = "16" + NODE_VERSION = "18" # don't need playwright for docs build PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1" [build] diff --git a/package.json b/package.json index 4d76a344005691..2dd3d289ce511a 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "type": "module", "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "homepage": "https://vitejs.dev/", "repository": { @@ -69,12 +69,12 @@ "eslint": "^8.46.0", "eslint-define-config": "^1.23.0", "eslint-plugin-import": "^2.28.0", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-n": "^16.0.1", "eslint-plugin-regexp": "^1.15.0", - "execa": "^7.2.0", + "execa": "^8.0.1", "fast-glob": "^3.3.1", "fs-extra": "^11.1.1", - "lint-staged": "^13.2.3", + "lint-staged": "^14.0.1", "npm-run-all": "^4.1.5", "picocolors": "^1.0.0", "playwright-chromium": "^1.36.2", diff --git a/packages/create-vite/README.md b/packages/create-vite/README.md index 8776ab3c3aeb3c..ea05ce4009beaf 100644 --- a/packages/create-vite/README.md +++ b/packages/create-vite/README.md @@ -3,7 +3,7 @@ ## Scaffolding Your First Vite Project > **Compatibility Note:** -> Vite requires [Node.js](https://nodejs.org/en/) version 14.18+, 16+. However, some templates require a higher Node.js version to work, please upgrade if your package manager warns about it. +> Vite requires [Node.js](https://nodejs.org/en/) version 18+, 20+. However, some templates require a higher Node.js version to work, please upgrade if your package manager warns about it. With NPM: diff --git a/packages/create-vite/build.config.ts b/packages/create-vite/build.config.ts index 435c39bc937a6a..71d1ba88717d6d 100644 --- a/packages/create-vite/build.config.ts +++ b/packages/create-vite/build.config.ts @@ -11,11 +11,12 @@ export default defineBuildConfig({ rollup: { inlineDependencies: true, esbuild: { + target: 'node18', minify: true, }, }, alias: { - // we can always use non-transpiled code since we support 14.18.0+ + // we can always use non-transpiled code since we support node 18+ prompts: 'prompts/lib/index.js', }, hooks: { diff --git a/packages/create-vite/package.json b/packages/create-vite/package.json index 94134bdd378846..8ee1ddf9224f30 100644 --- a/packages/create-vite/package.json +++ b/packages/create-vite/package.json @@ -20,7 +20,7 @@ "prepublishOnly": "npm run build" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "repository": { "type": "git", diff --git a/packages/create-vite/tsconfig.json b/packages/create-vite/tsconfig.json index 65fffe74592b9b..9fc23ebe675e0f 100644 --- a/packages/create-vite/tsconfig.json +++ b/packages/create-vite/tsconfig.json @@ -2,7 +2,7 @@ "include": ["build.config.ts", "src", "__tests__"], "compilerOptions": { "outDir": "dist", - "target": "ES2020", + "target": "ES2022", "module": "ES2020", "moduleResolution": "bundler", "strict": true, diff --git a/packages/plugin-legacy/build.config.ts b/packages/plugin-legacy/build.config.ts index db325ecfa3b0a8..f7e0fdb0bc049f 100644 --- a/packages/plugin-legacy/build.config.ts +++ b/packages/plugin-legacy/build.config.ts @@ -7,5 +7,8 @@ export default defineBuildConfig({ rollup: { emitCJS: true, inlineDependencies: true, + esbuild: { + target: 'node18', + }, }, }) diff --git a/packages/plugin-legacy/package.json b/packages/plugin-legacy/package.json index ee78c70817f109..801dcb557e968e 100644 --- a/packages/plugin-legacy/package.json +++ b/packages/plugin-legacy/package.json @@ -29,7 +29,7 @@ "prepublishOnly": "npm run build" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "repository": { "type": "git", diff --git a/packages/vite/api-extractor.json b/packages/vite/api-extractor.json index 642cef99fecd59..0b5b4178c2bd90 100644 --- a/packages/vite/api-extractor.json +++ b/packages/vite/api-extractor.json @@ -5,8 +5,6 @@ "mainEntryPointFilePath": "./temp/node/index.d.ts", - "bundledPackages": ["lightningcss"], - "dtsRollup": { "enabled": true, "untrimmedFilePath": "", diff --git a/packages/vite/client.d.ts b/packages/vite/client.d.ts index b73389ec373f1f..0f2c3db286d82f 100644 --- a/packages/vite/client.d.ts +++ b/packages/vite/client.d.ts @@ -221,7 +221,7 @@ declare module '*.txt' { // wasm?init declare module '*.wasm?init' { const initWasm: ( - options: WebAssembly.Imports, + options?: WebAssembly.Imports, ) => Promise export default initWasm } diff --git a/packages/vite/package.json b/packages/vite/package.json index 824305fc2a4841..546eb859ea5f42 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -38,7 +38,7 @@ "types" ], "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "repository": { "type": "git", @@ -57,7 +57,7 @@ "build-types": "run-s build-types-temp build-types-pre-patch build-types-roll build-types-post-patch build-types-check", "build-types-temp": "tsc --emitDeclarationOnly --outDir temp/node -p src/node", "build-types-pre-patch": "tsx scripts/prePatchTypes.ts", - "build-types-roll": "tsx scripts/api-extractor.ts run && rimraf temp", + "build-types-roll": "api-extractor run && rimraf temp", "build-types-post-patch": "tsx scripts/postPatchTypes.ts", "build-types-check": "tsx scripts/checkBuiltTypes.ts && tsc --project tsconfig.check.json", "typecheck": "tsc --noEmit", diff --git a/packages/vite/rollup.config.ts b/packages/vite/rollup.config.ts index 026288950e87c0..82415fff301b85 100644 --- a/packages/vite/rollup.config.ts +++ b/packages/vite/rollup.config.ts @@ -195,7 +195,7 @@ function createCjsConfig(isProduction: boolean) { ...Object.keys(pkg.dependencies), ...(isProduction ? [] : Object.keys(pkg.devDependencies)), ], - plugins: [...createNodePlugins(false, false, false), bundleSizeLimit(150)], + plugins: [...createNodePlugins(false, false, false), bundleSizeLimit(155)], }) } @@ -317,7 +317,7 @@ const __require = require; /** * Guard the bundle size * - * @param limit size in KB + * @param limit size in kB */ function bundleSizeLimit(limit: number): Plugin { return { @@ -329,10 +329,10 @@ function bundleSizeLimit(limit: number): Plugin { .join(''), 'utf-8', ) - const kb = size / 1024 + const kb = size / 1000 if (kb > limit) { throw new Error( - `Bundle size exceeded ${limit}kb, current size is ${kb.toFixed( + `Bundle size exceeded ${limit} kB, current size is ${kb.toFixed( 2, )}kb.`, ) diff --git a/packages/vite/scripts/api-extractor.ts b/packages/vite/scripts/api-extractor.ts deleted file mode 100644 index 1154830ffa8cd6..00000000000000 --- a/packages/vite/scripts/api-extractor.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Extractor, ExtractorConfig } from '@microsoft/api-extractor' - -const result = Extractor.invoke( - ExtractorConfig.loadFileAndPrepare('./api-extractor.json'), - { - messageCallback: (message) => { - const ignore = () => { - // @ts-expect-error TS requires to use the const enum, which is not available as the named export in tsx - message.logLevel = 'none' - } - if (message.sourceFilePath?.includes('lightningcss')) { - ignore() - } - if (message.messageId === 'ae-forgotten-export') { - if (message.sourceFilePath?.endsWith('/src/types/lightningcss.d.ts')) { - // We only expose LightningCSS types via prefixed types to avoid - // having confusing name like "Targets" in Vite types - ignore() - } - } - }, - }, -) - -if (!result.succeeded) process.exit(1) diff --git a/packages/vite/scripts/checkBuiltTypes.ts b/packages/vite/scripts/checkBuiltTypes.ts index 5601a1e84fb9cd..43f8a914b63c4d 100644 --- a/packages/vite/scripts/checkBuiltTypes.ts +++ b/packages/vite/scripts/checkBuiltTypes.ts @@ -17,7 +17,9 @@ const distDir = resolve(dir, '../dist') const pkgJson = JSON.parse( readFileSync(resolve(dir, '../package.json'), 'utf-8'), ) -const deps = new Set(Object.keys(pkgJson.dependencies)) +const deps = new Set( + Object.keys(Object.assign(pkgJson.dependencies, pkgJson.peerDependencies)), +) type SpecifierError = { loc: SourceLocation | null | undefined diff --git a/packages/vite/src/client/client.ts b/packages/vite/src/client/client.ts index 8943fb0521a5d7..b909c1328a9a3b 100644 --- a/packages/vite/src/client/client.ts +++ b/packages/vite/src/client/client.ts @@ -289,15 +289,12 @@ function notifyListeners(event: string, data: any): void { const enableOverlay = __HMR_ENABLE_OVERLAY__ function createErrorOverlay(err: ErrorPayload['err']) { - if (!enableOverlay) return clearErrorOverlay() document.body.appendChild(new ErrorOverlay(err)) } function clearErrorOverlay() { - document - .querySelectorAll(overlayId) - .forEach((n) => (n as ErrorOverlay).close()) + document.querySelectorAll(overlayId).forEach((n) => n.close()) } function hasErrorOverlay() { @@ -388,9 +385,11 @@ const sheetsMap = new Map() // collect existing style elements that may have been inserted during SSR // to avoid FOUC or duplicate styles if ('document' in globalThis) { - document.querySelectorAll('style[data-vite-dev-id]').forEach((el) => { - sheetsMap.set(el.getAttribute('data-vite-dev-id')!, el as HTMLStyleElement) - }) + document + .querySelectorAll('style[data-vite-dev-id]') + .forEach((el) => { + sheetsMap.set(el.getAttribute('data-vite-dev-id')!, el) + }) } // all css imports should be inserted at the same position diff --git a/packages/vite/src/client/overlay.ts b/packages/vite/src/client/overlay.ts index 9951510f916a30..508eaf7e05bc9e 100644 --- a/packages/vite/src/client/overlay.ts +++ b/packages/vite/src/client/overlay.ts @@ -2,7 +2,9 @@ import type { ErrorPayload } from 'types/hmrPayload' // injected by the hmr plugin when served declare const __BASE__: string +declare const __HMR_CONFIG_NAME__: string +const hmrConfigName = __HMR_CONFIG_NAME__ const base = __BASE__ || '/' // set :host styles to make playwright detect the element as visible @@ -142,7 +144,7 @@ kbd {
Click outside, press Esc key, or fix the code to dismiss.
You can also disable this overlay by setting - server.hmr.overlay to false in vite.config.js. + server.hmr.overlay to false in ${hmrConfigName}.
diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index dfaab8362784c5..d8935a90b99d78 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -107,7 +107,7 @@ export interface BuildOptions { assetsDir?: string /** * Static asset files smaller than this number (in bytes) will be inlined as - * base64 strings. Default limit is `4096` (4kb). Set to `0` to disable. + * base64 strings. Default limit is `4096` (4 KiB). Set to `0` to disable. * @default 4096 */ assetsInlineLimit?: number @@ -179,7 +179,6 @@ export interface BuildOptions { /** * Copy the public directory to outDir on write. * @default true - * @experimental */ copyPublicDir?: boolean /** @@ -234,7 +233,7 @@ export interface BuildOptions { */ reportCompressedSize?: boolean /** - * Adjust chunk size warning limit (in kbs). + * Adjust chunk size warning limit (in kB). * @default 500 */ chunkSizeWarningLimit?: number @@ -535,7 +534,6 @@ export async function build( } const rollupOptions: RollupOptions = { - context: 'globalThis', preserveEntrySignatures: ssr ? 'allow-extension' : libOptions diff --git a/packages/vite/src/node/cli.ts b/packages/vite/src/node/cli.ts index df858f403f80c5..f6d3c9b6d6fd15 100644 --- a/packages/vite/src/node/cli.ts +++ b/packages/vite/src/node/cli.ts @@ -102,6 +102,16 @@ function cleanOptions( return ret } +/** + * host may be a number (like 0), should convert to string + */ +const convertHost = (v: any) => { + if (typeof v === 'number') { + return String(v) + } + return v +} + cli .option('-c, --config ', `[string] use specified config file`) .option('--base ', `[string] public base path (default: /)`) @@ -116,7 +126,7 @@ cli .command('[root]', 'start dev server') // default command .alias('serve') // the command is called 'serve' in Vite's API .alias('dev') // alias to align with the script name - .option('--host [host]', `[string] specify hostname`) + .option('--host [host]', `[string] specify hostname`, { type: [convertHost] }) .option('--port ', `[number] specify port`) .option('--https', `[boolean] use TLS + HTTP/2`) .option('--open [path]', `[boolean | string] open browser on startup`) @@ -306,7 +316,7 @@ cli // preview cli .command('preview [root]', 'locally preview production build') - .option('--host [host]', `[string] specify hostname`) + .option('--host [host]', `[string] specify hostname`, { type: [convertHost] }) .option('--port ', `[number] specify port`) .option('--strictPort', `[boolean] exit if specified port is already in use`) .option('--https', `[boolean] use TLS + HTTP/2`) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index f73ae2ae703e1c..916af948368d9b 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1017,7 +1017,7 @@ async function bundleConfigFile( entryPoints: [fileName], outfile: 'out.js', write: false, - target: ['node14.18', 'node16'], + target: ['node18'], platform: 'node', bundle: true, format: isESM ? 'esm' : 'cjs', diff --git a/packages/vite/src/node/index.ts b/packages/vite/src/node/index.ts index ffa1d4ecd83a49..c4afbd2bd4812d 100644 --- a/packages/vite/src/node/index.ts +++ b/packages/vite/src/node/index.ts @@ -34,7 +34,6 @@ export type { export type { PreviewOptions, PreviewServer, - PreviewServerForHook, PreviewServerHook, ResolvedPreviewOptions, } from './preview' @@ -75,6 +74,7 @@ export type { export type { CSSOptions, CSSModulesOptions, + LightningCSSOptions, PreprocessCSSResult, ResolvedCSSOptions, } from './plugins/css' @@ -117,7 +117,6 @@ export type { } from 'types/customEvent' export type { ImportGlobFunction, - ImportGlobEagerFunction, ImportGlobOptions, GeneralImportGlobOptions, KnownAsTypeMap, @@ -144,4 +143,3 @@ export type { Terser } from 'dep-types/terser' export type { RollupCommonJSOptions } from 'dep-types/commonjs' export type { RollupDynamicImportVarsOptions } from 'dep-types/dynamicImportVars' export type { Matcher, AnymatchPattern, AnymatchFn } from 'dep-types/anymatch' -export type { LightningCSSOptions } from 'dep-types/lightningcss' diff --git a/packages/vite/src/node/plugin.ts b/packages/vite/src/node/plugin.ts index e522295f30c896..4ec7ccc512d920 100644 --- a/packages/vite/src/node/plugin.ts +++ b/packages/vite/src/node/plugin.ts @@ -90,7 +90,7 @@ export interface Plugin extends RollupPlugin { */ configureServer?: ObjectHook /** - * Configure the preview server. The hook receives the {@link PreviewServerForHook} + * Configure the preview server. The hook receives the {@link PreviewServer} * instance. This can also be used to store a reference to the server * for use in other hooks. * diff --git a/packages/vite/src/node/plugins/clientInjections.ts b/packages/vite/src/node/plugins/clientInjections.ts index 5ac79c8d14ef8e..2a773542aef58c 100644 --- a/packages/vite/src/node/plugins/clientInjections.ts +++ b/packages/vite/src/node/plugins/clientInjections.ts @@ -35,6 +35,7 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin { const timeout = hmrConfig?.timeout || 30000 const overlay = hmrConfig?.overlay !== false const isHmrServerSpecified = !!hmrConfig?.server + const hmrConfigName = path.basename(config.configFile || 'vite.config.js') // hmr.clientPort -> hmr.port // -> (24678 if middleware mode and HMR server is not specified) -> new URL(import.meta.url).port @@ -65,6 +66,7 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin { const hmrBaseReplacement = escapeReplacement(hmrBase) const hmrTimeoutReplacement = escapeReplacement(timeout) const hmrEnableOverlayReplacement = escapeReplacement(overlay) + const hmrConfigNameReplacement = escapeReplacement(hmrConfigName) injectConfigValues = (code: string) => { return code @@ -79,6 +81,7 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin { .replace(`__HMR_BASE__`, hmrBaseReplacement) .replace(`__HMR_TIMEOUT__`, hmrTimeoutReplacement) .replace(`__HMR_ENABLE_OVERLAY__`, hmrEnableOverlayReplacement) + .replace(`__HMR_CONFIG_NAME__`, hmrConfigNameReplacement) } }, transform(code, id, options) { diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index 9aa3abf5c2da68..7ed3eb9d456082 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -20,10 +20,10 @@ import type Sass from 'sass' import type Stylus from 'stylus' import type Less from 'less' import type { Alias } from 'dep-types/alias' -import type { LightningCSSOptions } from 'dep-types/lightningcss' import type { TransformOptions } from 'esbuild' import { formatMessages, transform } from 'esbuild' import type { RawSourceMap } from '@ampproject/remapping' +import type { BundleAsyncOptions, CustomAtRules } from 'lightningcss' import { getCodeWithSourcemap, injectSourcesContent } from '../server/sourcemap' import type { ModuleNode } from '../server/moduleGraph' import type { ResolveFn, ViteDevServer } from '../' @@ -139,6 +139,12 @@ export type ResolvedCSSOptions = Omit & { } } +// remove options set by Vite +export type LightningCSSOptions = Omit< + BundleAsyncOptions, + 'filename' | 'resolver' | 'minify' | 'sourceMap' | 'analyzeDependencies' +> + export function resolveCSSOptions( options: CSSOptions | undefined, ): ResolvedCSSOptions | undefined { @@ -505,7 +511,7 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { } else { let content = css if (config.build.cssMinify) { - content = await minifyCSS(content, config) + content = await minifyCSS(content, config, true) } code = `export default ${JSON.stringify(content)}` } @@ -616,9 +622,12 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { pureCssChunks.add(chunk) } if (opts.format === 'es' || opts.format === 'cjs') { - const cssAssetName = chunk.facadeModuleId - ? normalizePath(path.relative(config.root, chunk.facadeModuleId)) - : chunk.name + const isEntry = chunk.isEntry && isPureCssChunk + const cssAssetName = normalizePath( + !isEntry && chunk.facadeModuleId + ? path.relative(config.root, chunk.facadeModuleId) + : chunk.name, + ) const lang = path.extname(cssAssetName).slice(1) const cssFileName = ensureFileExt(cssAssetName, '.css') @@ -648,7 +657,6 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { source: chunkCSS, }) const originalName = isPreProcessor(lang) ? cssAssetName : cssFileName - const isEntry = chunk.isEntry && isPureCssChunk generatedAssets .get(config)! .set(referenceId, { originalName, isEntry }) @@ -1275,7 +1283,7 @@ async function finalizeCss( css = await hoistAtRules(css) } if (minify && config.build.cssMinify) { - css = await minifyCSS(css, config) + css = await minifyCSS(css, config, false) } return css } @@ -1497,7 +1505,15 @@ async function doImportCSSReplace( return `@import ${wrap}${await replacer(rawUrl)}${wrap}` } -async function minifyCSS(css: string, config: ResolvedConfig) { +async function minifyCSS( + css: string, + config: ResolvedConfig, + inlined: boolean, +) { + // We want inlined CSS to not end with a linebreak, while ensuring that + // regular CSS assets do end with a linebreak. + // See https://github.com/vitejs/vite/pull/13893#issuecomment-1678628198 + if (config.build.cssMinify === 'lightningcss') { const { code, warnings } = (await importLightningCSS()).transform({ ...config.css?.lightningcss, @@ -1516,7 +1532,8 @@ async function minifyCSS(css: string, config: ResolvedConfig) { ), ) } - return code.toString() + // LightningCSS output does not return a linebreak at the end + return code.toString() + (inlined ? '' : '\n') } try { const { code, warnings } = await transform(css, { @@ -1530,7 +1547,8 @@ async function minifyCSS(css: string, config: ResolvedConfig) { colors.yellow(`warnings when minifying css:\n${msgs.join('\n')}`), ) } - return code + // esbuild output does return a linebreak at the end + return inlined ? code.trimEnd() : code } catch (e) { if (e.errors) { e.message = '[esbuild css minify] ' + e.message @@ -2167,13 +2185,15 @@ async function compileLightningCSS( ? (await importLightningCSS()).transformStyleAttribute({ filename, code: Buffer.from(src), - targets: config.css?.lightningcss?.targets, minify: config.isProduction && !!config.build.cssMinify, + targets: config.css?.lightningcss?.targets, analyzeDependencies: true, + visitor: config.css?.lightningcss?.visitor, }) : await ( await importLightningCSS() ).bundleAsync({ + ...config.css?.lightningcss, filename, resolver: { read(filePath) { @@ -2204,14 +2224,12 @@ async function compileLightningCSS( return id }, }, - targets: config.css?.lightningcss?.targets, minify: config.isProduction && !!config.build.cssMinify, sourceMap: config.css?.devSourcemap, analyzeDependencies: true, cssModules: cssModuleRE.test(id) ? config.css?.lightningcss?.cssModules ?? true : undefined, - drafts: config.css?.lightningcss?.drafts, }) let css = res.code.toString() diff --git a/packages/vite/src/node/plugins/importMetaGlob.ts b/packages/vite/src/node/plugins/importMetaGlob.ts index 0daf6b04358b30..c76ab9f495196d 100644 --- a/packages/vite/src/node/plugins/importMetaGlob.ts +++ b/packages/vite/src/node/plugins/importMetaGlob.ts @@ -34,13 +34,11 @@ import { isCSSRequest, isModuleCSSRequest } from './css' const { isMatch, scan } = micromatch export interface ParsedImportGlob { - match: RegExpMatchArray index: number globs: string[] globsResolved: string[] isRelative: boolean options: GeneralImportGlobOptions - type: string start: number end: number } @@ -58,8 +56,10 @@ export function getAffectedGlobModules( (!affirmed.length || affirmed.some((glob) => isMatch(file, glob))) && (!negated.length || negated.every((glob) => isMatch(file, glob))), ) - ) - modules.push(...(server.moduleGraph.getModulesByFile(id) || [])) + ) { + const mod = server.moduleGraph.getModuleById(id) + if (mod) modules.push(mod) + } } modules.forEach((i) => { if (i?.file) server.moduleGraph.onFileChange(i.file) @@ -109,8 +109,7 @@ export function importGlobPlugin(config: ResolvedConfig): Plugin { } } -const importGlobRE = - /\bimport\.meta\.(glob|globEager|globEagerDefault)(?:<\w+>)?\s*\(/g +const importGlobRE = /\bimport\.meta\.glob(?:<\w+>)?\s*\(/g const knownOptions = { as: ['string'], @@ -210,7 +209,6 @@ export async function parseImportGlob( const matches = Array.from(cleanCode.matchAll(importGlobRE)) const tasks = matches.map(async (match, index) => { - const type = match[1] const start = match.index! const err = (msg: string) => { @@ -317,13 +315,11 @@ export async function parseImportGlob( const isRelative = globs.every((i) => '.!'.includes(i[0])) return { - match, index, globs, globsResolved, isRelative, options, - type, start, end, } @@ -383,15 +379,6 @@ export async function transformGlobImport( ) const matchedFiles = new Set() - // TODO: backwards compatibility - matches.forEach((i) => { - if (i.type === 'globEager') i.options.eager = true - if (i.type === 'globEagerDefault') { - i.options.eager = true - i.options.import = 'default' - } - }) - if (!matches.length) return null const s = new MagicString(code) diff --git a/packages/vite/src/node/plugins/reporter.ts b/packages/vite/src/node/plugins/reporter.ts index cbcb0409d1e3f0..bea7d4facd798b 100644 --- a/packages/vite/src/node/plugins/reporter.ts +++ b/packages/vite/src/node/plugins/reporter.ts @@ -285,7 +285,7 @@ export function buildReporterPlugin(config: ResolvedConfig): Plugin { ) { config.logger.warn( colors.yellow( - `\n(!) Some chunks are larger than ${chunkLimit} kBs after minification. Consider:\n` + + `\n(!) Some chunks are larger than ${chunkLimit} kB after minification. Consider:\n` + `- Using dynamic import() to code-split the application\n` + `- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks\n` + `- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.`, diff --git a/packages/vite/src/node/preview.ts b/packages/vite/src/node/preview.ts index 460366446a2f3c..eb15dc55b95057 100644 --- a/packages/vite/src/node/preview.ts +++ b/packages/vite/src/node/preview.ts @@ -45,8 +45,7 @@ export function resolvePreviewOptions( } } -// TODO: merge with PreviewServer in Vite 5 -export interface PreviewServerForHook { +export interface PreviewServer { /** * The resolved vite config object */ @@ -65,7 +64,8 @@ export interface PreviewServerForHook { */ httpServer: http.Server /** - * The resolved urls Vite prints on the CLI + * The resolved urls Vite prints on the CLI. + * null before server is listening. */ resolvedUrls: ResolvedServerUrls | null /** @@ -74,13 +74,9 @@ export interface PreviewServerForHook { printUrls(): void } -export interface PreviewServer extends PreviewServerForHook { - resolvedUrls: ResolvedServerUrls -} - export type PreviewServerHook = ( this: void, - server: PreviewServerForHook, + server: PreviewServer, ) => (() => void) | void | Promise<(() => void) | void> /** @@ -122,7 +118,7 @@ export async function preview( const options = config.preview const logger = config.logger - const server: PreviewServerForHook = { + const server: PreviewServer = { config, middlewares: app, httpServer, diff --git a/packages/vite/src/node/server/ws.ts b/packages/vite/src/node/server/ws.ts index 4a298cac1eebd2..7df59370f9e1d8 100644 --- a/packages/vite/src/node/server/ws.ts +++ b/packages/vite/src/node/server/ws.ts @@ -1,9 +1,10 @@ import path from 'node:path' -import type { Server } from 'node:http' +import type { IncomingMessage, Server } from 'node:http' import { STATUS_CODES, createServer as createHttpServer } from 'node:http' import type { ServerOptions as HttpsServerOptions } from 'node:https' import { createServer as createHttpsServer } from 'node:https' import type { Socket } from 'node:net' +import type { Duplex } from 'node:stream' import colors from 'picocolors' import type { WebSocket as WebSocketRaw } from 'ws' import { WebSocketServer as WebSocketServerRaw_ } from 'ws' @@ -104,6 +105,11 @@ export function createWebSocketServer( // TODO: the main server port may not have been chosen yet as it may use the next available const portsAreCompatible = !hmrPort || hmrPort === config.server.port const wsServer = hmrServer || (portsAreCompatible && server) + let hmrServerWsListener: ( + req: InstanceType, + socket: Duplex, + head: Buffer, + ) => void const customListeners = new Map>>() const clientsMap = new WeakMap() const port = hmrPort || 24678 @@ -116,7 +122,7 @@ export function createWebSocketServer( hmrBase = path.posix.join(hmrBase, hmrPath) } wss = new WebSocketServerRaw({ noServer: true }) - wsServer.on('upgrade', (req, socket, head) => { + hmrServerWsListener = (req, socket, head) => { if ( req.headers['sec-websocket-protocol'] === HMR_HEADER && req.url === hmrBase @@ -125,7 +131,8 @@ export function createWebSocketServer( wss.emit('connection', ws, req) }) } - }) + } + wsServer.on('upgrade', hmrServerWsListener) } else { // http server request handler keeps the same with // https://github.com/websockets/ws/blob/45e17acea791d865df6b255a55182e9c42e5877a/lib/websocket-server.js#L88-L96 @@ -273,6 +280,11 @@ export function createWebSocketServer( }, close() { + // should remove listener if hmr.server is set + // otherwise the old listener swallows all WebSocket connections + if (hmrServerWsListener && wsServer) { + wsServer.off('upgrade', hmrServerWsListener) + } return new Promise((resolve, reject) => { wss.clients.forEach((client) => { client.terminate() diff --git a/packages/vite/src/node/shortcuts.ts b/packages/vite/src/node/shortcuts.ts index 66b45e6b42713b..0c3a7da40ba568 100644 --- a/packages/vite/src/node/shortcuts.ts +++ b/packages/vite/src/node/shortcuts.ts @@ -147,8 +147,13 @@ const BASE_PREVIEW_SHORTCUTS: CLIShortcut[] = [ key: 'o', description: 'open in browser', action(server) { - const url = server.resolvedUrls.local[0] ?? server.resolvedUrls.network[0] - openBrowser(url, true, server.config.logger) + const url = + server.resolvedUrls?.local[0] ?? server.resolvedUrls?.network[0] + if (url) { + openBrowser(url, true, server.config.logger) + } else { + server.config.logger.warn('No URL available to open in browser') + } }, }, { diff --git a/packages/vite/src/types/lightningcss.d.ts b/packages/vite/src/types/lightningcss.d.ts deleted file mode 100644 index 98367f381283a2..00000000000000 --- a/packages/vite/src/types/lightningcss.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { - CSSModulesConfig, - Drafts, - Features, - NonStandard, - PseudoClasses, - Targets, -} from 'lightningcss' - -/** - * Options are spread, so you can also use options that are not typed here like - * visitor (not exposed because it would impact too much the bundle size) - */ -export type LightningCSSOptions = { - targets?: Targets - include?: Features - exclude?: Features - drafts?: Drafts - nonStandard?: NonStandard - pseudoClasses?: PseudoClasses - unusedSymbols?: string[] - cssModules?: CSSModulesConfig -} diff --git a/packages/vite/tsconfig.base.json b/packages/vite/tsconfig.base.json index 37eb865185662d..04df5b8dd6f5d7 100644 --- a/packages/vite/tsconfig.base.json +++ b/packages/vite/tsconfig.base.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "ES2020", + "target": "ES2022", "module": "ESNext", "moduleResolution": "node", "strict": true, diff --git a/packages/vite/types/importGlob.d.ts b/packages/vite/types/importGlob.d.ts index 98786bbdd9efa5..b9ba52ec1ca881 100644 --- a/packages/vite/types/importGlob.d.ts +++ b/packages/vite/types/importGlob.d.ts @@ -71,27 +71,3 @@ export interface ImportGlobFunction { options: ImportGlobOptions, ): Record } - -export interface ImportGlobEagerFunction { - /** - * Eagerly import a list of files with a glob pattern. - * - * Overload 1: No generic provided, infer the type from `as` - */ - < - As extends string, - T = As extends keyof KnownAsTypeMap ? KnownAsTypeMap[As] : unknown, - >( - glob: string | string[], - options?: Omit, 'eager'>, - ): Record - /** - * Eagerly import a list of files with a glob pattern. - * - * Overload 2: Module generic provided - */ - ( - glob: string | string[], - options?: Omit, 'eager'>, - ): Record -} diff --git a/packages/vite/types/importMeta.d.ts b/packages/vite/types/importMeta.d.ts index e9047a78117d82..bd4418379951b3 100644 --- a/packages/vite/types/importMeta.d.ts +++ b/packages/vite/types/importMeta.d.ts @@ -19,8 +19,4 @@ interface ImportMeta { readonly env: ImportMetaEnv glob: import('./importGlob').ImportGlobFunction - /** - * @deprecated Use `import.meta.glob('*', { eager: true })` instead - */ - globEager: import('./importGlob').ImportGlobEagerFunction } diff --git a/playground/assets/vite.config.js b/playground/assets/vite.config.js index 8305a6a0d6ede8..a1bcf02143de76 100644 --- a/playground/assets/vite.config.js +++ b/playground/assets/vite.config.js @@ -12,7 +12,7 @@ export default defineConfig({ assetsInclude: ['**/*.unknown'], build: { outDir: 'dist/foo', - assetsInlineLimit: 8192, // 8kb + assetsInlineLimit: 8000, // 8 kB manifest: true, watch: {}, }, diff --git a/playground/backend-integration/__tests__/backend-integration.spec.ts b/playground/backend-integration/__tests__/backend-integration.spec.ts index 8d067f0616775d..442ed159219af9 100644 --- a/playground/backend-integration/__tests__/backend-integration.spec.ts +++ b/playground/backend-integration/__tests__/backend-integration.spec.ts @@ -37,7 +37,7 @@ describe.runIf(isBuild)('build', () => { const cssAssetEntry = manifest['global.css'] const scssAssetEntry = manifest['nested/blue.scss'] const imgAssetEntry = manifest['../images/logo.png'] - const dirFooAssetEntry = manifest['../../dir/foo.css'] // '\\' should not be used even on windows + const dirFooAssetEntry = manifest['../dynamic/foo.css'] // '\\' should not be used even on windows expect(htmlEntry.css.length).toEqual(1) expect(htmlEntry.assets.length).toEqual(1) expect(cssAssetEntry?.file).not.toBeUndefined() @@ -48,6 +48,9 @@ describe.runIf(isBuild)('build', () => { expect(imgAssetEntry?.file).not.toBeUndefined() expect(imgAssetEntry?.isEntry).toBeUndefined() expect(dirFooAssetEntry).not.toBeUndefined() + // use the entry name + expect(manifest['bar.css']).not.toBeUndefined() + expect(manifest['foo.css']).toBeUndefined() }) }) diff --git a/playground/backend-integration/dir/foo.css b/playground/backend-integration/dir/foo.css index c2fad7486d3ab6..1e31c585bebc9c 100644 --- a/playground/backend-integration/dir/foo.css +++ b/playground/backend-integration/dir/foo.css @@ -1,3 +1,3 @@ -.windows-path-foo { +.entry-name-foo { color: blue; } diff --git a/playground/backend-integration/frontend/dynamic/foo.css b/playground/backend-integration/frontend/dynamic/foo.css new file mode 100644 index 00000000000000..c2fad7486d3ab6 --- /dev/null +++ b/playground/backend-integration/frontend/dynamic/foo.css @@ -0,0 +1,3 @@ +.windows-path-foo { + color: blue; +} diff --git a/playground/backend-integration/frontend/dynamic/foo.ts b/playground/backend-integration/frontend/dynamic/foo.ts new file mode 100644 index 00000000000000..c2441c49231d80 --- /dev/null +++ b/playground/backend-integration/frontend/dynamic/foo.ts @@ -0,0 +1 @@ +import './foo.css' diff --git a/playground/backend-integration/frontend/entrypoints/main.ts b/playground/backend-integration/frontend/entrypoints/main.ts index f5a332191dd9e4..d63a57a023847e 100644 --- a/playground/backend-integration/frontend/entrypoints/main.ts +++ b/playground/backend-integration/frontend/entrypoints/main.ts @@ -1,4 +1,5 @@ import 'vite/modulepreload-polyfill' +import('../dynamic/foo') // should be dynamic import to split chunks export const colorClass = 'text-black' diff --git a/playground/backend-integration/vite.config.js b/playground/backend-integration/vite.config.js index b9e2c9f35c6fee..881eac1a14688e 100644 --- a/playground/backend-integration/vite.config.js +++ b/playground/backend-integration/vite.config.js @@ -19,7 +19,7 @@ function BackendIntegrationExample() { .map((filename) => [path.relative(root, filename), filename]) entrypoints.push(['tailwindcss-colors', 'tailwindcss/colors.js']) - entrypoints.push(['foo.css', path.resolve(__dirname, './dir/foo.css')]) + entrypoints.push(['bar.css', path.resolve(__dirname, './dir/foo.css')]) return { build: { diff --git a/playground/css/__tests__/postcss-plugins-different-dir/postcss-plugins-different-dir.spec.ts b/playground/css/__tests__/postcss-plugins-different-dir/postcss-plugins-different-dir.spec.ts index fb748bf2c8fff2..1d21eb760dabfd 100644 --- a/playground/css/__tests__/postcss-plugins-different-dir/postcss-plugins-different-dir.spec.ts +++ b/playground/css/__tests__/postcss-plugins-different-dir/postcss-plugins-different-dir.spec.ts @@ -21,7 +21,7 @@ test.runIf(isServe)('postcss plugins in different dir', async () => { await server.listen() try { await page.goto(`http://localhost:${port}`) - const tailwindStyle = await page.$('.tailwind-style') + const tailwindStyle = page.locator('#tailwind-style') expect(await getBgColor(tailwindStyle)).toBe('rgb(254, 226, 226)') expect(await getColor(tailwindStyle)).toBe('rgb(136, 136, 136)') } finally { diff --git a/playground/glob-import/__tests__/glob-import.spec.ts b/playground/glob-import/__tests__/glob-import.spec.ts index 931edfd99138de..239278477eea2c 100644 --- a/playground/glob-import/__tests__/glob-import.spec.ts +++ b/playground/glob-import/__tests__/glob-import.spec.ts @@ -11,6 +11,7 @@ import { page, removeFile, untilBrowserLogAfter, + untilUpdated, viteTestUrl, withRetry, } from '~utils' @@ -48,7 +49,7 @@ const allResult = { '/dir/baz.json': json, '/dir/foo.css': isBuild ? { - default: '.foo{color:#00f}\n', + default: '.foo{color:#00f}', } : { default: '.foo {\n color: blue;\n}\n', @@ -131,6 +132,12 @@ test('unassigned import processes', async () => { ) }) +test('import glob in package', async () => { + expect(await page.textContent('.in-package')).toBe( + JSON.stringify(['/pkg-pages/foo.js']), + ) +}) + if (!isBuild) { test('hmr for adding/removing files', async () => { const resultElement = page.locator('.result') @@ -190,6 +197,22 @@ if (!isBuild) { response = await request.catch(() => ({ status: () => -1 })) expect(response.status()).toBe(-1) }) + + test('hmr for adding/removing files in package', async () => { + const resultElement = page.locator('.in-package') + + addFile('pkg-pages/bar.js', '// empty') + await untilUpdated( + () => resultElement.textContent(), + JSON.stringify(['/pkg-pages/foo.js', '/pkg-pages/bar.js'].sort()), + ) + + removeFile('pkg-pages/bar.js') + await untilUpdated( + () => resultElement.textContent(), + JSON.stringify(['/pkg-pages/foo.js']), + ) + }) } test('tree-shake eager css', async () => { diff --git a/playground/glob-import/import-meta-glob-pkg/index.js b/playground/glob-import/import-meta-glob-pkg/index.js new file mode 100644 index 00000000000000..44705cf18f9f22 --- /dev/null +++ b/playground/glob-import/import-meta-glob-pkg/index.js @@ -0,0 +1,4 @@ +export const g = import.meta.glob('/pkg-pages/*.js') +document.querySelector('.in-package').textContent = JSON.stringify( + Object.keys(g).sort(), +) diff --git a/playground/glob-import/import-meta-glob-pkg/package.json b/playground/glob-import/import-meta-glob-pkg/package.json new file mode 100644 index 00000000000000..7138de851543cf --- /dev/null +++ b/playground/glob-import/import-meta-glob-pkg/package.json @@ -0,0 +1,5 @@ +{ + "name": "@vitejs/test-import-meta-glob-pkg", + "type": "module", + "main": "./index.js" +} diff --git a/playground/glob-import/index.html b/playground/glob-import/index.html index b726965ff62067..3b72430668e14d 100644 --- a/playground/glob-import/index.html +++ b/playground/glob-import/index.html @@ -23,6 +23,8 @@

Escape alias glob


 

Sub imports


+

In package

+

 
 
 
 
+
+
 
diff --git a/playground/glob-import/package.json b/playground/glob-import/package.json
index 7d9104ab431c28..d71d01109270f1 100644
--- a/playground/glob-import/package.json
+++ b/playground/glob-import/package.json
@@ -11,5 +11,8 @@
     "build": "vite build",
     "debug": "node --inspect-brk ../../packages/vite/bin/vite",
     "preview": "vite preview"
+  },
+  "dependencies": {
+    "@vitejs/test-import-meta-glob-pkg": "file:./import-meta-glob-pkg"
   }
 }
diff --git a/playground/glob-import/pkg-pages/foo.js b/playground/glob-import/pkg-pages/foo.js
new file mode 100644
index 00000000000000..8b1a393741c96c
--- /dev/null
+++ b/playground/glob-import/pkg-pages/foo.js
@@ -0,0 +1 @@
+// empty
diff --git a/playground/resolve/__tests__/resolve.spec.ts b/playground/resolve/__tests__/resolve.spec.ts
index 90d02a761258e6..4a753149552bf2 100644
--- a/playground/resolve/__tests__/resolve.spec.ts
+++ b/playground/resolve/__tests__/resolve.spec.ts
@@ -1,5 +1,7 @@
+import fs from 'node:fs'
+import path from 'node:path'
 import { expect, test } from 'vitest'
-import { isBuild, isWindows, page } from '~utils'
+import { isBuild, isWindows, page, testDir } from '~utils'
 
 test('bom import', async () => {
   expect(await page.textContent('.utf8-bom')).toMatch('[success]')
@@ -199,3 +201,9 @@ test('Resolving slash with imports filed', async () => {
 test('Resolving from other package with imports field', async () => {
   expect(await page.textContent('.imports-pkg-slash')).toMatch('[success]')
 })
+
+test.runIf(isBuild)('public dir is not copied', async () => {
+  expect(
+    fs.existsSync(path.resolve(testDir, 'dist/should-not-be-copied')),
+  ).toBe(false)
+})
diff --git a/playground/resolve/public/should-not-be-copied b/playground/resolve/public/should-not-be-copied
new file mode 100644
index 00000000000000..e69de29bb2d1d6
diff --git a/playground/resolve/vite.config.js b/playground/resolve/vite.config.js
index f4d923d1a05ae0..b27df23e734eeb 100644
--- a/playground/resolve/vite.config.js
+++ b/playground/resolve/vite.config.js
@@ -107,4 +107,7 @@ export default defineConfig({
       '@vitejs/test-resolve-sharp-dir',
     ],
   },
+  build: {
+    copyPublicDir: false,
+  },
 })
diff --git a/playground/ssr-webworker/__tests__/serve.ts b/playground/ssr-webworker/__tests__/serve.ts
index 8159cf39734510..8d384a696eeaf8 100644
--- a/playground/ssr-webworker/__tests__/serve.ts
+++ b/playground/ssr-webworker/__tests__/serve.ts
@@ -3,7 +3,7 @@
 
 import path from 'node:path'
 import kill from 'kill-port'
-import { isBuild, ports, rootDir } from '~utils'
+import { ports, rootDir } from '~utils'
 
 export const port = ports['ssr-webworker']
 
@@ -26,22 +26,12 @@ export async function serve(): Promise<{ close(): Promise }> {
   })
 
   const { createServer } = await import(path.resolve(rootDir, 'worker.js'))
-  const { app } = await createServer(rootDir, isBuild)
+  const { mf } = await createServer(port)
 
-  return new Promise((resolve, reject) => {
-    try {
-      const server = app.listen(port, () => {
-        resolve({
-          // for test teardown
-          async close() {
-            await new Promise((resolve) => {
-              server.close(resolve)
-            })
-          },
-        })
-      })
-    } catch (e) {
-      reject(e)
-    }
-  })
+  return {
+    // for test teardown
+    async close() {
+      await mf.dispose()
+    },
+  }
 }
diff --git a/playground/ssr-webworker/package.json b/playground/ssr-webworker/package.json
index 6be45e0d653668..675c1bd3c67852 100644
--- a/playground/ssr-webworker/package.json
+++ b/playground/ssr-webworker/package.json
@@ -11,7 +11,7 @@
     "react": "^18.2.0"
   },
   "devDependencies": {
-    "miniflare": "^1.4.1",
+    "miniflare": "^3.20230807.0",
     "@vitejs/test-resolve-linked": "workspace:*"
   }
 }
diff --git a/playground/ssr-webworker/worker.js b/playground/ssr-webworker/worker.js
index 0f4d723a32c454..9c93d3b754c706 100644
--- a/playground/ssr-webworker/worker.js
+++ b/playground/ssr-webworker/worker.js
@@ -6,20 +6,15 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url))
 
 const isTest = !!process.env.TEST
 
-export async function createServer() {
+export async function createServer(port) {
   const mf = new Miniflare({
     scriptPath: path.resolve(__dirname, 'dist/worker/entry-worker.js'),
+    port,
   })
-
-  const app = mf.createServer()
-
-  return { app }
+  await mf.ready
+  return { mf }
 }
 
 if (!isTest) {
-  createServer().then(({ app }) =>
-    app.listen(5173, () => {
-      console.log('http://localhost:5173')
-    }),
-  )
+  createServer(5173).then(() => console.log('http://localhost:5173'))
 }
diff --git a/playground/tailwind/__test__/tailwind.spec.ts b/playground/tailwind/__test__/tailwind.spec.ts
index e639678331e9e5..c67ef115073b69 100644
--- a/playground/tailwind/__test__/tailwind.spec.ts
+++ b/playground/tailwind/__test__/tailwind.spec.ts
@@ -1,84 +1,82 @@
 import { expect, test } from 'vitest'
 import {
   editFile,
-  getBgColor,
   getColor,
-  isBuild,
+  isServe,
   page,
   untilBrowserLogAfter,
   untilUpdated,
 } from '~utils'
 
 test('should render', async () => {
-  expect(await page.textContent('#pagetitle')).toBe('|Page title|')
+  expect(await page.textContent('#pagetitle')).toBe('Page title')
 })
 
-if (!isBuild) {
-  test('regenerate CSS and HMR (glob pattern)', async () => {
-    const el = await page.$('#pagetitle')
-    const el2 = await page.$('#helloroot')
-    expect(await getColor(el)).toBe('rgb(11, 22, 33)')
+test.runIf(isServe)('regenerate CSS and HMR (glob pattern)', async () => {
+  const el = page.locator('#view1-text')
+  expect(await getColor(el)).toBe('rgb(22, 163, 74)')
 
-    await untilBrowserLogAfter(
-      () =>
-        editFile('src/views/Page.vue', (code) =>
-          code.replace('|Page title|', '|Page title updated|'),
-        ),
-      [
-        '[vite] css hot updated: /index.css',
-        '[vite] hot updated: /src/views/Page.vue',
-      ],
-      false,
-    )
-    await untilUpdated(() => el.textContent(), '|Page title updated|')
+  await untilBrowserLogAfter(
+    () =>
+      editFile('src/views/view1.js', (code) =>
+        code.replace('|view1|', '|view1 updated|'),
+      ),
+    [
+      '[vite] css hot updated: /index.css',
+      '[vite] hot updated: /src/views/view1.js via /src/main.js',
+    ],
+    false,
+  )
+  await untilUpdated(() => el.textContent(), '|view1 updated|')
 
-    await untilBrowserLogAfter(
-      () =>
-        editFile('src/components/HelloWorld.vue', (code) =>
-          code.replace('text-gray-800', 'text-[rgb(10,20,30)]'),
-        ),
-      [
-        '[vite] css hot updated: /index.css',
-        '[vite] hot updated: /src/components/HelloWorld.vue',
-      ],
-      false,
-    )
-    await untilUpdated(() => getColor(el2), 'rgb(10, 20, 30)')
-  })
+  await untilBrowserLogAfter(
+    () =>
+      editFile('src/views/view1.js', (code) =>
+        code.replace('text-green-600', 'text-orange-600'),
+      ),
+    [
+      '[vite] css hot updated: /index.css',
+      '[vite] hot updated: /src/views/view1.js via /src/main.js',
+    ],
+    false,
+  )
+  // await new Promise(resolve => setTimeout(resolve, 10))
+  await untilUpdated(async () => getColor(el), 'rgb(234, 88, 12)')
+})
 
-  test('regenerate CSS and HMR (relative path)', async () => {
-    const el = await page.$('h1')
-    expect(await getColor(el)).toBe('black')
+test.runIf(isServe)(
+  'same file duplicated in module graph (#4267)',
+  async () => {
+    const el = page.locator('#component1')
+    expect(await getColor(el)).toBe('rgb(220, 38, 38)')
 
+    // when duplicated, page reload happens
     await untilBrowserLogAfter(
       () =>
-        editFile('src/App.vue', (code) =>
-          code.replace('text-black', 'text-[rgb(11,22,33)]'),
+        editFile('src/components/component1.js', (code) =>
+          code.replace('text-red-600', 'text-blue-600'),
         ),
       [
         '[vite] css hot updated: /index.css',
-        '[vite] hot updated: /src/App.vue',
+        '[vite] hot updated: /src/components/component1.js',
       ],
       false,
     )
-    await untilUpdated(() => getColor(el), 'rgb(11, 22, 33)')
-  })
+    await untilUpdated(() => getColor(el), 'rgb(37, 99, 235)')
+  },
+)
 
-  test('regenerate CSS and HMR (pug template)', async () => {
-    const el = await page.$('.pug')
-    expect(await getBgColor(el)).toBe('rgb(248, 113, 113)')
+test.runIf(isServe)('regenerate CSS and HMR (relative path)', async () => {
+  const el = page.locator('#pagetitle')
+  expect(await getColor(el)).toBe('rgb(124, 58, 237)')
 
-    await untilBrowserLogAfter(
-      () =>
-        editFile('src/components/PugTemplate.vue', (code) =>
-          code.replace('bg-red-400', 'bg-red-600'),
-        ),
-      [
-        '[vite] css hot updated: /index.css',
-        '[vite] hot updated: /src/components/PugTemplate.vue?vue&type=template&lang.js',
-      ],
-      false,
-    )
-    await untilUpdated(() => getBgColor(el), 'rgb(220, 38, 38)')
-  })
-}
+  await untilBrowserLogAfter(
+    () =>
+      editFile('src/main.js', (code) =>
+        code.replace('text-violet-600', 'text-cyan-600'),
+      ),
+    ['[vite] css hot updated: /index.css', '[vite] hot updated: /src/main.js'],
+    false,
+  )
+  await untilUpdated(() => getColor(el), 'rgb(8, 145, 178)')
+})
diff --git a/playground/tailwind/index.html b/playground/tailwind/index.html
index d28c699ba6d465..0c7bee6b26884f 100644
--- a/playground/tailwind/index.html
+++ b/playground/tailwind/index.html
@@ -1,14 +1,5 @@
-
-
-  
-    
-    
-    
-    Vite App
-    
-  
-  
-    
- - - + + +
+ + diff --git a/playground/tailwind/src/App.vue b/playground/tailwind/src/App.vue deleted file mode 100644 index 25835fc414a06f..00000000000000 --- a/playground/tailwind/src/App.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/playground/tailwind/src/assets/logo.png b/playground/tailwind/src/assets/logo.png deleted file mode 100644 index f3d2503fc2a44b..00000000000000 Binary files a/playground/tailwind/src/assets/logo.png and /dev/null differ diff --git a/playground/tailwind/src/components/HelloWorld.vue b/playground/tailwind/src/components/HelloWorld.vue deleted file mode 100644 index b1ce4248557b39..00000000000000 --- a/playground/tailwind/src/components/HelloWorld.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/playground/tailwind/src/components/PugTemplate.vue b/playground/tailwind/src/components/PugTemplate.vue deleted file mode 100644 index 4169b534dee4ef..00000000000000 --- a/playground/tailwind/src/components/PugTemplate.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/playground/tailwind/src/components/component1.js b/playground/tailwind/src/components/component1.js new file mode 100644 index 00000000000000..df5e36f0bacd56 --- /dev/null +++ b/playground/tailwind/src/components/component1.js @@ -0,0 +1,9 @@ +export const component1 = /* html */ ` +
component1
+` + +import.meta.hot?.accept((mod) => { + document.querySelectorAll('[data-id="component1"]').forEach((d) => { + d.outerHTML = mod.component1 + }) +}) diff --git a/playground/tailwind/src/main.js b/playground/tailwind/src/main.js index 78494e75b4741d..b9f0c5956232d5 100644 --- a/playground/tailwind/src/main.js +++ b/playground/tailwind/src/main.js @@ -1,6 +1,18 @@ -import { createApp } from 'vue' -import App from './App.vue' -import router from './router' -// import '../index.css'; +import { view1 } from './views/view1' -createApp(App).use(router).mount('#app') +export const main = (view1Content) => /* html */ ` +

Page title

+ ${view1Content} + +
style
+` + +document.getElementById('app').innerHTML = main(view1) + +import.meta.hot?.accept((mod) => { + document.getElementById('app').innerHTML = mod.main(view1) +}) + +import.meta.hot?.accept(['./views/view1'], ([mod]) => { + document.getElementById('app').innerHTML = main(mod.view1) +}) diff --git a/playground/tailwind/src/router.ts b/playground/tailwind/src/router.ts deleted file mode 100644 index 10e3980cb07cb8..00000000000000 --- a/playground/tailwind/src/router.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { createRouter, createWebHistory } from 'vue-router' -import Page from './views/Page.vue' - -const history = createWebHistory() - -const router = createRouter({ - history: history, - routes: [ - { - path: '/', - component: Page, - }, - ], -}) - -export default router diff --git a/playground/tailwind/src/utils.ts b/playground/tailwind/src/utils.ts deleted file mode 100644 index 38c21ae7a0f8d8..00000000000000 --- a/playground/tailwind/src/utils.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const NAME = 'Tailwind' -export const INITIAL_COUNT = 1 diff --git a/playground/tailwind/src/views/Page.vue b/playground/tailwind/src/views/Page.vue deleted file mode 100644 index 76f8aabf13d7d3..00000000000000 --- a/playground/tailwind/src/views/Page.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - diff --git a/playground/tailwind/src/views/view1.js b/playground/tailwind/src/views/view1.js new file mode 100644 index 00000000000000..c9e0c0d1745fe2 --- /dev/null +++ b/playground/tailwind/src/views/view1.js @@ -0,0 +1,8 @@ +import { component1 } from '../components/component1' + +export const view1 = /* html */ ` +
+
|view1|
+ ${component1} +
+` diff --git a/playground/tailwind/tailwind.config.js b/playground/tailwind/tailwind.config.js index 1b80b08aba2ef1..e4504c499e78f0 100644 --- a/playground/tailwind/tailwind.config.js +++ b/playground/tailwind/tailwind.config.js @@ -2,10 +2,10 @@ module.exports = { content: [ - // Before editing this section, make sure no paths are matching with `/src/App.vue` + // Before editing this section, make sure no paths are matching with `/src/main.js` // Look https://github.com/vitejs/vite/pull/6959 for more details - __dirname + '/src/{components,views}/**/*.vue', - __dirname + '/src/App.vue', + __dirname + '/src/{components,views}/**/*.js', + __dirname + '/src/main.js', ], theme: { extend: {}, diff --git a/playground/tailwind/vite.config.ts b/playground/tailwind/vite.config.ts index d3680f6c39c3e3..5b97ed1053e382 100644 --- a/playground/tailwind/vite.config.ts +++ b/playground/tailwind/vite.config.ts @@ -1,5 +1,4 @@ import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' export default defineConfig({ resolve: { @@ -7,7 +6,6 @@ export default defineConfig({ '/@': __dirname, }, }, - plugins: [vue()], build: { // to make tests faster minify: false, @@ -17,4 +15,15 @@ export default defineConfig({ // although it should not affect the build origin: 'http://localhost:8080', }, + plugins: [ + { + name: 'delay view', + enforce: 'pre', + async transform(_code, id) { + if (id.includes('views/view1.js')) { + await new Promise((resolve) => setTimeout(resolve, 100)) + } + }, + }, + ], }) diff --git a/playground/test-utils.ts b/playground/test-utils.ts index df68dce9c5e66f..39e2f56c5e6a86 100644 --- a/playground/test-utils.ts +++ b/playground/test-utils.ts @@ -4,7 +4,11 @@ import fs from 'node:fs' import path from 'node:path' import colors from 'css-color-names' -import type { ConsoleMessage, ElementHandle } from 'playwright-chromium' +import type { + ConsoleMessage, + ElementHandle, + Locator, +} from 'playwright-chromium' import type { DepOptimizationMetadata, Manifest } from 'vite' import { normalizePath } from 'vite' import { fromComment } from 'convert-source-map' @@ -74,7 +78,9 @@ function rgbToHex(rgb: string): string { const timeout = (n: number) => new Promise((r) => setTimeout(r, n)) -async function toEl(el: string | ElementHandle): Promise { +async function toEl( + el: string | ElementHandle | Locator, +): Promise { if (typeof el === 'string') { const realEl = await page.$(el) if (realEl == null) { @@ -82,21 +88,30 @@ async function toEl(el: string | ElementHandle): Promise { } return realEl } + if ('elementHandle' in el) { + return el.elementHandle() + } return el } -export async function getColor(el: string | ElementHandle): Promise { +export async function getColor( + el: string | ElementHandle | Locator, +): Promise { el = await toEl(el) const rgb = await el.evaluate((el) => getComputedStyle(el as Element).color) return hexToNameMap[rgbToHex(rgb)] ?? rgb } -export async function getBg(el: string | ElementHandle): Promise { +export async function getBg( + el: string | ElementHandle | Locator, +): Promise { el = await toEl(el) return el.evaluate((el) => getComputedStyle(el as Element).backgroundImage) } -export async function getBgColor(el: string | ElementHandle): Promise { +export async function getBgColor( + el: string | ElementHandle | Locator, +): Promise { el = await toEl(el) return el.evaluate((el) => getComputedStyle(el as Element).backgroundColor) } diff --git a/playground/tsconfig.json b/playground/tsconfig.json index ff409529cce345..e45775a61ff855 100644 --- a/playground/tsconfig.json +++ b/playground/tsconfig.json @@ -3,7 +3,7 @@ "exclude": ["**/dist/**"], "compilerOptions": { "checkJs": true, - "target": "ES2020", + "target": "ES2022", "module": "ESNext", "outDir": "dist", "baseUrl": ".", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ecf2daea5018e..9cf1f27d174515 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,14 +109,14 @@ importers: specifier: ^2.28.0 version: 2.28.0(@typescript-eslint/parser@6.2.1)(eslint@8.46.0) eslint-plugin-n: - specifier: ^15.7.0 - version: 15.7.0(eslint@8.46.0) + specifier: ^16.0.1 + version: 16.0.1(eslint@8.46.0) eslint-plugin-regexp: specifier: ^1.15.0 version: 1.15.0(eslint@8.46.0) execa: - specifier: ^7.2.0 - version: 7.2.0 + specifier: ^8.0.1 + version: 8.0.1 fast-glob: specifier: ^3.3.1 version: 3.3.1 @@ -124,8 +124,8 @@ importers: specifier: ^11.1.1 version: 11.1.1 lint-staged: - specifier: ^13.2.3 - version: 13.2.3 + specifier: ^14.0.1 + version: 14.0.1 npm-run-all: specifier: ^4.1.5 version: 4.1.5 @@ -670,7 +670,13 @@ importers: playground/fs-serve: {} - playground/glob-import: {} + playground/glob-import: + dependencies: + '@vitejs/test-import-meta-glob-pkg': + specifier: file:./import-meta-glob-pkg + version: file:playground/glob-import/import-meta-glob-pkg + + playground/glob-import/import-meta-glob-pkg: {} playground/hmr: {} @@ -1375,8 +1381,8 @@ importers: specifier: workspace:* version: link:../resolve-linked miniflare: - specifier: ^1.4.1 - version: 1.4.1 + specifier: ^3.20230807.0 + version: 3.20230807.0 playground/tailwind: dependencies: @@ -2778,9 +2784,50 @@ packages: '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 - /@cloudflare/workers-types@2.2.2: - resolution: {integrity: sha512-kaMn2rueJ0PL1TYVGknTCh0X0x0d9G+FNXAFep7/4uqecEZoQb/63o6rOmMuiqI09zLuHV6xhKRXinokV/MY9A==} + /@cloudflare/workerd-darwin-64@1.20230807.0: + resolution: {integrity: sha512-p1XgkX6OcomFSRSHiIo6XbWB40sMExnFUWtZFfSvB7oNmkrtEvUCI3iuh+ibFI5IDSZqsRKyIHx6Oe22Z0ei5A==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-darwin-arm64@1.20230807.0: + resolution: {integrity: sha512-HjhjRFPvDg3Sh4TXyz38Z+AhaLA+0AiAmYKRadcnKhysjOaTew86POS3xdaKiZ3xG83J7rsLcqajW54znbmCkg==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-linux-64@1.20230807.0: + resolution: {integrity: sha512-PPuGKoRILFTlZDC7uGXgrYBucopqkvicaov/ypbPmUVb/DfrXGqftEkNbXlyiXY1g0t10wXRiSZWi7hOBOIH7w==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-linux-arm64@1.20230807.0: + resolution: {integrity: sha512-ESAf2tXarK8dJl07voa/NI2BBpH1duldfgeQQQmor437A3+gSqQSBhAEmh05bjHy6dYHXgZtwLPky+LL6hmyBA==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-windows-64@1.20230807.0: + resolution: {integrity: sha512-DYKkLtT4lNRdVx+2fbYgPxdF7ypJn9bT2HYMZ93N7XPwaKFx2svBRMrZkwBcvwuNb+99Z0jnaQwdcFnHcFLzZA==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + requiresBuild: true dev: true + optional: true /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -3345,10 +3392,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@iarna/toml@2.2.5: - resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - dev: true - /@jest/schemas@29.4.3: resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3462,16 +3505,6 @@ packages: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} dev: true - /@mrbbot/node-fetch@4.6.0: - resolution: {integrity: sha512-GTSOdhpiUnJ9a+XK90NUiqCqOmqXOUU4tqg8WbpZW+nEUTJ4dF3QZ4xhfWg5bqYPagIh/e9r5HxGrftzmulbmw==} - engines: {node: '>=10.0.0'} - dependencies: - '@cloudflare/workers-types': 2.2.2 - busboy: 0.3.1 - formdata-node: 2.5.0 - web-streams-polyfill: 3.2.1 - dev: true - /@nicolo-ribaudo/semver-v6@6.3.3: resolution: {integrity: sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==} hasBin: true @@ -3495,33 +3528,6 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 - /@peculiar/asn1-schema@2.1.0: - resolution: {integrity: sha512-D6g4C5YRKC/iPujMAOXuZ7YGdaoMx8GsvWzfVSyx2LYeL38ECOKNywlYAuwbqQvON64lgsYdAujWQPX8hhoBLw==} - dependencies: - '@types/asn1js': 2.0.2 - asn1js: 2.4.0 - pvtsutils: 1.3.2 - tslib: 2.6.1 - dev: true - - /@peculiar/json-schema@1.1.12: - resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} - engines: {node: '>=8.0.0'} - dependencies: - tslib: 2.6.1 - dev: true - - /@peculiar/webcrypto@1.3.3: - resolution: {integrity: sha512-+jkp16Hp18HkphJlMtqsQKjyDWJBh0AhDuoB+vVakuIRbkBdaFb7v26Ldm25altjiYhCyQnR5NChHxwSTvbXJw==} - engines: {node: '>=10.12.0'} - dependencies: - '@peculiar/asn1-schema': 2.1.0 - '@peculiar/json-schema': 1.1.12 - pvtsutils: 1.3.2 - tslib: 2.6.1 - webcrypto-core: 1.7.3 - dev: true - /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -3745,10 +3751,6 @@ packages: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} dev: true - /@types/asn1js@2.0.2: - resolution: {integrity: sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==} - dev: true - /@types/babel__core@7.20.1: resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==} dependencies: @@ -3885,10 +3887,6 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@15.14.9: - resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} - dev: true - /@types/node@18.15.5: resolution: {integrity: sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==} dev: true @@ -3929,10 +3927,6 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@types/stack-trace@0.0.29: - resolution: {integrity: sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==} - dev: true - /@types/stylus@0.48.38: resolution: {integrity: sha512-B5otJekvD6XM8iTrnO6e2twoTY2tKL9VkL/57/2Lo4tv3EatbCaufdi68VVtn/h4yjO+HVvYEyrNQd0Lzj6riw==} dependencies: @@ -4292,11 +4286,6 @@ packages: - vue dev: true - /@wessberg/stringutil@1.0.19: - resolution: {integrity: sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==} - engines: {node: '>=8.0.0'} - dev: true - /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -4356,14 +4345,6 @@ packages: - supports-color dev: false - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -4392,11 +4373,11 @@ packages: '@algolia/transporter': 4.13.1 dev: true - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + /ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} dependencies: - type-fest: 0.21.3 + type-fest: 1.4.0 dev: true /ansi-regex@5.0.1: @@ -4556,15 +4537,14 @@ packages: engines: {node: '>=0.10.0'} dev: true - /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + /as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + dependencies: + printable-characters: 1.0.42 dev: true - /asn1js@2.4.0: - resolution: {integrity: sha512-PvZC0FMyMut8aOnR2jAEGSkmRtHIUYPe9amUEnGjr9TdnUmsfoOkjrvUkOEU9mzpYBR1HyO9bF+8U1cLTMMHhQ==} - engines: {node: '>=6.0.0'} - dependencies: - pvutils: 1.1.3 + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: true /assert-never@1.2.1: @@ -4575,11 +4555,6 @@ packages: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: true - /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: false @@ -4660,9 +4635,8 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base64-arraybuffer-es6@0.7.0: - resolution: {integrity: sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw==} - engines: {node: '>=6.0.0'} + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true /bcrypt@5.1.0: @@ -4677,6 +4651,14 @@ packages: - supports-color dev: false + /better-sqlite3@8.5.0: + resolution: {integrity: sha512-vbPcv/Hx5WYdyNg/NbcfyaBZyv9s/NVbxb7yCeC5Bq1pVocNxeL2tZmSu3Rlm4IEOTjYdGyzWQgyx0OSdORBzw==} + requiresBuild: true + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.1 + dev: true + /bignumber.js@9.1.1: resolution: {integrity: sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==} dev: false @@ -4685,6 +4667,20 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + /body-parser@1.20.1: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -4740,6 +4736,13 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -4751,11 +4754,11 @@ packages: semver: 7.5.4 dev: true - /busboy@0.3.1: - resolution: {integrity: sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==} - engines: {node: '>=4.5.0'} + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} dependencies: - dicer: 0.3.0 + streamsearch: 1.1.0 dev: true /bytes@3.1.2: @@ -4803,6 +4806,15 @@ packages: /caniuse-lite@1.0.30001519: resolution: {integrity: sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==} + /capnp-ts@0.7.0: + resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} + dependencies: + debug: 4.3.4 + tslib: 2.6.1 + transitivePeerDependencies: + - supports-color + dev: true + /chai@4.3.7: resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} engines: {node: '>=4'} @@ -4837,6 +4849,11 @@ packages: engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + /character-parser@2.2.0: resolution: {integrity: sha1-x84o821LzZdE5f/CxfzeHHMmH8A=} dependencies: @@ -4862,48 +4879,20 @@ packages: fsevents: 2.3.2 patched: true + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: true + /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} dev: false - /cjstoesm@1.1.4(typescript@4.6.4): - resolution: {integrity: sha512-cixLJwK2HS8R8J1jJcYwlrLxWUbdNms5EmVQuvP3O0CGvHNv2WVd2gnqTP/tbTEYzbgWiSYQBZDoAakqsSl94Q==} - engines: {node: '>=10.0.0'} - hasBin: true - peerDependencies: - typescript: '>=3.2.x || >= 4.x' - dependencies: - '@wessberg/stringutil': 1.0.19 - chalk: 4.1.2 - commander: 7.2.0 - compatfactory: 0.0.6(typescript@4.6.4) - crosspath: 0.0.8 - fast-glob: 3.3.1 - helpertypes: 0.0.2 - reserved-words: 0.1.2 - resolve: 1.22.4 - typescript: 4.6.4 - dev: true - - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true - - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 + restore-cursor: 4.0.0 dev: true /cli-truncate@3.1.0: @@ -4930,11 +4919,6 @@ packages: wrap-ansi: 7.0.0 dev: true - /cluster-key-slot@1.1.0: - resolution: {integrity: sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==} - engines: {node: '>=0.10.0'} - dev: true - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -4959,8 +4943,8 @@ packages: hasBin: true dev: false - /colorette@2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true /colors@1.2.5: @@ -4975,9 +4959,9 @@ packages: delayed-stream: 1.0.0 dev: false - /commander@10.0.0: - resolution: {integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==} - engines: {node: '>=14'} + /commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} dev: true /commander@2.20.3: @@ -4989,11 +4973,6 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - dev: true - /comment-parser@1.3.1: resolution: {integrity: sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==} engines: {node: '>= 12.0.0'} @@ -5014,16 +4993,6 @@ packages: dot-prop: 5.3.0 dev: true - /compatfactory@0.0.6(typescript@4.6.4): - resolution: {integrity: sha512-F1LpdNxgxay4UdanmeL75+guJPDg2zu8bFZDVih/kse5hA3oa+aMgvk4tLwq7AFBpy3S0ilnPdSfYsTl/L9NXA==} - engines: {node: '>=10.0.0'} - peerDependencies: - typescript: '>=3.x || >= 4.x' - dependencies: - helpertypes: 0.0.2 - typescript: 4.6.4 - dev: true - /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -5213,11 +5182,6 @@ packages: /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - /cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} - dev: true - /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} @@ -5274,13 +5238,6 @@ packages: which: 2.0.2 dev: true - /crosspath@0.0.8: - resolution: {integrity: sha512-IKlS3MpP0fhJ50M6ltyLO7Q4NzwfhafpmolMH0EDKyyaY81HutF2mH4hLpCdm3fKZ/TSTW5qPIdTy62YnefEyQ==} - engines: {node: '>=10.0.0'} - dependencies: - '@types/node': 15.14.9 - dev: true - /css-color-names@1.0.1: resolution: {integrity: sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==} dev: true @@ -5305,6 +5262,10 @@ packages: engines: {node: '>=8'} dev: true + /data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + dev: true + /data-uri-to-buffer@4.0.0: resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} engines: {node: '>= 12'} @@ -5359,6 +5320,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: true + /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} @@ -5366,6 +5334,11 @@ packages: type-detect: 4.0.8 dev: true + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: true + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -5413,11 +5386,6 @@ packages: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: false - /denque@1.5.1: - resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==} - engines: {node: '>=0.10'} - dev: true - /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -5435,14 +5403,6 @@ packages: /detect-libc@2.0.1: resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} engines: {node: '>=8'} - dev: false - - /dicer@0.3.0: - resolution: {integrity: sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==} - engines: {node: '>=4.5.0'} - dependencies: - streamsearch: 0.1.2 - dev: true /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -5502,11 +5462,6 @@ packages: engines: {node: '>=12'} dev: true - /dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dev: true - /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true @@ -5528,16 +5483,17 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + /entities@4.4.0: resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} engines: {node: '>=0.12'} dev: true - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: true - /errno@0.1.8: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true @@ -6020,15 +5976,15 @@ packages: - supports-color dev: true - /eslint-plugin-es@4.1.0(eslint@8.46.0): - resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} - engines: {node: '>=8.10.0'} + /eslint-plugin-es-x@7.2.0(eslint@8.46.0): + resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=4.19.1' + eslint: '>=8' dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/regexpp': 4.6.2 eslint: 8.46.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 dev: true /eslint-plugin-import@2.28.0(@typescript-eslint/parser@6.2.1)(eslint@8.46.0): @@ -6067,21 +6023,21 @@ packages: - supports-color dev: true - /eslint-plugin-n@15.7.0(eslint@8.46.0): - resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} - engines: {node: '>=12.22.0'} + /eslint-plugin-n@16.0.1(eslint@8.46.0): + resolution: {integrity: sha512-CDmHegJN0OF3L5cz5tATH84RPQm9kG+Yx39wIqIwPR2C0uhBGMWfbbOtetR83PQjjidA5aXMu+LEFw1jaSwvTA==} + engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) builtins: 5.0.1 eslint: 8.46.0 - eslint-plugin-es: 4.1.0(eslint@8.46.0) - eslint-utils: 3.0.0(eslint@8.46.0) - ignore: 5.2.0 - is-core-module: 2.11.0 + eslint-plugin-es-x: 7.2.0(eslint@8.46.0) + ignore: 5.2.4 + is-core-module: 2.13.0 minimatch: 3.1.2 resolve: 1.22.4 - semver: 7.3.8 + semver: 7.5.4 dev: true /eslint-plugin-regexp@1.15.0(eslint@8.46.0): @@ -6109,33 +6065,6 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - dependencies: - eslint-visitor-keys: 1.3.0 - dev: true - - /eslint-utils@3.0.0(eslint@8.46.0): - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.46.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - - /eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - /eslint-visitor-keys@3.4.1: resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6237,15 +6166,14 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - /event-target-shim@6.0.2: - resolution: {integrity: sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==} - engines: {node: '>=10.13.0'} - dev: true - /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: true + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + /execa@7.2.0: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} @@ -6261,6 +6189,31 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /exit-hook@2.2.1: + resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} + engines: {node: '>=6'} + dev: true + + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: true + /express@4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -6347,6 +6300,10 @@ packages: flat-cache: 3.0.4 dev: true + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: true + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -6457,13 +6414,6 @@ packages: mime-types: 2.1.35 dev: false - /formdata-node@2.5.0: - resolution: {integrity: sha512-JFSNLq34u2Tqc6F034x5aaK3ksIfrDBMPie8b4KYx2/pVDLxWFXDly52dsvHjZ+A0LGHTZb/w4HBZVdgN74RTw==} - engines: {node: '>= 10.17'} - dependencies: - mime-types: 2.1.29 - dev: true - /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -6483,6 +6433,10 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: true + /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -6596,11 +6550,23 @@ packages: yargs: 16.2.0 dev: true + /get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + dependencies: + data-uri-to-buffer: 2.0.2 + source-map: 0.6.1 + dev: true + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -6650,6 +6616,10 @@ packages: ini: 1.3.8 dev: true + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: true + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -6662,6 +6632,10 @@ packages: dependencies: is-glob: 4.0.3 + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + /glob@10.2.7: resolution: {integrity: sha512-jTKehsravOJo8IJxUGfZILnkvVJM/MOfHRs8QcXolVef2zNI9Tqyy5+SeuOAZd3upViEZQLyFpQhYiHLrMUNmA==} engines: {node: '>=16 || 14 >=14.17'} @@ -6837,11 +6811,6 @@ packages: dependencies: function-bind: 1.1.1 - /helpertypes@0.0.2: - resolution: {integrity: sha512-PKVtWnJ+dcvPeUJRiqtbraN/Hr2rNEnS14T/IxDBb0KgHkAL5w4YwVxMEPowA9vyoMP0DrwO0TxJ+KH3UF/6YA==} - engines: {node: '>=10.0.0'} - dev: true - /hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} dev: true @@ -6857,10 +6826,6 @@ packages: lru-cache: 6.0.0 dev: true - /html-rewriter-wasm@0.3.2: - resolution: {integrity: sha512-b+pOh+bs00uRVNIZoTgGBREjUKN47pchTNwkxKuP4ecQTFcOA6KJIW+jjvjjXrkSRURZsideLxFKqX7hnxdegQ==} - dev: true - /http-cache-semantics@4.1.0: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true @@ -6901,6 +6866,11 @@ packages: engines: {node: '>=14.18.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -6925,6 +6895,10 @@ packages: postcss: 8.4.27 dev: true + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + /ignore-walk@5.0.1: resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -6932,11 +6906,6 @@ packages: minimatch: 5.1.0 dev: true - /ignore@5.2.0: - resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} - engines: {node: '>= 4'} - dev: true - /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -7008,25 +6977,6 @@ packages: side-channel: 1.0.4 dev: true - /ioredis@4.28.5: - resolution: {integrity: sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==} - engines: {node: '>=6'} - dependencies: - cluster-key-slot: 1.1.0 - debug: 4.3.4 - denque: 1.5.1 - lodash.defaults: 4.2.0 - lodash.flatten: 4.4.0 - lodash.isarguments: 3.1.0 - p-map: 2.1.0 - redis-commands: 1.7.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: true - /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -7400,8 +7350,8 @@ packages: engines: {node: '>=6'} dev: true - /kleur@4.1.4: - resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} dev: true @@ -7549,46 +7499,41 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /lint-staged@13.2.3: - resolution: {integrity: sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg==} - engines: {node: ^14.13.1 || >=16.0.0} + /lint-staged@14.0.1: + resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} + engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: - chalk: 5.2.0 - cli-truncate: 3.1.0 - commander: 10.0.0 + chalk: 5.3.0 + commander: 11.0.0 debug: 4.3.4 execa: 7.2.0 lilconfig: 2.1.0 - listr2: 5.0.8 + listr2: 6.6.1 micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 pidtree: 0.6.0 - string-argv: 0.3.1 + string-argv: 0.3.2 yaml: 2.3.1 transitivePeerDependencies: - enquirer - supports-color dev: true - /listr2@5.0.8: - resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} - engines: {node: ^14.13.1 || >=16.0.0} + /listr2@6.6.1: + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: enquirer: optional: true dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.19 - log-update: 4.0.0 - p-map: 4.0.0 + cli-truncate: 3.1.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 5.0.1 rfdc: 1.3.0 - rxjs: 7.8.0 - through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 8.1.0 dev: true /load-json-file@4.0.0: @@ -7649,22 +7594,10 @@ packages: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: false - /lodash.defaults@4.2.0: - resolution: {integrity: sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=} - dev: true - - /lodash.flatten@4.4.0: - resolution: {integrity: sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=} - dev: true - /lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true - /lodash.isarguments@3.1.0: - resolution: {integrity: sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=} - dev: true - /lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} dev: true @@ -7680,14 +7613,15 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - /log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} + /log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 dev: true /loose-envify@1.4.0: @@ -7821,22 +7755,10 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /mime-db@1.46.0: - resolution: {integrity: sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==} - engines: {node: '>= 0.6'} - dev: true - /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - /mime-types@2.1.29: - resolution: {integrity: sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.46.0 - dev: true - /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -7858,43 +7780,36 @@ packages: engines: {node: '>=12'} dev: true + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: true + /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} dev: true - /miniflare@1.4.1: - resolution: {integrity: sha512-hJkMbTEM+sSiAo2yuPOucrdFYINLU7vvl9uVkRzAQ/h0CjmkYOCoyBn4jYzWtDZeQ0XrkyS6PGUCO277B5TsXA==} - engines: {node: '>=10.12.0'} - hasBin: true + /miniflare@3.20230807.0: + resolution: {integrity: sha512-yq9Y9hzn9RIR2DDoohoGrWTRY7JgCAVmrtO3K3YqzUyjdycSLnUnyzRZmXnx8hep2xafNTbuig2ylKj2MPmGvg==} + engines: {node: '>=16.13'} dependencies: - '@iarna/toml': 2.2.5 - '@mrbbot/node-fetch': 4.6.0 - '@peculiar/webcrypto': 1.3.3 - chokidar: 3.5.3(patch_hash=dzxbf3kgof5pdmbsyih2x43sq4) - cjstoesm: 1.1.4(typescript@4.6.4) - dotenv: 8.6.0 - env-paths: 2.2.1 - event-target-shim: 6.0.2 - formdata-node: 2.5.0 - html-rewriter-wasm: 0.3.2 + acorn: 8.10.0 + acorn-walk: 8.2.0(acorn@8.10.0) + better-sqlite3: 8.5.0 + capnp-ts: 0.7.0 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 http-cache-semantics: 4.1.0 - ioredis: 4.28.5 - kleur: 4.1.4 - node-cron: 2.0.3 - picomatch: 2.3.1 - sanitize-filename: 1.6.3 - selfsigned: 1.10.14 - semiver: 1.1.0 + kleur: 4.1.5 + set-cookie-parser: 2.6.0 source-map-support: 0.5.21 - tslib: 2.6.1 - typescript: 4.6.4 - typeson: 6.1.0 - typeson-registry: 1.0.0-alpha.39 - web-streams-polyfill: 3.2.1 - ws: 7.5.7 - yargs: 16.2.0 - youch: 2.2.2 + stoppable: 1.1.0 + undici: 5.23.0 + workerd: 1.20230807.0 + ws: 8.13.0 + youch: 3.2.3 + zod: 3.21.4 transitivePeerDependencies: - bufferutil - supports-color @@ -7957,6 +7872,10 @@ packages: yallist: 4.0.0 dev: false + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: true + /mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -8039,6 +7958,10 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: true + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -8077,19 +8000,17 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true + /node-abi@3.45.0: + resolution: {integrity: sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: true + /node-addon-api@5.0.0: resolution: {integrity: sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==} dev: false - /node-cron@2.0.3: - resolution: {integrity: sha512-eJI+QitXlwcgiZwNNSRbqsjeZMp5shyajMR81RZCqeW0ZDEj4zU9tpd4nTh/1JsBiKbF8d08FCewiipDmVIYjg==} - engines: {node: '>=6.0.0'} - requiresBuild: true - dependencies: - opencollective-postinstall: 2.0.3 - tz-offset: 0.0.1 - dev: true - /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -8116,11 +8037,6 @@ packages: formdata-polyfill: 4.0.10 dev: true - /node-forge@0.10.0: - resolution: {integrity: sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==} - engines: {node: '>= 6.0.0'} - dev: true - /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} @@ -8318,11 +8234,6 @@ packages: is-wsl: 2.2.0 dev: true - /opencollective-postinstall@2.0.3: - resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==} - hasBin: true - dev: true - /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -8384,18 +8295,6 @@ packages: p-limit: 3.1.0 dev: true - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: true - - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 - dev: true - /p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} @@ -8725,6 +8624,25 @@ packages: resolution: {integrity: sha512-giqJXP8VbtA1tyGa3f1n9wiN7PrHtONrDyE3T+ifjr/tTkg+2N4d/6sjC9WyJKv8wM7rOYDveqy5ZoFmYlwo4w==} dev: true + /prebuild-install@7.1.1: + resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.1 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.45.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: true + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -8750,6 +8668,10 @@ packages: react-is: 18.2.0 dev: true + /printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + dev: true + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true @@ -8886,6 +8808,13 @@ packages: pug-strip-comments: 2.0.0 dev: true + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -8894,17 +8823,6 @@ packages: engines: {node: '>=6'} dev: true - /pvtsutils@1.3.2: - resolution: {integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==} - dependencies: - tslib: 2.6.1 - dev: true - - /pvutils@1.1.3: - resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} - engines: {node: '>=6.0.0'} - dev: true - /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -8932,6 +8850,16 @@ packages: iconv-lite: 0.4.24 unpipe: 1.0.0 + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: true + /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -9028,27 +8956,11 @@ packages: strip-indent: 3.0.0 dev: true - /redis-commands@1.7.0: - resolution: {integrity: sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==} - dev: true - - /redis-errors@1.2.0: - resolution: {integrity: sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=} - engines: {node: '>=4'} - dev: true - - /redis-parser@3.0.0: - resolution: {integrity: sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=} - engines: {node: '>=4'} - dependencies: - redis-errors: 1.2.0 - dev: true - /refa@0.11.0: resolution: {integrity: sha512-486O8/pQXwj9jV0mVvUnTsxq0uknpBnNJ0eCUhkZqJRQ8KutrT1PhzmumdCeM1hSBF2eMlFPmwECRER4IbKXlQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.5.0 + '@eslint-community/regexpp': 4.6.2 dev: true /regenerate-unicode-properties@10.1.0: @@ -9076,7 +8988,7 @@ packages: resolution: {integrity: sha512-OLxjyjPkVH+rQlBLb1I/P/VTmamSjGkvN5PTV5BXP432k3uVz727J7H29GA5IFiY0m7e1xBN7049Wn59FY3DEQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: - '@eslint-community/regexpp': 4.5.0 + '@eslint-community/regexpp': 4.6.2 refa: 0.11.0 dev: true @@ -9098,11 +9010,6 @@ packages: functions-have-names: 1.2.3 dev: true - /regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - /regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} @@ -9131,10 +9038,6 @@ packages: resolution: {integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=} dev: true - /reserved-words@0.1.2: - resolution: {integrity: sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=} - dev: true - /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -9176,9 +9079,9 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 @@ -9250,12 +9153,6 @@ packages: dependencies: queue-microtask: 1.2.3 - /rxjs@7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} - dependencies: - tslib: 2.6.1 - dev: true - /sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} @@ -9291,12 +9188,6 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sanitize-filename@1.6.3: - resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} - dependencies: - truncate-utf8-bytes: 1.0.2 - dev: true - /sass@1.64.2: resolution: {integrity: sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg==} engines: {node: '>=14.0.0'} @@ -9320,7 +9211,7 @@ packages: /scslre@0.2.0: resolution: {integrity: sha512-4hc49fUMmX3jM0XdFUAPBrs1xwEcdHa0KyjEsjFs+Zfc66mpFpq5YmRgDtl+Ffo6AtJIilfei+yKw8fUn3N88w==} dependencies: - '@eslint-community/regexpp': 4.5.0 + '@eslint-community/regexpp': 4.6.2 refa: 0.11.0 regexp-ast-analysis: 0.6.0 dev: true @@ -9333,17 +9224,6 @@ packages: resolution: {integrity: sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=} dev: false - /selfsigned@1.10.14: - resolution: {integrity: sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==} - dependencies: - node-forge: 0.10.0 - dev: true - - /semiver@1.1.0: - resolution: {integrity: sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==} - engines: {node: '>=6'} - dev: true - /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -9353,14 +9233,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -9403,6 +9275,10 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false + /set-cookie-parser@2.6.0: + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + dev: true + /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -9466,6 +9342,23 @@ packages: engines: {node: '>=14'} dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: true + + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: true + /simple-git-hooks@2.9.0: resolution: {integrity: sha512-waSQ5paUQtyGC0ZxlHmcMmD9I1rRXauikBwX31bX58l5vTOhCEcBC5Bi+ZDkPXTjDnZAF8TbCqKBY+9+sVPScw==} hasBin: true @@ -9499,24 +9392,6 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} - /slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - /slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -9615,16 +9490,15 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /stack-trace@0.0.10: - resolution: {integrity: sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=} - dev: true - /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true - /standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + /stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + dependencies: + as-table: 1.0.55 + get-source: 2.0.12 dev: true /statuses@1.5.0: @@ -9640,9 +9514,14 @@ packages: resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} dev: true - /streamsearch@0.1.2: - resolution: {integrity: sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=} - engines: {node: '>=0.8.0'} + /stoppable@1.1.0: + resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} + engines: {node: '>=4', npm: '>=6'} + dev: true + + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} dev: true /string-argv@0.3.1: @@ -9650,6 +9529,11 @@ packages: engines: {node: '>=0.6.19'} dev: true + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + /string-hash@1.1.3: resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} dev: true @@ -9746,6 +9630,11 @@ packages: min-indent: 1.0.1 dev: true + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -9845,6 +9734,26 @@ packages: transitivePeerDependencies: - ts-node + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: true + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + /tar@6.1.11: resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} engines: {node: '>= 10'} @@ -9957,24 +9866,11 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: false - /tr46@2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.1.1 - dev: true - /trim-newlines@3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} dev: true - /truncate-utf8-bytes@1.0.2: - resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} - dependencies: - utf8-byte-length: 1.0.4 - dev: true - /ts-api-utils@1.0.1(typescript@5.0.2): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} @@ -10054,6 +9950,12 @@ packages: fsevents: 2.3.2 dev: true + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: true + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -10076,11 +9978,6 @@ packages: engines: {node: '>=10'} dev: true - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -10091,6 +9988,11 @@ packages: engines: {node: '>=8'} dev: true + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -10144,12 +10046,6 @@ packages: is-typed-array: 1.1.10 dev: true - /typescript@4.6.4: - resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - /typescript@5.0.2: resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} engines: {node: '>=12.20'} @@ -10161,24 +10057,6 @@ packages: hasBin: true dev: true - /typeson-registry@1.0.0-alpha.39: - resolution: {integrity: sha512-NeGDEquhw+yfwNhguLPcZ9Oj0fzbADiX4R0WxvoY8nGhy98IbzQy1sezjoEFWOywOboj/DWehI+/aUlRVrJnnw==} - engines: {node: '>=10.0.0'} - dependencies: - base64-arraybuffer-es6: 0.7.0 - typeson: 6.1.0 - whatwg-url: 8.7.0 - dev: true - - /typeson@6.1.0: - resolution: {integrity: sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA==} - engines: {node: '>=0.1.14'} - dev: true - - /tz-offset@0.0.1: - resolution: {integrity: sha512-kMBmblijHJXyOpKzgDhKx9INYU4u4E1RPMB0HqmKSgWG8vEcf3exEfLh4FFfzd3xdQOw9EuIy/cP0akY6rHopQ==} - dev: true - /ufo@1.2.0: resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} dev: true @@ -10234,6 +10112,13 @@ packages: - supports-color dev: true + /undici@5.23.0: + resolution: {integrity: sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg==} + engines: {node: '>=14.0'} + dependencies: + busboy: 1.6.0 + dev: true + /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -10308,10 +10193,6 @@ packages: punycode: 1.4.1 qs: 6.11.0 - /utf8-byte-length@1.0.4: - resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==} - dev: true - /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -10515,25 +10396,10 @@ packages: engines: {node: '>= 8'} dev: true - /webcrypto-core@1.7.3: - resolution: {integrity: sha512-8TnMtwwC/hQOyvElAOJ26lJKGgcErUG02KnKS1+QhjV4mDvQetVWU1EUEeLF8ICOrdc42+GypocyBJKRqo2kQg==} - dependencies: - '@peculiar/asn1-schema': 2.1.0 - '@peculiar/json-schema': 1.1.12 - asn1js: 2.4.0 - pvtsutils: 1.3.2 - tslib: 2.6.1 - dev: true - /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false - /webidl-conversions@6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - dev: true - /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: @@ -10541,15 +10407,6 @@ packages: webidl-conversions: 3.0.1 dev: false - /whatwg-url@8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -10627,13 +10484,17 @@ packages: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 + /workerd@1.20230807.0: + resolution: {integrity: sha512-yDdHld8wm5lQ6M/WYD68tIzbAmPjcgAoVAYhAHQFaXZSpryjIw9mT3O/NEloyZ8xiickpoPuNSQ4ffxPLao2+Q==} + engines: {node: '>=16'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20230807.0 + '@cloudflare/workerd-darwin-arm64': 1.20230807.0 + '@cloudflare/workerd-linux-64': 1.20230807.0 + '@cloudflare/workerd-linux-arm64': 1.20230807.0 + '@cloudflare/workerd-windows-64': 1.20230807.0 dev: true /wrap-ansi@7.0.0: @@ -10645,22 +10506,18 @@ packages: strip-ansi: 6.0.1 dev: true + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.1.0 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /ws@7.5.7: - resolution: {integrity: sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - /ws@8.13.0: resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} engines: {node: '>=10.0.0'} @@ -10731,13 +10588,12 @@ packages: engines: {node: '>=12.20'} dev: true - /youch@2.2.2: - resolution: {integrity: sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==} + /youch@3.2.3: + resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==} dependencies: - '@types/stack-trace': 0.0.29 - cookie: 0.4.2 + cookie: 0.5.0 mustache: 4.2.0 - stack-trace: 0.0.10 + stacktracey: 2.1.8 dev: true /z-schema@5.0.3: @@ -10752,6 +10608,10 @@ packages: commander: 2.20.3 dev: true + /zod@3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: true + file:playground/alias/dir/module: resolution: {directory: playground/alias/dir/module, type: directory} name: '@vitejs/test-aliased-module' @@ -10801,6 +10661,11 @@ packages: vue: 3.3.4 dev: false + file:playground/glob-import/import-meta-glob-pkg: + resolution: {directory: playground/glob-import/import-meta-glob-pkg, type: directory} + name: '@vitejs/test-import-meta-glob-pkg' + dev: false + file:playground/import-assertion/import-assertion-dep: resolution: {directory: playground/import-assertion/import-assertion-dep, type: directory} name: '@vitejs/test-import-assertion-dep' diff --git a/scripts/releaseUtils.ts b/scripts/releaseUtils.ts index c2315ab883667f..95ffb13ad725b6 100644 --- a/scripts/releaseUtils.ts +++ b/scripts/releaseUtils.ts @@ -8,8 +8,8 @@ import fs from 'fs-extra' export async function run( bin: string, args: string[], - opts: ExecaOptions = {}, -): Promise> { + opts: ExecaOptions = {}, +): Promise { return execa(bin, args, { stdio: 'inherit', ...opts }) } diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json index 359dd1aeafb2b3..224db1f6787c05 100644 --- a/scripts/tsconfig.json +++ b/scripts/tsconfig.json @@ -2,7 +2,7 @@ "$schema": "https://json.schemastore.org/tsconfig", "include": ["."], "compilerOptions": { - "module": "ES2020", + "module": "ES2022", "target": "ES2020", "moduleResolution": "Node", "strict": true, diff --git a/vitest.config.e2e.ts b/vitest.config.e2e.ts index 471d7859968710..fa0d76f1cd508d 100644 --- a/vitest.config.e2e.ts +++ b/vitest.config.e2e.ts @@ -26,6 +26,6 @@ export default defineConfig({ }, }, esbuild: { - target: 'node14', + target: 'node18', }, }) diff --git a/vitest.config.ts b/vitest.config.ts index 70340ed38cfe7b..98aed39da4f636 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -10,10 +10,8 @@ export default defineConfig({ './playground-temp/**/*.*', ], testTimeout: 20000, - // node14 segfaults often with threads - threads: !process.versions.node.startsWith('14'), }, esbuild: { - target: 'node14', + target: 'node18', }, })