diff --git a/.npmrc b/.npmrc index 6d64ed708da7d4..148b202c642b5e 100644 --- a/.npmrc +++ b/.npmrc @@ -6,3 +6,4 @@ hoist-pattern[]=pug hoist-pattern[]=source-map-support hoist-pattern[]=ts-node strict-peer-dependencies=false +shell-emulator=true \ No newline at end of file diff --git a/docs/config/preview-options.md b/docs/config/preview-options.md index 32589a5091d12b..3604afb9576d42 100644 --- a/docs/config/preview-options.md +++ b/docs/config/preview-options.md @@ -75,3 +75,9 @@ Uses [`http-proxy`](https://github.com/http-party/node-http-proxy). Full options - **Default:** [`server.cors`](./server-options#server-cors) Configure CORS for the preview server. This is enabled by default and allows any origin. Pass an [options object](https://github.com/expressjs/cors) to fine tune the behavior or `false` to disable. + +## preview.headers + +- **Type:** `OutgoingHttpHeaders` + +Specify server response headers. diff --git a/docs/config/server-options.md b/docs/config/server-options.md index d901a3a73797a5..7afd8e19d25486 100644 --- a/docs/config/server-options.md +++ b/docs/config/server-options.md @@ -297,10 +297,9 @@ export default defineConfig({ ## server.fs.deny - **Type:** `string[]` +- **Default:** `['.env', '.env.*', '*.{pem,crt}']` -Blocklist for sensitive files being restricted to be served by Vite dev server. - -Default to `['.env', '.env.*', '*.{pem,crt}']`. +Blocklist for sensitive files being restricted to be served by Vite dev server. This will have higher priority than [`server.fs.allow`](#server-fs-allow). [picomatch patterns](https://github.com/micromatch/picomatch#globbing-features) are supported. ## server.origin diff --git a/docs/config/shared-options.md b/docs/config/shared-options.md index a51350d05c462b..0ebddfd988bb04 100644 --- a/docs/config/shared-options.md +++ b/docs/config/shared-options.md @@ -158,6 +158,16 @@ Export keys ending with "/" is deprecated by Node and may not work well. Please List of fields in `package.json` to try when resolving a package's entry point. Note this takes lower precedence than conditional exports resolved from the `exports` field: if an entry point is successfully resolved from `exports`, the main field will be ignored. +## resolve.browserField + +- **Type:** `boolean` +- **Default:** `true` +- **Deprecated** + +Whether to enable resolving to `browser` field. + +In future, `resolve.mainFields`'s default value will be `['browser', 'module', 'jsnext:main', 'jsnext']` and this option will be removed. + ## resolve.extensions - **Type:** `string[]` diff --git a/docs/guide/static-deploy.md b/docs/guide/static-deploy.md index 57b7ba4b538d45..35909a960d4565 100644 --- a/docs/guide/static-deploy.md +++ b/docs/guide/static-deploy.md @@ -276,60 +276,6 @@ You can also add custom domains and handle custom build settings on Pages. Learn You can also deploy to a [custom domain](http://surge.sh/help/adding-a-custom-domain) by adding `surge dist yourdomain.com`. -## Heroku - -1. Install [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli). - -2. Create a Heroku account by [signing up](https://signup.heroku.com). - -3. Run `heroku login` and fill in your Heroku credentials: - - ```bash - $ heroku login - ``` - -4. Create a file called `static.json` in the root of your project with the below content: - - `static.json`: - - ```json - { - "root": "./dist" - } - ``` - - This is the configuration of your site; read more at [heroku-buildpack-static](https://github.com/heroku/heroku-buildpack-static). - -5. Set up your Heroku git remote: - - ```bash - # version change - $ git init - $ git add . - $ git commit -m "My site ready for deployment." - - # creates a new app with a specified name - $ heroku apps:create example - ``` - -6. Set buildpacks. We use `heroku/nodejs` to build the project and `heroku-buildpack-static` to serve it. - - ```bash - # set buildpacks - $ heroku buildpacks:set heroku/nodejs - $ heroku buildpacks:add https://github.com/heroku/heroku-buildpack-static.git - ``` - -7. Deploy your site: - - ```bash - # publish site - $ git push heroku main - - # opens a browser to view the Dashboard version of Heroku CI - $ heroku open - ``` - ## Azure Static Web Apps You can quickly deploy your Vite app with Microsoft Azure [Static Web Apps](https://aka.ms/staticwebapps) service. You need: diff --git a/package.json b/package.json index 2a41ad3a384ed9..f951c5b3a72a3d 100644 --- a/package.json +++ b/package.json @@ -20,25 +20,25 @@ "typecheck": "tsc -p scripts --noEmit && tsc -p playground --noEmit", "test": "run-s test-unit test-serve test-build", "test-serve": "vitest run -c vitest.config.e2e.ts", - "test-build": "cross-env VITE_TEST_BUILD=1 vitest run -c vitest.config.e2e.ts", - "test-build-without-plugin-commonjs": "cross-env VITE_TEST_WITHOUT_PLUGIN_COMMONJS=1 pnpm test-build", + "test-build": "VITE_TEST_BUILD=1 vitest run -c vitest.config.e2e.ts", + "test-build-without-plugin-commonjs": "VITE_TEST_WITHOUT_PLUGIN_COMMONJS=1 pnpm test-build", "test-unit": "vitest run", "test-docs": "pnpm run docs-build", - "debug-serve": "cross-env VITE_DEBUG_SERVE=1 vitest run -c vitest.config.e2e.ts", - "debug-build": "cross-env VITE_TEST_BUILD=1 VITE_PRESERVE_BUILD_ARTIFACTS=1 vitest run -c vitest.config.e2e.ts", + "debug-serve": "VITE_DEBUG_SERVE=1 vitest run -c vitest.config.e2e.ts", + "debug-build": "VITE_TEST_BUILD=1 VITE_PRESERVE_BUILD_ARTIFACTS=1 vitest run -c vitest.config.e2e.ts", "docs": "vitepress dev docs", "docs-build": "vitepress build docs", "docs-serve": "vitepress serve docs", - "build": "pnpm -r --filter=./packages/* run build", - "dev": "pnpm -r --parallel --filter=./packages/* run dev", + "build": "pnpm -r --filter='./packages/*' run build", + "dev": "pnpm -r --parallel --filter='./packages/*' run dev", "release": "tsx scripts/release.ts", "ci-publish": "tsx scripts/publishCI.ts", "ci-docs": "run-s build docs-build" }, "devDependencies": { - "@babel/types": "^7.18.13", - "@microsoft/api-extractor": "^7.29.5", - "@rollup/plugin-typescript": "^8.4.0", + "@babel/types": "^7.19.0", + "@microsoft/api-extractor": "^7.31.2", + "@rollup/plugin-typescript": "^8.5.0", "@types/babel__core": "^7.1.19", "@types/babel__standalone": "^7.1.4", "@types/convert-source-map": "^1.5.2", @@ -51,30 +51,30 @@ "@types/micromatch": "^4.0.2", "@types/minimist": "^1.2.2", "@types/node": "^17.0.42", - "@types/prompts": "^2.4.0", + "@types/picomatch": "^2.3.0", + "@types/prompts": "^2.0.14", "@types/resolve": "^1.20.2", "@types/sass": "~1.43.1", "@types/semver": "^7.3.12", "@types/stylus": "^0.48.38", "@types/ws": "^8.5.3", - "@typescript-eslint/eslint-plugin": "^5.35.1", - "@typescript-eslint/parser": "^5.35.1", + "@typescript-eslint/eslint-plugin": "^5.38.0", + "@typescript-eslint/parser": "^5.38.0", "conventional-changelog-cli": "^2.2.2", - "cross-env": "^7.0.3", "esbuild": "^0.14.47", - "eslint": "^8.23.0", - "eslint-define-config": "^1.6.0", + "eslint": "^8.23.1", + "eslint-define-config": "^1.7.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-node": "^11.1.0", "execa": "^6.1.0", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.12", "fs-extra": "^10.1.0", "lint-staged": "^13.0.3", "minimist": "^1.2.6", "npm-run-all": "^4.1.5", "picocolors": "^1.0.0", - "playwright-chromium": "^1.25.1", - "pnpm": "^7.9.5", + "playwright-chromium": "^1.26.0", + "pnpm": "^7.12.2", "prettier": "2.7.1", "prompts": "^2.4.2", "resolve": "^1.22.1", @@ -84,13 +84,13 @@ "semver": "^7.3.7", "simple-git-hooks": "^2.8.0", "tslib": "^2.4.0", - "tsx": "^3.8.2", + "tsx": "^3.9.0", "typescript": "^4.6.4", - "unbuild": "^0.8.9", + "unbuild": "^0.8.11", "vite": "workspace:*", - "vitepress": "^1.0.0-alpha.12", - "vitest": "^0.22.1", - "vue": "^3.2.37" + "vitepress": "^1.0.0-alpha.15", + "vitest": "^0.23.4", + "vue": "^3.2.39" }, "simple-git-hooks": { "pre-commit": "pnpm exec lint-staged --concurrent false", @@ -110,7 +110,7 @@ "eslint --cache --fix" ] }, - "packageManager": "pnpm@7.9.5", + "packageManager": "pnpm@7.12.2", "pnpm": { "overrides": { "vite": "workspace:*", diff --git a/packages/create-vite/CHANGELOG.md b/packages/create-vite/CHANGELOG.md index 65eb850352c223..6a3fa6264561d7 100644 --- a/packages/create-vite/CHANGELOG.md +++ b/packages/create-vite/CHANGELOG.md @@ -1,3 +1,16 @@ +## 3.1.0 (2022-09-05) + +* refactor(create-vite): migrate to TypeScript (#9941) ([85fa2c8](https://github.com/vitejs/vite/commit/85fa2c8)), closes [#9941](https://github.com/vitejs/vite/issues/9941) +* perf: bundle create-vite (#9034) ([37ac91e](https://github.com/vitejs/vite/commit/37ac91e)), closes [#9034](https://github.com/vitejs/vite/issues/9034) +* fix(deps): update all non-major dependencies (#9888) ([e35a58b](https://github.com/vitejs/vite/commit/e35a58b)), closes [#9888](https://github.com/vitejs/vite/issues/9888) +* test(cli): remove unnecessary generics usage (#9859) ([45d6797](https://github.com/vitejs/vite/commit/45d6797)), closes [#9859](https://github.com/vitejs/vite/issues/9859) +* feat: skip `.git` when emptying dir (#9659) ([07fe65e](https://github.com/vitejs/vite/commit/07fe65e)), closes [#9659](https://github.com/vitejs/vite/issues/9659) +* feat(create-vite): add support for custom init commands (`create-vue`, Nuxt, and SvelteKit) (#9406) ([1673f3d](https://github.com/vitejs/vite/commit/1673f3d)), closes [#9406](https://github.com/vitejs/vite/issues/9406) +* chore(deps): update all non-major dependencies (#9675) ([4e56e87](https://github.com/vitejs/vite/commit/4e56e87)), closes [#9675](https://github.com/vitejs/vite/issues/9675) +* chore(deps): update all non-major dependencies (#9778) ([aceaefc](https://github.com/vitejs/vite/commit/aceaefc)), closes [#9778](https://github.com/vitejs/vite/issues/9778) + + + ## 3.0.2 (2022-08-12) diff --git a/packages/create-vite/package.json b/packages/create-vite/package.json index 76c33bcd95e75f..55f7eda7f2b509 100644 --- a/packages/create-vite/package.json +++ b/packages/create-vite/package.json @@ -1,6 +1,6 @@ { "name": "create-vite", - "version": "3.0.2", + "version": "3.1.0", "type": "module", "license": "MIT", "author": "Evan You", @@ -33,7 +33,7 @@ "homepage": "https://github.com/vitejs/vite/tree/main/packages/create-vite#readme", "devDependencies": { "cross-spawn": "^7.0.3", - "kolorist": "^1.5.1", + "kolorist": "^1.6.0", "minimist": "^1.2.6", "prompts": "^2.4.2" } diff --git a/packages/create-vite/src/index.js b/packages/create-vite/src/index.ts similarity index 81% rename from packages/create-vite/src/index.js rename to packages/create-vite/src/index.ts index 8e5aa02ff4a40e..799ca93a75cd47 100755 --- a/packages/create-vite/src/index.js +++ b/packages/create-vite/src/index.ts @@ -1,4 +1,3 @@ -// @ts-check import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' @@ -19,10 +18,27 @@ import { // Avoids autoconversion to number of the project name by defining that the args // non associated with an option ( _ ) needs to be parsed as a string. See #4606 -const argv = minimist(process.argv.slice(2), { string: ['_'] }) +const argv = minimist<{ + t?: string + template?: string +}>(process.argv.slice(2), { string: ['_'] }) const cwd = process.cwd() -const FRAMEWORKS = [ +type ColorFunc = (str: string | number) => string +type Framework = { + name: string + display: string + color: ColorFunc + variants: FrameworkVariant[] +} +type FrameworkVariant = { + name: string + display: string + color: ColorFunc + customCommand?: string +} + +const FRAMEWORKS: Framework[] = [ { name: 'vanilla', display: 'Vanilla', @@ -149,25 +165,29 @@ const TEMPLATES = FRAMEWORKS.map( (f) => (f.variants && f.variants.map((v) => v.name)) || [f.name] ).reduce((a, b) => a.concat(b), []) -const renameFiles = { +const renameFiles: Record = { _gitignore: '.gitignore' } +const defaultTargetDir = 'vite-project' + async function init() { - let targetDir = formatTargetDir(argv._[0]) - let template = argv.template || argv.t + const argTargetDir = formatTargetDir(argv._[0]) + const argTemplate = argv.template || argv.t - const defaultTargetDir = 'vite-project' + let targetDir = argTargetDir || defaultTargetDir const getProjectName = () => targetDir === '.' ? path.basename(path.resolve()) : targetDir - let result = {} + let result: prompts.Answers< + 'projectName' | 'overwrite' | 'packageName' | 'framework' | 'variant' + > try { result = await prompts( [ { - type: targetDir ? null : 'text', + type: argTargetDir ? null : 'text', name: 'projectName', message: reset('Project name:'), initial: defaultTargetDir, @@ -186,7 +206,7 @@ async function init() { ` is not empty. Remove existing files and continue?` }, { - type: (_, { overwrite } = {}) => { + type: (_, { overwrite }: { overwrite?: boolean }) => { if (overwrite === false) { throw new Error(red('✖') + ' Operation cancelled') } @@ -203,12 +223,13 @@ async function init() { isValidPackageName(dir) || 'Invalid package.json name' }, { - type: template && TEMPLATES.includes(template) ? null : 'select', + type: + argTemplate && TEMPLATES.includes(argTemplate) ? null : 'select', name: 'framework', message: - typeof template === 'string' && !TEMPLATES.includes(template) + typeof argTemplate === 'string' && !TEMPLATES.includes(argTemplate) ? reset( - `"${template}" isn't a valid template. Please choose from below: ` + `"${argTemplate}" isn't a valid template. Please choose from below: ` ) : reset('Select a framework:'), initial: 0, @@ -221,12 +242,11 @@ async function init() { }) }, { - type: (framework) => + type: (framework: Framework) => framework && framework.variants ? 'select' : null, name: 'variant', message: reset('Select a variant:'), - // @ts-ignore - choices: (framework) => + choices: (framework: Framework) => framework.variants.map((variant) => { const variantColor = variant.color return { @@ -242,7 +262,7 @@ async function init() { } } ) - } catch (cancelled) { + } catch (cancelled: any) { console.log(cancelled.message) return } @@ -259,23 +279,15 @@ async function init() { } // determine template - template = variant || framework || template + const template: string = variant || framework || argTemplate const pkgInfo = pkgFromUserAgent(process.env.npm_config_user_agent) const pkgManager = pkgInfo ? pkgInfo.name : 'npm' const isYarn1 = pkgManager === 'yarn' && pkgInfo?.version.startsWith('1.') - if (template.startsWith('custom-')) { - const getCustomCommand = (name) => { - for (const f of FRAMEWORKS) { - for (const v of f.variants || []) { - if (v.name === name) { - return v.customCommand - } - } - } - } - const customCommand = getCustomCommand(template) + const { customCommand } = + FRAMEWORKS.flatMap((f) => f.variants).find((v) => v.name === template) ?? {} + if (customCommand) { const fullCustomCommand = customCommand .replace('TARGET_DIR', targetDir) .replace(/^npm create/, `${pkgManager} create`) @@ -309,10 +321,8 @@ async function init() { `template-${template}` ) - const write = (file, content) => { - const targetPath = renameFiles[file] - ? path.join(root, renameFiles[file]) - : path.join(root, file) + const write = (file: string, content?: string) => { + const targetPath = path.join(root, renameFiles[file] ?? file) if (content) { fs.writeFileSync(targetPath, content) } else { @@ -350,14 +360,11 @@ async function init() { console.log() } -/** - * @param {string | undefined} targetDir - */ -function formatTargetDir(targetDir) { +function formatTargetDir(targetDir: string | undefined) { return targetDir?.trim().replace(/\/+$/g, '') } -function copy(src, dest) { +function copy(src: string, dest: string) { const stat = fs.statSync(src) if (stat.isDirectory()) { copyDir(src, dest) @@ -366,19 +373,13 @@ function copy(src, dest) { } } -/** - * @param {string} projectName - */ -function isValidPackageName(projectName) { +function isValidPackageName(projectName: string) { return /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test( projectName ) } -/** - * @param {string} projectName - */ -function toValidPackageName(projectName) { +function toValidPackageName(projectName: string) { return projectName .trim() .toLowerCase() @@ -387,11 +388,7 @@ function toValidPackageName(projectName) { .replace(/[^a-z0-9-~]+/g, '-') } -/** - * @param {string} srcDir - * @param {string} destDir - */ -function copyDir(srcDir, destDir) { +function copyDir(srcDir: string, destDir: string) { fs.mkdirSync(destDir, { recursive: true }) for (const file of fs.readdirSync(srcDir)) { const srcFile = path.resolve(srcDir, file) @@ -400,18 +397,12 @@ function copyDir(srcDir, destDir) { } } -/** - * @param {string} path - */ -function isEmpty(path) { +function isEmpty(path: string) { const files = fs.readdirSync(path) return files.length === 0 || (files.length === 1 && files[0] === '.git') } -/** - * @param {string} dir - */ -function emptyDir(dir) { +function emptyDir(dir: string) { if (!fs.existsSync(dir)) { return } @@ -423,11 +414,7 @@ function emptyDir(dir) { } } -/** - * @param {string | undefined} userAgent process.env.npm_config_user_agent - * @returns object | undefined - */ -function pkgFromUserAgent(userAgent) { +function pkgFromUserAgent(userAgent: string | undefined) { if (!userAgent) return undefined const pkgSpec = userAgent.split(' ')[0] const pkgSpecArr = pkgSpec.split('/') diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index 463ed0a92f15e8..f5291641d96752 100644 --- a/packages/create-vite/template-lit-ts/package.json +++ b/packages/create-vite/template-lit-ts/package.json @@ -21,6 +21,6 @@ }, "devDependencies": { "typescript": "^4.6.4", - "vite": "^3.0.9" + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index d9a968e653d1dd..1154861181c7e1 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -18,6 +18,6 @@ "lit": "^2.3.1" }, "devDependencies": { - "vite": "^3.0.9" + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 67d72178f4e826..4e38547b575ab8 100644 --- a/packages/create-vite/template-preact-ts/package.json +++ b/packages/create-vite/template-preact-ts/package.json @@ -9,11 +9,11 @@ "preview": "vite preview" }, "dependencies": { - "preact": "^10.10.6" + "preact": "^10.11.0" }, "devDependencies": { - "@preact/preset-vite": "^2.3.0", + "@preact/preset-vite": "^2.4.0", "typescript": "^4.6.4", - "vite": "^3.0.9" + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-preact-ts/src/preact.d.ts b/packages/create-vite/template-preact-ts/src/preact.d.ts deleted file mode 100644 index ac79d62a49b4ac..00000000000000 --- a/packages/create-vite/template-preact-ts/src/preact.d.ts +++ /dev/null @@ -1 +0,0 @@ -import JSX = preact.JSX diff --git a/packages/create-vite/template-preact-ts/tsconfig.json b/packages/create-vite/template-preact-ts/tsconfig.json index 0a24dec18dd4f8..9c1b1e0aa6f1df 100644 --- a/packages/create-vite/template-preact-ts/tsconfig.json +++ b/packages/create-vite/template-preact-ts/tsconfig.json @@ -14,9 +14,8 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "preserve", - "jsxFactory": "h", - "jsxFragmentFactory": "Fragment" + "jsx": "react-jsx", + "jsxImportSource": "preact" }, "include": ["src"], "references": [{ "path": "./tsconfig.node.json" }] diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index f20f9c0e8c5a1f..e6fd043b875997 100644 --- a/packages/create-vite/template-preact/package.json +++ b/packages/create-vite/template-preact/package.json @@ -9,10 +9,10 @@ "preview": "vite preview" }, "dependencies": { - "preact": "^10.10.6" + "preact": "^10.11.0" }, "devDependencies": { - "@preact/preset-vite": "^2.3.0", - "vite": "^3.0.9" + "@preact/preset-vite": "^2.4.0", + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index 954ab1b6c35af8..049ca21c852163 100644 --- a/packages/create-vite/template-react-ts/package.json +++ b/packages/create-vite/template-react-ts/package.json @@ -13,10 +13,10 @@ "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.0.17", + "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", - "@vitejs/plugin-react": "^2.0.1", + "@vitejs/plugin-react": "^2.1.0", "typescript": "^4.6.4", - "vite": "^3.0.9" + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index ae854711e08149..4d63da6ecac4c6 100644 --- a/packages/create-vite/template-react/package.json +++ b/packages/create-vite/template-react/package.json @@ -13,9 +13,9 @@ "react-dom": "^18.2.0" }, "devDependencies": { - "@types/react": "^18.0.17", + "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", - "@vitejs/plugin-react": "^2.0.1", - "vite": "^3.0.9" + "@vitejs/plugin-react": "^2.1.0", + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-svelte-ts/README.md b/packages/create-vite/template-svelte-ts/README.md index 4ef762ffec4df3..e6cd94fce77dca 100644 --- a/packages/create-vite/template-svelte-ts/README.md +++ b/packages/create-vite/template-svelte-ts/README.md @@ -16,7 +16,6 @@ Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also pow - It brings its own routing solution which might not be preferable for some users. - It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app. - `vite dev` and `vite build` wouldn't work in a SvelteKit environment, for example. This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project. diff --git a/packages/create-vite/template-svelte-ts/package.json b/packages/create-vite/template-svelte-ts/package.json index 4b2b573519f698..fdb3987f849550 100644 --- a/packages/create-vite/template-svelte-ts/package.json +++ b/packages/create-vite/template-svelte-ts/package.json @@ -10,13 +10,13 @@ "check": "svelte-check --tsconfig ./tsconfig.json" }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^1.0.2", + "@sveltejs/vite-plugin-svelte": "^1.0.8", "@tsconfig/svelte": "^3.0.0", - "svelte": "^3.49.0", - "svelte-check": "^2.8.1", + "svelte": "^3.50.1", + "svelte-check": "^2.9.0", "svelte-preprocess": "^4.10.7", "tslib": "^2.4.0", "typescript": "^4.6.4", - "vite": "^3.0.9" + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-svelte-ts/tsconfig.json b/packages/create-vite/template-svelte-ts/tsconfig.json index d38303196ae8dc..c4e1c5fe6e73a4 100644 --- a/packages/create-vite/template-svelte-ts/tsconfig.json +++ b/packages/create-vite/template-svelte-ts/tsconfig.json @@ -5,7 +5,6 @@ "useDefineForClassFields": true, "module": "ESNext", "resolveJsonModule": true, - "baseUrl": ".", /** * Typecheck JS in `.svelte` and `.js` files by default. * Disable checkJs if you'd like to use dynamic types in JS. diff --git a/packages/create-vite/template-svelte/README.md b/packages/create-vite/template-svelte/README.md index 50ea7ed3b9132d..69c2ac55e18166 100644 --- a/packages/create-vite/template-svelte/README.md +++ b/packages/create-vite/template-svelte/README.md @@ -16,7 +16,6 @@ Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also pow - It brings its own routing solution which might not be preferable for some users. - It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app. - `vite dev` and `vite build` wouldn't work in a SvelteKit environment, for example. This template contains as little as possible to get started with Vite + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project. diff --git a/packages/create-vite/template-svelte/jsconfig.json b/packages/create-vite/template-svelte/jsconfig.json index ee5e92f298e484..e596c582326d98 100644 --- a/packages/create-vite/template-svelte/jsconfig.json +++ b/packages/create-vite/template-svelte/jsconfig.json @@ -19,7 +19,6 @@ "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, - "baseUrl": ".", /** * Typecheck JS in `.svelte` and `.js` files by default. * Disable this if you'd like to use dynamic types. diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 8b1554b6107eb0..16a202ea996167 100644 --- a/packages/create-vite/template-svelte/package.json +++ b/packages/create-vite/template-svelte/package.json @@ -9,8 +9,8 @@ "preview": "vite preview" }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^1.0.2", - "svelte": "^3.49.0", - "vite": "^3.0.9" + "@sveltejs/vite-plugin-svelte": "^1.0.8", + "svelte": "^3.50.1", + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index d35e6a2f5051a2..093144c9580fed 100644 --- a/packages/create-vite/template-vanilla-ts/package.json +++ b/packages/create-vite/template-vanilla-ts/package.json @@ -10,6 +10,6 @@ }, "devDependencies": { "typescript": "^4.6.4", - "vite": "^3.0.9" + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-vanilla-ts/src/counter.ts b/packages/create-vite/template-vanilla-ts/src/counter.ts index a3529e1f26bfc8..09e5afd2d8ad2b 100644 --- a/packages/create-vite/template-vanilla-ts/src/counter.ts +++ b/packages/create-vite/template-vanilla-ts/src/counter.ts @@ -4,6 +4,6 @@ export function setupCounter(element: HTMLButtonElement) { counter = count element.innerHTML = `count is ${counter}` } - element.addEventListener('click', () => setCounter(++counter)) + element.addEventListener('click', () => setCounter(counter + 1)) setCounter(0) } diff --git a/packages/create-vite/template-vanilla-ts/tsconfig.json b/packages/create-vite/template-vanilla-ts/tsconfig.json index fbd022532d3096..eac16d14a6f2e2 100644 --- a/packages/create-vite/template-vanilla-ts/tsconfig.json +++ b/packages/create-vite/template-vanilla-ts/tsconfig.json @@ -6,7 +6,6 @@ "lib": ["ESNext", "DOM"], "moduleResolution": "Node", "strict": true, - "sourceMap": true, "resolveJsonModule": true, "isolatedModules": true, "esModuleInterop": true, diff --git a/packages/create-vite/template-vanilla/counter.js b/packages/create-vite/template-vanilla/counter.js index 12ae65abfaea09..881e2d7adf529f 100644 --- a/packages/create-vite/template-vanilla/counter.js +++ b/packages/create-vite/template-vanilla/counter.js @@ -4,6 +4,6 @@ export function setupCounter(element) { counter = count element.innerHTML = `count is ${counter}` } - element.addEventListener('click', () => setCounter(++counter)) + element.addEventListener('click', () => setCounter(counter + 1)) setCounter(0) } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 95543d260c4650..2b4c03827380f9 100644 --- a/packages/create-vite/template-vanilla/package.json +++ b/packages/create-vite/template-vanilla/package.json @@ -9,6 +9,6 @@ "preview": "vite preview" }, "devDependencies": { - "vite": "^3.0.9" + "vite": "^3.1.3" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 066d16c44ae57f..ebc6e559331da2 100644 --- a/packages/create-vite/template-vue-ts/package.json +++ b/packages/create-vite/template-vue-ts/package.json @@ -5,16 +5,16 @@ "type": "module", "scripts": { "dev": "vite", - "build": "vue-tsc --noEmit && vite build", + "build": "vue-tsc && vite build", "preview": "vite preview" }, "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" }, "devDependencies": { - "@vitejs/plugin-vue": "^3.0.3", + "@vitejs/plugin-vue": "^3.1.0", "typescript": "^4.6.4", - "vite": "^3.0.9", - "vue-tsc": "^0.40.4" + "vite": "^3.1.3", + "vue-tsc": "^0.40.13" } } diff --git a/packages/create-vite/template-vue-ts/tsconfig.json b/packages/create-vite/template-vue-ts/tsconfig.json index d4aefa2c929dc2..b557c4047cac64 100644 --- a/packages/create-vite/template-vue-ts/tsconfig.json +++ b/packages/create-vite/template-vue-ts/tsconfig.json @@ -6,12 +6,12 @@ "moduleResolution": "Node", "strict": true, "jsx": "preserve", - "sourceMap": true, "resolveJsonModule": true, "isolatedModules": true, "esModuleInterop": true, "lib": ["ESNext", "DOM"], - "skipLibCheck": true + "skipLibCheck": true, + "noEmit": true }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], "references": [{ "path": "./tsconfig.node.json" }] diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index e6bc9a293283c0..77e0dbb627a6a5 100644 --- a/packages/create-vite/template-vue/package.json +++ b/packages/create-vite/template-vue/package.json @@ -9,10 +9,10 @@ "preview": "vite preview" }, "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" }, "devDependencies": { - "@vitejs/plugin-vue": "^3.0.3", - "vite": "^3.0.9" + "@vitejs/plugin-vue": "^3.1.0", + "vite": "^3.1.3" } } diff --git a/packages/create-vite/tsconfig.json b/packages/create-vite/tsconfig.json new file mode 100644 index 00000000000000..0ec39bdf6a1404 --- /dev/null +++ b/packages/create-vite/tsconfig.json @@ -0,0 +1,14 @@ +{ + "include": ["src", "__tests__"], + "compilerOptions": { + "outDir": "dist", + "target": "ES2020", + "module": "ES2020", + "moduleResolution": "Node", + "strict": true, + "declaration": false, + "sourceMap": false, + "noUnusedLocals": true, + "esModuleInterop": true + } +} diff --git a/packages/plugin-legacy/CHANGELOG.md b/packages/plugin-legacy/CHANGELOG.md index cd34f3c6ff5845..3bf33a1488de08 100644 --- a/packages/plugin-legacy/CHANGELOG.md +++ b/packages/plugin-legacy/CHANGELOG.md @@ -1,3 +1,17 @@ +## 2.2.0 (2022-09-19) + +* docs(plugin-legacy): fix Vite default target (#10158) ([62ff788](https://github.com/vitejs/vite/commit/62ff788)), closes [#10158](https://github.com/vitejs/vite/issues/10158) +* fix(deps): update all non-major dependencies (#10077) ([caf00c8](https://github.com/vitejs/vite/commit/caf00c8)), closes [#10077](https://github.com/vitejs/vite/issues/10077) +* fix(deps): update all non-major dependencies (#9985) ([855f2f0](https://github.com/vitejs/vite/commit/855f2f0)), closes [#9985](https://github.com/vitejs/vite/issues/9985) +* fix(plugin-legacy): force set `build.target` (#10072) ([a13a7eb](https://github.com/vitejs/vite/commit/a13a7eb)), closes [#10072](https://github.com/vitejs/vite/issues/10072) + + + +## 2.1.0 (2022-09-05) + + + + ## 2.1.0-beta.0 (2022-08-29) * fix(deps): update all non-major dependencies (#9888) ([e35a58b](https://github.com/vitejs/vite/commit/e35a58b)), closes [#9888](https://github.com/vitejs/vite/issues/9888) diff --git a/packages/plugin-legacy/README.md b/packages/plugin-legacy/README.md index b5c3631ab2ac60..708ba6059561f1 100644 --- a/packages/plugin-legacy/README.md +++ b/packages/plugin-legacy/README.md @@ -1,6 +1,6 @@ # @vitejs/plugin-legacy [![npm](https://img.shields.io/npm/v/@vitejs/plugin-legacy.svg)](https://npmjs.com/package/@vitejs/plugin-legacy) -Vite's default browser support baseline is [Native ESM](https://caniuse.com/es6-module). This plugin provides support for legacy browsers that do not support native ESM when building for production. +Vite's default browser support baseline is [Native ESM](https://caniuse.com/es6-module), [native ESM dynamic import](https://caniuse.com/es6-module-dynamic-import), and [`import.meta`](https://caniuse.com/mdn-javascript_operators_import_meta). This plugin provides support for legacy browsers that do not support those features when building for production. By default, this plugin will: diff --git a/packages/plugin-legacy/build.config.ts b/packages/plugin-legacy/build.config.ts index 6dcf1a5a2dc0b3..12afbbc54d1efd 100644 --- a/packages/plugin-legacy/build.config.ts +++ b/packages/plugin-legacy/build.config.ts @@ -5,6 +5,7 @@ export default defineBuildConfig({ clean: true, declaration: true, rollup: { - emitCJS: true + emitCJS: true, + inlineDependencies: true } }) diff --git a/packages/plugin-legacy/package.json b/packages/plugin-legacy/package.json index 6f15399e39574c..5e6ffa9074d38e 100644 --- a/packages/plugin-legacy/package.json +++ b/packages/plugin-legacy/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-legacy", - "version": "2.1.0-beta.0", + "version": "2.2.0", "license": "MIT", "author": "Evan You", "files": [ @@ -35,18 +35,19 @@ }, "homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-legacy#readme", "dependencies": { - "@babel/standalone": "^7.18.13", - "core-js": "^3.25.0", - "magic-string": "^0.26.2", + "@babel/standalone": "^7.19.2", + "core-js": "^3.25.2", + "magic-string": "^0.26.4", "regenerator-runtime": "^0.13.9", - "systemjs": "^6.12.4" + "systemjs": "^6.12.6" }, "peerDependencies": { "terser": "^5.4.0", "vite": "^3.0.0" }, "devDependencies": { - "@babel/core": "^7.18.13", + "@babel/core": "^7.19.1", + "picocolors": "^1.0.0", "vite": "workspace:*" } } diff --git a/packages/plugin-legacy/src/index.ts b/packages/plugin-legacy/src/index.ts index 4d51d1cecaf493..203cad9dc293c6 100644 --- a/packages/plugin-legacy/src/index.ts +++ b/packages/plugin-legacy/src/index.ts @@ -19,6 +19,7 @@ import type { RenderedChunk } from 'rollup' import type { PluginItem as BabelPlugin } from '@babel/core' +import colors from 'picocolors' import type { Options } from './types' // lazy load babel since it's not used during dev @@ -156,6 +157,7 @@ function viteLegacyPlugin(options: Options = {}): Plugin[] { }) } + let overriddenBuildTarget = false const legacyConfigPlugin: Plugin = { name: 'vite:legacy-config', @@ -173,6 +175,20 @@ function viteLegacyPlugin(options: Options = {}): Plugin[] { // So targeting `chrome61` suffices to fix the compatibility issue. config.build.cssTarget = 'chrome61' } + + if (genLegacy) { + // Vite's default target browsers are **not** the same. + // See https://github.com/vitejs/vite/pull/10052#issuecomment-1242076461 + overriddenBuildTarget = config.build.target !== undefined + // browsers supporting ESM + dynamic import + import.meta + config.build.target = [ + 'es2020', + 'edge79', + 'firefox67', + 'chrome64', + 'safari11.1' + ] + } } return { @@ -183,6 +199,15 @@ function viteLegacyPlugin(options: Options = {}): Plugin[] { : legacyEnvVarMarker } } + }, + configResolved(config) { + if (overriddenBuildTarget) { + config.logger.warn( + colors.yellow( + `plugin-legacy overrode 'build.target'. You should pass 'targets' as an option to this plugin with the list of legacy browsers to support instead.` + ) + ) + } } } diff --git a/packages/plugin-react/CHANGELOG.md b/packages/plugin-react/CHANGELOG.md index 649e5cd9c68078..f4408610482556 100644 --- a/packages/plugin-react/CHANGELOG.md +++ b/packages/plugin-react/CHANGELOG.md @@ -1,3 +1,9 @@ +## 2.1.0 (2022-09-05) + +* fix(plugin-react): duplicate __self prop and __source prop (#9387) ([c89de3a](https://github.com/vitejs/vite/commit/c89de3a)), closes [#9387](https://github.com/vitejs/vite/issues/9387) + + + ## 2.1.0-beta.0 (2022-08-29) * docs: fix typo (#9855) ([583f185](https://github.com/vitejs/vite/commit/583f185)), closes [#9855](https://github.com/vitejs/vite/issues/9855) diff --git a/packages/plugin-react/package.json b/packages/plugin-react/package.json index f8e7c6265232d9..8001f1ca7389c7 100644 --- a/packages/plugin-react/package.json +++ b/packages/plugin-react/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-react", - "version": "2.1.0-beta.0", + "version": "2.1.0", "license": "MIT", "author": "Evan You", "contributors": [ @@ -39,12 +39,12 @@ }, "homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-react#readme", "dependencies": { - "@babel/core": "^7.18.13", - "@babel/plugin-transform-react-jsx": "^7.18.10", + "@babel/core": "^7.19.1", + "@babel/plugin-transform-react-jsx": "^7.19.0", "@babel/plugin-transform-react-jsx-development": "^7.18.6", "@babel/plugin-transform-react-jsx-self": "^7.18.6", "@babel/plugin-transform-react-jsx-source": "^7.18.6", - "magic-string": "^0.26.2", + "magic-string": "^0.26.4", "react-refresh": "^0.14.0" }, "peerDependencies": { diff --git a/packages/plugin-vue-jsx/package.json b/packages/plugin-vue-jsx/package.json index 68bd101d2525d4..7c61ff0fab5a27 100644 --- a/packages/plugin-vue-jsx/package.json +++ b/packages/plugin-vue-jsx/package.json @@ -35,9 +35,9 @@ }, "homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx#readme", "dependencies": { - "@babel/core": "^7.18.13", + "@babel/core": "^7.19.1", "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.18.12", + "@babel/plugin-transform-typescript": "^7.19.1", "@vue/babel-plugin-jsx": "^1.1.1" }, "devDependencies": { diff --git a/packages/plugin-vue/CHANGELOG.md b/packages/plugin-vue/CHANGELOG.md index afacf0f3eab86e..cde94520cdb190 100644 --- a/packages/plugin-vue/CHANGELOG.md +++ b/packages/plugin-vue/CHANGELOG.md @@ -1,3 +1,8 @@ +## 3.1.0 (2022-09-05) + + + + ## 3.1.0-beta.0 (2022-08-29) * docs: fix typo (#9855) ([583f185](https://github.com/vitejs/vite/commit/583f185)), closes [#9855](https://github.com/vitejs/vite/issues/9855) diff --git a/packages/plugin-vue/package.json b/packages/plugin-vue/package.json index efa3397bd2be46..af9671eb3373b6 100644 --- a/packages/plugin-vue/package.json +++ b/packages/plugin-vue/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-vue", - "version": "3.1.0-beta.0", + "version": "3.1.0", "license": "MIT", "author": "Evan You", "files": [ @@ -46,6 +46,6 @@ "slash": "^4.0.0", "source-map": "^0.6.1", "vite": "workspace:*", - "vue": "^3.2.37" + "vue": "^3.2.39" } } diff --git a/packages/plugin-vue/src/main.ts b/packages/plugin-vue/src/main.ts index bdb846ab4abcfd..5d76256f75c2c2 100644 --- a/packages/plugin-vue/src/main.ts +++ b/packages/plugin-vue/src/main.ts @@ -221,7 +221,11 @@ export async function transformMain( const { code, map } = await transformWithEsbuild( resolvedCode, filename, - { loader: 'ts', sourcemap: options.sourceMap }, + { + loader: 'ts', + target: 'esnext', + sourcemap: options.sourceMap + }, resolvedMap ) resolvedCode = code diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 632672a83b8012..12250b4fd3826f 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,34 +1,91 @@ -## 3.1.0-beta.2 (2022-09-02) +## 3.1.3 (2022-09-19) -* fix(css): remove css-post plugin sourcemap (#9914) ([c9521e7](https://github.com/vitejs/vite/commit/c9521e7)), closes [#9914](https://github.com/vitejs/vite/issues/9914) -* fix(hmr): duplicated modules because of query params mismatch (fixes #2255) (#9773) ([86bf776](https://github.com/vitejs/vite/commit/86bf776)), closes [#2255](https://github.com/vitejs/vite/issues/2255) [#9773](https://github.com/vitejs/vite/issues/9773) -* fix(ssr): enable `inlineDynamicImports` when input has length 1 (#9904) ([9ac5075](https://github.com/vitejs/vite/commit/9ac5075)), closes [#9904](https://github.com/vitejs/vite/issues/9904) -* fix(types): mark explicitImportRequired optional and experimental (#9962) ([7b618f0](https://github.com/vitejs/vite/commit/7b618f0)), closes [#9962](https://github.com/vitejs/vite/issues/9962) -* chore!: bump esbuild to 0.15.6 (#9934) ([091537c](https://github.com/vitejs/vite/commit/091537c)), closes [#9934](https://github.com/vitejs/vite/issues/9934) -* chore(deps): update dependency postcss-import to v15 (#9929) ([8f315a2](https://github.com/vitejs/vite/commit/8f315a2)), closes [#9929](https://github.com/vitejs/vite/issues/9929) -* feat(css): format error (#9909) ([632fedf](https://github.com/vitejs/vite/commit/632fedf)), closes [#9909](https://github.com/vitejs/vite/issues/9909) -* perf: bundle create-vite (#9034) ([37ac91e](https://github.com/vitejs/vite/commit/37ac91e)), closes [#9034](https://github.com/vitejs/vite/issues/9034) +* fix: esbuildOutputFromId for symlinked root (#10154) ([fc5310f](https://github.com/vitejs/vite/commit/fc5310f)), closes [#10154](https://github.com/vitejs/vite/issues/10154) +* fix(hmr): dedupe virtual modules in module graph (#10144) ([71f08e7](https://github.com/vitejs/vite/commit/71f08e7)), closes [#10144](https://github.com/vitejs/vite/issues/10144) +* fix(lib): respect `rollupOptions.input` in lib mode (#10116) ([c948e7d](https://github.com/vitejs/vite/commit/c948e7d)), closes [#10116](https://github.com/vitejs/vite/issues/10116) -## 3.1.0-beta.1 (2022-08-29) +## 3.1.2 (2022-09-17) -* docs: fix typo (#9855) ([583f185](https://github.com/vitejs/vite/commit/583f185)), closes [#9855](https://github.com/vitejs/vite/issues/9855) -* refactor(hmr): simplify fetchUpdate (#9881) ([8872aba](https://github.com/vitejs/vite/commit/8872aba)), closes [#9881](https://github.com/vitejs/vite/issues/9881) -* fix: ensure version query for direct node_modules imports (#9848) ([e7712ff](https://github.com/vitejs/vite/commit/e7712ff)), closes [#9848](https://github.com/vitejs/vite/issues/9848) -* fix: escape glob path (#9842) ([6be971e](https://github.com/vitejs/vite/commit/6be971e)), closes [#9842](https://github.com/vitejs/vite/issues/9842) -* fix(build): build project path error (#9793) ([cc8800a](https://github.com/vitejs/vite/commit/cc8800a)), closes [#9793](https://github.com/vitejs/vite/issues/9793) -* fix(deps): update all non-major dependencies (#9888) ([e35a58b](https://github.com/vitejs/vite/commit/e35a58b)), closes [#9888](https://github.com/vitejs/vite/issues/9888) -* fix(types): explicitly set Vite hooks' `this` to `void` (#9885) ([2d2f2e5](https://github.com/vitejs/vite/commit/2d2f2e5)), closes [#9885](https://github.com/vitejs/vite/issues/9885) -* feat: stabilize server.resolvedUrls (#9866) ([c3f6731](https://github.com/vitejs/vite/commit/c3f6731)), closes [#9866](https://github.com/vitejs/vite/issues/9866) -* feat(client): use debug channel on hot updates (#8855) ([0452224](https://github.com/vitejs/vite/commit/0452224)), closes [#8855](https://github.com/vitejs/vite/issues/8855) +* fix: use isOptimizable to ensure version query (#10141) ([23a51c6](https://github.com/vitejs/vite/commit/23a51c6)), closes [#10141](https://github.com/vitejs/vite/issues/10141) + + + +## 3.1.1 (2022-09-15) +* fix: ensure version query for relative node_modules imports (#10016) ([1b822d0](https://github.com/vitejs/vite/commit/1b822d0)), closes [#10016](https://github.com/vitejs/vite/issues/10016) +* fix: no quote on attrs (#10117) ([f541239](https://github.com/vitejs/vite/commit/f541239)), closes [#10117](https://github.com/vitejs/vite/issues/10117) +* fix: prevent error overlay style being overridden (fixes #9969) (#9971) ([a7706d0](https://github.com/vitejs/vite/commit/a7706d0)), closes [#9969](https://github.com/vitejs/vite/issues/9969) [#9971](https://github.com/vitejs/vite/issues/9971) +* fix: proxy to secured websocket server (#10045) ([9de9bc4](https://github.com/vitejs/vite/commit/9de9bc4)), closes [#10045](https://github.com/vitejs/vite/issues/10045) +* fix: replace white with reset (#10104) ([5d56e42](https://github.com/vitejs/vite/commit/5d56e42)), closes [#10104](https://github.com/vitejs/vite/issues/10104) +* fix(deps): update all non-major dependencies (#10077) ([caf00c8](https://github.com/vitejs/vite/commit/caf00c8)), closes [#10077](https://github.com/vitejs/vite/issues/10077) +* fix(deps): update all non-major dependencies (#9985) ([855f2f0](https://github.com/vitejs/vite/commit/855f2f0)), closes [#9985](https://github.com/vitejs/vite/issues/9985) +* fix(preview): send configured headers (#9976) ([0d20eae](https://github.com/vitejs/vite/commit/0d20eae)), closes [#9976](https://github.com/vitejs/vite/issues/9976) +* chore: cleanup old changelogs (#10056) ([9e65a41](https://github.com/vitejs/vite/commit/9e65a41)), closes [#10056](https://github.com/vitejs/vite/issues/10056) +* chore: update 3.1 changelog (#9994) ([44dbcbe](https://github.com/vitejs/vite/commit/44dbcbe)), closes [#9994](https://github.com/vitejs/vite/issues/9994) +* chore(deps): update @rollup/plugin-node-resolve to v14 (#10078) ([3390c87](https://github.com/vitejs/vite/commit/3390c87)), closes [#10078](https://github.com/vitejs/vite/issues/10078) +* refactor: config hook helper function (#9982) ([9c1be10](https://github.com/vitejs/vite/commit/9c1be10)), closes [#9982](https://github.com/vitejs/vite/issues/9982) +* refactor: optimize `async` and `await` in code (#9854) ([31f5ff3](https://github.com/vitejs/vite/commit/31f5ff3)), closes [#9854](https://github.com/vitejs/vite/issues/9854) -## 3.1.0-beta.0 (2022-08-25) +## 3.1.0 (2022-09-05) + +### Main Changes + +- Vite now uses [parse5](https://github.com/inikulin/parse5), which parses HTML in the same way as the latest browser versions. This migration gives us a more robust HTML story moving forward ([#9678](https://github.com/vitejs/vite/issues/9678)). +- Vite now supports using objects as hooks to change execution order ([#9634](https://github.com/vitejs/vite/issues/9634)). Check out the [RFC](https://github.com/vitejs/rfcs/discussions/12) and the implementation upstream at [rollup/rollup#4600](https://github.com/rollup/rollup/pull/4600) for details and rationale. + ```js + import { resolve } from 'node:path'; + import { readdir } from 'node:fs/promises'; + + export default function getFilesOnDisk() { + return { + name: 'getFilesOnDisk', + writeBundle: { + // run this hook sequentially even if the hook is parallel + sequential: true, + // push this hook to the 'post' stage, after all normal hooks + order: 'post', + // hook implementation + async handler({ dir }) { + const topLevelFiles = await readdir(resolve(dir)) + console.log(topLevelFiles) + } + } + } + } + ``` + Read the updated [Rollup Plugin docs](https://rollupjs.org/guide/en/#build-hooks) for more information. + +> **Note** +> After Vite 3.1, you are no longer going to see `[vite] hot updated` log messages in the browser console. These messages have been moved to the debug channel ([#8855](https://github.com/vitejs/vite/issues/8855)). Check your browser docs to [show debug logs](https://developer.chrome.com/docs/devtools/console/log/#level). + +### Features + +* feat(css): format error (#9909) ([632fedf](https://github.com/vitejs/vite/commit/632fedf)), closes [#9909](https://github.com/vitejs/vite/issues/9909) +* perf: bundle create-vite (#9034) ([37ac91e](https://github.com/vitejs/vite/commit/37ac91e)), closes [#9034](https://github.com/vitejs/vite/issues/9034) +* feat: stabilize server.resolvedUrls (#9866) ([c3f6731](https://github.com/vitejs/vite/commit/c3f6731)), closes [#9866](https://github.com/vitejs/vite/issues/9866) +* feat(client): use debug channel on hot updates (#8855) ([0452224](https://github.com/vitejs/vite/commit/0452224)), closes [#8855](https://github.com/vitejs/vite/issues/8855) * feat: relax dep browser externals as warning (#9837) ([71cb374](https://github.com/vitejs/vite/commit/71cb374)), closes [#9837](https://github.com/vitejs/vite/issues/9837) * feat: support object style hooks (#9634) ([757a92f](https://github.com/vitejs/vite/commit/757a92f)), closes [#9634](https://github.com/vitejs/vite/issues/9634) +* refactor: migrate from vue/compiler-dom to parse5 (#9678) ([05b3ce6](https://github.com/vitejs/vite/commit/05b3ce6)), closes [#9678](https://github.com/vitejs/vite/issues/9678) +* refactor: use `server.ssrTransform` (#9769) ([246a087](https://github.com/vitejs/vite/commit/246a087)), closes [#9769](https://github.com/vitejs/vite/issues/9769) +* perf: legacy avoid insert the entry module css (#9761) ([0765ab8](https://github.com/vitejs/vite/commit/0765ab8)), closes [#9761](https://github.com/vitejs/vite/issues/9761) + +### Bug Fixes + +* fix(css): remove css-post plugin sourcemap (#9914) ([c9521e7](https://github.com/vitejs/vite/commit/c9521e7)), closes [#9914](https://github.com/vitejs/vite/issues/9914) +* fix(hmr): duplicated modules because of query params mismatch (fixes #2255) (#9773) ([86bf776](https://github.com/vitejs/vite/commit/86bf776)), closes [#2255](https://github.com/vitejs/vite/issues/2255) [#9773](https://github.com/vitejs/vite/issues/9773) +* fix(ssr): enable `inlineDynamicImports` when input has length 1 (#9904) ([9ac5075](https://github.com/vitejs/vite/commit/9ac5075)), closes [#9904](https://github.com/vitejs/vite/issues/9904) +* fix(types): mark explicitImportRequired optional and experimental (#9962) ([7b618f0](https://github.com/vitejs/vite/commit/7b618f0)), closes [#9962](https://github.com/vitejs/vite/issues/9962) +* fix: bump esbuild to 0.15.6 (#9934) ([091537c](https://github.com/vitejs/vite/commit/091537c)), closes [#9934](https://github.com/vitejs/vite/issues/9934) +* refactor(hmr): simplify fetchUpdate (#9881) ([8872aba](https://github.com/vitejs/vite/commit/8872aba)), closes [#9881](https://github.com/vitejs/vite/issues/9881) +* fix: ensure version query for direct node_modules imports (#9848) ([e7712ff](https://github.com/vitejs/vite/commit/e7712ff)), closes [#9848](https://github.com/vitejs/vite/issues/9848) +* fix: escape glob path (#9842) ([6be971e](https://github.com/vitejs/vite/commit/6be971e)), closes [#9842](https://github.com/vitejs/vite/issues/9842) +* fix(build): build project path error (#9793) ([cc8800a](https://github.com/vitejs/vite/commit/cc8800a)), closes [#9793](https://github.com/vitejs/vite/issues/9793) +* fix(types): explicitly set Vite hooks' `this` to `void` (#9885) ([2d2f2e5](https://github.com/vitejs/vite/commit/2d2f2e5)), closes [#9885](https://github.com/vitejs/vite/issues/9885) * fix: `completeSystemWrapPlugin` captures `function ()` (fixes #9807) (#9821) ([1ee0364](https://github.com/vitejs/vite/commit/1ee0364)), closes [#9807](https://github.com/vitejs/vite/issues/9807) [#9821](https://github.com/vitejs/vite/issues/9821) * fix: `injectQuery` break relative path (#9760) ([61273b2](https://github.com/vitejs/vite/commit/61273b2)), closes [#9760](https://github.com/vitejs/vite/issues/9760) * fix: close socket when client error handled (#9816) ([ba62be4](https://github.com/vitejs/vite/commit/ba62be4)), closes [#9816](https://github.com/vitejs/vite/issues/9816) @@ -37,13 +94,20 @@ * fix: sanitize asset filenames (#9737) ([2f468bb](https://github.com/vitejs/vite/commit/2f468bb)), closes [#9737](https://github.com/vitejs/vite/issues/9737) * fix: Skip inlining Git LFS placeholders (fix #9714) (#9795) ([9c7e43d](https://github.com/vitejs/vite/commit/9c7e43d)), closes [#9714](https://github.com/vitejs/vite/issues/9714) [#9795](https://github.com/vitejs/vite/issues/9795) * fix(html): move importmap before module scripts (#9392) ([b386fba](https://github.com/vitejs/vite/commit/b386fba)), closes [#9392](https://github.com/vitejs/vite/issues/9392) -* refactor: migrate from vue/compiler-dom to parse5 (#9678) ([05b3ce6](https://github.com/vitejs/vite/commit/05b3ce6)), closes [#9678](https://github.com/vitejs/vite/issues/9678) -* refactor: use `server.ssrTransform` (#9769) ([246a087](https://github.com/vitejs/vite/commit/246a087)), closes [#9769](https://github.com/vitejs/vite/issues/9769) -* chore: output tsconfck debug log (#9768) ([9206ad7](https://github.com/vitejs/vite/commit/9206ad7)), closes [#9768](https://github.com/vitejs/vite/issues/9768) -* chore: remove custom vitepress config (#9785) ([b2c0ee0](https://github.com/vitejs/vite/commit/b2c0ee0)), closes [#9785](https://github.com/vitejs/vite/issues/9785) -* chore(deps): update all non-major dependencies (#9778) ([aceaefc](https://github.com/vitejs/vite/commit/aceaefc)), closes [#9778](https://github.com/vitejs/vite/issues/9778) -* chore(deps): update dependency postcss-modules to v5 (#9779) ([aca6ac2](https://github.com/vitejs/vite/commit/aca6ac2)), closes [#9779](https://github.com/vitejs/vite/issues/9779) -* perf: legacy avoid insert the entry module css (#9761) ([0765ab8](https://github.com/vitejs/vite/commit/0765ab8)), closes [#9761](https://github.com/vitejs/vite/issues/9761) + +### Previous Changelogs + +#### [3.1.0-beta.2](https://github.com/vitejs/vite/compare/v3.1.0-beta.1...v3.1.0-beta.2) (2022-09-02) + +See [3.1.0-beta.2 changelog](https://github.com/vitejs/vite/blob/v3.1.0-beta.2/packages/vite/CHANGELOG.md) + +#### [3.1.0-beta.1](https://github.com/vitejs/vite/compare/v3.1.0-beta.0...v3.1.0-beta.1) (2022-08-29) + +See [3.1.0-beta.1 changelog](https://github.com/vitejs/vite/blob/v3.1.0-beta.1/packages/vite/CHANGELOG.md) + +#### [3.1.0-beta.0](https://github.com/vitejs/vite/compare/v3.0.0...v3.1.0-beta.0) (2022-08-25) + +See [3.1.0-beta.0 changelog](https://github.com/vitejs/vite/blob/v3.1.0-beta.0/packages/vite/CHANGELOG.md) @@ -543,3307 +607,33 @@ See [3.0.0-alpha.1 changelog](https://github.com/vitejs/vite/blob/v3.0.0-alpha.1 See [3.0.0-alpha.0 changelog](https://github.com/vitejs/vite/blob/v3.0.0-alpha.0/packages/vite/CHANGELOG.md) +## Previous Changelogs +### 2.9.x (2022-03-30 - 2022-08-12) +See [2.9.15 changelog](https://github.com/vitejs/vite/blob/v2.9.15/packages/vite/CHANGELOG.md) +### 2.8.x (2022-02-09 - 2022-03-01) +See [2.8.6 changelog](https://github.com/vitejs/vite/blob/v2.8.6/packages/vite/CHANGELOG.md) -## 2.9.14 (2022-07-08) - -* fix: re-encode url to prevent fs.allow bypass (fixes #8498) (#8990) ([adb61c5](https://github.com/vitejs/vite/commit/adb61c5)), closes [#8498](https://github.com/vitejs/vite/issues/8498) [#8990](https://github.com/vitejs/vite/issues/8990) -* fix: reverts #8471, fix css content ([da77dee](https://github.com/vitejs/vite/commit/da77dee)), closes [#8874](https://github.com/vitejs/vite/issues/8874) -* fix(css): preserve dynamic import css code (fixes #5348) ([d4d89b9](https://github.com/vitejs/vite/commit/d4d89b9)), closes [#5348](https://github.com/vitejs/vite/issues/5348) [#7746](https://github.com/vitejs/vite/issues/7746) -* fix(css): always use css module content (#8977) ([84ec02a](https://github.com/vitejs/vite/commit/84ec02a)), closes [#8936](https://github.com/vitejs/vite/issues/8936) [#8977](https://github.com/vitejs/vite/issues/8977) - - - -## 2.9.13 (2022-06-27) - -* fix: /@fs/ dir traversal with escaped chars (fixes #8498) (#8805) ([e109d64](https://github.com/vitejs/vite/commit/e109d64)), closes [#8498](https://github.com/vitejs/vite/issues/8498) [#8805](https://github.com/vitejs/vite/issues/8805) -* fix(wasm): support decoding data URL in Node < v16 (#8668) ([1afc1c2](https://github.com/vitejs/vite/commit/1afc1c2)), closes [#8668](https://github.com/vitejs/vite/issues/8668) - - - -## 2.9.12 (2022-06-10) - -* fix: outdated optimized dep removed from module graph (#8534) ([c0d6c60](https://github.com/vitejs/vite/commit/c0d6c60)), closes [#8534](https://github.com/vitejs/vite/issues/8534) - - - -## 2.9.11 (2022-06-10) - -* fix: respect server.headers in static middlewares (#8481) ([ab7dc1c](https://github.com/vitejs/vite/commit/ab7dc1c)), closes [#8481](https://github.com/vitejs/vite/issues/8481) -* fix(dev): avoid FOUC when swapping out link tag (fix #7973) (#8495) ([01fa807](https://github.com/vitejs/vite/commit/01fa807)), closes [#7973](https://github.com/vitejs/vite/issues/7973) [#8495](https://github.com/vitejs/vite/issues/8495) - - - -## 2.9.10 (2022-06-06) - -* feat: treat Astro file scripts as TS (#8151) ([9fdd0a3](https://github.com/vitejs/vite/commit/9fdd0a3)), closes [#8151](https://github.com/vitejs/vite/issues/8151) -* feat: new hook `configurePreviewServer` (#7658) (#8437) ([7b972bc](https://github.com/vitejs/vite/commit/7b972bc)), closes [#7658](https://github.com/vitejs/vite/issues/7658) [#8437](https://github.com/vitejs/vite/issues/8437) -* fix: remove empty chunk css imports when using esnext (#8345) ([9fbc1a9](https://github.com/vitejs/vite/commit/9fbc1a9)), closes [#8345](https://github.com/vitejs/vite/issues/8345) -* fix: EPERM error on Windows when processing dependencies (#8235) ([dfe4307](https://github.com/vitejs/vite/commit/dfe4307)), closes [#8235](https://github.com/vitejs/vite/issues/8235) -* fix(css): remove `?used` hack (fixes #6421, #8245) (#8278) (#8471) ([8d7bac4](https://github.com/vitejs/vite/commit/8d7bac4)), closes [#6421](https://github.com/vitejs/vite/issues/6421) [#8245](https://github.com/vitejs/vite/issues/8245) [#8278](https://github.com/vitejs/vite/issues/8278) [#8471](https://github.com/vitejs/vite/issues/8471) -* chore(lint): sort for imports (#8113) ([4bd1531](https://github.com/vitejs/vite/commit/4bd1531)), closes [#8113](https://github.com/vitejs/vite/issues/8113) - - - -## 2.9.9 (2022-05-11) - -* fix: add direct query to html-proxy css (fixes #8091) (#8094) ([a24b5e3](https://github.com/vitejs/vite/commit/a24b5e3)), closes [#8091](https://github.com/vitejs/vite/issues/8091) [#8094](https://github.com/vitejs/vite/issues/8094) -* fix: graceful rename in windows (#8036) ([84496f8](https://github.com/vitejs/vite/commit/84496f8)), closes [#8036](https://github.com/vitejs/vite/issues/8036) -* fix: image-set with base64 images (fix #8028) (#8035) ([992aee2](https://github.com/vitejs/vite/commit/992aee2)), closes [#8028](https://github.com/vitejs/vite/issues/8028) [#8035](https://github.com/vitejs/vite/issues/8035) -* fix: invalidate ssrError when HMR update occurs (#8052) ([22fa882](https://github.com/vitejs/vite/commit/22fa882)), closes [#8052](https://github.com/vitejs/vite/issues/8052) -* fix: use `strip-literal` to strip string lterals (#8054) ([b6fc3cd](https://github.com/vitejs/vite/commit/b6fc3cd)), closes [#8054](https://github.com/vitejs/vite/issues/8054) -* perf(lib): reduce backtrack when injecting esbuild helpers (#8110) ([e5556ab](https://github.com/vitejs/vite/commit/e5556ab)), closes [#8110](https://github.com/vitejs/vite/issues/8110) - - - -## 2.9.8 (2022-05-04) - -* fix: inline js and css paths for virtual html (#7993) ([d49e3fb](https://github.com/vitejs/vite/commit/d49e3fb)), closes [#7993](https://github.com/vitejs/vite/issues/7993) -* fix: only handle merge ssr.noExternal (#8003) ([642d65b](https://github.com/vitejs/vite/commit/642d65b)), closes [#8003](https://github.com/vitejs/vite/issues/8003) -* fix: optimized processing folder renaming in win (fix #7939) (#8019) ([e5fe1c6](https://github.com/vitejs/vite/commit/e5fe1c6)), closes [#7939](https://github.com/vitejs/vite/issues/7939) [#8019](https://github.com/vitejs/vite/issues/8019) -* fix(css): do not clean id when passing to postcss (fix #7822) (#7827) ([72f17f8](https://github.com/vitejs/vite/commit/72f17f8)), closes [#7822](https://github.com/vitejs/vite/issues/7822) [#7827](https://github.com/vitejs/vite/issues/7827) -* fix(css): var in image-set (#7921) ([e96b908](https://github.com/vitejs/vite/commit/e96b908)), closes [#7921](https://github.com/vitejs/vite/issues/7921) -* fix(ssr): allow ssrTransform to parse hashbang (#8005) ([6420ba0](https://github.com/vitejs/vite/commit/6420ba0)), closes [#8005](https://github.com/vitejs/vite/issues/8005) -* feat: import ts with .js in vue (#7998) ([9974094](https://github.com/vitejs/vite/commit/9974094)), closes [#7998](https://github.com/vitejs/vite/issues/7998) -* chore: remove maybeVirtualHtmlSet (#8010) ([e85164e](https://github.com/vitejs/vite/commit/e85164e)), closes [#8010](https://github.com/vitejs/vite/issues/8010) - - - -## 2.9.7 (2022-05-02) - -* chore: update license ([d58c030](https://github.com/vitejs/vite/commit/d58c030)) -* chore(css): catch postcss config error (fix #2793) (#7934) ([7f535ac](https://github.com/vitejs/vite/commit/7f535ac)), closes [#2793](https://github.com/vitejs/vite/issues/2793) [#7934](https://github.com/vitejs/vite/issues/7934) -* chore(deps): update all non-major dependencies (#7949) ([b877d30](https://github.com/vitejs/vite/commit/b877d30)), closes [#7949](https://github.com/vitejs/vite/issues/7949) -* fix: inject esbuild helpers in IIFE and UMD wrappers (#7948) ([f7d2d71](https://github.com/vitejs/vite/commit/f7d2d71)), closes [#7948](https://github.com/vitejs/vite/issues/7948) -* fix: inline css hash (#7974) ([f6ae60d](https://github.com/vitejs/vite/commit/f6ae60d)), closes [#7974](https://github.com/vitejs/vite/issues/7974) -* fix: inline style hmr, transform style code inplace (#7869) ([a30a548](https://github.com/vitejs/vite/commit/a30a548)), closes [#7869](https://github.com/vitejs/vite/issues/7869) -* fix: use NODE_ENV in optimizer (#7673) ([50672e4](https://github.com/vitejs/vite/commit/50672e4)), closes [#7673](https://github.com/vitejs/vite/issues/7673) -* fix(css): clean comments before hoist at rules (#7924) ([e48827f](https://github.com/vitejs/vite/commit/e48827f)), closes [#7924](https://github.com/vitejs/vite/issues/7924) -* fix(css): dynamic import css in package fetches removed js (fixes #7955, #6823) (#7969) ([025eebf](https://github.com/vitejs/vite/commit/025eebf)), closes [#7955](https://github.com/vitejs/vite/issues/7955) [#6823](https://github.com/vitejs/vite/issues/6823) [#7969](https://github.com/vitejs/vite/issues/7969) -* fix(css): inline css module when ssr, minify issue (fix #5471) (#7807) ([cf8a48a](https://github.com/vitejs/vite/commit/cf8a48a)), closes [#5471](https://github.com/vitejs/vite/issues/5471) [#7807](https://github.com/vitejs/vite/issues/7807) -* fix(css): sourcemap crash with postcss (#7982) ([7f9f8f1](https://github.com/vitejs/vite/commit/7f9f8f1)), closes [#7982](https://github.com/vitejs/vite/issues/7982) -* fix(css): support postcss.config.ts (#7935) ([274c10e](https://github.com/vitejs/vite/commit/274c10e)), closes [#7935](https://github.com/vitejs/vite/issues/7935) -* fix(ssr): failed ssrLoadModule call throws same error (#7177) ([891e7fc](https://github.com/vitejs/vite/commit/891e7fc)), closes [#7177](https://github.com/vitejs/vite/issues/7177) -* fix(worker): import.meta.* (#7706) ([b092697](https://github.com/vitejs/vite/commit/b092697)), closes [#7706](https://github.com/vitejs/vite/issues/7706) -* docs: `server.origin` config trailing slash (fix #6622) (#7865) ([5c1ee5a](https://github.com/vitejs/vite/commit/5c1ee5a)), closes [#6622](https://github.com/vitejs/vite/issues/6622) [#7865](https://github.com/vitejs/vite/issues/7865) - - - -## 2.9.6 (2022-04-26) - -* fix: `apply` condition skipped for nested plugins (#7741) ([1f2ca53](https://github.com/vitejs/vite/commit/1f2ca53)), closes [#7741](https://github.com/vitejs/vite/issues/7741) -* fix: clean string regexp (#7871) ([ecc78bc](https://github.com/vitejs/vite/commit/ecc78bc)), closes [#7871](https://github.com/vitejs/vite/issues/7871) -* fix: escape character in string regexp match (#7834) ([1d468c8](https://github.com/vitejs/vite/commit/1d468c8)), closes [#7834](https://github.com/vitejs/vite/issues/7834) -* fix: HMR propagation of HTML changes (fix #7870) (#7895) ([1f7855c](https://github.com/vitejs/vite/commit/1f7855c)), closes [#7870](https://github.com/vitejs/vite/issues/7870) [#7895](https://github.com/vitejs/vite/issues/7895) -* fix: modulepreload polyfill only during build (fix #4786) (#7816) ([709776f](https://github.com/vitejs/vite/commit/709776f)), closes [#4786](https://github.com/vitejs/vite/issues/4786) [#7816](https://github.com/vitejs/vite/issues/7816) -* fix: new SharedWorker syntax (#7800) ([474d5c2](https://github.com/vitejs/vite/commit/474d5c2)), closes [#7800](https://github.com/vitejs/vite/issues/7800) -* fix: node v18 support (#7812) ([fc89057](https://github.com/vitejs/vite/commit/fc89057)), closes [#7812](https://github.com/vitejs/vite/issues/7812) -* fix: preview jsdoc params (#7903) ([e474381](https://github.com/vitejs/vite/commit/e474381)), closes [#7903](https://github.com/vitejs/vite/issues/7903) -* fix: replace import.meta.url correctly (#7792) ([12d1194](https://github.com/vitejs/vite/commit/12d1194)), closes [#7792](https://github.com/vitejs/vite/issues/7792) -* fix: set `isSelfAccepting` to `false` for any asset not processed by importAnalysis (#7898) ([0d2089c](https://github.com/vitejs/vite/commit/0d2089c)), closes [#7898](https://github.com/vitejs/vite/issues/7898) -* fix: spelling mistakes (#7883) ([54728e3](https://github.com/vitejs/vite/commit/54728e3)), closes [#7883](https://github.com/vitejs/vite/issues/7883) -* fix: ssr.noExternal with boolean values (#7813) ([0b2d307](https://github.com/vitejs/vite/commit/0b2d307)), closes [#7813](https://github.com/vitejs/vite/issues/7813) -* fix: style use string instead of js import (#7786) ([ba43c29](https://github.com/vitejs/vite/commit/ba43c29)), closes [#7786](https://github.com/vitejs/vite/issues/7786) -* fix: update sourcemap in importAnalysisBuild (#7825) ([d7540c8](https://github.com/vitejs/vite/commit/d7540c8)), closes [#7825](https://github.com/vitejs/vite/issues/7825) -* fix(ssr): rewrite dynamic class method name (fix #7751) (#7757) ([b89974a](https://github.com/vitejs/vite/commit/b89974a)), closes [#7751](https://github.com/vitejs/vite/issues/7751) [#7757](https://github.com/vitejs/vite/issues/7757) -* chore: code structure (#7790) ([5f7fe00](https://github.com/vitejs/vite/commit/5f7fe00)), closes [#7790](https://github.com/vitejs/vite/issues/7790) -* chore: fix worker sourcemap output style (#7805) ([17f3be7](https://github.com/vitejs/vite/commit/17f3be7)), closes [#7805](https://github.com/vitejs/vite/issues/7805) -* chore(deps): update all non-major dependencies (#7780) ([eba9d05](https://github.com/vitejs/vite/commit/eba9d05)), closes [#7780](https://github.com/vitejs/vite/issues/7780) -* chore(deps): update all non-major dependencies (#7847) ([e29d1d9](https://github.com/vitejs/vite/commit/e29d1d9)), closes [#7847](https://github.com/vitejs/vite/issues/7847) -* feat: enable optimizeDeps.esbuildOptions.loader (#6840) ([af8ca60](https://github.com/vitejs/vite/commit/af8ca60)), closes [#6840](https://github.com/vitejs/vite/issues/6840) - - - -## 2.9.5 (2022-04-14) - -* fix: revert #7582, fix #7721 and #7736 (#7737) ([fa86d69](https://github.com/vitejs/vite/commit/fa86d69)), closes [#7721](https://github.com/vitejs/vite/issues/7721) [#7736](https://github.com/vitejs/vite/issues/7736) [#7737](https://github.com/vitejs/vite/issues/7737) -* chore: format css minify esbuild error (#7731) ([c445075](https://github.com/vitejs/vite/commit/c445075)), closes [#7731](https://github.com/vitejs/vite/issues/7731) - - - -## 2.9.4 (2022-04-13) - -* fix: handle url imports with semicolon (fix #7717) (#7718) ([a5c2a78](https://github.com/vitejs/vite/commit/a5c2a78)), closes [#7717](https://github.com/vitejs/vite/issues/7717) [#7718](https://github.com/vitejs/vite/issues/7718) - - - -## 2.9.3 (2022-04-13) - -* fix: revert #7665 (#7716) ([26862c4](https://github.com/vitejs/vite/commit/26862c4)), closes [#7665](https://github.com/vitejs/vite/issues/7665) [#7716](https://github.com/vitejs/vite/issues/7716) - - - -## 2.9.2 (2022-04-13) - -* fix: `$ vite preview` 404 handling (#7665) ([66b6dc5](https://github.com/vitejs/vite/commit/66b6dc5)), closes [#7665](https://github.com/vitejs/vite/issues/7665) -* fix: build should also respect esbuild=false config (#7602) ([2dc0e80](https://github.com/vitejs/vite/commit/2dc0e80)), closes [#7602](https://github.com/vitejs/vite/issues/7602) -* fix: default value of assetsDir option (#7703) ([83d32d9](https://github.com/vitejs/vite/commit/83d32d9)), closes [#7703](https://github.com/vitejs/vite/issues/7703) -* fix: detect env hmr (#7595) ([212d454](https://github.com/vitejs/vite/commit/212d454)), closes [#7595](https://github.com/vitejs/vite/issues/7595) -* fix: EACCES permission denied due to resolve new paths default (#7612) ([1dd019f](https://github.com/vitejs/vite/commit/1dd019f)), closes [#7612](https://github.com/vitejs/vite/issues/7612) -* fix: fix HMR propagation when imports not analyzed (#7561) ([57e7914](https://github.com/vitejs/vite/commit/57e7914)), closes [#7561](https://github.com/vitejs/vite/issues/7561) -* fix: nested comments and strings, new regexp utils (#7650) ([93900f0](https://github.com/vitejs/vite/commit/93900f0)), closes [#7650](https://github.com/vitejs/vite/issues/7650) -* fix: revert optimizeDeps false, keep optimizedDeps.disabled (#7715) ([ba9a1ff](https://github.com/vitejs/vite/commit/ba9a1ff)), closes [#7715](https://github.com/vitejs/vite/issues/7715) -* fix: update watch mode (#7132) ([9ed1672](https://github.com/vitejs/vite/commit/9ed1672)), closes [#7132](https://github.com/vitejs/vite/issues/7132) -* fix: update ws types (#7605) ([b620587](https://github.com/vitejs/vite/commit/b620587)), closes [#7605](https://github.com/vitejs/vite/issues/7605) -* fix: use correct proxy config in preview (#7604) ([cf59005](https://github.com/vitejs/vite/commit/cf59005)), closes [#7604](https://github.com/vitejs/vite/issues/7604) -* fix(css): hoist charset (#7678) ([29e622c](https://github.com/vitejs/vite/commit/29e622c)), closes [#7678](https://github.com/vitejs/vite/issues/7678) -* fix(css): include inline css module in bundle (#7591) ([45b9273](https://github.com/vitejs/vite/commit/45b9273)), closes [#7591](https://github.com/vitejs/vite/issues/7591) -* fix(deps): update all non-major dependencies (#7668) ([485263c](https://github.com/vitejs/vite/commit/485263c)), closes [#7668](https://github.com/vitejs/vite/issues/7668) -* fix(less): handles rewriting relative paths passed Less's `data-uri` function. (#7400) ([08e39b7](https://github.com/vitejs/vite/commit/08e39b7)), closes [#7400](https://github.com/vitejs/vite/issues/7400) -* fix(resolver): skip known ESM entries when resolving a `require` call (#7582) ([5d6ea8e](https://github.com/vitejs/vite/commit/5d6ea8e)), closes [#7582](https://github.com/vitejs/vite/issues/7582) -* fix(ssr): properly transform export default with expressions (#7705) ([d6830e3](https://github.com/vitejs/vite/commit/d6830e3)), closes [#7705](https://github.com/vitejs/vite/issues/7705) -* feat: clean string module lex string template (#7667) ([dfce283](https://github.com/vitejs/vite/commit/dfce283)), closes [#7667](https://github.com/vitejs/vite/issues/7667) -* feat: explicit the word boundary (#6876) ([7ddbf96](https://github.com/vitejs/vite/commit/7ddbf96)), closes [#6876](https://github.com/vitejs/vite/issues/6876) -* feat: optimizeDeps.disabled (#7646) ([48e038c](https://github.com/vitejs/vite/commit/48e038c)), closes [#7646](https://github.com/vitejs/vite/issues/7646) -* chore: fix term cases (#7553) ([c296130](https://github.com/vitejs/vite/commit/c296130)), closes [#7553](https://github.com/vitejs/vite/issues/7553) -* chore: revert removed line in #7698 ([7e6a2c8](https://github.com/vitejs/vite/commit/7e6a2c8)), closes [#7698](https://github.com/vitejs/vite/issues/7698) -* chore: type unknown env as any (#7702) ([23fdef1](https://github.com/vitejs/vite/commit/23fdef1)), closes [#7702](https://github.com/vitejs/vite/issues/7702) -* chore(deps): update all non-major dependencies (#7603) ([fc51a15](https://github.com/vitejs/vite/commit/fc51a15)), closes [#7603](https://github.com/vitejs/vite/issues/7603) -* perf(css): hoist at rules with regex (#7691) ([8858180](https://github.com/vitejs/vite/commit/8858180)), closes [#7691](https://github.com/vitejs/vite/issues/7691) -* refactor: esbuild handles `target` and `useDefineForClassFields` (#7698) ([0c928aa](https://github.com/vitejs/vite/commit/0c928aa)), closes [#7698](https://github.com/vitejs/vite/issues/7698) -* docs: update release notes (#7563) ([a74bd7b](https://github.com/vitejs/vite/commit/a74bd7b)), closes [#7563](https://github.com/vitejs/vite/issues/7563) - - - -## 2.9.1 (2022-03-31) - -* fix: allow port 0 to be provided to server (#7530) ([173e4c9](https://github.com/vitejs/vite/commit/173e4c9)), closes [#7530](https://github.com/vitejs/vite/issues/7530) -* fix: brotli let for reassignment (#7544) ([d0253d7](https://github.com/vitejs/vite/commit/d0253d7)), closes [#7544](https://github.com/vitejs/vite/issues/7544) -* fix: dynamic import warning with @vite-ignore (#7533) ([29c1ec0](https://github.com/vitejs/vite/commit/29c1ec0)), closes [#7533](https://github.com/vitejs/vite/issues/7533) -* fix: remove unneeded skipping optimization log (#7531) ([41fa2f5](https://github.com/vitejs/vite/commit/41fa2f5)), closes [#7531](https://github.com/vitejs/vite/issues/7531) -* docs(changelog): fix raw glob imports syntax (#7540) ([87fbe13](https://github.com/vitejs/vite/commit/87fbe13)), closes [#7540](https://github.com/vitejs/vite/issues/7540) -* chore: 2.9 release notes (#7525) ([4324f48](https://github.com/vitejs/vite/commit/4324f48)), closes [#7525](https://github.com/vitejs/vite/issues/7525) - - - -# [2.9.0](https://github.com/vitejs/vite/compare/v2.8.6...v2.9.0) (2022-03-30) - -### Faster Cold Start - -Before 2.9, the first time dev was run on a project Vite needed to perform a scan phase to discover dependencies and then pre-bundle them before starting the server. In 2.9 both scanning [#7379](https://github.com/vitejs/vite/issues/7379) and pre-bundling [#6758](https://github.com/vitejs/vite/issues/6758) of dependencies are now non-blocking, so the server starts right away during cold start. We also now allow requests to flow through the pipeline improving initial cold start load speed and increasing the chances of discovering new missing dependencies when re-processing and letting Vite populate the module graph and the browser to process files. In many cases, there is also no need to full-reload the page when new dependencies are discovered. - -### CSS Sourcemap support during dev (experimental) - -Vite now supports CSS sourcemaps [#7173](https://github.com/vitejs/vite/issues/7173). This feature is still experimental, and it is disabled by default to avoid incurring a performance penalty for users that don't need it. To enable it, set [css.devSourcemap](https://vitejs.dev/config/#css-devsourcemap) to `true`. - -### Avoid splitting vendor chunks by default - -Vite's default chunking strategy was a good fit for most SPAs, but it wasn't ideal in some other use cases. Vite doesn't have enough context to make the best decision here, so in Vite 2.9 the previous chunking strategy is now [opt-in](https://vitejs.dev/guide/build.html#chunking-strategy) [#6534](https://github.com/vitejs/vite/issues/6534) and Vite will no longer split vendor libs in a separate chunk. - -### Web Workers enhancements - -Web Workers now supports source map generation (see [#5417](https://github.com/vitejs/vite/issues/5417)). The implementation is also now more robust, fixing several issues encountered in previous versions ([#6599](https://github.com/vitejs/vite/issues/6599)). - -### Raw Glob Imports - -Glob imports support for the `raw` modifier syntax has changed to using `{ as: 'raw' }`, which works in the same way as the `?raw` suffix in regular imports: - -```js -const examples = import.meta.globEager('./examples/*.html', { as: 'raw' }) -``` - -The `{ assert: { type: 'raw' }}` syntax introduced in v2.8 has been deprecated. See [#7017](https://github.com/vitejs/vite/issues/7017) for more information. - -### `envDir` changes - -The `envDir` now correctly loads `.env` files in the specified directory only (defaults to `root`). Previously, it would load files above the directory, which imposed security issues. If you had relied on the previous behaviour, make sure you move your `.env` files to the correct directory, or configure the `envDir` option. - -### New tools for Plugin and Framework Authors - -#### Client Server Communication API - -Vite now provides utilities for plugins to help handle the communication with clients connected to Vite's server [#7437](https://github.com/vitejs/vite/issues/7437). Reusing the open WebSocket connection between the server and clients several use cases can be simplified ([vite-plugin-inspect](https://github.com/antfu/vite-plugin-inspect), [SliDev](https://sli.dev), and many others). Check out the [Client Server Communication docs](https://vitejs.dev/guide/api-plugin.html#client-server-communication) for more information. - -```js -// Send a message from the client to the server -if (import.meta.hot) { - import.meta.hot.send('my:from-client', { msg: 'Hey!' }) -} -``` - -```js -// And listen to client messages in a plugin - configureServer(server) { - server.ws.on('my:from-client', (data, client) => { - console.log('Message from client:', data.msg) // Hey! - // ... - }) - } -``` - -#### `importedCss` and `importedAssets` to RenderedChunk type - -Replace the internal `chunkToEmittedCssFileMap` and `chunkToEmittedAssetsMap` variables with public properties added by Vite to `RenderedChunk` objects in the `renderChunk` phase. These is useful for Vite-based frameworks that generate their own HTML. See [#6629](https://github.com/vitejs/vite/issues/6629). - -#### Optimize Custom Extensions (experimental) - -A new `optimizeDeps.extensions: string[]` option is available to enable pre-bundling of custom extensions. A respective esbuild plugin is required to handle that extension. e.g. `['.svelte', '.svelte.md']`. See [#6801](https://github.com/vitejs/vite/issues/6801) for more information. - - -### Bug Fixes - -* fix: build path error on Windows (#7383) ([e3c7c7a](https://github.com/vitejs/vite/commit/e3c7c7a)), closes [#7383](https://github.com/vitejs/vite/issues/7383) -* fix: import url worker two times (#7468) ([f05a813](https://github.com/vitejs/vite/commit/f05a813)), closes [#7468](https://github.com/vitejs/vite/issues/7468) -* fix: import with query with exports/browser field (#7098) ([9ce6732](https://github.com/vitejs/vite/commit/9ce6732)), closes [#7098](https://github.com/vitejs/vite/issues/7098) -* fix: make @fs URLs work with special characters (#7510) ([2b7dad1](https://github.com/vitejs/vite/commit/2b7dad1)), closes [#7510](https://github.com/vitejs/vite/issues/7510) -* fix: tailwind css sourcemap warning (#7480) ([90df0bb](https://github.com/vitejs/vite/commit/90df0bb)), closes [#7480](https://github.com/vitejs/vite/issues/7480) -* fix: worker match only run in js (#7500) ([9481c7d](https://github.com/vitejs/vite/commit/9481c7d)), closes [#7500](https://github.com/vitejs/vite/issues/7500) -* fix: Correctly process urls when they are rewritten to contain space (#7452) ([9ee2cf6](https://github.com/vitejs/vite/commit/9ee2cf6)), closes [#7452](https://github.com/vitejs/vite/issues/7452) -* fix: custom event payload type (#7498) ([28b0660](https://github.com/vitejs/vite/commit/28b0660)), closes [#7498](https://github.com/vitejs/vite/issues/7498) -* fix: handle relative path glob raw import, fix #7307 (#7371) ([7f8dc58](https://github.com/vitejs/vite/commit/7f8dc58)), closes [#7307](https://github.com/vitejs/vite/issues/7307) [#7371](https://github.com/vitejs/vite/issues/7371) -* fix: import.meta.url in worker (#7464) ([8ac4b12](https://github.com/vitejs/vite/commit/8ac4b12)), closes [#7464](https://github.com/vitejs/vite/issues/7464) -* fix: optimizeDeps.entries default ignore paths (#7469) ([4c95e99](https://github.com/vitejs/vite/commit/4c95e99)), closes [#7469](https://github.com/vitejs/vite/issues/7469) -* fix: errors in worker handling (#7236) ([77dc1a1](https://github.com/vitejs/vite/commit/77dc1a1)), closes [#7236](https://github.com/vitejs/vite/issues/7236) -* fix: consider undefined port when checking port (#7318) ([c7fc7c3](https://github.com/vitejs/vite/commit/c7fc7c3)), closes [#7318](https://github.com/vitejs/vite/issues/7318) -* fix: inline style css sourcemap (#7434) ([47668b5](https://github.com/vitejs/vite/commit/47668b5)), closes [#7434](https://github.com/vitejs/vite/issues/7434) -* fix: sourcemap missing source files warning with cached vue (#7442) ([a2ce20d](https://github.com/vitejs/vite/commit/a2ce20d)), closes [#7442](https://github.com/vitejs/vite/issues/7442) -* fix: update tsconfck to 1.2.1 (#7424) ([a90b03b](https://github.com/vitejs/vite/commit/a90b03b)), closes [#7424](https://github.com/vitejs/vite/issues/7424) -* fix: virtual html sourcemap warning (#7440) ([476786b](https://github.com/vitejs/vite/commit/476786b)), closes [#7440](https://github.com/vitejs/vite/issues/7440) -* fix(less): empty less file error (#7412) ([0535c70](https://github.com/vitejs/vite/commit/0535c70)), closes [#7412](https://github.com/vitejs/vite/issues/7412) -* fix(resolve): skip `module` field when the importer is a `require` call (#7438) ([fe4c1ed](https://github.com/vitejs/vite/commit/fe4c1ed)), closes [#7438](https://github.com/vitejs/vite/issues/7438) -* fix: avoid mangling code from incorrect magic-string usage (#7397) ([68d76c9](https://github.com/vitejs/vite/commit/68d76c9)), closes [#7397](https://github.com/vitejs/vite/issues/7397) -* fix(config): server restart on config dependencies changed on windows (#7366) ([c43467a](https://github.com/vitejs/vite/commit/c43467a)), closes [#7366](https://github.com/vitejs/vite/issues/7366) -* fix(deps): update all non-major dependencies (#7392) ([b63fc3b](https://github.com/vitejs/vite/commit/b63fc3b)), closes [#7392](https://github.com/vitejs/vite/issues/7392) -* fix: add version to optimized chunks, fix #7323 (#7350) ([1be1db6](https://github.com/vitejs/vite/commit/1be1db6)), closes [#7323](https://github.com/vitejs/vite/issues/7323) [#7350](https://github.com/vitejs/vite/issues/7350) -* fix: browser cache of newly discovered deps (#7378) ([392a0de](https://github.com/vitejs/vite/commit/392a0de)), closes [#7378](https://github.com/vitejs/vite/issues/7378) -* fix: do not warn (about not being able to bundle non module scripts) when src is an external url (#7 ([0646fe8](https://github.com/vitejs/vite/commit/0646fe8)), closes [#7380](https://github.com/vitejs/vite/issues/7380) -* fix: overwrite deps info browserHash only on commit (#7359) ([1e9615d](https://github.com/vitejs/vite/commit/1e9615d)), closes [#7359](https://github.com/vitejs/vite/issues/7359) -* fix: delayed full page reload (#7347) ([fa0820a](https://github.com/vitejs/vite/commit/fa0820a)), closes [#7347](https://github.com/vitejs/vite/issues/7347) -* fix: early discovery of missing deps, fix #7333 (#7346) ([7d2f37c](https://github.com/vitejs/vite/commit/7d2f37c)), closes [#7333](https://github.com/vitejs/vite/issues/7333) [#7346](https://github.com/vitejs/vite/issues/7346) -* fix: unhandled exception on eager transformRequest (#7345) ([c3260a4](https://github.com/vitejs/vite/commit/c3260a4)), closes [#7345](https://github.com/vitejs/vite/issues/7345) -* fix: update to esbuild 0.14.27, fix #6994 (#7320) ([65aaeee](https://github.com/vitejs/vite/commit/65aaeee)), closes [#6994](https://github.com/vitejs/vite/issues/6994) [#7320](https://github.com/vitejs/vite/issues/7320) -* fix: `ssrExternal` should not skip nested dependencies (#7154) ([f8f934a](https://github.com/vitejs/vite/commit/f8f934a)), closes [#7154](https://github.com/vitejs/vite/issues/7154) -* fix: dep with dynamic import wrong error log (#7313) ([769f535](https://github.com/vitejs/vite/commit/769f535)), closes [#7313](https://github.com/vitejs/vite/issues/7313) -* fix: avoid caching transform result of invalidated module (#7254) ([2d7ba72](https://github.com/vitejs/vite/commit/2d7ba72)), closes [#7254](https://github.com/vitejs/vite/issues/7254) -* fix: dont replace define in json (#7294) ([fc5c937](https://github.com/vitejs/vite/commit/fc5c937)), closes [#7294](https://github.com/vitejs/vite/issues/7294) -* fix: main browserHash after stable optimization rerun (#7284) ([98eefa8](https://github.com/vitejs/vite/commit/98eefa8)), closes [#7284](https://github.com/vitejs/vite/issues/7284) -* fix: needs es interop check for newly discovered deps (#7243) ([ba3047d](https://github.com/vitejs/vite/commit/ba3047d)), closes [#7243](https://github.com/vitejs/vite/issues/7243) -* fix: pending requests after module invalidation (#7283) ([a1044d7](https://github.com/vitejs/vite/commit/a1044d7)), closes [#7283](https://github.com/vitejs/vite/issues/7283) -* fix: use browserHash for imports from node_modules (#7278) ([161f8ea](https://github.com/vitejs/vite/commit/161f8ea)), closes [#7278](https://github.com/vitejs/vite/issues/7278) -* fix: use hmr port if specified (#7282) ([3ee04c0](https://github.com/vitejs/vite/commit/3ee04c0)), closes [#7282](https://github.com/vitejs/vite/issues/7282) -* fix: use relative paths in _metadata.json (#7299) ([8b945f5](https://github.com/vitejs/vite/commit/8b945f5)), closes [#7299](https://github.com/vitejs/vite/issues/7299) -* fix(asset): allow non-existent url (#7306) ([6bc45a2](https://github.com/vitejs/vite/commit/6bc45a2)), closes [#7306](https://github.com/vitejs/vite/issues/7306) -* fix(hmr): hmr style tag no support in html (#7262) ([fae120a](https://github.com/vitejs/vite/commit/fae120a)), closes [#7262](https://github.com/vitejs/vite/issues/7262) -* fix: `import.meta.url` should not throw (#7219) ([5de3a98](https://github.com/vitejs/vite/commit/5de3a98)), closes [#7219](https://github.com/vitejs/vite/issues/7219) -* fix: allow `localhost` as a valid hostname (#7092) ([4194cce](https://github.com/vitejs/vite/commit/4194cce)), closes [#7092](https://github.com/vitejs/vite/issues/7092) -* fix: build optimize deps metada location (#7214) ([dc46adf](https://github.com/vitejs/vite/commit/dc46adf)), closes [#7214](https://github.com/vitejs/vite/issues/7214) -* fix: define plugin not ignore file names (#6340) ([7215a03](https://github.com/vitejs/vite/commit/7215a03)), closes [#6340](https://github.com/vitejs/vite/issues/6340) -* fix: deprecate `{ assert: { type: raw }}` in favor of `{ as: raw }` (fix #7017) (#7215) ([87ecce5](https://github.com/vitejs/vite/commit/87ecce5)), closes [#7017](https://github.com/vitejs/vite/issues/7017) [#7215](https://github.com/vitejs/vite/issues/7215) -* fix: execute classic worker in dev mode (#7099) ([3c0a609](https://github.com/vitejs/vite/commit/3c0a609)), closes [#7099](https://github.com/vitejs/vite/issues/7099) -* fix: handle files with multiple comments (#7202) ([3f5b645](https://github.com/vitejs/vite/commit/3f5b645)), closes [#7202](https://github.com/vitejs/vite/issues/7202) -* fix: honor the host param when creating a websocket server (#5617) ([882c8a8](https://github.com/vitejs/vite/commit/882c8a8)), closes [#5617](https://github.com/vitejs/vite/issues/5617) -* fix: import css in less/scss (fix 3293) (#7147) ([9b51a3a](https://github.com/vitejs/vite/commit/9b51a3a)), closes [#7147](https://github.com/vitejs/vite/issues/7147) -* fix: optimizeDeps.include missing in known imports fallback (#7218) ([6c08c86](https://github.com/vitejs/vite/commit/6c08c86)), closes [#7218](https://github.com/vitejs/vite/issues/7218) -* fix: prevent loading env outside of root (#6995) ([e0a4d81](https://github.com/vitejs/vite/commit/e0a4d81)), closes [#6995](https://github.com/vitejs/vite/issues/6995) -* fix: reoptimize deps on esbuild options change (#6855) ([4517c2b](https://github.com/vitejs/vite/commit/4517c2b)), closes [#6855](https://github.com/vitejs/vite/issues/6855) -* fix: replacing compression with modern version (#6557) ([5648d09](https://github.com/vitejs/vite/commit/5648d09)), closes [#6557](https://github.com/vitejs/vite/issues/6557) -* fix: restart optimize (#7004) ([47fbe29](https://github.com/vitejs/vite/commit/47fbe29)), closes [#7004](https://github.com/vitejs/vite/issues/7004) -* fix: reusing variable names in html module scripts (fix #6851) (#6818) ([c46b56d](https://github.com/vitejs/vite/commit/c46b56d)), closes [#6851](https://github.com/vitejs/vite/issues/6851) [#6818](https://github.com/vitejs/vite/issues/6818) -* fix: revert #6340, definePlugin tests, warning box (#7174) ([6cb0647](https://github.com/vitejs/vite/commit/6cb0647)), closes [#6340](https://github.com/vitejs/vite/issues/6340) [#7174](https://github.com/vitejs/vite/issues/7174) -* fix: update postcss-load-config to load PostCSS plugins based on their config file path (#6856) ([f02f961](https://github.com/vitejs/vite/commit/f02f961)), closes [#6856](https://github.com/vitejs/vite/issues/6856) -* fix(hmr): client pinging behind a proxy on websocket disconnect (fix #4501) (#5466) ([96573db](https://github.com/vitejs/vite/commit/96573db)), closes [#4501](https://github.com/vitejs/vite/issues/4501) [#5466](https://github.com/vitejs/vite/issues/5466) -* fix(html): build mode ignore html define transform (#6663) ([79dd003](https://github.com/vitejs/vite/commit/79dd003)), closes [#6663](https://github.com/vitejs/vite/issues/6663) -* fix(json): load json module error (#6352) ([c8a7ea8](https://github.com/vitejs/vite/commit/c8a7ea8)), closes [#6352](https://github.com/vitejs/vite/issues/6352) -* fix(optimizer): add missing keys to hash (#7189) ([b0c0efe](https://github.com/vitejs/vite/commit/b0c0efe)), closes [#7189](https://github.com/vitejs/vite/issues/7189) -* fix(resolve): try .tsx extension for .js import from typescript module (#7005) ([72b8cb6](https://github.com/vitejs/vite/commit/72b8cb6)), closes [#7005](https://github.com/vitejs/vite/issues/7005) -* fix(server): base middleware redirect with search and hash (#6574) ([a516e85](https://github.com/vitejs/vite/commit/a516e85)), closes [#6574](https://github.com/vitejs/vite/issues/6574) -* fix(server): ensure consistency for url to file mapping in importAnalysis and static middleware (#65 ([b214115](https://github.com/vitejs/vite/commit/b214115)), closes [#6518](https://github.com/vitejs/vite/issues/6518) -* fix(ssr): bypass missing resolve error in SSR (#7164) ([a4927c5](https://github.com/vitejs/vite/commit/a4927c5)), closes [#7164](https://github.com/vitejs/vite/issues/7164) - - -### Features - -* feat(worker): Add sourcemap support for worker bundles (#5417) ([465b6b9](https://github.com/vitejs/vite/commit/465b6b9)), closes [#5417](https://github.com/vitejs/vite/issues/5417) -* feat(type): support typing for custom events (#7476) ([50a8765](https://github.com/vitejs/vite/commit/50a8765)), closes [#7476](https://github.com/vitejs/vite/issues/7476) -* refactor(types): share hot context type (#7475) ([64ddff0](https://github.com/vitejs/vite/commit/64ddff0)), closes [#7475](https://github.com/vitejs/vite/issues/7475) -* feat: support importing css with ?raw (#5796) ([fedb106](https://github.com/vitejs/vite/commit/fedb106)), closes [#5796](https://github.com/vitejs/vite/issues/5796) -* feat(css): css.devSourcemap option (#7471) ([57f14cb](https://github.com/vitejs/vite/commit/57f14cb)), closes [#7471](https://github.com/vitejs/vite/issues/7471) -* feat(dev): expose APIs for client-server communication (#7437) ([e29ea8e](https://github.com/vitejs/vite/commit/e29ea8e)), closes [#7437](https://github.com/vitejs/vite/issues/7437) -* feat: hide optimized deps found during scan phase logs (#7419) ([f4934e8](https://github.com/vitejs/vite/commit/f4934e8)), closes [#7419](https://github.com/vitejs/vite/issues/7419) -* feat: non-blocking scanning of dependencies (#7379) ([676f545](https://github.com/vitejs/vite/commit/676f545)), closes [#7379](https://github.com/vitejs/vite/issues/7379) -* feat: css sourcemap support during dev (#7173) ([38a655f](https://github.com/vitejs/vite/commit/38a655f)), closes [#7173](https://github.com/vitejs/vite/issues/7173) -* feat: expose ssrRewriteStacktrace (#7091) ([d4ae45d](https://github.com/vitejs/vite/commit/d4ae45d)), closes [#7091](https://github.com/vitejs/vite/issues/7091) -* feat: add `importedCss` and `importedAssets` to RenderedChunk type (#6629) ([8d0fc90](https://github.com/vitejs/vite/commit/8d0fc90)), closes [#6629](https://github.com/vitejs/vite/issues/6629) -* feat: non-blocking pre bundling of dependencies (#6758) ([24bb3e4](https://github.com/vitejs/vite/commit/24bb3e4)), closes [#6758](https://github.com/vitejs/vite/issues/6758) -* feat: optimize custom extensions (#6801) ([c11af23](https://github.com/vitejs/vite/commit/c11af23)), closes [#6801](https://github.com/vitejs/vite/issues/6801) -* feat: show all prebundle deps when debug (#6726) ([e626055](https://github.com/vitejs/vite/commit/e626055)), closes [#6726](https://github.com/vitejs/vite/issues/6726) -* feat(glob): import.meta.glob support alias path (#6526) ([86882ad](https://github.com/vitejs/vite/commit/86882ad)), closes [#6526](https://github.com/vitejs/vite/issues/6526) -* feat(perf): tsconfck perf improvement (#7055) ([993ea39](https://github.com/vitejs/vite/commit/993ea39)), closes [#7055](https://github.com/vitejs/vite/issues/7055) -* feat(worker): bundle worker emit asset file (#6599) ([0ade335](https://github.com/vitejs/vite/commit/0ade335)), closes [#6599](https://github.com/vitejs/vite/issues/6599) -* refactor: avoid splitting vendor chunk by default (#6534) ([849e845](https://github.com/vitejs/vite/commit/849e845)), closes [#6534](https://github.com/vitejs/vite/issues/6534) - - -### Beta Changelogs - - -#### [2.9.0-beta.11](https://github.com/vitejs/vite/compare/v2.9.0-beta.10...v2.9.0-beta.11) (2022-03-29) - -See [2.9.0-beta.11 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.11/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.10](https://github.com/vitejs/vite/compare/v2.9.0-beta.9...v2.9.0-beta.10) (2022-03-28) - -See [2.9.0-beta.10 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.10/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.9](https://github.com/vitejs/vite/compare/v2.9.0-beta.8...v2.9.0-beta.9) (2022-03-26) - -See [2.9.0-beta.9 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.9/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.8](https://github.com/vitejs/vite/compare/v2.9.0-beta.7...v2.9.0-beta.8) (2022-03-24) - -See [2.9.0-beta.8 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.8/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.7](https://github.com/vitejs/vite/compare/v2.9.0-beta.6...v2.9.0-beta.7) (2022-03-23) - -See [2.9.0-beta.7 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.7/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.6](https://github.com/vitejs/vite/compare/v2.9.0-beta.5...v2.9.0-beta.6) (2022-03-22) - -See [2.9.0-beta.6 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.6/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.5](https://github.com/vitejs/vite/compare/v2.9.0-beta.4...v2.9.0-beta.5) (2022-03-22) - -See [2.9.0-beta.5 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.5/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.4](https://github.com/vitejs/vite/compare/v2.9.0-beta.3...v2.9.0-beta.4) (2022-03-19) - -See [2.9.0-beta.4 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.4/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.3](https://github.com/vitejs/vite/compare/v2.9.0-beta.2...v2.9.0-beta.3) (2022-03-16) - -See [2.9.0-beta.3 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.3/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.2](https://github.com/vitejs/vite/compare/v2.9.0-beta.1...v2.9.0-beta.2) (2022-03-14) - -See [2.9.0-beta.2 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.2/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.1](https://github.com/vitejs/vite/compare/v2.9.0-beta.0...v2.9.0-beta.1) (2022-03-14) - -See [2.9.0-beta.1 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.1/packages/vite/CHANGELOG.md) - - -#### [2.9.0-beta.0](https://github.com/vitejs/vite/compare/v2.8.6...v2.9.0-beta.0) (2022-03-09) - -See [2.9.0-beta.0 changelog](https://github.com/vitejs/vite/blob/v2.9.0-beta.0/packages/vite/CHANGELOG.md) - - - -## [2.8.6](https://github.com/vitejs/vite/compare/v2.8.5...v2.8.6) (2022-03-01) - - -### Bug Fixes - -* revert [#7052](https://github.com/vitejs/vite/issues/7052), hmr style tag no support in html ([#7136](https://github.com/vitejs/vite/issues/7136)) ([5c116ec](https://github.com/vitejs/vite/commit/5c116ecde0ad43409334853457d68481a22e19d4)) -* throw Error when can't preload CSS ([#7108](https://github.com/vitejs/vite/issues/7108)) ([d9f8edb](https://github.com/vitejs/vite/commit/d9f8edbd5b243f60212cc4bb9271c01b7e3fdd76)) - - - -## [2.8.5](https://github.com/vitejs/vite/compare/v2.8.4...v2.8.5) (2022-02-28) - - -### Bug Fixes - -* ?html-proxy with trailing = added by some servers ([#7093](https://github.com/vitejs/vite/issues/7093)) ([5818ac9](https://github.com/vitejs/vite/commit/5818ac927861783ea2b05450761fed30f40e7399)) -* allow optional trailing comma in asset `import.meta.url` ([#6983](https://github.com/vitejs/vite/issues/6983)) ([2debb9f](https://github.com/vitejs/vite/commit/2debb9f4cbb6003e7d24444cf049b45582d82ff1)) -* cannot reassign process.env.NODE_ENV in ssr ([#6989](https://github.com/vitejs/vite/issues/6989)) ([983feb2](https://github.com/vitejs/vite/commit/983feb2cdc5180dc46c3f5fc5b99baaa8d6b7078)) -* **config:** Warn about terserOptions in more cases ([#7101](https://github.com/vitejs/vite/issues/7101)) ([79428ad](https://github.com/vitejs/vite/commit/79428ad5b849455e14f95d1b439ae296ba231221)) -* don't override user config ([#7034](https://github.com/vitejs/vite/issues/7034)) ([8fd8f6e](https://github.com/vitejs/vite/commit/8fd8f6e0e501c9e46bc3e179c900d31fa5cafce1)) -* fileToBuiltUrl got undefined when file type is `.ico` ([#7106](https://github.com/vitejs/vite/issues/7106)) ([7a1a552](https://github.com/vitejs/vite/commit/7a1a552ba710bad5714ef0fbb16fdd29ac58ae0b)) -* **glob:** css imports injecting a ?used query to export the css string ([#6949](https://github.com/vitejs/vite/issues/6949)) ([0b3f4ef](https://github.com/vitejs/vite/commit/0b3f4ef231004e072bf1b037f63bc4ef169d938e)) -* **hmr:** hmr style tag no support in html ([#7052](https://github.com/vitejs/vite/issues/7052)) ([a9dfce3](https://github.com/vitejs/vite/commit/a9dfce38108e796e0de0e3b43ced34d60883cef3)) -* image -> image/x-icon ([#7120](https://github.com/vitejs/vite/issues/7120)) ([065ceca](https://github.com/vitejs/vite/commit/065ceca5c7b8f1843e220fbdbe8a0da4cbb78935)) -* import with query with exports field ([#7073](https://github.com/vitejs/vite/issues/7073)) ([88ded7f](https://github.com/vitejs/vite/commit/88ded7f16382d83603511de043785e01ee1e4a3a)) -* prebundle dep with colon ([#7006](https://github.com/vitejs/vite/issues/7006)) ([2136f2b](https://github.com/vitejs/vite/commit/2136f2bb960d1a81ac3b3ca04d9ebd89dba44661)) -* recycle serve to avoid preventing Node self-exit ([#6895](https://github.com/vitejs/vite/issues/6895)) ([d6b2c53](https://github.com/vitejs/vite/commit/d6b2c53c6f0bcc4ffa9cdf48375f9bbcc98f79f7)) -* resolve [@import](https://github.com/import) of the proxied -
-
-

-  

-  

-  
- Click outside or fix the code to dismiss.
- You can also disable this overlay by setting - server.hmr.overlay to false in vite.config.js. +
+
+
+

+    

+    

+    
+ Click outside or fix the code to dismiss.
+ You can also disable this overlay by setting + server.hmr.overlay to false in vite.config.js. +
` diff --git a/packages/vite/src/node/__tests__/plugins/dynamicImportVar/__snapshots__/parse.test.ts.snap b/packages/vite/src/node/__tests__/plugins/dynamicImportVar/__snapshots__/parse.test.ts.snap index b5f649d6bc336b..a90bf10d119042 100644 --- a/packages/vite/src/node/__tests__/plugins/dynamicImportVar/__snapshots__/parse.test.ts.snap +++ b/packages/vite/src/node/__tests__/plugins/dynamicImportVar/__snapshots__/parse.test.ts.snap @@ -1,9 +1,11 @@ // Vitest Snapshot v1 -exports[`parse positives > ? in url 1`] = `"__variableDynamicImportRuntimeHelper((import.meta.glob(\\"./mo?ds/*.js\\", {\\"as\\":\\"raw\\",\\"import\\":\\"*\\"})), \`./mo?ds/\${base ?? foo}.js\`)"`; +exports[`parse positives > ? in url 1`] = `"__variableDynamicImportRuntimeHelper((import.meta.glob(\\"./mo?ds/*.js\\", {\\"as\\":\\"url\\",\\"import\\":\\"*\\"})), \`./mo?ds/\${base ?? foo}.js\`)"`; exports[`parse positives > ? in variables 1`] = `"__variableDynamicImportRuntimeHelper((import.meta.glob(\\"./mods/*.js\\", {\\"as\\":\\"raw\\",\\"import\\":\\"*\\"})), \`./mods/\${base ?? foo}.js\`)"`; +exports[`parse positives > ? in worker 1`] = `"__variableDynamicImportRuntimeHelper((import.meta.glob(\\"./mo?ds/*.js\\", {\\"as\\":\\"worker\\",\\"import\\":\\"*\\"})), \`./mo?ds/\${base ?? foo}.js\`)"`; + exports[`parse positives > alias path 1`] = `"__variableDynamicImportRuntimeHelper((import.meta.glob(\\"./mods/*.js\\")), \`./mods/\${base}.js\`)"`; exports[`parse positives > basic 1`] = `"__variableDynamicImportRuntimeHelper((import.meta.glob(\\"./mods/*.js\\")), \`./mods/\${base}.js\`)"`; @@ -14,4 +16,4 @@ exports[`parse positives > with multi ../ and itself 1`] = `"__variableDynamicIm exports[`parse positives > with query raw 1`] = `"__variableDynamicImportRuntimeHelper((import.meta.glob(\\"./mods/*.js\\", {\\"as\\":\\"raw\\",\\"import\\":\\"*\\"})), \`./mods/\${base}.js\`)"`; -exports[`parse positives > with query url 1`] = `"__variableDynamicImportRuntimeHelper((import.meta.glob(\\"./mods/*.js\\")), \`./mods/\${base}.js\`)"`; +exports[`parse positives > with query url 1`] = `"__variableDynamicImportRuntimeHelper((import.meta.glob(\\"./mods/*.js\\", {\\"as\\":\\"url\\",\\"import\\":\\"*\\"})), \`./mods/\${base}.js\`)"`; diff --git a/packages/vite/src/node/__tests__/plugins/dynamicImportVar/parse.test.ts b/packages/vite/src/node/__tests__/plugins/dynamicImportVar/parse.test.ts index 422dcb59ca5b37..cfd816d00fe8b5 100644 --- a/packages/vite/src/node/__tests__/plugins/dynamicImportVar/parse.test.ts +++ b/packages/vite/src/node/__tests__/plugins/dynamicImportVar/parse.test.ts @@ -39,7 +39,11 @@ describe('parse positives', () => { }) it('? in url', async () => { - expect(await run('`./mo?ds/${base ?? foo}.js?raw`')).toMatchSnapshot() + expect(await run('`./mo?ds/${base ?? foo}.js?url`')).toMatchSnapshot() + }) + + it('? in worker', async () => { + expect(await run('`./mo?ds/${base ?? foo}.js?worker`')).toMatchSnapshot() }) it('with ../ and itself', async () => { diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index a994182750bbc7..41b5d0524aad04 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -42,7 +42,6 @@ import { getDepsCacheDir, initDepsOptimizer } from './optimizer' -import { assetImportMetaUrlPlugin } from './plugins/assetImportMetaUrl' import { loadFallbackPlugin } from './plugins/loadFallback' import type { PackageData } from './packages' import { watchPackageDataPlugin } from './packages' @@ -310,7 +309,6 @@ export function resolveBuildPlugins(config: ResolvedConfig): { watchPackageDataPlugin(config), ...(usePluginCommonjs ? [commonjsPlugin(options.commonjsOptions)] : []), dataURIPlugin(), - assetImportMetaUrlPlugin(config), ...(options.rollupOptions.plugins ? (options.rollupOptions.plugins.filter(Boolean) as Plugin[]) : []) @@ -373,7 +371,7 @@ async function doBuild( const resolve = (p: string) => path.resolve(config.root, p) const input = libOptions - ? resolve(libOptions.entry) + ? options.rollupOptions?.input || resolve(libOptions.entry) : typeof options.ssr === 'string' ? resolve(options.ssr) : options.rollupOptions?.input || resolve('index.html') diff --git a/packages/vite/src/node/cli.ts b/packages/vite/src/node/cli.ts index 86ae76bba12215..c94e9427db87d3 100644 --- a/packages/vite/src/node/cli.ts +++ b/packages/vite/src/node/cli.ts @@ -103,7 +103,7 @@ cli const viteStartTime = global.__vite_start_time ?? false const startupDurationString = viteStartTime ? colors.dim( - `ready in ${colors.white( + `ready in ${colors.reset( colors.bold(Math.ceil(performance.now() - viteStartTime)) )} ms` ) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 051df99e6bb8f5..a760a06fb86601 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -43,6 +43,8 @@ import { CLIENT_ENTRY, DEFAULT_ASSETS_RE, DEFAULT_CONFIG_FILES, + DEFAULT_EXTENSIONS, + DEFAULT_MAIN_FIELDS, ENV_ENTRY } from './constants' import type { InternalResolveOptions, ResolveOptions } from './plugins/resolve' @@ -321,7 +323,7 @@ export type ResolvedConfig = Readonly< mainConfig: ResolvedConfig | null isProduction: boolean env: Record - resolve: ResolveOptions & { + resolve: Required & { alias: Alias[] } plugins: readonly Plugin[] @@ -442,16 +444,7 @@ export async function resolveConfig( // run config hooks const userPlugins = [...prePlugins, ...normalPlugins, ...postPlugins] - for (const p of getSortedPluginsByHook('config', userPlugins)) { - const hook = p.config - const handler = hook && 'handler' in hook ? hook.handler : hook - if (handler) { - const res = await handler(config, configEnv) - if (res) { - config = mergeConfig(config, res) - } - } - } + config = await runConfigHook(config, userPlugins, configEnv) if (process.env.VITE_TEST_WITHOUT_PLUGIN_COMMONJS) { config = mergeConfig(config, { @@ -483,7 +476,12 @@ export async function resolveConfig( ) const resolveOptions: ResolvedConfig['resolve'] = { - ...config.resolve, + mainFields: config.resolve?.mainFields ?? DEFAULT_MAIN_FIELDS, + browserField: config.resolve?.browserField ?? true, + conditions: config.resolve?.conditions ?? [], + extensions: config.resolve?.extensions ?? DEFAULT_EXTENSIONS, + dedupe: config.resolve?.dedupe ?? [], + preserveSymlinks: config.resolve?.preserveSymlinks ?? false, alias: resolvedAlias } @@ -590,8 +588,8 @@ export async function resolveConfig( const server = resolveServerOptions(resolvedRoot, config.server, logger) const ssr = resolveSSROptions( config.ssr, - config.legacy?.buildSsrCjsExternalHeuristics, - config.resolve?.preserveSymlinks + resolveOptions.preserveSymlinks, + config.legacy?.buildSsrCjsExternalHeuristics ) const middlewareMode = config?.server?.middlewareMode @@ -611,16 +609,7 @@ export async function resolveConfig( ...workerNormalPlugins, ...workerPostPlugins ] - for (const p of getSortedPluginsByHook('config', workerUserPlugins)) { - const hook = p.config - const handler = hook && 'handler' in hook ? hook.handler : hook - if (handler) { - const res = await handler(workerConfig, configEnv) - if (res) { - workerConfig = mergeConfig(workerConfig, res) - } - } - } + workerConfig = await runConfigHook(workerConfig, workerUserPlugins, configEnv) const resolvedWorkerOptions: ResolveWorkerOptions = { format: workerConfig.worker?.format || 'iife', plugins: [], @@ -667,7 +656,7 @@ export async function resolveConfig( disabled: 'build', ...optimizeDeps, esbuildOptions: { - preserveSymlinks: config.resolve?.preserveSymlinks, + preserveSymlinks: resolveOptions.preserveSymlinks, ...optimizeDeps.esbuildOptions } }, @@ -1089,6 +1078,27 @@ async function loadConfigFromBundledFile( } } +async function runConfigHook( + config: InlineConfig, + plugins: Plugin[], + configEnv: ConfigEnv +): Promise { + let conf = config + + for (const p of getSortedPluginsByHook('config', plugins)) { + const hook = p.config + const handler = hook && 'handler' in hook ? hook.handler : hook + if (handler) { + const res = await handler(conf, configEnv) + if (res) { + conf = mergeConfig(conf, res) + } + } + } + + return conf +} + export function getDepOptimizationConfig( config: ResolvedConfig, ssr: boolean diff --git a/packages/vite/src/node/http.ts b/packages/vite/src/node/http.ts index 2da2f30d3afb0f..c77f5ec664ba3c 100644 --- a/packages/vite/src/node/http.ts +++ b/packages/vite/src/node/http.ts @@ -121,8 +121,7 @@ export async function resolveHttpServer( } export async function resolveHttpsConfig( - https: boolean | HttpsServerOptions | undefined, - cacheDir: string + https: boolean | HttpsServerOptions | undefined ): Promise { if (!https) return undefined diff --git a/packages/vite/src/node/logger.ts b/packages/vite/src/node/logger.ts index 326fa0e6dfd778..a4750a8b2a9dbc 100644 --- a/packages/vite/src/node/logger.ts +++ b/packages/vite/src/node/logger.ts @@ -153,7 +153,7 @@ export function printServerUrls( info(` ${colors.green('➜')} ${colors.bold('Network')}: ${colorUrl(url)}`) } if (urls.network.length === 0 && optionsHost === undefined) { - const note = `use ${colors.white(colors.bold('--host'))} to expose` + const note = `use ${colors.reset(colors.bold('--host'))} to expose` info( colors.dim(` ${colors.green('➜')} ${colors.bold('Network')}: ${note}`) ) diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 891d2dd709833c..eb9b51aa472e59 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -66,6 +66,8 @@ export interface DepsOptimizer { resetRegisteredIds: () => void ensureFirstRun: () => void + close: () => Promise + options: DepOptimizationOptions } @@ -911,12 +913,22 @@ function esbuildOutputFromId( id: string, cacheDirOutputPath: string ): any { + const cwd = process.cwd() const flatId = flattenId(id) + '.js' - return outputs[ - normalizePath( - path.relative(process.cwd(), path.join(cacheDirOutputPath, flatId)) - ) - ] + const normalizedOutputPath = normalizePath( + path.relative(cwd, path.join(cacheDirOutputPath, flatId)) + ) + const output = outputs[normalizedOutputPath] + if (output) { + return output + } + // If the root dir was symlinked, esbuild could return output keys as `../cwd/` + // Normalize keys to support this case too + for (const [key, value] of Object.entries(outputs)) { + if (normalizePath(path.relative(cwd, key)) === normalizedOutputPath) { + return value + } + } } export async function extractExportsData( diff --git a/packages/vite/src/node/optimizer/optimizer.ts b/packages/vite/src/node/optimizer/optimizer.ts index 9bf03aa88005b0..37061cdaf0c6f5 100644 --- a/packages/vite/src/node/optimizer/optimizer.ts +++ b/packages/vite/src/node/optimizer/optimizer.ts @@ -103,6 +103,8 @@ async function createDepsOptimizer( let handle: NodeJS.Timeout | undefined + let closed = false + let metadata = cachedMetadata || initDepsOptimizerMetadata(config, ssr, sessionTimestamp) @@ -118,6 +120,7 @@ async function createDepsOptimizer( delayDepsOptimizerUntil, resetRegisteredIds, ensureFirstRun, + close, options: getDepOptimizationConfig(config, ssr) } @@ -159,6 +162,13 @@ async function createDepsOptimizer( let postScanOptimizationResult: Promise | undefined + let optimizingNewDeps: Promise | undefined + async function close() { + closed = true + await postScanOptimizationResult + await optimizingNewDeps + } + if (!cachedMetadata) { // Enter processing state until crawl of static imports ends currentlyProcessing = true @@ -232,7 +242,7 @@ async function createDepsOptimizer( } } - async function startNextDiscoveredBatch() { + function startNextDiscoveredBatch() { newDepsDiscovered = false // Add the current depOptimizationProcessing to the queue, these @@ -288,7 +298,7 @@ async function createDepsOptimizer( // Ensure that a rerun will not be issued for current discovered deps if (handle) clearTimeout(handle) - if (Object.keys(metadata.discovered).length === 0) { + if (closed || Object.keys(metadata.discovered).length === 0) { currentlyProcessing = false return } @@ -296,7 +306,16 @@ async function createDepsOptimizer( currentlyProcessing = true try { - const processingResult = preRunResult ?? (await optimizeNewDeps()) + const processingResult = + preRunResult ?? (await (optimizingNewDeps = optimizeNewDeps())) + optimizingNewDeps = undefined + + if (closed) { + currentlyProcessing = false + processingResult.cancel() + resolveEnqueuedProcessingPromises() + return + } const newData = processingResult.metadata @@ -665,7 +684,7 @@ async function createDepsOptimizer( function ensureFirstRun() { if (!firstRunEnsured && !firstRunCalled && registeredIds.length === 0) { setTimeout(() => { - if (registeredIds.length === 0) { + if (!closed && registeredIds.length === 0) { onCrawlEnd() } }, runOptimizerIfIdleAfterMs) @@ -699,7 +718,7 @@ async function createDepsOptimizer( waitingOn = next.id const afterLoad = () => { waitingOn = undefined - if (!workersSources.has(next.id)) { + if (!closed && !workersSources.has(next.id)) { if (registeredIds.length > 0) { runOptimizerWhenIdle() } else { @@ -745,6 +764,8 @@ async function createDevSsrDepsOptimizer( delayDepsOptimizerUntil: (id: string, done: () => Promise) => {}, resetRegisteredIds: () => {}, ensureFirstRun: () => {}, + + close: async () => {}, options: config.ssr.optimizeDeps } devSsrDepsOptimizerMap.set(config, depsOptimizer) diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index 94c34a40f8d22e..db2f9d7a7cb613 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -5,6 +5,7 @@ import { Buffer } from 'node:buffer' import * as mrmime from 'mrmime' import type { NormalizedOutputOptions, + OutputAsset, OutputOptions, PluginContext, PreRenderedAsset, @@ -20,6 +21,11 @@ import { FS_PREFIX } from '../constants' export const assetUrlRE = /__VITE_ASSET__([a-z\d]{8})__(?:\$_(.*?)__)?/g +export const duplicateAssets = new WeakMap< + ResolvedConfig, + Map +>() + const rawRE = /(\?|&)raw(?:&|$)/ const urlRE = /(\?|&)url(?:&|$)/ @@ -129,6 +135,7 @@ export function assetPlugin(config: ResolvedConfig): Plugin { buildStart() { assetCache.set(config, new Map()) emittedHashMap.set(config, new Set()) + duplicateAssets.set(config, new Map()) }, resolveId(id) { @@ -470,8 +477,9 @@ async function fileToBuiltUrl( map.set(contentHash, fileName) } const emittedSet = emittedHashMap.get(config)! + const duplicates = duplicateAssets.get(config)! + const name = normalizePath(path.relative(config.root, file)) if (!emittedSet.has(contentHash)) { - const name = normalizePath(path.relative(config.root, file)) pluginContext.emitFile({ name, fileName, @@ -479,6 +487,14 @@ async function fileToBuiltUrl( source: content }) emittedSet.add(contentHash) + } else { + duplicates.set(name, { + name, + fileName: map.get(contentHash)!, + type: 'asset', + source: content, + isAsset: true + }) } url = `__VITE_ASSET__${contentHash}__${postfix ? `$_${postfix}__` : ``}` // TODO_BASE diff --git a/packages/vite/src/node/plugins/assetImportMetaUrl.ts b/packages/vite/src/node/plugins/assetImportMetaUrl.ts index 4b52a225a68458..de946614620866 100644 --- a/packages/vite/src/node/plugins/assetImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/assetImportMetaUrl.ts @@ -3,7 +3,13 @@ import MagicString from 'magic-string' import { stripLiteral } from 'strip-literal' import type { Plugin } from '../plugin' import type { ResolvedConfig } from '../config' -import { transformStableResult } from '../utils' +import type { ResolveFn } from '../' +import { + isParentDirectory, + normalizePath, + slash, + transformStableResult +} from '../utils' import { fileToUrl } from './asset' import { preloadHelperId } from './importAnalysisBuild' @@ -18,6 +24,9 @@ import { preloadHelperId } from './importAnalysisBuild' * ``` */ export function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin { + const normalizedPublicDir = normalizePath(config.publicDir) + let assetResolver: ResolveFn + return { name: 'vite:asset-import-meta-url', async transform(code, id, options) { @@ -63,16 +72,45 @@ export function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin { } const url = rawUrl.slice(1, -1) - const file = path.resolve(path.dirname(id), url) - // Get final asset URL. Catch error if the file does not exist, - // in which we can resort to the initial URL and let it resolve in runtime - const builtUrl = await fileToUrl(file, config, this).catch(() => { + let file: string | undefined + if (url.startsWith('.')) { + file = slash(path.resolve(path.dirname(id), url)) + } else { + assetResolver ??= config.createResolver({ + extensions: [], + mainFields: [], + tryIndex: false, + preferRelative: true + }) + file = await assetResolver(url, id) + file ??= url.startsWith('/') + ? slash(path.join(config.publicDir, url)) + : slash(path.resolve(path.dirname(id), url)) + } + + // Get final asset URL. If the file does not exist, + // we fall back to the initial URL and let it resolve in runtime + let builtUrl: string | undefined + if (file) { + try { + if (isParentDirectory(normalizedPublicDir, file)) { + const publicPath = + '/' + path.posix.relative(normalizedPublicDir, file) + builtUrl = await fileToUrl(publicPath, config, this) + } else { + builtUrl = await fileToUrl(file, config, this) + } + } catch { + // do nothing, we'll log a warning after this + } + } + if (!builtUrl) { const rawExp = code.slice(index, index + exp.length) config.logger.warnOnce( `\n${rawExp} doesn't exist at build time, it will remain unchanged to be resolved at runtime` ) - return url - }) + builtUrl = url + } s.overwrite( index, index + exp.length, diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index 6737e5be1c26b6..bcc5359d17ca93 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -1441,8 +1441,8 @@ const scss: SassStylePreprocessor = async ( const importer = [internalImporter] if (options.importer) { Array.isArray(options.importer) - ? importer.push(...options.importer) - : importer.push(options.importer) + ? importer.unshift(...options.importer) + : importer.unshift(options.importer) } const { content: data, map: additionalMap } = await getSource( diff --git a/packages/vite/src/node/plugins/dynamicImportVars.ts b/packages/vite/src/node/plugins/dynamicImportVars.ts index 93250f74618316..0f32f5ff581920 100644 --- a/packages/vite/src/node/plugins/dynamicImportVars.ts +++ b/packages/vite/src/node/plugins/dynamicImportVars.ts @@ -4,6 +4,7 @@ import { init, parse as parseImports } from 'es-module-lexer' import type { ImportSpecifier } from 'es-module-lexer' import { parse as parseJS } from 'acorn' import { dynamicImportToGlob } from '@rollup/plugin-dynamic-import-vars' +import type { KnownAsTypeMap } from 'types/importGlob' import type { Plugin } from '../plugin' import type { ResolvedConfig } from '../config' import { @@ -19,7 +20,7 @@ import { toAbsoluteGlob } from './importMetaGlob' export const dynamicImportHelperId = '/@vite/dynamic-import-helper' interface DynamicImportRequest { - as?: 'raw' + as?: keyof KnownAsTypeMap } interface DynamicImportPattern { @@ -65,6 +66,14 @@ function parseDynamicImportPattern( globParams = { as: 'raw' } } + if (rawQuery?.url !== undefined) { + globParams = { as: 'url' } + } + + if (rawQuery?.worker !== undefined) { + globParams = { as: 'worker' } + } + return { globParams, userPattern, diff --git a/packages/vite/src/node/plugins/esbuild.ts b/packages/vite/src/node/plugins/esbuild.ts index f1fbe8e607342e..43c319f2713761 100644 --- a/packages/vite/src/node/plugins/esbuild.ts +++ b/packages/vite/src/node/plugins/esbuild.ts @@ -179,6 +179,7 @@ export function esbuildPlugin(options: ESBuildOptions = {}): Plugin { // Remove optimization options for dev as we only need to transpile them, // and for build as the final optimization is in `buildEsbuildPlugin` const transformOptions: TransformOptions = { + target: 'esnext', ...options, minify: false, minifyIdentifiers: false, diff --git a/packages/vite/src/node/plugins/html.ts b/packages/vite/src/node/plugins/html.ts index a3df68ca539602..f09c2a6fcd89b0 100644 --- a/packages/vite/src/node/plugins/html.ts +++ b/packages/vite/src/node/plugins/html.ts @@ -196,7 +196,7 @@ export function getScriptInfo(node: DefaultTreeAdapterMap['element']): { return { src, sourceCodeLocation, isModule, isAsync } } -const attrValueStartRE = /=[\s\t\n\r]*(["']|.)/ +const attrValueStartRE = /=[\s\t\n\r]*(.)/ export function overwriteAttrValue( s: MagicString, @@ -214,7 +214,7 @@ export function overwriteAttrValue( `[vite:html] internal error, failed to overwrite attribute value` ) } - const wrapOffset = valueStart[1] ? 1 : 0 + const wrapOffset = valueStart[1] === '"' || valueStart[1] === "'" ? 1 : 0 const valueOffset = valueStart.index! + valueStart[0].length - 1 s.overwrite( sourceCodeLocation.startOffset + valueOffset + wrapOffset, diff --git a/packages/vite/src/node/plugins/importAnalysis.ts b/packages/vite/src/node/plugins/importAnalysis.ts index f1356d5c7f879e..86bad0b75ac001 100644 --- a/packages/vite/src/node/plugins/importAnalysis.ts +++ b/packages/vite/src/node/plugins/importAnalysis.ts @@ -15,9 +15,7 @@ import { CLIENT_DIR, CLIENT_PUBLIC_PATH, DEP_VERSION_RE, - FS_PREFIX, - NULL_BYTE_PLACEHOLDER, - VALID_ID_PREFIX + FS_PREFIX } from '../constants' import { debugHmr, @@ -42,7 +40,8 @@ import { stripBomTag, timeFrom, transformStableResult, - unwrapId + unwrapId, + wrapId } from '../utils' import type { ResolvedConfig } from '../config' import type { Plugin } from '../plugin' @@ -87,7 +86,7 @@ function markExplicitImport(url: string) { return url } -async function extractImportedBindings( +function extractImportedBindings( id: string, source: string, importSpec: ImportSpecifier, @@ -330,8 +329,7 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { // prefix it to make it valid. We will strip this before feeding it // back into the transform pipeline if (!url.startsWith('.') && !url.startsWith('/')) { - url = - VALID_ID_PREFIX + resolved.id.replace('\0', NULL_BYTE_PLACEHOLDER) + url = wrapId(resolved.id) } // make the URL browser-valid if not SSR @@ -361,7 +359,7 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { try { // delay setting `isSelfAccepting` until the file is actually used (#7870) const depModule = await moduleGraph.ensureEntryFromUrl( - url, + unwrapId(url), ssr, canSkipImportAnalysis(url) ) @@ -536,9 +534,9 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { } // record for HMR import chain analysis - // make sure to normalize away base - const urlWithoutBase = url.replace(base, '/') - importedUrls.add(urlWithoutBase) + // make sure to unwrap and normalize away base + const hmrUrl = unwrapId(url.replace(base, '/')) + importedUrls.add(hmrUrl) if (enablePartialAccept && importedBindings) { extractImportedBindings( @@ -551,7 +549,7 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { if (!isDynamicImport) { // for pre-transforming - staticImportedUrls.add({ url: urlWithoutBase, id: resolvedId }) + staticImportedUrls.add({ url: hmrUrl, id: resolvedId }) } } else if (!importer.startsWith(clientDir)) { if (!importer.includes('node_modules')) { @@ -712,10 +710,7 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { // by the deps optimizer if (config.server.preTransformRequests && staticImportedUrls.size) { staticImportedUrls.forEach(({ url, id }) => { - url = unwrapId(removeImportQuery(url)).replace( - NULL_BYTE_PLACEHOLDER, - '\0' - ) + url = removeImportQuery(url) transformRequest(url, server, { ssr }).catch((e) => { if (e?.code === ERR_OUTDATED_OPTIMIZED_DEP) { // This are expected errors diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index d78e4c3be77ba7..3c8d8013263195 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -65,6 +65,8 @@ function preload( return baseModule() } + const links = document.getElementsByTagName('link') + return Promise.all( deps.map((dep) => { // @ts-ignore @@ -75,10 +77,24 @@ function preload( seen[dep] = true const isCss = dep.endsWith('.css') const cssSelector = isCss ? '[rel="stylesheet"]' : '' - // @ts-ignore check if the file is already preloaded by SSR markup - if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) { + const isBaseRelative = !!importerUrl + + // check if the file is already preloaded by SSR markup + if (isBaseRelative) { + // When isBaseRelative is true then we have `importerUrl` and `dep` is + // already converted to an absolute URL by the `assetsURL` function + for (let i = links.length - 1; i >= 0; i--) { + const link = links[i] + // The `links[i].href` is an absolute URL thanks to browser doing the work + // for us. See https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#reflecting-content-attributes-in-idl-attributes:idl-domstring-5 + if (link.href === dep && (!isCss || link.rel === 'stylesheet')) { + return + } + } + } else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) { return } + // @ts-ignore const link = document.createElement('link') // @ts-ignore @@ -418,10 +434,12 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { const chunk = bundle[filename] as OutputChunk | undefined if (chunk) { deps.add(chunk.fileName) + chunk.imports.forEach(addDeps) + // Ensure that the css imported by current chunk is loaded after the dependencies. + // So the style of current chunk won't be overwritten unexpectedly. chunk.viteMetadata.importedCss.forEach((file) => { deps.add(file) }) - chunk.imports.forEach(addDeps) } else { const removedPureCssFiles = removedPureCssFilesCache.get(config)! diff --git a/packages/vite/src/node/plugins/index.ts b/packages/vite/src/node/plugins/index.ts index 75c8297bf26919..f5db400a7b7c7d 100644 --- a/packages/vite/src/node/plugins/index.ts +++ b/packages/vite/src/node/plugins/index.ts @@ -20,6 +20,7 @@ import { preAliasPlugin } from './preAlias' import { definePlugin } from './define' import { ssrRequireHookPlugin } from './ssrRequireHook' import { workerImportMetaUrlPlugin } from './workerImportMetaUrl' +import { assetImportMetaUrlPlugin } from './assetImportMetaUrl' import { ensureWatchPlugin } from './ensureWatch' import { metadataPlugin } from './metadata' import { dynamicImportVarsPlugin } from './dynamicImportVars' @@ -88,6 +89,7 @@ export async function resolvePlugins( isBuild && config.build.ssr ? ssrRequireHookPlugin(config) : null, isBuild && buildHtmlPlugin(config), workerImportMetaUrlPlugin(config), + assetImportMetaUrlPlugin(config), ...buildPlugins.pre, dynamicImportVarsPlugin(config), importGlobPlugin(config), diff --git a/packages/vite/src/node/plugins/manifest.ts b/packages/vite/src/node/plugins/manifest.ts index e342102946904a..a584daadc940e0 100644 --- a/packages/vite/src/node/plugins/manifest.ts +++ b/packages/vite/src/node/plugins/manifest.ts @@ -4,6 +4,7 @@ import type { ResolvedConfig } from '..' import type { Plugin } from '../plugin' import { normalizePath } from '../utils' import { cssEntryFilesCache } from './css' +import { duplicateAssets } from './asset' export type Manifest = Record @@ -122,6 +123,11 @@ export function manifestPlugin(config: ResolvedConfig): Plugin { } } + duplicateAssets.get(config)!.forEach((asset) => { + const chunk = createAsset(asset) + manifest[asset.name!] = chunk + }) + outputCount++ const output = config.build.rollupOptions?.output const outputLength = Array.isArray(output) ? output.length : 1 diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index 371609fdf23c83..b44bdb337b2525 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -29,6 +29,7 @@ import { isFileReadable, isNonDriveRelativeAbsolutePath, isObject, + isOptimizable, isPossibleTsOutput, isTsRequest, isWindows, @@ -62,13 +63,18 @@ const debug = createDebugger('vite:resolve-details', { export interface ResolveOptions { mainFields?: string[] + /** + * @deprecated In future, `mainFields` should be used instead. + * @default true + */ + browserField?: boolean conditions?: string[] extensions?: string[] dedupe?: string[] preserveSymlinks?: boolean } -export interface InternalResolveOptions extends ResolveOptions { +export interface InternalResolveOptions extends Required { root: string isBuild: boolean isProduction: boolean @@ -84,7 +90,6 @@ export interface InternalResolveOptions extends ResolveOptions { tryPrefix?: string skipPackageJson?: boolean preferRelative?: boolean - preserveSymlinks?: boolean isRequire?: boolean // #3040 // when the importer is a ts module, @@ -175,10 +180,13 @@ export function resolvePlugin(resolveOptions: InternalResolveOptions): Plugin { // as if they would have been imported through a bare import // Use the original id to do the check as the resolved id may be the real // file path after symlinks resolution - const isNodeModule = !!normalizePath(id).match(nodeModulesInPathRE) + const isNodeModule = + nodeModulesInPathRE.test(normalizePath(id)) || + nodeModulesInPathRE.test(normalizePath(resolved)) + if (isNodeModule && !resolved.match(DEP_VERSION_RE)) { const versionHash = depsOptimizer.metadata.browserHash - if (versionHash && OPTIMIZABLE_ENTRY_RE.test(resolved)) { + if (versionHash && isOptimizable(resolved, depsOptimizer.options)) { resolved = injectQuery(resolved, `v=${versionHash}`) } } @@ -234,6 +242,7 @@ export function resolvePlugin(resolveOptions: InternalResolveOptions): Plugin { if ( targetWeb && + options.browserField && (res = tryResolveBrowserMapping(fsPath, importer, options, true)) ) { return res @@ -304,6 +313,7 @@ export function resolvePlugin(resolveOptions: InternalResolveOptions): Plugin { if ( targetWeb && + options.browserField && (res = tryResolveBrowserMapping( id, importer, @@ -447,7 +457,7 @@ function tryFsResolve( return res } - for (const ext of options.extensions || DEFAULT_EXTENSIONS) { + for (const ext of options.extensions) { if ( postfix && (res = tryResolveFile( @@ -717,7 +727,11 @@ export function tryNodeResolve( let resolvedId = id if (isDeepImport) { if (!pkg?.data.exports && path.extname(id) !== resolvedExt) { - resolvedId += resolvedExt + resolvedId = resolved.id.slice(resolved.id.indexOf(id)) + isDebug && + debug( + `[processResult] ${colors.cyan(id)} -> ${colors.dim(resolvedId)}` + ) } } return { ...resolved, id: resolvedId, external: true } @@ -747,7 +761,9 @@ export function tryNodeResolve( } // if we reach here, it's a valid dep import that hasn't been optimized. - const isJsType = OPTIMIZABLE_ENTRY_RE.test(resolved) + const isJsType = depsOptimizer + ? isOptimizable(resolved, depsOptimizer.options) + : OPTIMIZABLE_ENTRY_RE.test(resolved) let exclude = depsOptimizer?.options.exclude let include = depsOptimizer?.options.exclude @@ -882,7 +898,11 @@ export function resolvePackageEntry( // This is because .mjs files can technically import .cjs files which would // make them invalid for pure ESM environments - so if other module/browser // fields are present, prioritize those instead. - if (targetWeb && (!entryPoint || entryPoint.endsWith('.mjs'))) { + if ( + targetWeb && + options.browserField && + (!entryPoint || entryPoint.endsWith('.mjs')) + ) { // check browser field // https://github.com/defunctzombie/package-browser-field-spec const browserEntry = @@ -893,6 +913,7 @@ export function resolvePackageEntry( // check if the package also has a "module" field. if ( !options.isRequire && + options.mainFields.includes('module') && typeof data.module === 'string' && data.module !== browserEntry ) { @@ -923,7 +944,8 @@ export function resolvePackageEntry( } if (!entryPoint || entryPoint.endsWith('.mjs')) { - for (const field of options.mainFields || DEFAULT_MAIN_FIELDS) { + for (const field of options.mainFields) { + if (field === 'browser') continue // already checked above if (typeof data[field] === 'string') { entryPoint = data[field] break @@ -941,8 +963,8 @@ export function resolvePackageEntry( for (let entry of entryPoints) { // make sure we don't get scripts when looking for sass if ( - options.mainFields?.[0] === 'sass' && - !options.extensions?.includes(path.extname(entry)) + options.mainFields[0] === 'sass' && + !options.extensions.includes(path.extname(entry)) ) { entry = '' options.skipPackageJson = true @@ -950,7 +972,7 @@ export function resolvePackageEntry( // resolve object browser field in package.json const { browser: browserField } = data - if (targetWeb && isObject(browserField)) { + if (targetWeb && options.browserField && isObject(browserField)) { entry = mapWithBrowserField(entry, browserField) || entry } @@ -991,13 +1013,13 @@ function resolveExports( if (!options.isRequire) { conditions.push('module') } - if (options.conditions) { + if (options.conditions.length > 0) { conditions.push(...options.conditions) } return _resolveExports(pkg, key, { - browser: targetWeb, - require: options.isRequire, + browser: targetWeb && !conditions.includes('node'), + require: options.isRequire && !conditions.includes('import'), conditions }) } @@ -1043,7 +1065,7 @@ function resolveDeepImport( `${path.join(dir, 'package.json')}.` ) } - } else if (targetWeb && isObject(browserField)) { + } else if (targetWeb && options.browserField && isObject(browserField)) { // resolve without postfix (see #7098) const { file, postfix } = splitFileAndPostfix(relativeId) const mapped = mapWithBrowserField(file, browserField) diff --git a/packages/vite/src/node/plugins/ssrRequireHook.ts b/packages/vite/src/node/plugins/ssrRequireHook.ts index d1173b211ff836..e02f9b48e6b6c7 100644 --- a/packages/vite/src/node/plugins/ssrRequireHook.ts +++ b/packages/vite/src/node/plugins/ssrRequireHook.ts @@ -13,7 +13,7 @@ export function ssrRequireHookPlugin(config: ResolvedConfig): Plugin | null { if ( config.command !== 'build' || !config.build.ssr || - !config.resolve.dedupe?.length || + !config.resolve.dedupe.length || config.ssr?.noExternal === true || config.ssr?.format !== 'cjs' || isBuildOutputEsm(config) diff --git a/packages/vite/src/node/plugins/workerImportMetaUrl.ts b/packages/vite/src/node/plugins/workerImportMetaUrl.ts index 5fbd7d4883382f..8867924cb093c0 100644 --- a/packages/vite/src/node/plugins/workerImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/workerImportMetaUrl.ts @@ -8,11 +8,12 @@ import type { Plugin } from '../plugin' import { cleanUrl, injectQuery, - normalizePath, parseRequest, + slash, transformStableResult } from '../utils' import { getDepsOptimizer } from '../optimizer' +import type { ResolveFn } from '..' import type { WorkerType } from './worker' import { WORKER_FILE_ID, workerFileToUrl } from './worker' import { fileToUrl } from './asset' @@ -38,7 +39,11 @@ function getWorkerType(raw: string, clean: string, i: number): WorkerType { } // need to find in comment code - const workerOptString = raw.substring(commaIndex + 1, endIndex) + let workerOptString = raw.substring(commaIndex + 1, endIndex).trim() + // strip trailing comma for parsing + if (workerOptString.endsWith(',')) { + workerOptString = workerOptString.slice(0, -1) + } const hasViteIgnore = ignoreFlagRE.test(workerOptString) if (hasViteIgnore) { @@ -46,8 +51,8 @@ function getWorkerType(raw: string, clean: string, i: number): WorkerType { } // need to find in no comment code - const cleanWorkerOptString = clean.substring(commaIndex + 1, endIndex) - if (!cleanWorkerOptString.trim().length) { + const cleanWorkerOptString = clean.substring(commaIndex + 1, endIndex).trim() + if (!cleanWorkerOptString.length) { return 'classic' } @@ -71,6 +76,7 @@ function getWorkerType(raw: string, clean: string, i: number): WorkerType { export function workerImportMetaUrlPlugin(config: ResolvedConfig): Plugin { const isBuild = config.command === 'build' + let workerResolver: ResolveFn return { name: 'vite:worker-import-meta-url', @@ -112,22 +118,37 @@ export function workerImportMetaUrlPlugin(config: ResolvedConfig): Plugin { cleanString, index + allExp.length ) - const file = normalizePath( - path.resolve(path.dirname(id), rawUrl.slice(1, -1)) - ) + const url = rawUrl.slice(1, -1) + let file: string | undefined + if (url.startsWith('.')) { + file = path.resolve(path.dirname(id), url) + } else { + workerResolver ??= config.createResolver({ + extensions: [], + tryIndex: false, + preferRelative: true + }) + file = await workerResolver(url, id) + file ??= url.startsWith('/') + ? slash(path.join(config.publicDir, url)) + : slash(path.resolve(path.dirname(id), url)) + } - let url: string + let builtUrl: string if (isBuild) { getDepsOptimizer(config, ssr)?.registerWorkersSource(id) - url = await workerFileToUrl(config, file, query) + builtUrl = await workerFileToUrl(config, file, query) } else { - url = await fileToUrl(cleanUrl(file), config, this) - url = injectQuery(url, WORKER_FILE_ID) - url = injectQuery(url, `type=${workerType}`) + builtUrl = await fileToUrl(cleanUrl(file), config, this) + builtUrl = injectQuery(builtUrl, WORKER_FILE_ID) + builtUrl = injectQuery(builtUrl, `type=${workerType}`) } - s.overwrite(urlIndex, urlIndex + exp.length, JSON.stringify(url), { - contentOnly: true - }) + s.overwrite( + urlIndex, + urlIndex + exp.length, + `new URL(${JSON.stringify(builtUrl)}, self.location)`, + { contentOnly: true } + ) } if (s) { diff --git a/packages/vite/src/node/preview.ts b/packages/vite/src/node/preview.ts index eb8abb47b7699f..d17fc0845326dc 100644 --- a/packages/vite/src/node/preview.ts +++ b/packages/vite/src/node/preview.ts @@ -82,7 +82,7 @@ export async function preview( const httpServer = await resolveHttpServer( config.preview, app, - await resolveHttpsConfig(config.preview?.https, config.cacheDir) + await resolveHttpsConfig(config.preview?.https) ) setClientErrorHandler(httpServer, config.logger) @@ -111,12 +111,20 @@ export async function preview( // static assets const distDir = path.resolve(config.root, config.build.outDir) + const headers = config.preview.headers app.use( previewBase, sirv(distDir, { etag: true, dev: true, - single: config.appType === 'spa' + single: config.appType === 'spa', + setHeaders(res) { + if (headers) { + for (const name in headers) { + res.setHeader(name, headers[name]!) + } + } + } }) ) diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts index 6e62fe344d9ba1..57a6a01e1fea12 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -11,6 +11,8 @@ import type { FSWatcher, WatchOptions } from 'dep-types/chokidar' import type { Connect } from 'dep-types/connect' import launchEditorMiddleware from 'launch-editor-middleware' import type { SourceMap } from 'rollup' +import picomatch from 'picomatch' +import type { Matcher } from 'picomatch' import type { CommonServerOptions } from '../http' import { httpServerStart, @@ -143,7 +145,7 @@ export interface FileSystemServeOptions { * Restrict accessing files that matches the patterns. * * This will have higher priority than `allow`. - * Glob patterns are supported. + * picomatch patterns are supported. * * @default ['.env', '.env.*', '*.crt', '*.pem'] */ @@ -283,6 +285,10 @@ export interface ViteDevServer { abort: () => void } > + /** + * @internal + */ + _fsDenyGlob: Matcher } export interface ResolvedServerUrls { @@ -295,10 +301,7 @@ export async function createServer( ): Promise { const config = await resolveConfig(inlineConfig, 'serve', 'development') const { root, server: serverConfig } = config - const httpsOptions = await resolveHttpsConfig( - config.server.https, - config.cacheDir - ) + const httpsOptions = await resolveHttpsConfig(config.server.https) const { middlewareMode } = serverConfig const resolvedWatchOptions = resolveChokidarOptions({ @@ -395,6 +398,8 @@ export async function createServer( watcher.close(), ws.close(), container.close(), + getDepsOptimizer(server.config)?.close(), + getDepsOptimizer(server.config, true)?.close(), closeHttpServer() ]) server.resolvedUrls = null @@ -429,7 +434,8 @@ export async function createServer( _restartPromise: null, _importGlobMap: new Map(), _forceOptimizeOnRestart: false, - _pendingRequests: new Map() + _pendingRequests: new Map(), + _fsDenyGlob: picomatch(config.server.fs.deny, { matchBase: true }) } server.transformIndexHtml = createDevHtmlTransformFn(server) diff --git a/packages/vite/src/node/server/middlewares/indexHtml.ts b/packages/vite/src/node/server/middlewares/indexHtml.ts index a9de3793574fd0..199468727c17c2 100644 --- a/packages/vite/src/node/server/middlewares/indexHtml.ts +++ b/packages/vite/src/node/server/middlewares/indexHtml.ts @@ -19,19 +19,15 @@ import { } from '../../plugins/html' import type { ResolvedConfig, ViteDevServer } from '../..' import { send } from '../send' -import { - CLIENT_PUBLIC_PATH, - FS_PREFIX, - NULL_BYTE_PLACEHOLDER, - VALID_ID_PREFIX -} from '../../constants' +import { CLIENT_PUBLIC_PATH, FS_PREFIX } from '../../constants' import { cleanUrl, ensureWatchedFile, fsPathFromId, injectQuery, normalizePath, - processSrcSetSync + processSrcSetSync, + wrapId } from '../../utils' import type { ModuleGraph } from '../moduleGraph' @@ -144,7 +140,7 @@ const devHtmlHook: IndexHtmlTransformHook = async ( // and ids are properly handled const validPath = `${htmlPath}${trailingSlash ? 'index.html' : ''}` proxyModulePath = `\0${validPath}` - proxyModuleUrl = `${VALID_ID_PREFIX}${NULL_BYTE_PLACEHOLDER}${validPath}` + proxyModuleUrl = wrapId(proxyModulePath) } const s = new MagicString(html) diff --git a/packages/vite/src/node/server/middlewares/proxy.ts b/packages/vite/src/node/server/middlewares/proxy.ts index 2958d70163fec6..dc9ff4753006aa 100644 --- a/packages/vite/src/node/server/middlewares/proxy.ts +++ b/packages/vite/src/node/server/middlewares/proxy.ts @@ -88,7 +88,9 @@ export function proxyMiddleware( if (doesProxyContextMatchUrl(context, url)) { const [proxy, opts] = proxies[context] if ( - (opts.ws || opts.target?.toString().startsWith('ws:')) && + (opts.ws || + opts.target?.toString().startsWith('ws:') || + opts.target?.toString().startsWith('wss:')) && req.headers['sec-websocket-protocol'] !== HMR_HEADER ) { if (opts.rewrite) { diff --git a/packages/vite/src/node/server/middlewares/static.ts b/packages/vite/src/node/server/middlewares/static.ts index ca466b8dbffb6c..c877022a63cde7 100644 --- a/packages/vite/src/node/server/middlewares/static.ts +++ b/packages/vite/src/node/server/middlewares/static.ts @@ -3,7 +3,6 @@ import type { OutgoingHttpHeaders, ServerResponse } from 'node:http' import type { Options } from 'sirv' import sirv from 'sirv' import type { Connect } from 'dep-types/connect' -import micromatch from 'micromatch' import type { ViteDevServer } from '../..' import { FS_PREFIX } from '../../constants' import { @@ -18,8 +17,6 @@ import { slash } from '../../utils' -const { isMatch } = micromatch - const sirvOptions = (headers?: OutgoingHttpHeaders): Options => { return { dev: true, @@ -158,8 +155,6 @@ export function serveRawFsMiddleware( } } -const _matchOptions = { matchBase: true } - export function isFileServingAllowed( url: string, server: ViteDevServer @@ -168,8 +163,7 @@ export function isFileServingAllowed( const file = fsPathFromUrl(url) - if (server.config.server.fs.deny.some((i) => isMatch(file, i, _matchOptions))) - return false + if (server._fsDenyGlob(file)) return false if (server.moduleGraph.safeModulesPath.has(file)) return true diff --git a/packages/vite/src/node/ssr/index.ts b/packages/vite/src/node/ssr/index.ts index 7d2e4724f98b44..d23e78b18cae5f 100644 --- a/packages/vite/src/node/ssr/index.ts +++ b/packages/vite/src/node/ssr/index.ts @@ -41,8 +41,8 @@ export interface ResolvedSSROptions extends SSROptions { export function resolveSSROptions( ssr: SSROptions | undefined, - buildSsrCjsExternalHeuristics?: boolean, - preserveSymlinks?: boolean + preserveSymlinks: boolean, + buildSsrCjsExternalHeuristics?: boolean ): ResolvedSSROptions { ssr ??= {} const optimizeDeps = ssr.optimizeDeps ?? {} diff --git a/packages/vite/src/node/ssr/ssrExternal.ts b/packages/vite/src/node/ssr/ssrExternal.ts index d73d17c1d7c3c8..7c48c84db48743 100644 --- a/packages/vite/src/node/ssr/ssrExternal.ts +++ b/packages/vite/src/node/ssr/ssrExternal.ts @@ -1,7 +1,7 @@ import fs from 'node:fs' import path from 'node:path' import { createRequire } from 'node:module' -import type { InternalResolveOptions } from '../plugins/resolve' +import type { InternalResolveOptions, ResolveOptions } from '../plugins/resolve' import { tryNodeResolve } from '../plugins/resolve' import { bareImportRE, @@ -53,7 +53,7 @@ export function cjsSsrResolveExternals( cjsSsrCollectExternals( config.root, - config.resolve.preserveSymlinks, + config.resolve, ssrExternals, seen, config.logger @@ -116,8 +116,8 @@ export function createIsConfiguredAsSsrExternal( createFilter(undefined, noExternal, { resolve: false }) const resolveOptions: InternalResolveOptions = { + ...config.resolve, root, - preserveSymlinks: config.resolve.preserveSymlinks, isProduction: false, isBuild: true } @@ -211,7 +211,7 @@ function createIsSsrExternal( // is used reverting to the Vite 2.9 SSR externalization heuristics function cjsSsrCollectExternals( root: string, - preserveSymlinks: boolean | undefined, + resolveOptions: Required, ssrExternals: Set, seen: Set, logger: Logger @@ -227,9 +227,9 @@ function cjsSsrCollectExternals( ...rootPkg.dependencies } - const resolveOptions: InternalResolveOptions = { + const internalResolveOptions: InternalResolveOptions = { + ...resolveOptions, root, - preserveSymlinks, isProduction: false, isBuild: true } @@ -247,7 +247,7 @@ function cjsSsrCollectExternals( esmEntry = tryNodeResolve( id, undefined, - resolveOptions, + internalResolveOptions, true, // we set `targetWeb` to `true` to get the ESM entry undefined, true @@ -314,13 +314,7 @@ function cjsSsrCollectExternals( } for (const depRoot of depsToTrace) { - cjsSsrCollectExternals( - depRoot, - preserveSymlinks, - ssrExternals, - seen, - logger - ) + cjsSsrCollectExternals(depRoot, resolveOptions, ssrExternals, seen, logger) } } diff --git a/packages/vite/src/node/ssr/ssrModuleLoader.ts b/packages/vite/src/node/ssr/ssrModuleLoader.ts index 8f61125c134d8c..13b58541c64c1b 100644 --- a/packages/vite/src/node/ssr/ssrModuleLoader.ts +++ b/packages/vite/src/node/ssr/ssrModuleLoader.ts @@ -12,7 +12,6 @@ import { transformRequest } from '../server/transformRequest' import type { InternalResolveOptions } from '../plugins/resolve' import { tryNodeResolve } from '../plugins/resolve' import { hookNodeResolve } from '../plugins/ssrRequireHook' -import { NULL_BYTE_PLACEHOLDER } from '../constants' import { ssrDynamicImportKey, ssrExportAllKey, @@ -38,7 +37,7 @@ export async function ssrLoadModule( urlStack: string[] = [], fixStacktrace?: boolean ): Promise { - url = unwrapId(url).replace(NULL_BYTE_PLACEHOLDER, '\0') + url = unwrapId(url) // when we instantiate multiple dependency modules in parallel, they may // point to shared modules. We need to avoid duplicate instantiation attempts @@ -119,13 +118,15 @@ async function instantiateModule( // CommonJS modules are preferred. We want to avoid ESM->ESM imports // whenever possible, because `hookNodeResolve` can't intercept them. const resolveOptions: InternalResolveOptions = { - dedupe, + mainFields: ['main'], + browserField: true, + conditions: [], extensions: ['.js', '.cjs', '.json'], + dedupe, + preserveSymlinks, isBuild: true, isProduction, isRequire: true, - mainFields: ['main'], - preserveSymlinks, root } @@ -138,7 +139,7 @@ async function instantiateModule( return nodeImport(dep, mod.file!, resolveOptions) } // convert to rollup URL because `pendingImports`, `moduleGraph.urlToModuleMap` requires that - dep = unwrapId(dep).replace(NULL_BYTE_PLACEHOLDER, '\0') + dep = unwrapId(dep) if (!isCircular(dep) && !pendingImports.get(dep)?.some(isCircular)) { pendingDeps.push(dep) if (pendingDeps.length === 1) { diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index 8243dbcb831b63..2c6a8c790c607c 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -25,6 +25,7 @@ import { DEFAULT_EXTENSIONS, ENV_PUBLIC_PATH, FS_PREFIX, + NULL_BYTE_PLACEHOLDER, OPTIMIZABLE_ENTRY_RE, VALID_ID_PREFIX, loopbackHosts, @@ -53,10 +54,24 @@ export function slash(p: string): string { return p.replace(/\\/g, '/') } -// Strip valid id prefix. This is prepended to resolved Ids that are -// not valid browser import specifiers by the importAnalysis plugin. +/** + * Prepend `/@id/` and replace null byte so the id is URL-safe. + * This is prepended to resolved ids that are not valid browser + * import specifiers by the importAnalysis plugin. + */ +export function wrapId(id: string): string { + return id.startsWith(VALID_ID_PREFIX) + ? id + : VALID_ID_PREFIX + id.replace('\0', NULL_BYTE_PLACEHOLDER) +} + +/** + * Undo {@link wrapId}'s `/@id/` and null byte replacements. + */ export function unwrapId(id: string): string { - return id.startsWith(VALID_ID_PREFIX) ? id.slice(VALID_ID_PREFIX.length) : id + return id.startsWith(VALID_ID_PREFIX) + ? id.slice(VALID_ID_PREFIX.length).replace(NULL_BYTE_PLACEHOLDER, '\0') + : id } export const flattenId = (id: string): string => diff --git a/playground/alias/package.json b/playground/alias/package.json index 4b49ca8d346ebf..56f95bdabb61f4 100644 --- a/playground/alias/package.json +++ b/playground/alias/package.json @@ -10,8 +10,8 @@ }, "dependencies": { "aliased-module": "file:./dir/module", - "vue": "^3.2.37", - "@vue/shared": "^3.2.37" + "vue": "^3.2.39", + "@vue/shared": "^3.2.39" }, "devDependencies": { "resolve-linked": "workspace:*" diff --git a/playground/assets/__tests__/assets.spec.ts b/playground/assets/__tests__/assets.spec.ts index ceb259102d4031..768fadf7f35ce5 100644 --- a/playground/assets/__tests__/assets.spec.ts +++ b/playground/assets/__tests__/assets.spec.ts @@ -272,7 +272,7 @@ describe.runIf(isBuild)('encodeURI', () => { test('img src with encodeURI', async () => { const img = await page.$('.encodeURI') expect( - await (await img.getAttribute('src')).startsWith('data:image/png;base64') + (await img.getAttribute('src')).startsWith('data:image/png;base64') ).toBe(true) }) }) @@ -281,6 +281,16 @@ test('new URL(..., import.meta.url)', async () => { expect(await page.textContent('.import-meta-url')).toMatch(assetMatch) }) +test('new URL("@/...", import.meta.url)', async () => { + expect(await page.textContent('.import-meta-url-dep')).toMatch(assetMatch) +}) + +test('new URL("/...", import.meta.url)', async () => { + expect(await page.textContent('.import-meta-url-base-path')).toMatch( + iconMatch + ) +}) + test('new URL(`${dynamic}`, import.meta.url)', async () => { expect(await page.textContent('.dynamic-import-meta-url-1')).toMatch( isBuild ? 'data:image/png;base64' : '/foo/nested/icon.png' diff --git a/playground/assets/index.html b/playground/assets/index.html index 42fa5498f28b8c..f897d61a355ed0 100644 --- a/playground/assets/index.html +++ b/playground/assets/index.html @@ -182,6 +182,14 @@

new URL('...', import.meta.url)

+

new URL('@/...', import.meta.url)

+ + + +

new URL('/...', import.meta.url)

+ + +

new URL('...', import.meta.url,) (with comma)

@@ -354,6 +362,16 @@

style in svg

text('.import-meta-url', metaUrl) document.querySelector('.import-meta-url-img').src = metaUrl + const metaUrlDep = new URL('@/asset.png', import.meta.url) + text('.import-meta-url-dep', metaUrlDep) + document.querySelector('.import-meta-url-dep-img').src = metaUrlDep + + // testing URLs for public assets served at the public base path + // equivalent to `new URL(`${import.meta.env.BASE_URL}/icon.png`, self.location) + const metaUrlBasePath = new URL('/icon.png', import.meta.url) + text('.import-meta-url-base-path', metaUrlBasePath) + document.querySelector('.import-meta-url-base-path-img').src = metaUrlBasePath + // prettier-ignore const metaUrlWithComma = new URL('./nested/asset.png', import.meta.url,) text('.import-meta-url-comma', metaUrlWithComma) diff --git a/playground/backend-integration/package.json b/playground/backend-integration/package.json index 299ffe9d9920dd..581da6594ee3d3 100644 --- a/playground/backend-integration/package.json +++ b/playground/backend-integration/package.json @@ -9,8 +9,8 @@ "preview": "vite preview" }, "devDependencies": { - "sass": "^1.54.5", + "sass": "^1.55.0", "tailwindcss": "^3.1.8", - "fast-glob": "^3.2.11" + "fast-glob": "^3.2.12" } } diff --git a/playground/css-dynamic-import/__tests__/css-dynamic-import.spec.ts b/playground/css-dynamic-import/__tests__/css-dynamic-import.spec.ts new file mode 100644 index 00000000000000..56757fc293dbba --- /dev/null +++ b/playground/css-dynamic-import/__tests__/css-dynamic-import.spec.ts @@ -0,0 +1,121 @@ +import type { InlineConfig } from 'vite' +import { build, createServer, preview } from 'vite' +import { expect, test } from 'vitest' +import { getColor, isBuild, isServe, page, ports, rootDir } from '~utils' + +const baseOptions = [ + { base: '', label: 'relative' }, + { base: '/', label: 'absolute' } +] + +const getConfig = (base: string): InlineConfig => ({ + base, + root: rootDir, + logLevel: 'silent', + preview: { port: ports['css/dynamic-import'] }, + build: { assetsInlineLimit: 0 } +}) + +async function withBuild(base: string, fn: () => Promise) { + const config = getConfig(base) + await build(config) + const server = await preview(config) + + try { + await page.goto(server.resolvedUrls.local[0]) + await fn() + } finally { + server.httpServer.close() + } +} + +async function withServe(base: string, fn: () => Promise) { + const config = getConfig(base) + const server = await createServer(config) + await server.listen() + await new Promise((r) => setTimeout(r, 500)) + + try { + await page.goto(server.resolvedUrls.local[0]) + await fn() + } finally { + await server.close() + } +} + +async function getLinks() { + const links = await page.$$('link') + return await Promise.all( + links.map((handle) => { + return handle.evaluate((link) => ({ + pathname: new URL(link.href).pathname, + rel: link.rel, + as: link.as + })) + }) + ) +} + +baseOptions.forEach(({ base, label }) => { + test.runIf(isBuild)( + `doesn't duplicate dynamically imported css files when built with ${label} base`, + async () => { + await withBuild(base, async () => { + await page.waitForSelector('.loaded', { state: 'attached' }) + + expect(await getColor('.css-dynamic-import')).toBe('green') + expect(await getLinks()).toEqual([ + { + pathname: expect.stringMatching(/^\/assets\/index\..+\.css$/), + rel: 'stylesheet', + as: '' + }, + { + pathname: expect.stringMatching(/^\/assets\/dynamic\..+\.css$/), + rel: 'preload', + as: 'style' + }, + { + pathname: expect.stringMatching(/^\/assets\/dynamic\..+\.js$/), + rel: 'modulepreload', + as: 'script' + }, + { + pathname: expect.stringMatching(/^\/assets\/dynamic\..+\.css$/), + rel: 'stylesheet', + as: '' + }, + { + pathname: expect.stringMatching(/^\/assets\/static\..+\.js$/), + rel: 'modulepreload', + as: 'script' + }, + { + pathname: expect.stringMatching(/^\/assets\/index\..+\.js$/), + rel: 'modulepreload', + as: 'script' + } + ]) + }) + } + ) + + test.runIf(isServe)( + `doesn't duplicate dynamically imported css files when served with ${label} base`, + async () => { + await withServe(base, async () => { + await page.waitForSelector('.loaded', { state: 'attached' }) + + expect(await getColor('.css-dynamic-import')).toBe('green') + // in serve there is no preloading + expect(await getLinks()).toEqual([ + { + pathname: '/dynamic.css', + rel: 'preload', + as: 'style' + } + ]) + }) + } + ) +}) diff --git a/playground/css-dynamic-import/__tests__/serve.ts b/playground/css-dynamic-import/__tests__/serve.ts new file mode 100644 index 00000000000000..ae33c33a5db107 --- /dev/null +++ b/playground/css-dynamic-import/__tests__/serve.ts @@ -0,0 +1,10 @@ +// this is automatically detected by playground/vitestSetup.ts and will replace +// the default e2e test serve behavior + +// The server is started in the test, so we need to have a custom serve +// function or a default server will be created +export async function serve() { + return { + close: () => Promise.resolve() + } +} diff --git a/playground/css-dynamic-import/dynamic.css b/playground/css-dynamic-import/dynamic.css new file mode 100644 index 00000000000000..6212a63c31fa19 --- /dev/null +++ b/playground/css-dynamic-import/dynamic.css @@ -0,0 +1,3 @@ +.css-dynamic-import { + color: green; +} diff --git a/playground/css-dynamic-import/dynamic.js b/playground/css-dynamic-import/dynamic.js new file mode 100644 index 00000000000000..0d0aeb3aec229c --- /dev/null +++ b/playground/css-dynamic-import/dynamic.js @@ -0,0 +1,6 @@ +import './dynamic.css' + +export const lazyLoad = async () => { + await import('./static.js') + document.body.classList.add('loaded') +} diff --git a/playground/css-dynamic-import/index.html b/playground/css-dynamic-import/index.html new file mode 100644 index 00000000000000..d9f9fedbbda752 --- /dev/null +++ b/playground/css-dynamic-import/index.html @@ -0,0 +1,3 @@ +

This should be green

+ + diff --git a/playground/css-dynamic-import/index.js b/playground/css-dynamic-import/index.js new file mode 100644 index 00000000000000..5a0c724da737db --- /dev/null +++ b/playground/css-dynamic-import/index.js @@ -0,0 +1,10 @@ +import './static.js' + +const link = document.head.appendChild(document.createElement('link')) +link.rel = 'preload' +link.as = 'style' +link.href = new URL('./dynamic.css', import.meta.url).href + +import('./dynamic.js').then(async ({ lazyLoad }) => { + await lazyLoad() +}) diff --git a/playground/css-dynamic-import/static.css b/playground/css-dynamic-import/static.css new file mode 100644 index 00000000000000..4efb84fdfea550 --- /dev/null +++ b/playground/css-dynamic-import/static.css @@ -0,0 +1,3 @@ +.css-dynamic-import { + color: red; +} diff --git a/playground/css-dynamic-import/static.js b/playground/css-dynamic-import/static.js new file mode 100644 index 00000000000000..1688198fba4227 --- /dev/null +++ b/playground/css-dynamic-import/static.js @@ -0,0 +1,3 @@ +import './static.css' + +export const foo = 'foo' diff --git a/playground/css-sourcemap/package.json b/playground/css-sourcemap/package.json index cdc1d168f2d448..d61c74d04eab04 100644 --- a/playground/css-sourcemap/package.json +++ b/playground/css-sourcemap/package.json @@ -10,8 +10,8 @@ }, "devDependencies": { "less": "^4.1.3", - "magic-string": "^0.26.2", - "sass": "^1.54.5", + "magic-string": "^0.26.4", + "sass": "^1.55.0", "stylus": "^0.59.0" } } diff --git a/playground/css/__tests__/css.spec.ts b/playground/css/__tests__/css.spec.ts index f46e6d0bfdbabc..689e9c925f644a 100644 --- a/playground/css/__tests__/css.spec.ts +++ b/playground/css/__tests__/css.spec.ts @@ -9,7 +9,8 @@ import { page, removeFile, serverLogs, - untilUpdated + untilUpdated, + withRetry } from '~utils' // note: tests should retrieve the element at the beginning of test and reuse it @@ -455,3 +456,17 @@ test.runIf(isBuild)('warning can be suppressed by esbuild.logOverride', () => { expect(log).not.toMatch('unsupported-css-property') }) }) + +// NOTE: the match inline snapshot should generate by build mode +test('async css order', async () => { + await withRetry(async () => { + expect(await getColor('.async-green')).toMatchInlineSnapshot('"green"') + expect(await getColor('.async-blue')).toMatchInlineSnapshot('"blue"') + }, true) +}) + +test('async css order with css modules', async () => { + await withRetry(async () => { + expect(await getColor('.modules-pink')).toMatchInlineSnapshot('"pink"') + }, true) +}) diff --git a/playground/css/async/async-1.css b/playground/css/async/async-1.css new file mode 100644 index 00000000000000..9af99eec7843fe --- /dev/null +++ b/playground/css/async/async-1.css @@ -0,0 +1,3 @@ +.async-blue { + color: blue; +} diff --git a/playground/css/async/async-1.js b/playground/css/async/async-1.js new file mode 100644 index 00000000000000..8187dc3b9307e7 --- /dev/null +++ b/playground/css/async/async-1.js @@ -0,0 +1,4 @@ +import { createButton } from './base' +import './async-1.css' + +createButton('async-blue') diff --git a/playground/css/async/async-2.css b/playground/css/async/async-2.css new file mode 100644 index 00000000000000..941e034da37389 --- /dev/null +++ b/playground/css/async/async-2.css @@ -0,0 +1,3 @@ +.async-green { + color: green; +} diff --git a/playground/css/async/async-2.js b/playground/css/async/async-2.js new file mode 100644 index 00000000000000..157eafdc4bff79 --- /dev/null +++ b/playground/css/async/async-2.js @@ -0,0 +1,4 @@ +import { createButton } from './base' +import './async-2.css' + +createButton('async-green') diff --git a/playground/css/async/async-3.js b/playground/css/async/async-3.js new file mode 100644 index 00000000000000..b5dd6da1f326d2 --- /dev/null +++ b/playground/css/async/async-3.js @@ -0,0 +1,4 @@ +import { createButton } from './base' +import styles from './async-3.module.css' + +createButton(`${styles['async-pink']} modules-pink`) diff --git a/playground/css/async/async-3.module.css b/playground/css/async/async-3.module.css new file mode 100644 index 00000000000000..7f43f88d754252 --- /dev/null +++ b/playground/css/async/async-3.module.css @@ -0,0 +1,3 @@ +.async-pink { + color: pink; +} diff --git a/playground/css/async/base.css b/playground/css/async/base.css new file mode 100644 index 00000000000000..cc6f88ddccdf10 --- /dev/null +++ b/playground/css/async/base.css @@ -0,0 +1,3 @@ +.btn { + color: black; +} diff --git a/playground/css/async/base.js b/playground/css/async/base.js new file mode 100644 index 00000000000000..1a409d7e32e4c9 --- /dev/null +++ b/playground/css/async/base.js @@ -0,0 +1,8 @@ +import './base.css' + +export function createButton(className) { + const button = document.createElement('button') + button.className = `btn ${className}` + document.body.appendChild(button) + button.textContent = `button ${getComputedStyle(button).color}` +} diff --git a/playground/css/async/index.js b/playground/css/async/index.js new file mode 100644 index 00000000000000..20d6975ab9d23a --- /dev/null +++ b/playground/css/async/index.js @@ -0,0 +1,3 @@ +import('./async-1.js') +import('./async-2.js') +import('./async-3.js') diff --git a/playground/css/main.js b/playground/css/main.js index 39ccd916467faf..4e1ed37754968f 100644 --- a/playground/css/main.js +++ b/playground/css/main.js @@ -109,3 +109,5 @@ document .classList.add(aliasModule.aliasedModule) import './unsupported.css' + +import './async/index' diff --git a/playground/css/package.json b/playground/css/package.json index 87e768f5938630..a0d2bb41a00edf 100644 --- a/playground/css/package.json +++ b/playground/css/package.json @@ -14,10 +14,10 @@ "devDependencies": { "css-dep": "link:./css-dep", "css-js-dep": "file:./css-js-dep", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.12", "less": "^4.1.3", "postcss-nested": "^5.0.6", - "sass": "^1.54.5", + "sass": "^1.55.0", "stylus": "^0.59.0" } } diff --git a/playground/css/sass.scss b/playground/css/sass.scss index 3c7095418e01e6..1db47622b016ad 100644 --- a/playground/css/sass.scss +++ b/playground/css/sass.scss @@ -3,6 +3,7 @@ @import 'css-dep'; // package w/ sass entry points @import 'virtual-dep'; // virtual file added through importer @import '@/pkg-dep'; // package w/out sass field +@import '@/weapp.wxss'; // wxss file .sass { /* injected via vite.config.js */ diff --git a/playground/css/vite.config.js b/playground/css/vite.config.js index d8333b07fb4d63..221c2a75187f35 100644 --- a/playground/css/vite.config.js +++ b/playground/css/vite.config.js @@ -45,9 +45,14 @@ module.exports = { preprocessorOptions: { scss: { additionalData: `$injectedColor: orange;`, - importer(url) { - if (url === 'virtual-dep') return { contents: '' } - } + importer: [ + function (url) { + return url === 'virtual-dep' ? { contents: '' } : null + }, + function (url) { + return url.endsWith('.wxss') ? { contents: '' } : null + } + ] }, styl: { additionalData: `$injectedColor ?= orange`, diff --git a/playground/css/weapp.wxss b/playground/css/weapp.wxss new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/playground/dynamic-import/__tests__/dynamic-import.spec.ts b/playground/dynamic-import/__tests__/dynamic-import.spec.ts index cec996b46a669f..8b599462470d18 100644 --- a/playground/dynamic-import/__tests__/dynamic-import.spec.ts +++ b/playground/dynamic-import/__tests__/dynamic-import.spec.ts @@ -1,5 +1,5 @@ import { expect, test } from 'vitest' -import { getColor, page, serverLogs, untilUpdated } from '~utils' +import { getColor, isBuild, page, serverLogs, untilUpdated } from '~utils' test('should load literal dynamic import', async () => { await page.click('.baz') @@ -93,6 +93,22 @@ test('should load dynamic import with vars raw', async () => { ) }) +test('should load dynamic import with vars url', async () => { + await untilUpdated( + () => page.textContent('.dynamic-import-with-vars-url'), + isBuild ? 'data:application/javascript' : '/alias/url.js', + true + ) +}) + +test('should load dynamic import with vars worker', async () => { + await untilUpdated( + () => page.textContent('.dynamic-import-with-vars-worker'), + 'load worker', + true + ) +}) + test('should load dynamic import with css in package', async () => { await page.click('.pkg-css') await untilUpdated(() => getColor('.pkg-css'), 'blue', true) diff --git a/playground/dynamic-import/alias/url.js b/playground/dynamic-import/alias/url.js new file mode 100644 index 00000000000000..c9b0c79461d91e --- /dev/null +++ b/playground/dynamic-import/alias/url.js @@ -0,0 +1 @@ +export const url = 'load url' diff --git a/playground/dynamic-import/alias/worker.js b/playground/dynamic-import/alias/worker.js new file mode 100644 index 00000000000000..6206a6536b8064 --- /dev/null +++ b/playground/dynamic-import/alias/worker.js @@ -0,0 +1,5 @@ +self.onmessage = (event) => { + self.postMessage({ + msg: 'load worker' + }) +} diff --git a/playground/dynamic-import/index.html b/playground/dynamic-import/index.html index 8eb5e60098a15c..d13e842804eaa7 100644 --- a/playground/dynamic-import/index.html +++ b/playground/dynamic-import/index.html @@ -19,6 +19,12 @@

dynamic-import-with-vars-raw

todo
+

dynamic-import-with-vars-url

+
todo
+ +

dynamic-import-with-vars-worker

+
todo
+
diff --git a/playground/dynamic-import/nested/index.js b/playground/dynamic-import/nested/index.js index baad37bc0d9228..dc4992abc85021 100644 --- a/playground/dynamic-import/nested/index.js +++ b/playground/dynamic-import/nested/index.js @@ -97,6 +97,21 @@ import(`../alias/${base}.js?raw`).then((mod) => { text('.dynamic-import-with-vars-raw', JSON.stringify(mod)) }) +base = 'url' +import(`../alias/${base}.js?url`).then((mod) => { + text('.dynamic-import-with-vars-url', JSON.stringify(mod)) +}) + +base = 'worker' +import(`../alias/${base}.js?worker`).then((workerMod) => { + const worker = new workerMod.default() + worker.postMessage('1') + worker.addEventListener('message', (ev) => { + console.log(ev) + text('.dynamic-import-with-vars-worker', JSON.stringify(ev.data)) + }) +}) + base = 'hi' import(`@/${base}.js`).then((mod) => { text('.dynamic-import-with-vars-alias', mod.hi()) diff --git a/playground/env/package.json b/playground/env/package.json index 271cbf0a7d20c0..091afe4bd08a88 100644 --- a/playground/env/package.json +++ b/playground/env/package.json @@ -3,12 +3,9 @@ "private": true, "version": "0.0.0", "scripts": { - "dev": "cross-env VITE_INLINE=inline-serve vite", - "build": "cross-env VITE_INLINE=inline-build vite build", + "dev": "VITE_INLINE=inline-serve vite", + "build": "VITE_INLINE=inline-build vite build", "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview" - }, - "devDependencies": { - "cross-env": "^7.0.3" } } diff --git a/playground/extensions/package.json b/playground/extensions/package.json index 380aaa142fd0c4..ab6e8a04d8f746 100644 --- a/playground/extensions/package.json +++ b/playground/extensions/package.json @@ -9,6 +9,6 @@ "preview": "vite preview" }, "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" } } diff --git a/playground/external/dep-that-imports-vue/package.json b/playground/external/dep-that-imports-vue/package.json index 0fcd4b186a979b..ae2c4e1312514f 100644 --- a/playground/external/dep-that-imports-vue/package.json +++ b/playground/external/dep-that-imports-vue/package.json @@ -3,6 +3,6 @@ "private": true, "version": "0.0.0", "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" } } diff --git a/playground/external/dep-that-requires-vue/package.json b/playground/external/dep-that-requires-vue/package.json index a71847a02bb969..92e8b85ceda1c6 100644 --- a/playground/external/dep-that-requires-vue/package.json +++ b/playground/external/dep-that-requires-vue/package.json @@ -3,6 +3,6 @@ "private": true, "version": "0.0.0", "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" } } diff --git a/playground/external/package.json b/playground/external/package.json index 94fdc429ce2b0b..b50c2a299bfbe0 100644 --- a/playground/external/package.json +++ b/playground/external/package.json @@ -14,6 +14,6 @@ }, "devDependencies": { "vite": "workspace:*", - "vue": "^3.2.37" + "vue": "^3.2.39" } } diff --git a/playground/fs-serve/__tests__/fs-serve.spec.ts b/playground/fs-serve/__tests__/fs-serve.spec.ts index 8fcb3f61125158..90d35d21b04773 100644 --- a/playground/fs-serve/__tests__/fs-serve.spec.ts +++ b/playground/fs-serve/__tests__/fs-serve.spec.ts @@ -1,3 +1,4 @@ +import fetch from 'node-fetch' import { beforeAll, describe, expect, test } from 'vitest' import testJSON from '../safe.json' import { isServe, page, viteTestUrl } from '~utils' @@ -97,3 +98,11 @@ describe.runIf(isServe)('main', () => { expect(await page.textContent('.unsafe-dotenv')).toBe('404') }) }) + +describe('fetch', () => { + // Note: this should pass in build too, but the test setup doesn't use Vite preview + test.runIf(isServe)('serve with configured headers', async () => { + const res = await fetch(viteTestUrl + '/src/') + expect(res.headers.get('x-served-by')).toBe('vite') + }) +}) diff --git a/playground/fs-serve/package.json b/playground/fs-serve/package.json index c50be06a8cb286..6a5d18e2303c53 100644 --- a/playground/fs-serve/package.json +++ b/playground/fs-serve/package.json @@ -6,6 +6,6 @@ "dev": "vite root", "build": "vite build root", "debug": "node --inspect-brk ../../packages/vite/bin/vite", - "preview": "vite preview" + "preview": "vite preview root" } } diff --git a/playground/fs-serve/root/vite.config.js b/playground/fs-serve/root/vite.config.js index 5712ad5acb3438..12d07754cbf10d 100644 --- a/playground/fs-serve/root/vite.config.js +++ b/playground/fs-serve/root/vite.config.js @@ -18,6 +18,14 @@ module.exports = { }, hmr: { overlay: false + }, + headers: { + 'x-served-by': 'vite' + } + }, + preview: { + headers: { + 'x-served-by': 'vite' } }, define: { diff --git a/playground/hmr/__tests__/hmr.spec.ts b/playground/hmr/__tests__/hmr.spec.ts index 3858719b772a37..ef8def29a389a5 100644 --- a/playground/hmr/__tests__/hmr.spec.ts +++ b/playground/hmr/__tests__/hmr.spec.ts @@ -627,4 +627,15 @@ if (!isBuild) { btn = await page.$('button') expect(await btn.textContent()).toBe('Compteur 0') }) + + test('handle virtual module updates', async () => { + await page.goto(viteTestUrl) + const el = await page.$('.virtual') + expect(await el.textContent()).toBe('[success]') + editFile('importedVirtual.js', (code) => code.replace('[success]', '[wow]')) + await untilUpdated(async () => { + const el = await page.$('.virtual') + return await el.textContent() + }, '[wow]') + }) } diff --git a/playground/hmr/hmr.ts b/playground/hmr/hmr.ts index 97330f05f29f64..dc3c22eac9d56e 100644 --- a/playground/hmr/hmr.ts +++ b/playground/hmr/hmr.ts @@ -1,3 +1,5 @@ +// @ts-ignore +import { virtual } from 'virtual:file' import { foo as depFoo, nestedFoo } from './hmrDep' import './importing-updated' @@ -5,6 +7,7 @@ export const foo = 1 text('.app', foo) text('.dep', depFoo) text('.nested', nestedFoo) +text('.virtual', virtual) if (import.meta.hot) { import.meta.hot.accept(({ foo }) => { diff --git a/playground/hmr/importedVirtual.js b/playground/hmr/importedVirtual.js new file mode 100644 index 00000000000000..8b0b417bc3113d --- /dev/null +++ b/playground/hmr/importedVirtual.js @@ -0,0 +1 @@ +export const virtual = '[success]' diff --git a/playground/hmr/index.html b/playground/hmr/index.html index aafeaea5b565d4..28f08014036ade 100644 --- a/playground/hmr/index.html +++ b/playground/hmr/index.html @@ -19,6 +19,7 @@
+
diff --git a/playground/hmr/vite.config.ts b/playground/hmr/vite.config.ts index 2ee03c28228ade..d68c0ed84e7135 100644 --- a/playground/hmr/vite.config.ts +++ b/playground/hmr/vite.config.ts @@ -19,6 +19,19 @@ export default defineConfig({ client.send('custom:remote-add-result', { result: a + b }) }) } + }, + { + name: 'virtual-file', + resolveId(id) { + if (id === 'virtual:file') { + return '\0virtual:file' + } + }, + load(id) { + if (id === '\0virtual:file') { + return 'import { virtual } from "/importedVirtual.js"; export { virtual };' + } + } } ] }) diff --git a/playground/html/__tests__/html.spec.ts b/playground/html/__tests__/html.spec.ts index 388496bb49900f..c4563a5f632b81 100644 --- a/playground/html/__tests__/html.spec.ts +++ b/playground/html/__tests__/html.spec.ts @@ -256,3 +256,14 @@ test('importmap', () => { 'An import map is added after module script load was triggered.' ) }) + +describe('Valid HTML', () => { + test('valid HTML is parsed', async () => { + await page.goto(viteTestUrl + '/valid.html') + expect(await page.textContent('#no-quotes-on-attr')).toBe( + 'No quotes on Attr working' + ) + + expect(await getColor('#duplicated-attrs')).toBe('green') + }) +}) diff --git a/playground/html/valid.html b/playground/html/valid.html index 9ff48bbeafba6b..a2bd28f802184e 100644 --- a/playground/html/valid.html +++ b/playground/html/valid.html @@ -5,3 +5,6 @@ + +
No quotes on Attr
+ \ No newline at end of file diff --git a/playground/html/valid.js b/playground/html/valid.js new file mode 100644 index 00000000000000..f7f62b132fbc94 --- /dev/null +++ b/playground/html/valid.js @@ -0,0 +1,3 @@ +document.getElementById( + `no-quotes-on-attr` +).innerHTML = `No quotes on Attr working` diff --git a/playground/json/package.json b/playground/json/package.json index ef60b42ff96971..c329f7c4669df3 100644 --- a/playground/json/package.json +++ b/playground/json/package.json @@ -8,13 +8,12 @@ "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview", "dev:ssr": "node server", - "serve:ssr": "cross-env NODE_ENV=production node server", + "serve:ssr": "NODE_ENV=production node server", "debug:ssr": "node --inspect-brk server" }, "devDependencies": { - "cross-env": "^7.0.3", "express": "^4.18.1", "json-module": "file:./json-module", - "vue": "^3.2.37" + "vue": "^3.2.39" } } diff --git a/playground/multiple-entrypoints/package.json b/playground/multiple-entrypoints/package.json index 88896854311469..05a184d7fb2c9f 100644 --- a/playground/multiple-entrypoints/package.json +++ b/playground/multiple-entrypoints/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "fast-glob": "^3.2.11", - "sass": "^1.54.5" + "fast-glob": "^3.2.12", + "sass": "^1.55.0" } } diff --git a/playground/object-hooks/package.json b/playground/object-hooks/package.json index 380aaa142fd0c4..ab6e8a04d8f746 100644 --- a/playground/object-hooks/package.json +++ b/playground/object-hooks/package.json @@ -9,6 +9,6 @@ "preview": "vite preview" }, "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" } } diff --git a/playground/optimize-deps/package.json b/playground/optimize-deps/package.json index 2ece5488da5425..4e0df0ab00e553 100644 --- a/playground/optimize-deps/package.json +++ b/playground/optimize-deps/package.json @@ -28,12 +28,12 @@ "added-in-entries": "file:./added-in-entries", "lodash-es": "^4.17.21", "nested-exclude": "file:./nested-exclude", - "phoenix": "^1.6.11", + "phoenix": "^1.6.12", "react": "^18.2.0", "react-dom": "^18.2.0", "resolve-linked": "workspace:0.0.0", "url": "^0.11.0", - "vue": "^3.2.37", + "vue": "^3.2.39", "vuex": "^4.0.2", "lodash": "^4.17.21", "lodash.clonedeep": "^4.5.0" diff --git a/playground/optimize-deps/vite.config.js b/playground/optimize-deps/vite.config.js index 84805e21560a72..d8e575271f2572 100644 --- a/playground/optimize-deps/vite.config.js +++ b/playground/optimize-deps/vite.config.js @@ -62,6 +62,12 @@ module.exports = { res.statusCode = 200 res.end('pong') }) + }, + configurePreviewServer({ middlewares }) { + middlewares.use('/ping', (_, res) => { + res.statusCode = 200 + res.end('pong') + }) } }, { diff --git a/playground/preload/package.json b/playground/preload/package.json index 07fad09b3b6f3f..154dd22889756e 100644 --- a/playground/preload/package.json +++ b/playground/preload/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "vue": "^3.2.37", + "vue": "^3.2.39", "vue-router": "^4.1.5" }, "devDependencies": { diff --git a/playground/react-emotion/package.json b/playground/react-emotion/package.json index bca5d25bc6a3e9..842f7c6402d84e 100644 --- a/playground/react-emotion/package.json +++ b/playground/react-emotion/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@emotion/react": "^11.10.0", + "@emotion/react": "^11.10.4", "react": "^18.2.0", "react-dom": "^18.2.0", "react-switch": "^7.0.0" diff --git a/playground/react-sourcemap/package.json b/playground/react-sourcemap/package.json index 91aa3331b877b4..70398d97257914 100644 --- a/playground/react-sourcemap/package.json +++ b/playground/react-sourcemap/package.json @@ -4,9 +4,9 @@ "version": "0.0.0", "scripts": { "dev": "vite", - "dev:classic": "cross-env USE_CLASSIC=1 vite", + "dev:classic": "USE_CLASSIC=1 vite", "build": "vite build", - "build:classic": "cross-env USE_CLASSIC=1 vite build", + "build:classic": "USE_CLASSIC=1 vite build", "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview" }, @@ -15,7 +15,6 @@ "react-dom": "^18.2.0" }, "devDependencies": { - "@vitejs/plugin-react": "workspace:*", - "cross-env": "^7.0.3" + "@vitejs/plugin-react": "workspace:*" } } diff --git a/playground/resolve/package.json b/playground/resolve/package.json index 1b8e76e353a7ff..760fba0c02f5a0 100644 --- a/playground/resolve/package.json +++ b/playground/resolve/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@babel/runtime": "^7.18.9", + "@babel/runtime": "^7.19.0", "es5-ext": "0.10.62", "normalize.css": "^8.0.1", "require-pkg-with-module-field": "link:./require-pkg-with-module-field", diff --git a/playground/ssr-deps/package.json b/playground/ssr-deps/package.json index ac82dadbcead63..785806c3bab816 100644 --- a/playground/ssr-deps/package.json +++ b/playground/ssr-deps/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "node server", - "serve": "cross-env NODE_ENV=production node server", + "serve": "NODE_ENV=production node server", "debug": "node --inspect-brk server" }, "dependencies": { @@ -32,7 +32,6 @@ "pkg-exports": "file:./pkg-exports" }, "devDependencies": { - "cross-env": "^7.0.3", "express": "^4.18.1" } } diff --git a/playground/ssr-html/__tests__/ssr-html.spec.ts b/playground/ssr-html/__tests__/ssr-html.spec.ts index f29b0ac33cf5d8..94e64bdb5d8b8b 100644 --- a/playground/ssr-html/__tests__/ssr-html.spec.ts +++ b/playground/ssr-html/__tests__/ssr-html.spec.ts @@ -1,7 +1,7 @@ import fetch from 'node-fetch' import { describe, expect, test } from 'vitest' import { port } from './serve' -import { page } from '~utils' +import { editFile, isServe, page, untilUpdated } from '~utils' const url = `http://localhost:${port}` @@ -39,3 +39,19 @@ describe('injected inline scripts', () => { } }) }) + +describe.runIf(isServe)('hmr', () => { + test('handle virtual module updates', async () => { + await page.goto(url) + const el = await page.$('.virtual') + expect(await el.textContent()).toBe('[success]') + editFile('src/importedVirtual.js', (code) => + code.replace('[success]', '[wow]') + ) + await page.waitForNavigation() + await untilUpdated(async () => { + const el = await page.$('.virtual') + return await el.textContent() + }, '[wow]') + }) +}) diff --git a/playground/ssr-html/index.html b/playground/ssr-html/index.html index 995c828caae1a8..cca83257565a95 100644 --- a/playground/ssr-html/index.html +++ b/playground/ssr-html/index.html @@ -12,5 +12,6 @@

SSR Dynamic HTML

+
diff --git a/playground/ssr-html/package.json b/playground/ssr-html/package.json index 73614bab95ca5a..a800fe8477a416 100644 --- a/playground/ssr-html/package.json +++ b/playground/ssr-html/package.json @@ -5,12 +5,11 @@ "type": "module", "scripts": { "dev": "node server", - "serve": "cross-env NODE_ENV=production node server", + "serve": "NODE_ENV=production node server", "debug": "node --inspect-brk server" }, "dependencies": {}, "devDependencies": { - "cross-env": "^7.0.3", "express": "^4.18.1" } } diff --git a/playground/ssr-html/server.js b/playground/ssr-html/server.js index 6c6ddca9addc1d..7549fbf07cc388 100644 --- a/playground/ssr-html/server.js +++ b/playground/ssr-html/server.js @@ -48,7 +48,22 @@ export async function createServer(root = process.cwd(), hmrPort) { port: hmrPort } }, - appType: 'custom' + appType: 'custom', + plugins: [ + { + name: 'virtual-file', + resolveId(id) { + if (id === 'virtual:file') { + return '\0virtual:file' + } + }, + load(id) { + if (id === '\0virtual:file') { + return 'import { virtual } from "/src/importedVirtual.js"; export { virtual };' + } + } + } + ] }) // use vite's connect instance as middleware app.use(vite.middlewares) diff --git a/playground/ssr-html/src/app.js b/playground/ssr-html/src/app.js index 5b0175bb863d70..8612afffaea5ba 100644 --- a/playground/ssr-html/src/app.js +++ b/playground/ssr-html/src/app.js @@ -1,3 +1,11 @@ +import { virtual } from 'virtual:file' + const p = document.createElement('p') p.innerHTML = '✅ Dynamically injected script from file' document.body.appendChild(p) + +text('.virtual', virtual) + +function text(el, text) { + document.querySelector(el).textContent = text +} diff --git a/playground/ssr-html/src/importedVirtual.js b/playground/ssr-html/src/importedVirtual.js new file mode 100644 index 00000000000000..8b0b417bc3113d --- /dev/null +++ b/playground/ssr-html/src/importedVirtual.js @@ -0,0 +1 @@ +export const virtual = '[success]' diff --git a/playground/ssr-pug/package.json b/playground/ssr-pug/package.json index 547e8cbf7e94b2..5b64c6535cbfe9 100644 --- a/playground/ssr-pug/package.json +++ b/playground/ssr-pug/package.json @@ -5,11 +5,10 @@ "type": "module", "scripts": { "dev": "node server", - "serve": "cross-env NODE_ENV=production node server", + "serve": "NODE_ENV=production node server", "debug": "node --inspect-brk server" }, "devDependencies": { - "cross-env": "^7.0.3", "express": "^4.18.1", "pug": "^3.0.2" } diff --git a/playground/ssr-react/package.json b/playground/ssr-react/package.json index 3fd0f7134a2de9..d20ccde7efc1dc 100644 --- a/playground/ssr-react/package.json +++ b/playground/ssr-react/package.json @@ -9,18 +9,17 @@ "build:client": "vite build --outDir dist/client", "build:server": "vite build --ssr src/entry-server.jsx --outDir dist/server", "generate": "vite build --outDir dist/static && npm run build:server && node prerender", - "serve": "cross-env NODE_ENV=production node server", + "serve": "NODE_ENV=production node server", "debug": "node --inspect-brk server" }, "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.3.0" + "react-router-dom": "^6.4.1" }, "devDependencies": { "@vitejs/plugin-react": "workspace:*", "compression": "^1.7.4", - "cross-env": "^7.0.3", "express": "^4.18.1", "serve-static": "^1.15.0" } diff --git a/playground/ssr-resolve/__tests__/ssr-resolve.spec.ts b/playground/ssr-resolve/__tests__/ssr-resolve.spec.ts new file mode 100644 index 00000000000000..a560173281ebe6 --- /dev/null +++ b/playground/ssr-resolve/__tests__/ssr-resolve.spec.ts @@ -0,0 +1,13 @@ +import { expect, test } from 'vitest' +import { isBuild, readFile, testDir } from '~utils' + +test.runIf(isBuild)('correctly resolve entrypoints', async () => { + const contents = readFile('dist/main.mjs') + + const _ = `['"]` + expect(contents).toMatch(new RegExp(`from ${_}entries/dir/index.js${_}`)) + expect(contents).toMatch(new RegExp(`from ${_}entries/file.js${_}`)) + expect(contents).toMatch(new RegExp(`from ${_}pkg-exports/entry${_}`)) + + await expect(import(`${testDir}/dist/main.mjs`)).resolves.toBeTruthy() +}) diff --git a/playground/ssr-resolve/entries/dir/index.js b/playground/ssr-resolve/entries/dir/index.js new file mode 100644 index 00000000000000..29a5acb7305fc0 --- /dev/null +++ b/playground/ssr-resolve/entries/dir/index.js @@ -0,0 +1 @@ +module.exports = __filename.slice(__filename.lastIndexOf('entries')) diff --git a/playground/ssr-resolve/entries/file.js b/playground/ssr-resolve/entries/file.js new file mode 100644 index 00000000000000..29a5acb7305fc0 --- /dev/null +++ b/playground/ssr-resolve/entries/file.js @@ -0,0 +1 @@ +module.exports = __filename.slice(__filename.lastIndexOf('entries')) diff --git a/playground/ssr-resolve/entries/package.json b/playground/ssr-resolve/entries/package.json new file mode 100644 index 00000000000000..2e6761d4a6b63c --- /dev/null +++ b/playground/ssr-resolve/entries/package.json @@ -0,0 +1,5 @@ +{ + "name": "entries", + "private": true, + "version": "0.0.0" +} diff --git a/playground/ssr-resolve/main.js b/playground/ssr-resolve/main.js new file mode 100644 index 00000000000000..c6ba016ebd6ad5 --- /dev/null +++ b/playground/ssr-resolve/main.js @@ -0,0 +1,12 @@ +// no `exports` key, should resolve to entries/dir/index.js +import dirEntry from 'entries/dir' +// no `exports` key, should resolve to entries/file.js +import fileEntry from 'entries/file' +// has `exports` key, should resolve to pkg-exports/entry +import pkgExportsEntry from 'pkg-exports/entry' + +export default ` + entries/dir: ${dirEntry} + entries/file: ${fileEntry} + pkg-exports/entry: ${pkgExportsEntry} +` diff --git a/playground/ssr-resolve/package.json b/playground/ssr-resolve/package.json new file mode 100644 index 00000000000000..f022293b5b4f08 --- /dev/null +++ b/playground/ssr-resolve/package.json @@ -0,0 +1,13 @@ +{ + "name": "ssr-resolve", + "private": true, + "version": "0.0.0", + "scripts": { + "build": "vite build", + "debug": "node --inspect-brk ../../packages/vite/bin/vite build" + }, + "dependencies": { + "entries": "file:./entries", + "pkg-exports": "file:./pkg-exports" + } +} diff --git a/playground/ssr-resolve/pkg-exports/entry.js b/playground/ssr-resolve/pkg-exports/entry.js new file mode 100644 index 00000000000000..880189c611bf02 --- /dev/null +++ b/playground/ssr-resolve/pkg-exports/entry.js @@ -0,0 +1 @@ +module.exports = 'pkg-exports entry' diff --git a/playground/ssr-resolve/pkg-exports/index.js b/playground/ssr-resolve/pkg-exports/index.js new file mode 100644 index 00000000000000..c5f2ccf114fb46 --- /dev/null +++ b/playground/ssr-resolve/pkg-exports/index.js @@ -0,0 +1 @@ +module.exports = undefined diff --git a/playground/ssr-resolve/pkg-exports/package.json b/playground/ssr-resolve/pkg-exports/package.json new file mode 100644 index 00000000000000..227450812e416c --- /dev/null +++ b/playground/ssr-resolve/pkg-exports/package.json @@ -0,0 +1,9 @@ +{ + "name": "pkg-exports", + "private": true, + "version": "0.0.0", + "exports": { + ".": "./index.js", + "./entry": "./entry.js" + } +} diff --git a/playground/ssr-resolve/vite.config.js b/playground/ssr-resolve/vite.config.js new file mode 100644 index 00000000000000..430c2331977703 --- /dev/null +++ b/playground/ssr-resolve/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' + +export default defineConfig({ + build: { + ssr: './main.js' + } +}) diff --git a/playground/ssr-vue/__tests__/ssr-vue.spec.ts b/playground/ssr-vue/__tests__/ssr-vue.spec.ts index d812a167d17fd4..2b66edc4d469f7 100644 --- a/playground/ssr-vue/__tests__/ssr-vue.spec.ts +++ b/playground/ssr-vue/__tests__/ssr-vue.spec.ts @@ -161,14 +161,18 @@ test('hydration', async () => { expect(await page.textContent('button')).toMatch('1') }) -test('hmr', async () => { - // This is test is flaky in Mac CI, but can't be reproduced locally. Wait until - // network idle to avoid the issue. TODO: This may be caused by a bug when - // modifying a file while loading, we should remove this guard - await page.goto(url, { waitUntil: 'networkidle' }) - editFile('src/pages/Home.vue', (code) => code.replace('Home', 'changed')) - await untilUpdated(() => page.textContent('h1'), 'changed') -}) +test( + 'hmr', + async () => { + // This is test is flaky in Mac CI, but can't be reproduced locally. Wait until + // network idle to avoid the issue. TODO: This may be caused by a bug when + // modifying a file while loading, we should remove this guard + await page.goto(url, { waitUntil: 'networkidle' }) + editFile('src/pages/Home.vue', (code) => code.replace('Home', 'changed')) + await untilUpdated(() => page.textContent('h1'), 'changed') + }, + { retry: 3 } +) test('client navigation', async () => { await page.goto(url) diff --git a/playground/ssr-vue/package.json b/playground/ssr-vue/package.json index 16beb1dbcca4bc..bb4edd525549a1 100644 --- a/playground/ssr-vue/package.json +++ b/playground/ssr-vue/package.json @@ -11,12 +11,12 @@ "build:server": "vite build --ssr src/entry-server.js --outDir dist/server", "build:server:noExternal": "vite build --config vite.config.noexternal.js --ssr src/entry-server.js --outDir dist/server", "generate": "vite build --ssrManifest --outDir dist/static && npm run build:server && node prerender", - "serve": "cross-env NODE_ENV=production node server", + "serve": "NODE_ENV=production node server", "debug": "node --inspect-brk server" }, "dependencies": { "example-external-component": "file:example-external-component", - "vue": "^3.2.37", + "vue": "^3.2.39", "vue-router": "^4.1.5", "vuex": "^4.0.2" }, @@ -24,7 +24,6 @@ "@vitejs/plugin-vue": "workspace:*", "@vitejs/plugin-vue-jsx": "workspace:*", "compression": "^1.7.4", - "cross-env": "^7.0.3", "dep-import-type": "link:./dep-import-type", "express": "^4.18.1", "serve-static": "^1.15.0" diff --git a/playground/ssr-vue/src/entry-server.js b/playground/ssr-vue/src/entry-server.js index ec0810f885863f..e44c9abd3eb114 100644 --- a/playground/ssr-vue/src/entry-server.js +++ b/playground/ssr-vue/src/entry-server.js @@ -6,7 +6,7 @@ export async function render(url, manifest) { const { app, router } = createApp() // set the router to the desired URL before rendering - router.push(url) + await router.push(url) await router.isReady() // passing SSR context object which will be available via useSSRContext() diff --git a/playground/ssr-webworker/package.json b/playground/ssr-webworker/package.json index 9f6c8c00534eab..66fdc8b7afaa99 100644 --- a/playground/ssr-webworker/package.json +++ b/playground/ssr-webworker/package.json @@ -4,14 +4,13 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "cross-env DEV=1 node worker", + "dev": "DEV=1 node worker", "build:worker": "vite build --ssr src/entry-worker.jsx --outDir dist/worker" }, "dependencies": { "react": "^18.2.0" }, "devDependencies": { - "cross-env": "^7.0.3", "miniflare": "^1.4.1", "resolve-linked": "workspace:*" } diff --git a/playground/tailwind/package.json b/playground/tailwind/package.json index 1f4246c162273c..795cdea839bc90 100644 --- a/playground/tailwind/package.json +++ b/playground/tailwind/package.json @@ -9,9 +9,9 @@ "preview": "vite preview" }, "dependencies": { - "autoprefixer": "^10.4.8", + "autoprefixer": "^10.4.12", "tailwindcss": "^3.1.8", - "vue": "^3.2.37", + "vue": "^3.2.39", "vue-router": "^4.1.5" }, "devDependencies": { diff --git a/playground/test-utils.ts b/playground/test-utils.ts index c7c3288fafe2ff..c27e8ffe8285df 100644 --- a/playground/test-utils.ts +++ b/playground/test-utils.ts @@ -29,7 +29,8 @@ export const ports = { 'ssr-vue': 9604, 'ssr-webworker': 9605, 'css/postcss-caching': 5005, - 'css/postcss-plugins-different-dir': 5006 + 'css/postcss-plugins-different-dir': 5006, + 'css/dynamic-import': 5007 } export const hmrPorts = { 'optimize-missing-deps': 24680, diff --git a/playground/vitestGlobalSetup.ts b/playground/vitestGlobalSetup.ts index 05bbf767423487..611b32064971c0 100644 --- a/playground/vitestGlobalSetup.ts +++ b/playground/vitestGlobalSetup.ts @@ -42,7 +42,7 @@ export async function setup(): Promise { } export async function teardown(): Promise { - browserServer?.close() + await browserServer?.close() if (!process.env.VITE_PRESERVE_BUILD_ARTIFACTS) { fs.removeSync(path.resolve(__dirname, '../playground-temp')) } diff --git a/playground/vitestSetup.ts b/playground/vitestSetup.ts index 57d44f9a91c898..9cfcbed855e6dd 100644 --- a/playground/vitestSetup.ts +++ b/playground/vitestSetup.ts @@ -1,7 +1,6 @@ -import * as http from 'node:http' +import type * as http from 'node:http' import path, { dirname, join, resolve } from 'node:path' import os from 'node:os' -import sirv from 'sirv' import fs from 'fs-extra' import { chromium } from 'playwright-chromium' import type { @@ -12,7 +11,13 @@ import type { UserConfig, ViteDevServer } from 'vite' -import { build, createServer, loadConfigFromFile, mergeConfig } from 'vite' +import { + build, + createServer, + loadConfigFromFile, + mergeConfig, + preview +} from 'vite' import type { Browser, Page } from 'playwright-chromium' import type { RollupError, RollupWatcher, RollupWatcherEvent } from 'rollup' import type { File } from 'vitest' @@ -172,7 +177,7 @@ beforeAll(async (s) => { serverLogs.length = 0 await page?.close() await server?.close() - watcher?.close() + await watcher?.close() if (browser) { await browser.close() } @@ -263,57 +268,18 @@ export async function startDefaultServe(): Promise { watcher = rollupOutput as RollupWatcher await notifyRebuildComplete(watcher) } - viteTestUrl = await startStaticServer(testConfig) - await page.goto(viteTestUrl) - } -} - -function startStaticServer(config: UserConfig): Promise { - // fallback internal base to '' - let base = config?.base - if (!base || base === '/' || base === './') { - base = '' - } - - // @ts-ignore - if (config && config.__test__) { // @ts-ignore - config.__test__() - } - - // start static file server - const serve = sirv(resolve(rootDir, 'dist'), { - dev: !!config?.build?.watch - }) - // @ts-ignore - const baseDir = config?.testConfig?.baseRoute - const httpServer = (server = http.createServer((req, res) => { - if (req.url === '/ping') { - res.statusCode = 200 - res.end('pong') - } else { - if (baseDir) { - req.url = path.posix.join(baseDir, req.url) - } - serve(req, res) - } - })) - let port = 4173 - return new Promise((resolve, reject) => { - const onError = (e: any) => { - if (e.code === 'EADDRINUSE') { - httpServer.close() - httpServer.listen(++port) - } else { - reject(e) - } + if (config && config.__test__) { + // @ts-ignore + config.__test__() } - httpServer.on('error', onError) - httpServer.listen(port, () => { - httpServer.removeListener('error', onError) - resolve(`http://localhost:${port}${base}`) - }) - }) + const _nodeEnv = process.env.NODE_ENV + const previewServer = await preview(testConfig) + // prevent preview change NODE_ENV + process.env.NODE_ENV = _nodeEnv + viteTestUrl = previewServer.resolvedUrls.local[0] + await page.goto(viteTestUrl) + } } /** diff --git a/playground/vue-jsx/package.json b/playground/vue-jsx/package.json index af84606ab64eea..a89519f4e5399b 100644 --- a/playground/vue-jsx/package.json +++ b/playground/vue-jsx/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" }, "devDependencies": { "@vitejs/plugin-vue": "workspace:*", diff --git a/playground/vue-legacy/package.json b/playground/vue-legacy/package.json index 201a5ae47bb293..e90be717245628 100644 --- a/playground/vue-legacy/package.json +++ b/playground/vue-legacy/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" }, "devDependencies": { "@vitejs/plugin-vue": "workspace:*", diff --git a/playground/vue-lib/package.json b/playground/vue-lib/package.json index c10f1729c5a71a..d59f3d626160d4 100644 --- a/playground/vue-lib/package.json +++ b/playground/vue-lib/package.json @@ -8,7 +8,7 @@ "build-consumer": "vite build --config ./vite.config.consumer.ts" }, "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" }, "devDependencies": { "@vitejs/plugin-vue": "workspace:*" diff --git a/playground/vue-server-origin/package.json b/playground/vue-server-origin/package.json index 8d379e3ee194d1..2056ec63aa5c08 100644 --- a/playground/vue-server-origin/package.json +++ b/playground/vue-server-origin/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" }, "devDependencies": { "@vitejs/plugin-vue": "workspace:*" diff --git a/playground/vue-sourcemap/package.json b/playground/vue-sourcemap/package.json index db8ae355815d52..da314b7c708ffa 100644 --- a/playground/vue-sourcemap/package.json +++ b/playground/vue-sourcemap/package.json @@ -12,9 +12,9 @@ "@vitejs/plugin-vue": "workspace:*", "less": "^4.1.3", "postcss-nested": "^5.0.6", - "sass": "^1.54.5" + "sass": "^1.55.0" }, "dependencies": { - "vue": "^3.2.37" + "vue": "^3.2.39" } } diff --git a/playground/vue/package.json b/playground/vue/package.json index ae3f05e966bfdc..723e2f4f8f3f91 100644 --- a/playground/vue/package.json +++ b/playground/vue/package.json @@ -10,14 +10,14 @@ }, "dependencies": { "lodash-es": "^4.17.21", - "vue": "^3.2.37" + "vue": "^3.2.39" }, "devDependencies": { "@vitejs/plugin-vue": "workspace:*", "js-yaml": "^4.1.0", "less": "^4.1.3", "pug": "^3.0.2", - "sass": "^1.54.5", + "sass": "^1.55.0", "stylus": "^0.59.0" } } diff --git a/playground/vue/tsconfig.json b/playground/vue/tsconfig.json new file mode 100644 index 00000000000000..5f90cb166d696b --- /dev/null +++ b/playground/vue/tsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + // esbuild transpile should ignore this + "target": "ES5" + }, + "include": ["src"] +} diff --git a/playground/worker/__tests__/es/es-worker.spec.ts b/playground/worker/__tests__/es/es-worker.spec.ts index 5dd4d4c045d834..eb8b9f650c236f 100644 --- a/playground/worker/__tests__/es/es-worker.spec.ts +++ b/playground/worker/__tests__/es/es-worker.spec.ts @@ -92,6 +92,16 @@ describe.runIf(isBuild)('build', () => { }) test('module worker', async () => { + await untilUpdated( + () => page.textContent('.worker-import-meta-url'), + 'A string', + true + ) + await untilUpdated( + () => page.textContent('.worker-import-meta-url-resolve'), + 'A string', + true + ) await untilUpdated( () => page.textContent('.shared-worker-import-meta-url'), 'A string', diff --git a/playground/worker/__tests__/iife/iife-worker.spec.ts b/playground/worker/__tests__/iife/iife-worker.spec.ts index b3c1ecfe28d632..d6a4e784de8380 100644 --- a/playground/worker/__tests__/iife/iife-worker.spec.ts +++ b/playground/worker/__tests__/iife/iife-worker.spec.ts @@ -79,6 +79,14 @@ describe.runIf(isBuild)('build', () => { }) test('module worker', async () => { + await untilUpdated( + () => page.textContent('.worker-import-meta-url'), + 'A string' + ) + await untilUpdated( + () => page.textContent('.worker-import-meta-url-resolve'), + 'A string' + ) await untilUpdated( () => page.textContent('.shared-worker-import-meta-url'), 'A string' diff --git a/playground/worker/index.html b/playground/worker/index.html index 1b196e074d0678..5c9c85b4799fd5 100644 --- a/playground/worker/index.html +++ b/playground/worker/index.html @@ -44,6 +44,12 @@

format iife:

+

+ new Worker(new URL('@/url-worker', import.meta.url), { type: 'module' }) + .worker-import-meta-url-resolve +

+ +

new SharedWorker(new URL('./url-shared-worker.js', import.meta.url), { type: 'module' }) diff --git a/playground/worker/package.json b/playground/worker/package.json index 701fca25628e76..e3fe8121a49d46 100644 --- a/playground/worker/package.json +++ b/playground/worker/package.json @@ -9,18 +9,18 @@ "dev:es": "vite --config ./vite.config-es.js dev", "build:es": "vite --config ./vite.config-es.js build", "preview:es": "vite --config ./vite.config-es.js preview", - "dev:sourcemap": "cross-env WORKER_MODE=sourcemap vite --config ./vite.config-sourcemap.js dev", - "build:sourcemap": "cross-env WORKER_MODE=sourcemap vite --config ./vite.config-sourcemap.js build", - "preview:sourcemap": "cross-env WORKER_MODE=sourcemap vite --config ./vite.config-sourcemap.js preview", - "dev:sourcemap-hidden": "cross-env WORKER_MODE=hidden vite --config ./vite.config-sourcemap.js dev", - "build:sourcemap-hidden": "cross-env WORKER_MODE=hidden vite --config ./vite.config-sourcemap.js build", - "preview:sourcemap-hidden": "cross-env WORKER_MODE=hidden vite --config ./vite.config-sourcemap.js preview", - "dev:sourcemap-inline": "cross-env WORKER_MODE=inline vite --config ./vite.config-sourcemap.js dev", - "build:sourcemap-inline": "cross-env WORKER_MODE=inline vite --config ./vite.config-sourcemap.js build", - "preview:sourcemap-inline": "cross-env WORKER_MODE=inline vite --config ./vite.config-sourcemap.js preview", - "dev:relative-base": "cross-env WORKER_MODE=inline vite --config ./vite.config-relative-base.js dev", - "build:relative-base": "cross-env WORKER_MODE=inline vite --config ./vite.config-relative-base.js build", - "preview:relative-base": "cross-env WORKER_MODE=inline vite --config ./vite.config-relative-base.js preview", + "dev:sourcemap": "WORKER_MODE=sourcemap vite --config ./vite.config-sourcemap.js dev", + "build:sourcemap": "WORKER_MODE=sourcemap vite --config ./vite.config-sourcemap.js build", + "preview:sourcemap": "WORKER_MODE=sourcemap vite --config ./vite.config-sourcemap.js preview", + "dev:sourcemap-hidden": "WORKER_MODE=hidden vite --config ./vite.config-sourcemap.js dev", + "build:sourcemap-hidden": "WORKER_MODE=hidden vite --config ./vite.config-sourcemap.js build", + "preview:sourcemap-hidden": "WORKER_MODE=hidden vite --config ./vite.config-sourcemap.js preview", + "dev:sourcemap-inline": "WORKER_MODE=inline vite --config ./vite.config-sourcemap.js dev", + "build:sourcemap-inline": "WORKER_MODE=inline vite --config ./vite.config-sourcemap.js build", + "preview:sourcemap-inline": "WORKER_MODE=inline vite --config ./vite.config-sourcemap.js preview", + "dev:relative-base": "WORKER_MODE=inline vite --config ./vite.config-relative-base.js dev", + "build:relative-base": "WORKER_MODE=inline vite --config ./vite.config-relative-base.js build", + "preview:relative-base": "WORKER_MODE=inline vite --config ./vite.config-relative-base.js preview", "debug": "node --inspect-brk ../../packages/vite/bin/vite" }, "dependencies": { diff --git a/playground/worker/vite.config-es.js b/playground/worker/vite.config-es.js index 6d6704de0bc213..ecc2b4db846c6a 100644 --- a/playground/worker/vite.config-es.js +++ b/playground/worker/vite.config-es.js @@ -4,6 +4,11 @@ const vite = require('vite') module.exports = vite.defineConfig({ base: '/es/', enforce: 'pre', + resolve: { + alias: { + '@': __dirname + } + }, worker: { format: 'es', plugins: [vueJsx()], diff --git a/playground/worker/vite.config-iife.js b/playground/worker/vite.config-iife.js index 3a0578c329f8ea..0e1d59ba688564 100644 --- a/playground/worker/vite.config-iife.js +++ b/playground/worker/vite.config-iife.js @@ -3,6 +3,11 @@ const vite = require('vite') module.exports = vite.defineConfig({ base: '/iife/', + resolve: { + alias: { + '@': __dirname + } + }, worker: { format: 'iife', plugins: [ diff --git a/playground/worker/vite.config-relative-base.js b/playground/worker/vite.config-relative-base.js index 4c20940749eacc..16017c578a076c 100644 --- a/playground/worker/vite.config-relative-base.js +++ b/playground/worker/vite.config-relative-base.js @@ -4,6 +4,11 @@ const vite = require('vite') module.exports = vite.defineConfig({ base: './', + resolve: { + alias: { + '@': __dirname + } + }, worker: { format: 'es', plugins: [vueJsx()], diff --git a/playground/worker/vite.config-sourcemap.js b/playground/worker/vite.config-sourcemap.js index c4cf61f6dea586..07d57bf4ec96f1 100644 --- a/playground/worker/vite.config-sourcemap.js +++ b/playground/worker/vite.config-sourcemap.js @@ -10,6 +10,11 @@ module.exports = vite.defineConfig((sourcemap) => { base: `/iife-${ typeof sourcemap === 'boolean' ? 'sourcemap' : 'sourcemap-' + sourcemap }/`, + resolve: { + alias: { + '@': __dirname + } + }, worker: { format: 'iife', plugins: [vueJsx()], diff --git a/playground/worker/worker/main-classic.js b/playground/worker/worker/main-classic.js index 4ef7776a56876e..1adbd45f08d3aa 100644 --- a/playground/worker/worker/main-classic.js +++ b/playground/worker/worker/main-classic.js @@ -16,11 +16,13 @@ classicWorker.addEventListener('message', ({ data }) => { }) classicWorker.postMessage('ping') +// prettier-ignore +// test trailing comma const classicSharedWorker = new SharedWorker( new URL('../classic-shared-worker.js', import.meta.url), { type: 'classic' - } + }, ) classicSharedWorker.port.addEventListener('message', (ev) => { text('.classic-shared-worker', JSON.stringify(ev.data)) diff --git a/playground/worker/worker/main-module.js b/playground/worker/worker/main-module.js index a1205a4a7e46b8..adf1bea60b1a6b 100644 --- a/playground/worker/worker/main-module.js +++ b/playground/worker/worker/main-module.js @@ -65,6 +65,15 @@ w.addEventListener('message', (ev) => text('.worker-import-meta-url', JSON.stringify(ev.data)) ) +// url import worker with alias path +const wResolve = new Worker( + new URL('@/url-worker.js', import.meta.url), + /* @vite-ignore */ workerOptions +) +wResolve.addEventListener('message', (ev) => + text('.worker-import-meta-url-resolve', JSON.stringify(ev.data)) +) + const genWorkerName = () => 'module' const w2 = new SharedWorker( new URL('../url-shared-worker.js', import.meta.url), @@ -78,3 +87,15 @@ w2.port.addEventListener('message', (ev) => { text('.shared-worker-import-meta-url', JSON.stringify(ev.data)) }) w2.port.start() + +const workers = import.meta.glob('../importMetaGlobEager.*.js', { + as: 'worker', + eager: true +}) +const importMetaGlobEagerWorker = new workers[ + '../importMetaGlobEager.worker.js' +].default() +importMetaGlobEagerWorker.postMessage('1') +importMetaGlobEagerWorker.addEventListener('message', (e) => { + text('.importMetaGlobEager-worker', JSON.stringify(e.data)) +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7a2ae5c67ba66..3eeeda1cd37e39 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,9 +10,9 @@ importers: .: specifiers: - '@babel/types': ^7.18.13 - '@microsoft/api-extractor': ^7.29.5 - '@rollup/plugin-typescript': ^8.4.0 + '@babel/types': ^7.19.0 + '@microsoft/api-extractor': ^7.31.2 + '@rollup/plugin-typescript': ^8.5.0 '@types/babel__core': ^7.1.19 '@types/babel__standalone': ^7.1.4 '@types/convert-source-map': ^1.5.2 @@ -25,30 +25,30 @@ importers: '@types/micromatch': ^4.0.2 '@types/minimist': ^1.2.2 '@types/node': ^17.0.42 - '@types/prompts': ^2.4.0 + '@types/picomatch': ^2.3.0 + '@types/prompts': ^2.0.14 '@types/resolve': ^1.20.2 '@types/sass': ~1.43.1 '@types/semver': ^7.3.12 '@types/stylus': ^0.48.38 '@types/ws': ^8.5.3 - '@typescript-eslint/eslint-plugin': ^5.35.1 - '@typescript-eslint/parser': ^5.35.1 + '@typescript-eslint/eslint-plugin': ^5.38.0 + '@typescript-eslint/parser': ^5.38.0 conventional-changelog-cli: ^2.2.2 - cross-env: ^7.0.3 esbuild: ^0.14.47 - eslint: ^8.23.0 - eslint-define-config: ^1.6.0 + eslint: ^8.23.1 + eslint-define-config: ^1.7.0 eslint-plugin-import: ^2.26.0 eslint-plugin-node: ^11.1.0 execa: ^6.1.0 - fast-glob: ^3.2.11 + fast-glob: ^3.2.12 fs-extra: ^10.1.0 lint-staged: ^13.0.3 minimist: ^1.2.6 npm-run-all: ^4.1.5 picocolors: ^1.0.0 - playwright-chromium: ^1.25.1 - pnpm: ^7.9.5 + playwright-chromium: ^1.26.0 + pnpm: ^7.12.2 prettier: 2.7.1 prompts: ^2.4.2 resolve: ^1.22.1 @@ -58,17 +58,17 @@ importers: semver: ^7.3.7 simple-git-hooks: ^2.8.0 tslib: ^2.4.0 - tsx: ^3.8.2 + tsx: ^3.9.0 typescript: ^4.6.4 - unbuild: ^0.8.9 + unbuild: ^0.8.11 vite: workspace:* - vitepress: ^1.0.0-alpha.12 - vitest: ^0.22.1 - vue: ^3.2.37 + vitepress: ^1.0.0-alpha.15 + vitest: ^0.23.4 + vue: ^3.2.39 devDependencies: - '@babel/types': 7.18.13 - '@microsoft/api-extractor': 7.29.5 - '@rollup/plugin-typescript': 8.4.0_7emp2e44zzc74lnyjhc37gdv4y + '@babel/types': 7.19.0 + '@microsoft/api-extractor': 7.31.2 + '@rollup/plugin-typescript': 8.5.0_7emp2e44zzc74lnyjhc37gdv4y '@types/babel__core': 7.1.19 '@types/babel__standalone': 7.1.4 '@types/convert-source-map': 1.5.2 @@ -81,30 +81,30 @@ importers: '@types/micromatch': 4.0.2 '@types/minimist': 1.2.2 '@types/node': 17.0.42 - '@types/prompts': 2.4.0 + '@types/picomatch': 2.3.0 + '@types/prompts': 2.0.14 '@types/resolve': 1.20.2 '@types/sass': 1.43.1 '@types/semver': 7.3.12 '@types/stylus': 0.48.38 '@types/ws': 8.5.3 - '@typescript-eslint/eslint-plugin': 5.35.1_hy4by47wjjtoupqk2r7jy5xf2e - '@typescript-eslint/parser': 5.35.1_pyvvhc3zqdua4akflcggygkl44 + '@typescript-eslint/eslint-plugin': 5.38.0_2x3pnxumot2lspjryjtmmusp2e + '@typescript-eslint/parser': 5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje conventional-changelog-cli: 2.2.2 - cross-env: 7.0.3 esbuild: 0.14.47 - eslint: 8.23.0 - eslint-define-config: 1.6.0 - eslint-plugin-import: 2.26.0_kavhtzjob4obuugpatbfgsyfbm - eslint-plugin-node: 11.1.0_eslint@8.23.0 + eslint: 8.23.1 + eslint-define-config: 1.7.0 + eslint-plugin-import: 2.26.0_cxqatnnjiq7ozd2bkspxnuicdq + eslint-plugin-node: 11.1.0_eslint@8.23.1 execa: 6.1.0 - fast-glob: 3.2.11 + fast-glob: 3.2.12 fs-extra: 10.1.0 lint-staged: 13.0.3 minimist: 1.2.6 npm-run-all: 4.1.5 picocolors: 1.0.0 - playwright-chromium: 1.25.1 - pnpm: 7.9.5 + playwright-chromium: 1.26.0 + pnpm: 7.12.2 prettier: 2.7.1 prompts: 2.4.2 resolve: 1.22.1 @@ -114,62 +114,64 @@ importers: semver: 7.3.7 simple-git-hooks: 2.8.0 tslib: 2.4.0 - tsx: 3.8.2 + tsx: 3.9.0 typescript: 4.6.4 - unbuild: 0.8.9 + unbuild: 0.8.11 vite: link:packages/vite - vitepress: 1.0.0-alpha.12 - vitest: 0.22.1 - vue: 3.2.37 + vitepress: 1.0.0-alpha.15 + vitest: 0.23.4 + vue: 3.2.39 packages/create-vite: specifiers: cross-spawn: ^7.0.3 - kolorist: ^1.5.1 + kolorist: ^1.6.0 minimist: ^1.2.6 prompts: ^2.4.2 devDependencies: cross-spawn: 7.0.3 - kolorist: 1.5.1 + kolorist: 1.6.0 minimist: 1.2.6 prompts: 2.4.2 packages/plugin-legacy: specifiers: - '@babel/core': ^7.18.13 - '@babel/standalone': ^7.18.13 - core-js: ^3.25.0 - magic-string: ^0.26.2 + '@babel/core': ^7.19.1 + '@babel/standalone': ^7.19.2 + core-js: ^3.25.2 + magic-string: ^0.26.4 + picocolors: ^1.0.0 regenerator-runtime: ^0.13.9 - systemjs: ^6.12.4 + systemjs: ^6.12.6 vite: workspace:* dependencies: - '@babel/standalone': 7.18.13 - core-js: 3.25.0 - magic-string: 0.26.2 + '@babel/standalone': 7.19.2 + core-js: 3.25.2 + magic-string: 0.26.4 regenerator-runtime: 0.13.9 - systemjs: 6.12.4 + systemjs: 6.12.6 devDependencies: - '@babel/core': 7.18.13 + '@babel/core': 7.19.1 + picocolors: 1.0.0 vite: link:../vite packages/plugin-react: specifiers: - '@babel/core': ^7.18.13 - '@babel/plugin-transform-react-jsx': ^7.18.10 + '@babel/core': ^7.19.1 + '@babel/plugin-transform-react-jsx': ^7.19.0 '@babel/plugin-transform-react-jsx-development': ^7.18.6 '@babel/plugin-transform-react-jsx-self': ^7.18.6 '@babel/plugin-transform-react-jsx-source': ^7.18.6 - magic-string: ^0.26.2 + magic-string: ^0.26.4 react-refresh: ^0.14.0 vite: workspace:* dependencies: - '@babel/core': 7.18.13 - '@babel/plugin-transform-react-jsx': 7.18.10_@babel+core@7.18.13 - '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.18.13 - '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.18.13 - '@babel/plugin-transform-react-jsx-source': 7.18.6_@babel+core@7.18.13 - magic-string: 0.26.2 + '@babel/core': 7.19.1 + '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.19.1 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.19.1 + '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.19.1 + '@babel/plugin-transform-react-jsx-source': 7.18.6_@babel+core@7.19.1 + magic-string: 0.26.4 react-refresh: 0.14.0 devDependencies: vite: link:../vite @@ -183,7 +185,7 @@ importers: slash: ^4.0.0 source-map: ^0.6.1 vite: workspace:* - vue: ^3.2.37 + vue: ^3.2.39 devDependencies: '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.15 @@ -192,35 +194,35 @@ importers: slash: 4.0.0 source-map: 0.6.1 vite: link:../vite - vue: 3.2.37 + vue: 3.2.39 packages/plugin-vue-jsx: specifiers: - '@babel/core': ^7.18.13 + '@babel/core': ^7.19.1 '@babel/plugin-syntax-import-meta': ^7.10.4 - '@babel/plugin-transform-typescript': ^7.18.12 + '@babel/plugin-transform-typescript': ^7.19.1 '@vue/babel-plugin-jsx': ^1.1.1 vite: workspace:* dependencies: - '@babel/core': 7.18.13 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.18.13 - '@babel/plugin-transform-typescript': 7.18.12_@babel+core@7.18.13 - '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.18.13 + '@babel/core': 7.19.1 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.19.1 + '@babel/plugin-transform-typescript': 7.19.1_@babel+core@7.19.1 + '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.19.1 devDependencies: vite: link:../vite packages/vite: specifiers: '@ampproject/remapping': ^2.2.0 - '@babel/parser': ^7.18.13 - '@babel/types': ^7.18.13 + '@babel/parser': ^7.19.1 + '@babel/types': ^7.19.0 '@jridgewell/trace-mapping': ^0.3.15 '@rollup/plugin-alias': ^3.1.9 '@rollup/plugin-commonjs': ^22.0.2 '@rollup/plugin-dynamic-import-vars': ^1.4.4 '@rollup/plugin-json': ^4.1.0 - '@rollup/plugin-node-resolve': 13.3.0 - '@rollup/plugin-typescript': ^8.4.0 + '@rollup/plugin-node-resolve': 14.1.0 + '@rollup/plugin-typescript': ^8.5.0 '@rollup/pluginutils': ^4.2.1 acorn: ^8.8.0 cac: ^6.7.14 @@ -235,23 +237,24 @@ importers: dotenv: ^14.3.2 dotenv-expand: ^5.1.0 es-module-lexer: ^1.0.3 - esbuild: ^0.15.6 + esbuild: ^0.15.9 estree-walker: ^3.0.1 etag: ^1.8.1 - fast-glob: ^3.2.11 + fast-glob: ^3.2.12 fsevents: ~2.3.2 http-proxy: ^1.18.1 json5: ^2.2.1 launch-editor-middleware: ^2.6.0 - magic-string: ^0.26.2 + magic-string: ^0.26.4 micromatch: ^4.0.5 - mlly: ^0.5.14 + mlly: ^0.5.16 mrmime: ^1.0.1 okie: ^1.0.1 open: ^8.4.0 - parse5: ^7.0.0 + parse5: ^7.1.1 periscopic: ^3.0.4 picocolors: ^1.0.0 + picomatch: ^2.3.1 postcss: ^8.4.16 postcss-import: ^15.0.0 postcss-load-config: ^4.0.1 @@ -263,14 +266,14 @@ importers: source-map-js: ^1.0.2 source-map-support: ^0.5.21 strip-ansi: ^7.0.1 - strip-literal: ^0.4.0 + strip-literal: ^0.4.2 tsconfck: ^2.0.1 tslib: ^2.4.0 types: link:./src/types ufo: ^0.8.5 - ws: ^8.8.1 + ws: ^8.9.0 dependencies: - esbuild: 0.15.6 + esbuild: 0.15.9 postcss: 8.4.16 resolve: 1.22.1 rollup: 2.78.0 @@ -278,15 +281,15 @@ importers: fsevents: 2.3.2 devDependencies: '@ampproject/remapping': 2.2.0 - '@babel/parser': 7.18.13 - '@babel/types': 7.18.13 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 '@jridgewell/trace-mapping': 0.3.15 '@rollup/plugin-alias': 3.1.9_rollup@2.78.0 '@rollup/plugin-commonjs': 22.0.2_rollup@2.78.0 '@rollup/plugin-dynamic-import-vars': 1.4.4_rollup@2.78.0 '@rollup/plugin-json': 4.1.0_rollup@2.78.0 - '@rollup/plugin-node-resolve': 13.3.0_rollup@2.78.0 - '@rollup/plugin-typescript': 8.4.0_rollup@2.78.0+tslib@2.4.0 + '@rollup/plugin-node-resolve': 14.1.0_rollup@2.78.0 + '@rollup/plugin-typescript': 8.5.0_rollup@2.78.0+tslib@2.4.0 '@rollup/pluginutils': 4.2.1 acorn: 8.8.0 cac: 6.7.14 @@ -303,19 +306,20 @@ importers: es-module-lexer: 1.0.3 estree-walker: 3.0.1 etag: 1.8.1 - fast-glob: 3.2.11 + fast-glob: 3.2.12 http-proxy: 1.18.1_debug@4.3.4 json5: 2.2.1 launch-editor-middleware: 2.6.0 - magic-string: 0.26.2 + magic-string: 0.26.4 micromatch: 4.0.5 - mlly: 0.5.14 + mlly: 0.5.16 mrmime: 1.0.1 okie: 1.0.1 open: 8.4.0 - parse5: 7.0.0 + parse5: 7.1.1 periscopic: 3.0.4 picocolors: 1.0.0 + picomatch: 2.3.1 postcss-import: 15.0.0_postcss@8.4.16 postcss-load-config: 4.0.1_postcss@8.4.16 postcss-modules: 5.0.0_postcss@8.4.16 @@ -324,12 +328,12 @@ importers: source-map-js: 1.0.2 source-map-support: 0.5.21 strip-ansi: 7.0.1 - strip-literal: 0.4.0 + strip-literal: 0.4.2 tsconfck: 2.0.1 tslib: 2.4.0 types: link:src/types ufo: 0.8.5 - ws: 8.8.1 + ws: 8.9.0 playground: specifiers: @@ -347,14 +351,14 @@ importers: playground/alias: specifiers: - '@vue/shared': ^3.2.37 + '@vue/shared': ^3.2.39 aliased-module: file:./dir/module resolve-linked: workspace:* - vue: ^3.2.37 + vue: ^3.2.39 dependencies: - '@vue/shared': 3.2.37 + '@vue/shared': 3.2.39 aliased-module: file:playground/alias/dir/module - vue: 3.2.37 + vue: 3.2.39 devDependencies: resolve-linked: link:../resolve-linked @@ -369,12 +373,12 @@ importers: playground/backend-integration: specifiers: - fast-glob: ^3.2.11 - sass: ^1.54.5 + fast-glob: ^3.2.12 + sass: ^1.55.0 tailwindcss: ^3.1.8 devDependencies: - fast-glob: 3.2.11 - sass: 1.54.5 + fast-glob: 3.2.12 + sass: 1.55.0 tailwindcss: 3.1.8 playground/build-old: @@ -390,18 +394,18 @@ importers: specifiers: css-dep: link:./css-dep css-js-dep: file:./css-js-dep - fast-glob: ^3.2.11 + fast-glob: ^3.2.12 less: ^4.1.3 postcss-nested: ^5.0.6 - sass: ^1.54.5 + sass: ^1.55.0 stylus: ^0.59.0 devDependencies: css-dep: link:css-dep css-js-dep: file:playground/css/css-js-dep - fast-glob: 3.2.11 + fast-glob: 3.2.12 less: 4.1.3 postcss-nested: 5.0.6 - sass: 1.54.5 + sass: 1.55.0 stylus: 0.59.0 playground/css-codesplit: @@ -413,13 +417,13 @@ importers: playground/css-sourcemap: specifiers: less: ^4.1.3 - magic-string: ^0.26.2 - sass: ^1.54.5 + magic-string: ^0.26.4 + sass: ^1.55.0 stylus: ^0.59.0 devDependencies: less: 4.1.3 - magic-string: 0.26.2 - sass: 1.54.5 + magic-string: 0.26.4 + sass: 1.55.0 stylus: 0.59.0 playground/css/css-dep: @@ -459,44 +463,41 @@ importers: specifiers: {} playground/env: - specifiers: - cross-env: ^7.0.3 - devDependencies: - cross-env: 7.0.3 + specifiers: {} playground/env-nested: specifiers: {} playground/extensions: specifiers: - vue: ^3.2.37 + vue: ^3.2.39 dependencies: - vue: 3.2.37 + vue: 3.2.39 playground/external: specifiers: '@vitejs/dep-that-imports-vue': file:./dep-that-imports-vue '@vitejs/dep-that-requires-vue': file:./dep-that-requires-vue vite: workspace:* - vue: ^3.2.37 + vue: ^3.2.39 dependencies: '@vitejs/dep-that-imports-vue': file:playground/external/dep-that-imports-vue '@vitejs/dep-that-requires-vue': file:playground/external/dep-that-requires-vue devDependencies: vite: link:../../packages/vite - vue: 3.2.37 + vue: 3.2.39 playground/external/dep-that-imports-vue: specifiers: - vue: ^3.2.37 + vue: ^3.2.39 dependencies: - vue: 3.2.37 + vue: 3.2.39 playground/external/dep-that-requires-vue: specifiers: - vue: ^3.2.37 + vue: ^3.2.39 dependencies: - vue: 3.2.37 + vue: 3.2.39 playground/file-delete-restore: specifiers: @@ -535,15 +536,13 @@ importers: playground/json: specifiers: - cross-env: ^7.0.3 express: ^4.18.1 json-module: file:./json-module - vue: ^3.2.37 + vue: ^3.2.39 devDependencies: - cross-env: 7.0.3 express: 4.18.1 json-module: file:playground/json/json-module - vue: 3.2.37 + vue: 3.2.39 playground/json/json-module: specifiers: {} @@ -566,11 +565,11 @@ importers: playground/multiple-entrypoints: specifiers: - fast-glob: ^3.2.11 - sass: ^1.54.5 + fast-glob: ^3.2.12 + sass: ^1.55.0 devDependencies: - fast-glob: 3.2.11 - sass: 1.54.5 + fast-glob: 3.2.12 + sass: 1.55.0 playground/nested-deps: specifiers: @@ -623,9 +622,9 @@ importers: playground/object-hooks: specifiers: - vue: ^3.2.37 + vue: ^3.2.39 dependencies: - vue: 3.2.37 + vue: 3.2.39 playground/optimize-deps: specifiers: @@ -651,12 +650,12 @@ importers: lodash-es: ^4.17.21 lodash.clonedeep: ^4.5.0 nested-exclude: file:./nested-exclude - phoenix: ^1.6.11 + phoenix: ^1.6.12 react: ^18.2.0 react-dom: ^18.2.0 resolve-linked: workspace:0.0.0 url: ^0.11.0 - vue: ^3.2.37 + vue: ^3.2.39 vuex: ^4.0.2 dependencies: added-in-entries: file:playground/optimize-deps/added-in-entries @@ -680,13 +679,13 @@ importers: lodash-es: 4.17.21 lodash.clonedeep: 4.5.0 nested-exclude: file:playground/optimize-deps/nested-exclude - phoenix: 1.6.11 + phoenix: 1.6.12 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 resolve-linked: link:../resolve-linked url: 0.11.0 - vue: 3.2.37 - vuex: 4.0.2_vue@3.2.37 + vue: 3.2.39 + vuex: 4.0.2_vue@3.2.39 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue @@ -777,11 +776,11 @@ importers: dep-a: file:./dep-a dep-including-a: file:./dep-including-a terser: ^5.15.0 - vue: ^3.2.37 + vue: ^3.2.39 vue-router: ^4.1.5 dependencies: - vue: 3.2.37 - vue-router: 4.1.5_vue@3.2.37 + vue: 3.2.39 + vue-router: 4.1.5_vue@3.2.39 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue dep-a: file:playground/preload/dep-a @@ -834,13 +833,13 @@ importers: specifiers: '@babel/plugin-proposal-pipeline-operator': ^7.18.9 '@emotion/babel-plugin': ^11.10.2 - '@emotion/react': ^11.10.0 + '@emotion/react': ^11.10.4 '@vitejs/plugin-react': workspace:* react: ^18.2.0 react-dom: ^18.2.0 react-switch: ^7.0.0 dependencies: - '@emotion/react': 11.10.0_react@18.2.0 + '@emotion/react': 11.10.4_react@18.2.0 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-switch: 7.0.0_biqbaboplfbrettd7655fr4n2y @@ -852,7 +851,6 @@ importers: playground/react-sourcemap: specifiers: '@vitejs/plugin-react': workspace:* - cross-env: ^7.0.3 react: ^18.2.0 react-dom: ^18.2.0 dependencies: @@ -860,14 +858,13 @@ importers: react-dom: 18.2.0_react@18.2.0 devDependencies: '@vitejs/plugin-react': link:../../packages/plugin-react - cross-env: 7.0.3 playground/react/jsx-entry: specifiers: {} playground/resolve: specifiers: - '@babel/runtime': ^7.18.9 + '@babel/runtime': ^7.19.0 es5-ext: 0.10.62 normalize.css: ^8.0.1 require-pkg-with-module-field: link:./require-pkg-with-module-field @@ -881,7 +878,7 @@ importers: resolve-exports-path: link:./exports-path resolve-linked: workspace:* dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.19.0 es5-ext: 0.10.62 normalize.css: 8.0.1 require-pkg-with-module-field: link:require-pkg-with-module-field @@ -938,7 +935,6 @@ importers: specifiers: '@vitejs/css-lib': file:./css-lib bcrypt: ^5.0.1 - cross-env: ^7.0.3 define-properties-exports: file:./define-properties-exports define-property-exports: file:./define-property-exports express: ^4.18.1 @@ -982,7 +978,6 @@ importers: require-absolute: file:playground/ssr-deps/require-absolute ts-transpiled-exports: file:playground/ssr-deps/ts-transpiled-exports devDependencies: - cross-env: 7.0.3 express: 4.18.1 playground/ssr-deps/css-lib: @@ -1065,19 +1060,15 @@ importers: playground/ssr-html: specifiers: - cross-env: ^7.0.3 express: ^4.18.1 devDependencies: - cross-env: 7.0.3 express: 4.18.1 playground/ssr-pug: specifiers: - cross-env: ^7.0.3 express: ^4.18.1 pug: ^3.0.2 devDependencies: - cross-env: 7.0.3 express: 4.18.1 pug: 3.0.2 @@ -1085,46 +1076,56 @@ importers: specifiers: '@vitejs/plugin-react': workspace:* compression: ^1.7.4 - cross-env: ^7.0.3 express: ^4.18.1 react: ^18.2.0 react-dom: ^18.2.0 - react-router-dom: ^6.3.0 + react-router-dom: ^6.4.1 serve-static: ^1.15.0 dependencies: react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-router-dom: 6.3.0_biqbaboplfbrettd7655fr4n2y + react-router-dom: 6.4.1_biqbaboplfbrettd7655fr4n2y devDependencies: '@vitejs/plugin-react': link:../../packages/plugin-react compression: 1.7.4 - cross-env: 7.0.3 express: 4.18.1 serve-static: 1.15.0 + playground/ssr-resolve: + specifiers: + entries: file:./entries + pkg-exports: file:./pkg-exports + dependencies: + entries: file:playground/ssr-resolve/entries + pkg-exports: file:playground/ssr-resolve/pkg-exports + + playground/ssr-resolve/entries: + specifiers: {} + + playground/ssr-resolve/pkg-exports: + specifiers: {} + playground/ssr-vue: specifiers: '@vitejs/plugin-vue': workspace:* '@vitejs/plugin-vue-jsx': workspace:* compression: ^1.7.4 - cross-env: ^7.0.3 dep-import-type: link:./dep-import-type example-external-component: file:example-external-component express: ^4.18.1 serve-static: ^1.15.0 - vue: ^3.2.37 + vue: ^3.2.39 vue-router: ^4.1.5 vuex: ^4.0.2 dependencies: example-external-component: file:playground/ssr-vue/example-external-component - vue: 3.2.37 - vue-router: 4.1.5_vue@3.2.37 - vuex: 4.0.2_vue@3.2.37 + vue: 3.2.39 + vue-router: 4.1.5_vue@3.2.39 + vuex: 4.0.2_vue@3.2.39 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue '@vitejs/plugin-vue-jsx': link:../../packages/plugin-vue-jsx compression: 1.7.4 - cross-env: 7.0.3 dep-import-type: link:dep-import-type express: 4.18.1 serve-static: 1.15.0 @@ -1137,30 +1138,28 @@ importers: playground/ssr-webworker: specifiers: - cross-env: ^7.0.3 miniflare: ^1.4.1 react: ^18.2.0 resolve-linked: workspace:* dependencies: react: 18.2.0 devDependencies: - cross-env: 7.0.3 miniflare: 1.4.1 resolve-linked: link:../resolve-linked playground/tailwind: specifiers: '@vitejs/plugin-vue': workspace:* - autoprefixer: ^10.4.8 + autoprefixer: ^10.4.12 tailwindcss: ^3.1.8 ts-node: ^10.9.1 - vue: ^3.2.37 + vue: ^3.2.39 vue-router: ^4.1.5 dependencies: - autoprefixer: 10.4.8 + autoprefixer: 10.4.12 tailwindcss: 3.1.8_ts-node@10.9.1 - vue: 3.2.37 - vue-router: 4.1.5_vue@3.2.37 + vue: 3.2.39 + vue-router: 4.1.5_vue@3.2.39 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue ts-node: 10.9.1 @@ -1184,27 +1183,27 @@ importers: less: ^4.1.3 lodash-es: ^4.17.21 pug: ^3.0.2 - sass: ^1.54.5 + sass: ^1.55.0 stylus: ^0.59.0 - vue: ^3.2.37 + vue: ^3.2.39 dependencies: lodash-es: 4.17.21 - vue: 3.2.37 + vue: 3.2.39 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue js-yaml: 4.1.0 less: 4.1.3 pug: 3.0.2 - sass: 1.54.5 + sass: 1.55.0 stylus: 0.59.0 playground/vue-jsx: specifiers: '@vitejs/plugin-vue': workspace:* '@vitejs/plugin-vue-jsx': workspace:* - vue: ^3.2.37 + vue: ^3.2.39 dependencies: - vue: 3.2.37 + vue: 3.2.39 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue '@vitejs/plugin-vue-jsx': link:../../packages/plugin-vue-jsx @@ -1213,9 +1212,9 @@ importers: specifiers: '@vitejs/plugin-legacy': workspace:* '@vitejs/plugin-vue': workspace:* - vue: ^3.2.37 + vue: ^3.2.39 dependencies: - vue: 3.2.37 + vue: 3.2.39 devDependencies: '@vitejs/plugin-legacy': link:../../packages/plugin-legacy '@vitejs/plugin-vue': link:../../packages/plugin-vue @@ -1223,18 +1222,18 @@ importers: playground/vue-lib: specifiers: '@vitejs/plugin-vue': workspace:* - vue: ^3.2.37 + vue: ^3.2.39 dependencies: - vue: 3.2.37 + vue: 3.2.39 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue playground/vue-server-origin: specifiers: '@vitejs/plugin-vue': workspace:* - vue: ^3.2.37 + vue: ^3.2.39 dependencies: - vue: 3.2.37 + vue: 3.2.39 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue @@ -1243,15 +1242,15 @@ importers: '@vitejs/plugin-vue': workspace:* less: ^4.1.3 postcss-nested: ^5.0.6 - sass: ^1.54.5 - vue: ^3.2.37 + sass: ^1.55.0 + vue: ^3.2.39 dependencies: - vue: 3.2.37 + vue: 3.2.39 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue less: 4.1.3 postcss-nested: 5.0.6 - sass: 1.54.5 + sass: 1.55.0 playground/wasm: specifiers: {} @@ -1391,65 +1390,30 @@ packages: '@jridgewell/gen-mapping': 0.1.1 '@jridgewell/trace-mapping': 0.3.15 - /@babel/code-frame/7.16.7: - resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.17.9 - dev: true - /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 - /@babel/compat-data/7.17.10: - resolution: {integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==} + /@babel/compat-data/7.19.1: + resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==} engines: {node: '>=6.9.0'} - dev: true - - /@babel/compat-data/7.18.8: - resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==} - engines: {node: '>=6.9.0'} - - /@babel/core/7.18.10: - resolution: {integrity: sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.18.12 - '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.10 - '@babel/helper-module-transforms': 7.18.9 - '@babel/helpers': 7.18.9 - '@babel/parser': 7.18.11 - '@babel/template': 7.18.10 - '@babel/traverse': 7.18.11 - '@babel/types': 7.18.13 - convert-source-map: 1.8.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.1 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/core/7.18.13: - resolution: {integrity: sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==} + /@babel/core/7.19.1: + resolution: {integrity: sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.18.13 - '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.13 - '@babel/helper-module-transforms': 7.18.9 - '@babel/helpers': 7.18.9 - '@babel/parser': 7.18.13 + '@babel/generator': 7.19.0 + '@babel/helper-compilation-targets': 7.19.1_@babel+core@7.19.1 + '@babel/helper-module-transforms': 7.19.0 + '@babel/helpers': 7.19.0 + '@babel/parser': 7.19.1 '@babel/template': 7.18.10 - '@babel/traverse': 7.18.13 - '@babel/types': 7.18.13 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1458,119 +1422,43 @@ packages: transitivePeerDependencies: - supports-color - /@babel/core/7.18.5: - resolution: {integrity: sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.16.7 - '@babel/generator': 7.18.2 - '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.18.5 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helpers': 7.18.2 - '@babel/parser': 7.18.5 - '@babel/template': 7.16.7 - '@babel/traverse': 7.18.5 - '@babel/types': 7.18.13 - convert-source-map: 1.8.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.1 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/generator/7.18.12: - resolution: {integrity: sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.18.13 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - dev: true - - /@babel/generator/7.18.13: - resolution: {integrity: sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==} + /@babel/generator/7.19.0: + resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.13 + '@babel/types': 7.19.0 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 - /@babel/generator/7.18.2: - resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.18.13 - '@jridgewell/gen-mapping': 0.3.1 - jsesc: 2.5.2 - dev: true - - /@babel/generator/7.18.9: - resolution: {integrity: sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.18.10 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - dev: false - /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.10 + '@babel/types': 7.19.0 dev: false - /@babel/helper-compilation-targets/7.18.2_@babel+core@7.18.5: - resolution: {integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.17.10 - '@babel/core': 7.18.5 - '@babel/helper-validator-option': 7.16.7 - browserslist: 4.20.3 - semver: 6.3.0 - dev: true - - /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.10: - resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==} + /@babel/helper-compilation-targets/7.19.1_@babel+core@7.19.1: + resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.18.8 - '@babel/core': 7.18.10 + '@babel/compat-data': 7.19.1 + '@babel/core': 7.19.1 '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.3 + browserslist: 4.21.4 semver: 6.3.0 - dev: true - /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.13: - resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==} + /@babel/helper-create-class-features-plugin/7.19.0_@babel+core@7.19.1: + resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.18.8 - '@babel/core': 7.18.13 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.3 - semver: 6.3.0 - - /@babel/helper-create-class-features-plugin/7.18.9_@babel+core@7.18.13: - resolution: {integrity: sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.18.13 + '@babel/core': 7.19.1 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.18.9 + '@babel/helper-function-name': 7.19.0 '@babel/helper-member-expression-to-functions': 7.18.9 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/helper-replace-supers': 7.18.9 @@ -1579,87 +1467,45 @@ packages: - supports-color dev: false - /@babel/helper-environment-visitor/7.16.7: - resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.18.13 - dev: true - - /@babel/helper-environment-visitor/7.18.2: - resolution: {integrity: sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} - /@babel/helper-function-name/7.17.9: - resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.16.7 - '@babel/types': 7.18.13 - dev: true - - /@babel/helper-function-name/7.18.9: - resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==} + /@babel/helper-function-name/7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.10 - '@babel/types': 7.18.13 - - /@babel/helper-hoist-variables/7.16.7: - resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.18.13 - dev: true + '@babel/types': 7.19.0 /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.13 + '@babel/types': 7.19.0 /@babel/helper-member-expression-to-functions/7.18.9: resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.10 + '@babel/types': 7.19.0 dev: false /@babel/helper-module-imports/7.16.7: resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.10 + '@babel/types': 7.19.0 + dev: false /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.10 - - /@babel/helper-module-transforms/7.18.0: - resolution: {integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.16.7 - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-simple-access': 7.17.7 - '@babel/helper-split-export-declaration': 7.16.7 - '@babel/helper-validator-identifier': 7.16.7 - '@babel/template': 7.16.7 - '@babel/traverse': 7.18.5 - '@babel/types': 7.18.13 - transitivePeerDependencies: - - supports-color - dev: true + '@babel/types': 7.19.0 - /@babel/helper-module-transforms/7.18.9: - resolution: {integrity: sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==} + /@babel/helper-module-transforms/7.19.0: + resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.18.9 @@ -1668,8 +1514,8 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.18.6 '@babel/template': 7.18.10 - '@babel/traverse': 7.18.13 - '@babel/types': 7.18.13 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 transitivePeerDependencies: - supports-color @@ -1677,7 +1523,7 @@ packages: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.10 + '@babel/types': 7.19.0 dev: false /@babel/helper-plugin-utils/7.16.7: @@ -1693,6 +1539,11 @@ packages: /@babel/helper-plugin-utils/7.18.9: resolution: {integrity: sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==} engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-plugin-utils/7.19.0: + resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} + engines: {node: '>=6.9.0'} /@babel/helper-replace-supers/7.18.9: resolution: {integrity: sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==} @@ -1701,89 +1552,46 @@ packages: '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-member-expression-to-functions': 7.18.9 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.18.9 - '@babel/types': 7.18.10 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 transitivePeerDependencies: - supports-color dev: false - /@babel/helper-simple-access/7.17.7: - resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.18.13 - dev: true - /@babel/helper-simple-access/7.18.6: resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.13 - - /@babel/helper-split-export-declaration/7.16.7: - resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.18.13 - dev: true + '@babel/types': 7.19.0 /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.13 + '@babel/types': 7.19.0 /@babel/helper-string-parser/7.18.10: resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier/7.16.7: - resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} - engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier/7.18.6: resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.16.7: - resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-option/7.18.6: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} - /@babel/helpers/7.18.2: - resolution: {integrity: sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.16.7 - '@babel/traverse': 7.18.5 - '@babel/types': 7.18.13 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helpers/7.18.9: - resolution: {integrity: sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==} + /@babel/helpers/7.19.0: + resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.10 - '@babel/traverse': 7.18.13 - '@babel/types': 7.18.13 + '@babel/traverse': 7.19.1 + '@babel/types': 7.19.0 transitivePeerDependencies: - supports-color - /@babel/highlight/7.17.9: - resolution: {integrity: sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.16.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} @@ -1792,34 +1600,12 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser/7.18.11: - resolution: {integrity: sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==} + /@babel/parser/7.19.1: + resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.18.10 - - /@babel/parser/7.18.13: - resolution: {integrity: sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.18.13 - - /@babel/parser/7.18.5: - resolution: {integrity: sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.18.4 - - /@babel/parser/7.18.9: - resolution: {integrity: sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.18.10 - dev: false + '@babel/types': 7.19.0 /@babel/plugin-proposal-pipeline-operator/7.18.9: resolution: {integrity: sha512-Pc33e6m8f4MJhRXVCUwiKZNtEm+W2CUPHIL0lyJNtkp+w6d75CLw3gsBKQ81VAMUgT9jVPIEU8gwJ5nJgmJ1Ag==} @@ -1831,23 +1617,23 @@ packages: '@babel/plugin-syntax-pipeline-operator': 7.18.6 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.18.13: + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.19.1: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.13 + '@babel/core': 7.19.1 '@babel/helper-plugin-utils': 7.16.7 dev: false - /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.18.13: + /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.19.1: resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.13 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/core': 7.19.1 + '@babel/helper-plugin-utils': 7.19.0 dev: false /@babel/plugin-syntax-jsx/7.18.6: @@ -1856,16 +1642,16 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.18.9 + '@babel/helper-plugin-utils': 7.19.0 - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.18.13: + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.19.1: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.13 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/core': 7.19.1 + '@babel/helper-plugin-utils': 7.19.0 dev: false /@babel/plugin-syntax-pipeline-operator/7.18.6: @@ -1877,232 +1663,144 @@ packages: '@babel/helper-plugin-utils': 7.18.9 dev: true - /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.18.13: + /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.19.1: resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.13 - '@babel/helper-plugin-utils': 7.18.9 + '@babel/core': 7.19.1 + '@babel/helper-plugin-utils': 7.19.0 dev: false - /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.18.13: + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.19.1: resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.13 - '@babel/plugin-transform-react-jsx': 7.18.10_@babel+core@7.18.13 + '@babel/core': 7.19.1 + '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.19.1 dev: false - /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.18.13: + /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.19.1: resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.13 + '@babel/core': 7.19.1 '@babel/helper-plugin-utils': 7.18.6 dev: false - /@babel/plugin-transform-react-jsx-source/7.18.6_@babel+core@7.18.13: + /@babel/plugin-transform-react-jsx-source/7.18.6_@babel+core@7.19.1: resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.13 + '@babel/core': 7.19.1 '@babel/helper-plugin-utils': 7.18.6 dev: false - /@babel/plugin-transform-react-jsx/7.18.10_@babel+core@7.18.13: - resolution: {integrity: sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==} + /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.19.1: + resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.13 + '@babel/core': 7.19.1 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.18.9 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.13 - '@babel/types': 7.18.10 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.1 + '@babel/types': 7.19.0 dev: false - /@babel/plugin-transform-typescript/7.18.12_@babel+core@7.18.13: - resolution: {integrity: sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==} + /@babel/plugin-transform-typescript/7.19.1_@babel+core@7.19.1: + resolution: {integrity: sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.13 - '@babel/helper-create-class-features-plugin': 7.18.9_@babel+core@7.18.13 - '@babel/helper-plugin-utils': 7.18.9 - '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.18.13 + '@babel/core': 7.19.1 + '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.19.1 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.19.1 transitivePeerDependencies: - supports-color dev: false - /@babel/runtime/7.18.3: - resolution: {integrity: sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.9 - dev: false - - /@babel/runtime/7.18.9: - resolution: {integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==} + /@babel/runtime/7.19.0: + resolution: {integrity: sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.9 - /@babel/standalone/7.18.12: - resolution: {integrity: sha512-wDh3K5IUJiSMAY0MLYBFoCaj2RCZwvDz5BHn2uHat9KOsGWEVDFgFQFIOO+81Js2phFKNppLC45iOCsZVfJniw==} + /@babel/standalone/7.19.2: + resolution: {integrity: sha512-p+U+TYGevnPUemfHeQVFwABp9kWe5+h20MKxCzvyeAD1SIm7tlvo6lGRFz1WakAxmVZvLz7WDuWjwdC8FZKp+A==} engines: {node: '>=6.9.0'} - dev: true - - /@babel/standalone/7.18.13: - resolution: {integrity: sha512-5hjvvFkaXyfQri+s4CAZtx6FTKclfTNd2QN2RwgzCVJhnYYgKh4YFBCnNJSxurzvpSKD2NmpCkoWAkMc+j9y+g==} - engines: {node: '>=6.9.0'} - dev: false /@babel/template/7.16.7: resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/parser': 7.18.11 - '@babel/types': 7.18.10 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 + dev: false /@babel/template/7.18.10: resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/parser': 7.18.13 - '@babel/types': 7.18.13 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 /@babel/traverse/7.17.10: resolution: {integrity: sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.18.9 + '@babel/generator': 7.19.0 '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.18.9 + '@babel/helper-function-name': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.18.11 - '@babel/types': 7.18.10 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: false - /@babel/traverse/7.18.11: - resolution: {integrity: sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.18.12 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.18.9 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.18.11 - '@babel/types': 7.18.13 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/traverse/7.18.13: - resolution: {integrity: sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.18.13 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.18.9 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.18.13 - '@babel/types': 7.18.13 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - /@babel/traverse/7.18.5: - resolution: {integrity: sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.18.2 - '@babel/helper-environment-visitor': 7.18.2 - '@babel/helper-function-name': 7.17.9 - '@babel/helper-hoist-variables': 7.16.7 - '@babel/helper-split-export-declaration': 7.16.7 - '@babel/parser': 7.18.5 - '@babel/types': 7.18.13 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/traverse/7.18.9: - resolution: {integrity: sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==} + /@babel/traverse/7.19.1: + resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.18.9 + '@babel/generator': 7.19.0 '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.18.9 + '@babel/helper-function-name': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.18.9 - '@babel/types': 7.18.10 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/types/7.17.10: - resolution: {integrity: sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.18.6 - to-fast-properties: 2.0.0 - - /@babel/types/7.18.10: - resolution: {integrity: sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==} + /@babel/types/7.19.0: + resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.18.10 '@babel/helper-validator-identifier': 7.18.6 to-fast-properties: 2.0.0 - /@babel/types/7.18.13: - resolution: {integrity: sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.18.10 - '@babel/helper-validator-identifier': 7.18.6 - to-fast-properties: 2.0.0 - - /@babel/types/7.18.4: - resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.16.7 - to-fast-properties: 2.0.0 - /@cloudflare/workers-types/2.2.2: resolution: {integrity: sha512-kaMn2rueJ0PL1TYVGknTCh0X0x0d9G+FNXAFep7/4uqecEZoQb/63o6rOmMuiqI09zLuHV6xhKRXinokV/MY9A==} dev: true @@ -2158,7 +1856,7 @@ packages: dependencies: '@babel/helper-module-imports': 7.18.6 '@babel/plugin-syntax-jsx': 7.18.6 - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.19.0 '@emotion/hash': 0.9.0 '@emotion/memoize': 0.8.0 '@emotion/serialize': 1.1.0 @@ -2185,8 +1883,8 @@ packages: /@emotion/memoize/0.8.0: resolution: {integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==} - /@emotion/react/11.10.0_react@18.2.0: - resolution: {integrity: sha512-K6z9zlHxxBXwN8TcpwBKcEsBsOw4JWCCmR+BeeOWgqp8GIU1yA2Odd41bwdAAr0ssbQrbJbVnndvv7oiv1bZeQ==} + /@emotion/react/11.10.4_react@18.2.0: + resolution: {integrity: sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA==} peerDependencies: '@babel/core': ^7.0.0 '@types/react': '*' @@ -2197,10 +1895,11 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.19.0 '@emotion/babel-plugin': 11.10.2 '@emotion/cache': 11.10.0 '@emotion/serialize': 1.1.0 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.0_react@18.2.0 '@emotion/utils': 1.2.0 '@emotion/weak-memoize': 0.3.0 hoist-non-react-statics: 3.3.2 @@ -2223,6 +1922,14 @@ packages: /@emotion/unitless/0.8.0: resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} + /@emotion/use-insertion-effect-with-fallbacks/1.0.0_react@18.2.0: + resolution: {integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + /@emotion/utils/1.2.0: resolution: {integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==} @@ -2251,26 +1958,24 @@ packages: get-tsconfig: 4.1.0 dev: true - /@esbuild/linux-loong64/0.15.5: - resolution: {integrity: sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==} + /@esbuild/android-arm/0.15.9: + resolution: {integrity: sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==} engines: {node: '>=12'} - cpu: [loong64] - os: [linux] + cpu: [arm] + os: [android] requiresBuild: true - dev: true optional: true - /@esbuild/linux-loong64/0.15.6: - resolution: {integrity: sha512-hqmVU2mUjH6J2ZivHphJ/Pdse2ZD+uGCHK0uvsiLDk/JnSedEVj77CiVUnbMKuU4tih1TZZL8tG9DExQg/GZsw==} + /@esbuild/linux-loong64/0.15.9: + resolution: {integrity: sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true - dev: false optional: true - /@eslint/eslintrc/1.3.1: - resolution: {integrity: sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==} + /@eslint/eslintrc/1.3.2: + resolution: {integrity: sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -2326,15 +2031,6 @@ packages: '@jridgewell/set-array': 1.1.1 '@jridgewell/sourcemap-codec': 1.4.13 - /@jridgewell/gen-mapping/0.3.1: - resolution: {integrity: sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.1 - '@jridgewell/sourcemap-codec': 1.4.13 - '@jridgewell/trace-mapping': 0.3.13 - dev: true - /@jridgewell/gen-mapping/0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} @@ -2361,13 +2057,6 @@ packages: /@jridgewell/sourcemap-codec/1.4.13: resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} - /@jridgewell/trace-mapping/0.3.13: - resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} - dependencies: - '@jridgewell/resolve-uri': 3.0.7 - '@jridgewell/sourcemap-codec': 1.4.13 - dev: true - /@jridgewell/trace-mapping/0.3.15: resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==} dependencies: @@ -2398,24 +2087,24 @@ packages: - supports-color dev: false - /@microsoft/api-extractor-model/7.23.3: - resolution: {integrity: sha512-HpsWzG6jrWHrTlIg53kmp/IVQPBHUZc+8dunnr9VXrmDjVBehaXxp9A6jhTQ/bd7W1m5TYfAvwCmseC1+9FCuA==} + /@microsoft/api-extractor-model/7.24.2: + resolution: {integrity: sha512-uUvjqTCY7hYERWGks+joTioN1QYHIucCDy7I/JqLxFxLbFXE5dpc1X7L+FG4PN/s8QYL24DKt0fqJkgcrFKLTw==} dependencies: '@microsoft/tsdoc': 0.14.1 '@microsoft/tsdoc-config': 0.16.1 - '@rushstack/node-core-library': 3.51.1 + '@rushstack/node-core-library': 3.52.0 dev: true - /@microsoft/api-extractor/7.29.5: - resolution: {integrity: sha512-+vqO/TAGw9xXANpvTjA4y5ADcaRuYuBoJ9IfoAHubrGuxKG6GoW3P2tfdgwteLz95CnlftBxYp+3NG/mf05P9Q==} + /@microsoft/api-extractor/7.31.2: + resolution: {integrity: sha512-ZODCU9ckTS9brXiZpUW2iDrnAg7jLxeLBM1AkPpSZFcbG/8HGLvfKOKrd71VIJHjc52x2lB8xj7ZWksnP7AOBA==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.23.3 + '@microsoft/api-extractor-model': 7.24.2 '@microsoft/tsdoc': 0.14.1 '@microsoft/tsdoc-config': 0.16.1 - '@rushstack/node-core-library': 3.51.1 - '@rushstack/rig-package': 0.3.14 - '@rushstack/ts-command-line': 4.12.2 + '@rushstack/node-core-library': 3.52.0 + '@rushstack/rig-package': 0.3.15 + '@rushstack/ts-command-line': 4.12.3 colors: 1.2.5 lodash: 4.17.21 resolve: 1.17.0 @@ -2496,6 +2185,11 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true + /@remix-run/router/1.0.1: + resolution: {integrity: sha512-eBV5rvW4dRFOU1eajN7FmYxjAIVz/mRHgUE9En9mBn6m3mulK3WTR5C3iQhL9MZ14rWAq+xOlEaCkDiW0/heOg==} + engines: {node: '>=14'} + dev: false + /@rollup/plugin-alias/3.1.9_rollup@2.78.0: resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} engines: {node: '>=8.0.0'} @@ -2506,6 +2200,16 @@ packages: slash: 3.0.0 dev: true + /@rollup/plugin-alias/3.1.9_rollup@2.79.0: + resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} + engines: {node: '>=8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + rollup: 2.79.0 + slash: 3.0.0 + dev: true + /@rollup/plugin-commonjs/22.0.2_rollup@2.78.0: resolution: {integrity: sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==} engines: {node: '>= 12.0.0'} @@ -2522,6 +2226,22 @@ packages: rollup: 2.78.0 dev: true + /@rollup/plugin-commonjs/22.0.2_rollup@2.79.0: + resolution: {integrity: sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==} + engines: {node: '>= 12.0.0'} + peerDependencies: + rollup: ^2.68.0 + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.79.0 + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 7.2.0 + is-reference: 1.2.1 + magic-string: 0.25.9 + resolve: 1.22.1 + rollup: 2.79.0 + dev: true + /@rollup/plugin-dynamic-import-vars/1.4.4_rollup@2.78.0: resolution: {integrity: sha512-51BcU6ag9EeF09CtEsa5D/IHYo7KI42TR1Jc4doNzV1nHAiH7TvUi5vsLERFMjs9Gzy9K0otbZH/2wb0hpBhRA==} engines: {node: '>= 10.0.0'} @@ -2530,7 +2250,7 @@ packages: dependencies: '@rollup/pluginutils': 4.2.1 estree-walker: 2.0.2 - fast-glob: 3.2.11 + fast-glob: 3.2.12 magic-string: 0.25.9 rollup: 2.78.0 dev: true @@ -2544,11 +2264,35 @@ packages: rollup: 2.78.0 dev: true - /@rollup/plugin-node-resolve/13.3.0_rollup@2.78.0: - resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} + /@rollup/plugin-json/4.1.0_rollup@2.79.0: + resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.79.0 + rollup: 2.79.0 + dev: true + + /@rollup/plugin-node-resolve/13.3.0_rollup@2.79.0: + resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^2.42.0 + dependencies: + '@rollup/pluginutils': 3.1.0_rollup@2.79.0 + '@types/resolve': 1.17.1 + deepmerge: 4.2.2 + is-builtin-module: 3.1.0 + is-module: 1.0.0 + resolve: 1.22.1 + rollup: 2.79.0 + dev: true + + /@rollup/plugin-node-resolve/14.1.0_rollup@2.78.0: + resolution: {integrity: sha512-5G2niJroNCz/1zqwXtk0t9+twOSDlG00k1Wfd7bkbbXmwg8H8dvgHdIWAun53Ps/rckfvOC7scDBjuGFg5OaWw==} engines: {node: '>= 10.0.0'} peerDependencies: - rollup: ^2.42.0 + rollup: ^2.78.0 dependencies: '@rollup/pluginutils': 3.1.0_rollup@2.78.0 '@types/resolve': 1.17.1 @@ -2559,18 +2303,18 @@ packages: rollup: 2.78.0 dev: true - /@rollup/plugin-replace/4.0.0_rollup@2.78.0: + /@rollup/plugin-replace/4.0.0_rollup@2.79.0: resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.78.0 + '@rollup/pluginutils': 3.1.0_rollup@2.79.0 magic-string: 0.25.9 - rollup: 2.78.0 + rollup: 2.79.0 dev: true - /@rollup/plugin-typescript/8.4.0_7emp2e44zzc74lnyjhc37gdv4y: - resolution: {integrity: sha512-QssfoOP6V4/6skX12EfOW5UzJAv/c334F4OJWmQpe2kg3agEa0JwVCckwmfuvEgDixyX+XyxjFenH7M2rDKUyQ==} + /@rollup/plugin-typescript/8.5.0_7emp2e44zzc74lnyjhc37gdv4y: + resolution: {integrity: sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ==} engines: {node: '>=8.0.0'} peerDependencies: rollup: ^2.14.0 @@ -2587,8 +2331,8 @@ packages: typescript: 4.6.4 dev: true - /@rollup/plugin-typescript/8.4.0_rollup@2.78.0+tslib@2.4.0: - resolution: {integrity: sha512-QssfoOP6V4/6skX12EfOW5UzJAv/c334F4OJWmQpe2kg3agEa0JwVCckwmfuvEgDixyX+XyxjFenH7M2rDKUyQ==} + /@rollup/plugin-typescript/8.5.0_rollup@2.78.0+tslib@2.4.0: + resolution: {integrity: sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ==} engines: {node: '>=8.0.0'} peerDependencies: rollup: ^2.14.0 @@ -2616,6 +2360,18 @@ packages: rollup: 2.78.0 dev: true + /@rollup/pluginutils/3.1.0_rollup@2.79.0: + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.0 + dev: true + /@rollup/pluginutils/4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -2624,8 +2380,8 @@ packages: picomatch: 2.3.1 dev: true - /@rushstack/node-core-library/3.51.1: - resolution: {integrity: sha512-xLoUztvGpaT5CphDexDPt2WbBx8D68VS5tYOkwfr98p90y0f/wepgXlTA/q5MUeZGGucASiXKp5ysdD+GPYf9A==} + /@rushstack/node-core-library/3.52.0: + resolution: {integrity: sha512-Z+MAP//G3rEGZd3JxJcBGcPYJlh8pvPoLMTLa5Sy6FTE6hRPzN+5J8DT7BbTmlqZaL6SZpXF30heRUbnYOvujw==} dependencies: '@types/node': 12.20.24 colors: 1.2.5 @@ -2637,15 +2393,15 @@ packages: z-schema: 5.0.3 dev: true - /@rushstack/rig-package/0.3.14: - resolution: {integrity: sha512-Ic9EN3kWJCK6iOxEDtwED9nrM146zCDrQaUxbeGOF+q/VLZ/HNHPw+aLqrqmTl0ZT66Sf75Qk6OG+rySjTorvQ==} + /@rushstack/rig-package/0.3.15: + resolution: {integrity: sha512-jxVfvO5OnkRlYRhcVDZWvwiI2l4pv37HDJRtyg5HbD8Z/I8Xj32RICgrxS5xMeGGytobrg5S6OfPOHskg7Nw+A==} dependencies: resolve: 1.17.0 strip-json-comments: 3.1.1 dev: true - /@rushstack/ts-command-line/4.12.2: - resolution: {integrity: sha512-poBtnumLuWmwmhCEkVAgynWgtnF9Kygekxyp4qtQUSbBrkuyPQTL85c8Cva1YfoUpOdOXxezMAkUt0n5SNKGqw==} + /@rushstack/ts-command-line/4.12.3: + resolution: {integrity: sha512-Pdij22RotMXzI+HWHyYCvw0RMZhiP5a6Za/96XamZ1+mxmpSm4ujf8TROKxGAHySmR5A8iNVSlzhNMnUlFQE6g==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 @@ -2676,8 +2432,8 @@ packages: /@types/babel__core/7.1.19: resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: - '@babel/parser': 7.18.5 - '@babel/types': 7.18.13 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.17.1 @@ -2686,13 +2442,13 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.18.13 + '@babel/types': 7.19.0 dev: true /@types/babel__standalone/7.1.4: resolution: {integrity: sha512-HijIDmcNl3Wmo0guqjYkQvMzyRCM6zMCkYcdG8f+2X7mPBNa9ikSeaQlWs2Yg18KN1klOJzyupX5BPOf+7ahaw==} dependencies: - '@babel/core': 7.18.5 + '@babel/core': 7.19.1 transitivePeerDependencies: - supports-color dev: true @@ -2700,14 +2456,14 @@ packages: /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.18.5 - '@babel/types': 7.18.13 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 dev: true /@types/babel__traverse/7.17.1: resolution: {integrity: sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==} dependencies: - '@babel/types': 7.18.13 + '@babel/types': 7.19.0 dev: true /@types/braces/3.0.1: @@ -2809,8 +2565,14 @@ packages: /@types/parse-json/4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} - /@types/prompts/2.4.0: - resolution: {integrity: sha512-7th8Opn+0XlN0O6qzO7dXOPwL6rigq/EwRS2DntaTHwSw8cLaYKeAPt5dWEKHSL+ffVSUl1itTPUC06+FlsV4Q==} + /@types/picomatch/2.3.0: + resolution: {integrity: sha512-O397rnSS9iQI4OirieAtsDqvCj4+3eY1J+EPdNTKuHuRWIfUoGyzX294o8C4KJYaLqgSrd2o60c5EqCU8Zv02g==} + dev: true + + /@types/prompts/2.0.14: + resolution: {integrity: sha512-HZBd99fKxRWpYCErtm2/yxUZv6/PBI9J7N4TNFffl5JbrYMHBwF25DjQGTW3b3jmXq+9P6/8fCIb2ee57BFfYA==} + dependencies: + '@types/node': 17.0.42 dev: true /@types/resolve/1.17.1: @@ -2853,8 +2615,8 @@ packages: '@types/node': 17.0.42 dev: true - /@typescript-eslint/eslint-plugin/5.35.1_hy4by47wjjtoupqk2r7jy5xf2e: - resolution: {integrity: sha512-RBZZXZlI4XCY4Wzgy64vB+0slT9+yAPQRjj/HSaRwUot33xbDjF1oN9BLwOLTewoOI0jothIltZRe9uJCHf8gg==} + /@typescript-eslint/eslint-plugin/5.38.0_2x3pnxumot2lspjryjtmmusp2e: + resolution: {integrity: sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2864,13 +2626,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.35.1_pyvvhc3zqdua4akflcggygkl44 - '@typescript-eslint/scope-manager': 5.35.1 - '@typescript-eslint/type-utils': 5.35.1_pyvvhc3zqdua4akflcggygkl44 - '@typescript-eslint/utils': 5.35.1_pyvvhc3zqdua4akflcggygkl44 + '@typescript-eslint/parser': 5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje + '@typescript-eslint/scope-manager': 5.38.0 + '@typescript-eslint/type-utils': 5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje + '@typescript-eslint/utils': 5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje debug: 4.3.4 - eslint: 8.23.0 - functional-red-black-tree: 1.0.1 + eslint: 8.23.1 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 @@ -2880,8 +2641,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.35.1_pyvvhc3zqdua4akflcggygkl44: - resolution: {integrity: sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg==} + /@typescript-eslint/parser/5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje: + resolution: {integrity: sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2890,26 +2651,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.35.1 - '@typescript-eslint/types': 5.35.1 - '@typescript-eslint/typescript-estree': 5.35.1_typescript@4.6.4 + '@typescript-eslint/scope-manager': 5.38.0 + '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.6.4 debug: 4.3.4 - eslint: 8.23.0 + eslint: 8.23.1 typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.35.1: - resolution: {integrity: sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q==} + /@typescript-eslint/scope-manager/5.38.0: + resolution: {integrity: sha512-ByhHIuNyKD9giwkkLqzezZ9y5bALW8VNY6xXcP+VxoH4JBDKjU5WNnsiD4HJdglHECdV+lyaxhvQjTUbRboiTA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.35.1 - '@typescript-eslint/visitor-keys': 5.35.1 + '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/visitor-keys': 5.38.0 dev: true - /@typescript-eslint/type-utils/5.35.1_pyvvhc3zqdua4akflcggygkl44: - resolution: {integrity: sha512-8xT8ljvo43Mp7BiTn1vxLXkjpw8wS4oAc00hMSB4L1/jIiYbjjnc3Qp2GAUOG/v8zsNCd1qwcqfCQ0BuishHkw==} + /@typescript-eslint/type-utils/5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje: + resolution: {integrity: sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2918,22 +2679,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.35.1_pyvvhc3zqdua4akflcggygkl44 + '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.6.4 + '@typescript-eslint/utils': 5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje debug: 4.3.4 - eslint: 8.23.0 + eslint: 8.23.1 tsutils: 3.21.0_typescript@4.6.4 typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.35.1: - resolution: {integrity: sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ==} + /@typescript-eslint/types/5.38.0: + resolution: {integrity: sha512-HHu4yMjJ7i3Cb+8NUuRCdOGu2VMkfmKyIJsOr9PfkBVYLYrtMCK/Ap50Rpov+iKpxDTfnqvDbuPLgBE5FwUNfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.35.1_typescript@4.6.4: - resolution: {integrity: sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA==} + /@typescript-eslint/typescript-estree/5.38.0_typescript@4.6.4: + resolution: {integrity: sha512-6P0RuphkR+UuV7Avv7MU3hFoWaGcrgOdi8eTe1NwhMp2/GjUJoODBTRWzlHpZh6lFOaPmSvgxGlROa0Sg5Zbyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -2941,8 +2703,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.35.1 - '@typescript-eslint/visitor-keys': 5.35.1 + '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/visitor-keys': 5.38.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2953,29 +2715,29 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.35.1_pyvvhc3zqdua4akflcggygkl44: - resolution: {integrity: sha512-v6F8JNXgeBWI4pzZn36hT2HXXzoBBBJuOYvoQiaQaEEjdi5STzux3Yj8v7ODIpx36i/5s8TdzuQ54TPc5AITQQ==} + /@typescript-eslint/utils/5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje: + resolution: {integrity: sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.35.1 - '@typescript-eslint/types': 5.35.1 - '@typescript-eslint/typescript-estree': 5.35.1_typescript@4.6.4 - eslint: 8.23.0 + '@typescript-eslint/scope-manager': 5.38.0 + '@typescript-eslint/types': 5.38.0 + '@typescript-eslint/typescript-estree': 5.38.0_typescript@4.6.4 + eslint: 8.23.1 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.23.0 + eslint-utils: 3.0.0_eslint@8.23.1 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.35.1: - resolution: {integrity: sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g==} + /@typescript-eslint/visitor-keys/5.38.0: + resolution: {integrity: sha512-MxnrdIyArnTi+XyFLR+kt/uNAcdOnmT+879os7qDRI+EYySR4crXJq9BXPfRzzLGq0wgxkwidrCJ9WCAoacm1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.35.1 + '@typescript-eslint/types': 5.38.0 eslint-visitor-keys: 3.3.0 dev: true @@ -2983,14 +2745,14 @@ packages: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} dev: false - /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.18.13: + /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.19.1: resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} dependencies: '@babel/helper-module-imports': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.18.13 + '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.19.1 '@babel/template': 7.16.7 '@babel/traverse': 7.17.10 - '@babel/types': 7.17.10 + '@babel/types': 7.19.0 '@vue/babel-helper-vue-transform-on': 1.0.2 camelcase: 6.3.0 html-tags: 3.2.0 @@ -3000,39 +2762,39 @@ packages: - supports-color dev: false - /@vue/compiler-core/3.2.37: - resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} + /@vue/compiler-core/3.2.39: + resolution: {integrity: sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==} dependencies: - '@babel/parser': 7.18.5 - '@vue/shared': 3.2.37 + '@babel/parser': 7.19.1 + '@vue/shared': 3.2.39 estree-walker: 2.0.2 source-map: 0.6.1 - /@vue/compiler-dom/3.2.37: - resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} + /@vue/compiler-dom/3.2.39: + resolution: {integrity: sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==} dependencies: - '@vue/compiler-core': 3.2.37 - '@vue/shared': 3.2.37 + '@vue/compiler-core': 3.2.39 + '@vue/shared': 3.2.39 - /@vue/compiler-sfc/3.2.37: - resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} + /@vue/compiler-sfc/3.2.39: + resolution: {integrity: sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==} dependencies: - '@babel/parser': 7.18.5 - '@vue/compiler-core': 3.2.37 - '@vue/compiler-dom': 3.2.37 - '@vue/compiler-ssr': 3.2.37 - '@vue/reactivity-transform': 3.2.37 - '@vue/shared': 3.2.37 + '@babel/parser': 7.19.1 + '@vue/compiler-core': 3.2.39 + '@vue/compiler-dom': 3.2.39 + '@vue/compiler-ssr': 3.2.39 + '@vue/reactivity-transform': 3.2.39 + '@vue/shared': 3.2.39 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.14 + postcss: 8.4.16 source-map: 0.6.1 - /@vue/compiler-ssr/3.2.37: - resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} + /@vue/compiler-ssr/3.2.39: + resolution: {integrity: sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==} dependencies: - '@vue/compiler-dom': 3.2.37 - '@vue/shared': 3.2.37 + '@vue/compiler-dom': 3.2.39 + '@vue/shared': 3.2.39 /@vue/devtools-api/6.1.4: resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==} @@ -3041,65 +2803,65 @@ packages: /@vue/devtools-api/6.2.1: resolution: {integrity: sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==} - /@vue/reactivity-transform/3.2.37: - resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} + /@vue/reactivity-transform/3.2.39: + resolution: {integrity: sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==} dependencies: - '@babel/parser': 7.18.5 - '@vue/compiler-core': 3.2.37 - '@vue/shared': 3.2.37 + '@babel/parser': 7.19.1 + '@vue/compiler-core': 3.2.39 + '@vue/shared': 3.2.39 estree-walker: 2.0.2 magic-string: 0.25.9 - /@vue/reactivity/3.2.37: - resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} + /@vue/reactivity/3.2.39: + resolution: {integrity: sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ==} dependencies: - '@vue/shared': 3.2.37 + '@vue/shared': 3.2.39 - /@vue/runtime-core/3.2.37: - resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} + /@vue/runtime-core/3.2.39: + resolution: {integrity: sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g==} dependencies: - '@vue/reactivity': 3.2.37 - '@vue/shared': 3.2.37 + '@vue/reactivity': 3.2.39 + '@vue/shared': 3.2.39 - /@vue/runtime-dom/3.2.37: - resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} + /@vue/runtime-dom/3.2.39: + resolution: {integrity: sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA==} dependencies: - '@vue/runtime-core': 3.2.37 - '@vue/shared': 3.2.37 + '@vue/runtime-core': 3.2.39 + '@vue/shared': 3.2.39 csstype: 2.6.20 - /@vue/server-renderer/3.2.37_vue@3.2.37: - resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} + /@vue/server-renderer/3.2.39_vue@3.2.39: + resolution: {integrity: sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ==} peerDependencies: - vue: 3.2.37 + vue: 3.2.39 dependencies: - '@vue/compiler-ssr': 3.2.37 - '@vue/shared': 3.2.37 - vue: 3.2.37 + '@vue/compiler-ssr': 3.2.39 + '@vue/shared': 3.2.39 + vue: 3.2.39 - /@vue/shared/3.2.37: - resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} + /@vue/shared/3.2.39: + resolution: {integrity: sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==} - /@vueuse/core/9.1.0_vue@3.2.37: - resolution: {integrity: sha512-BIroqvXEqt826aE9r3K5cox1zobuPuAzdYJ36kouC2TVhlXvFKIILgFVWrpp9HZPwB3aLzasmG3K87q7TSyXZg==} + /@vueuse/core/9.2.0_vue@3.2.39: + resolution: {integrity: sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg==} dependencies: '@types/web-bluetooth': 0.0.15 - '@vueuse/metadata': 9.1.0 - '@vueuse/shared': 9.1.0_vue@3.2.37 - vue-demi: 0.13.1_vue@3.2.37 + '@vueuse/metadata': 9.2.0 + '@vueuse/shared': 9.2.0_vue@3.2.39 + vue-demi: 0.13.1_vue@3.2.39 transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/metadata/9.1.0: - resolution: {integrity: sha512-8OEhlog1iaAGTD3LICZ8oBGQdYeMwByvXetOtAOZCJOzyCRSwqwdggTsmVZZ1rkgYIEqgUBk942AsAPwM21s6A==} + /@vueuse/metadata/9.2.0: + resolution: {integrity: sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw==} dev: true - /@vueuse/shared/9.1.0_vue@3.2.37: - resolution: {integrity: sha512-pB/3njQu4tfJJ78ajELNda0yMG6lKfpToQW7Soe09CprF1k3QuyoNi1tBNvo75wBDJWD+LOnr+c4B5HZ39jY/Q==} + /@vueuse/shared/9.2.0_vue@3.2.39: + resolution: {integrity: sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA==} dependencies: - vue-demi: 0.13.1_vue@3.2.37 + vue-demi: 0.13.1_vue@3.2.39 transitivePeerDependencies: - '@vue/composition-api' - vue @@ -3359,15 +3121,15 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: false - /autoprefixer/10.4.8: - resolution: {integrity: sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==} + /autoprefixer/10.4.12: + resolution: {integrity: sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.3 - caniuse-lite: 1.0.30001373 + browserslist: 4.21.4 + caniuse-lite: 1.0.30001409 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -3387,7 +3149,7 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.19.0 cosmiconfig: 7.0.1 resolve: 1.22.1 @@ -3395,7 +3157,7 @@ packages: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/types': 7.17.10 + '@babel/types': 7.19.0 dev: true /balanced-match/1.0.2: @@ -3462,27 +3224,15 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist/4.20.3: - resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001339 - electron-to-chromium: 1.4.137 - escalade: 3.1.1 - node-releases: 2.0.4 - picocolors: 1.0.0 - dev: true - - /browserslist/4.21.3: - resolution: {integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==} + /browserslist/4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001373 - electron-to-chromium: 1.4.206 + caniuse-lite: 1.0.30001409 + electron-to-chromium: 1.4.258 node-releases: 2.0.6 - update-browserslist-db: 1.0.5_browserslist@4.21.3 + update-browserslist-db: 1.0.9_browserslist@4.21.4 /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -3549,12 +3299,8 @@ packages: engines: {node: '>=10'} dev: false - /caniuse-lite/1.0.30001339: - resolution: {integrity: sha512-Es8PiVqCe+uXdms0Gu5xP5PF2bxLR7OBp3wUzUnuO7OHzhOfCyg3hdiGWVPVxhiuniOzng+hTc1u3fEQ0TlkSQ==} - dev: true - - /caniuse-lite/1.0.30001373: - resolution: {integrity: sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==} + /caniuse-lite/1.0.30001409: + resolution: {integrity: sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ==} /chai/4.3.6: resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} @@ -3631,10 +3377,10 @@ packages: commander: 7.2.0 compatfactory: 0.0.6_typescript@4.6.4 crosspath: 0.0.8 - fast-glob: 3.2.11 + fast-glob: 3.2.12 helpertypes: 0.0.2 reserved-words: 0.1.2 - resolve: 1.22.0 + resolve: 1.22.1 typescript: 4.6.4 dev: true @@ -3819,8 +3565,8 @@ packages: /constantinople/4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - '@babel/parser': 7.18.5 - '@babel/types': 7.17.10 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 dev: true /content-disposition/0.5.4: @@ -4018,8 +3764,8 @@ packages: is-what: 3.14.1 dev: true - /core-js/3.25.0: - resolution: {integrity: sha512-CVU1xvJEfJGhyCpBrzzzU1kjCfgsGUxhEvwUV2e/cOedYWHdmluamx+knDnmhqALddMG16fZvIqvs9aijsHHaA==} + /core-js/3.25.2: + resolution: {integrity: sha512-YB4IAT1bjEfxTJ1XYy11hJAKskO+qmhuDBM8/guIfMz4JvdsAQAqvyb97zXX7JgSrfPLG5mRGFWJwJD39ruq2A==} requiresBuild: true dev: false @@ -4048,14 +3794,6 @@ packages: /create-require/1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - /cross-env/7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true - dependencies: - cross-spawn: 7.0.3 - dev: true - /cross-spawn/6.0.5: resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} engines: {node: '>=4.8'} @@ -4314,12 +4052,8 @@ packages: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} dev: true - /electron-to-chromium/1.4.137: - resolution: {integrity: sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==} - dev: true - - /electron-to-chromium/1.4.206: - resolution: {integrity: sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==} + /electron-to-chromium/1.4.258: + resolution: {integrity: sha512-vutF4q0dTUXoAFI7Vbtdwen/BJVwPgj8GRg/SElOodfH7VTX+svUe62A5BG41QRQGk5HsZPB0M++KH1lAlOt0A==} /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -4333,8 +4067,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /entities/4.3.1: - resolution: {integrity: sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==} + /entities/4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} engines: {node: '>=0.12'} dev: true @@ -4452,22 +4186,12 @@ packages: dev: true optional: true - /esbuild-android-64/0.15.5: - resolution: {integrity: sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-64/0.15.6: - resolution: {integrity: sha512-Z1CHSgB1crVQi2LKSBwSkpaGtaloVz0ZIYcRMsvHc3uSXcR/x5/bv9wcZspvH/25lIGTaViosciS/NS09ERmVA==} + /esbuild-android-64/0.15.9: + resolution: {integrity: sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true - dev: false optional: true /esbuild-android-arm64/0.14.47: @@ -4488,22 +4212,12 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.5: - resolution: {integrity: sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64/0.15.6: - resolution: {integrity: sha512-mvM+gqNxqKm2pCa3dnjdRzl7gIowuc4ga7P7c3yHzs58Im8v/Lfk1ixSgQ2USgIywT48QWaACRa3F4MG7djpSw==} + /esbuild-android-arm64/0.15.9: + resolution: {integrity: sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true - dev: false optional: true /esbuild-darwin-64/0.14.47: @@ -4524,22 +4238,12 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.5: - resolution: {integrity: sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.15.6: - resolution: {integrity: sha512-BsfVt3usScAfGlXJiGtGamwVEOTM8AiYiw1zqDWhGv6BncLXCnTg1As+90mxWewdTZKq3iIy8s9g8CKkrrAXVw==} + /esbuild-darwin-64/0.15.9: + resolution: {integrity: sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true - dev: false optional: true /esbuild-darwin-arm64/0.14.47: @@ -4560,22 +4264,12 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.5: - resolution: {integrity: sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.15.6: - resolution: {integrity: sha512-CnrAeJaEpPakUobhqO4wVSA4Zm6TPaI5UY4EsI62j9mTrjIyQPXA1n4Ju6Iu5TVZRnEqV6q8blodgYJ6CJuwCA==} + /esbuild-darwin-arm64/0.15.9: + resolution: {integrity: sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true - dev: false optional: true /esbuild-freebsd-64/0.14.47: @@ -4596,22 +4290,12 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.5: - resolution: {integrity: sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.15.6: - resolution: {integrity: sha512-+qFdmqi+jkAsxsNJkaWVrnxEUUI50nu6c3MBVarv3RCDCbz7ZS1a4ZrdkwEYFnKcVWu6UUE0Kkb1SQ1yGEG6sg==} + /esbuild-freebsd-64/0.15.9: + resolution: {integrity: sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true - dev: false optional: true /esbuild-freebsd-arm64/0.14.47: @@ -4632,22 +4316,12 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.5: - resolution: {integrity: sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.15.6: - resolution: {integrity: sha512-KtQkQOhnNciXm2yrTYZMD3MOm2zBiiwFSU+dkwNbcfDumzzUprr1x70ClTdGuZwieBS1BM/k0KajRQX7r504Xw==} + /esbuild-freebsd-arm64/0.15.9: + resolution: {integrity: sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true - dev: false optional: true /esbuild-linux-32/0.14.47: @@ -4668,22 +4342,12 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.5: - resolution: {integrity: sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.15.6: - resolution: {integrity: sha512-IAkDNz3TpxwISTGVdQijwyHBZrbFgLlRi5YXcvaEHtgbmayLSDcJmH5nV1MFgo/x2QdKcHBkOYHdjhKxUAcPwg==} + /esbuild-linux-32/0.15.9: + resolution: {integrity: sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-64/0.14.47: @@ -4704,22 +4368,12 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.5: - resolution: {integrity: sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.15.6: - resolution: {integrity: sha512-gQPksyrEYfA4LJwyfTQWAZaVZCx4wpaLrSzo2+Xc9QLC+i/sMWmX31jBjrn4nLJCd79KvwCinto36QC7BEIU/A==} + /esbuild-linux-64/0.15.9: + resolution: {integrity: sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-arm/0.14.47: @@ -4740,22 +4394,12 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.5: - resolution: {integrity: sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.15.6: - resolution: {integrity: sha512-xZ0Bq2aivsthDjA/ytQZzxrxIZbG0ATJYMJxNeOIBc1zUjpbVpzBKgllOZMsTSXMHFHGrow6TnCcgwqY0+oEoQ==} + /esbuild-linux-arm/0.15.9: + resolution: {integrity: sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-arm64/0.14.47: @@ -4776,22 +4420,12 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.5: - resolution: {integrity: sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.15.6: - resolution: {integrity: sha512-aovDkclFa6C9EdZVBuOXxqZx83fuoq8097xZKhEPSygwuy4Lxs8J4anHG7kojAsR+31lfUuxzOo2tHxv7EiNHA==} + /esbuild-linux-arm64/0.15.9: + resolution: {integrity: sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-mips64le/0.14.47: @@ -4812,22 +4446,12 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.5: - resolution: {integrity: sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.15.6: - resolution: {integrity: sha512-wVpW8wkWOGizsCqCwOR/G3SHwhaecpGy3fic9BF1r7vq4djLjUcA8KunDaBCjJ6TgLQFhJ98RjDuyEf8AGjAvw==} + /esbuild-linux-mips64le/0.15.9: + resolution: {integrity: sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-ppc64le/0.14.47: @@ -4848,22 +4472,12 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.5: - resolution: {integrity: sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.15.6: - resolution: {integrity: sha512-z6w6gsPH/Y77uchocluDC8tkCg9rfkcPTePzZKNr879bF4tu7j9t255wuNOCE396IYEGxY7y8u2HJ9i7kjCLVw==} + /esbuild-linux-ppc64le/0.15.9: + resolution: {integrity: sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-riscv64/0.14.47: @@ -4884,22 +4498,12 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.5: - resolution: {integrity: sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.15.6: - resolution: {integrity: sha512-pfK/3MJcmbfU399TnXW5RTPS1S+ID6ra+CVj9TFZ2s0q9Ja1F5A1VirUUvViPkjiw+Kq3zveyn6U09Wg1zJXrw==} + /esbuild-linux-riscv64/0.15.9: + resolution: {integrity: sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-s390x/0.14.47: @@ -4920,22 +4524,12 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.5: - resolution: {integrity: sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x/0.15.6: - resolution: {integrity: sha512-OZeeDu32liefcwAE63FhVqM4heWTC8E3MglOC7SK0KYocDdY/6jyApw0UDkDHlcEK9mW6alX/SH9r3PDjcCo/Q==} + /esbuild-linux-s390x/0.15.9: + resolution: {integrity: sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-netbsd-64/0.14.47: @@ -4956,22 +4550,12 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.5: - resolution: {integrity: sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64/0.15.6: - resolution: {integrity: sha512-kaxw61wcHMyiEsSsi5ut1YYs/hvTC2QkxJwyRvC2Cnsz3lfMLEu8zAjpBKWh9aU/N0O/gsRap4wTur5GRuSvBA==} + /esbuild-netbsd-64/0.15.9: + resolution: {integrity: sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true - dev: false optional: true /esbuild-openbsd-64/0.14.47: @@ -4992,22 +4576,12 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.5: - resolution: {integrity: sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64/0.15.6: - resolution: {integrity: sha512-CuoY60alzYfIZapUHqFXqXbj88bbRJu8Fp9okCSHRX2zWIcGz4BXAHXiG7dlCye5nFVrY72psesLuWdusyf2qw==} + /esbuild-openbsd-64/0.15.9: + resolution: {integrity: sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true - dev: false optional: true /esbuild-sunos-64/0.14.47: @@ -5028,22 +4602,12 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.5: - resolution: {integrity: sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64/0.15.6: - resolution: {integrity: sha512-1ceefLdPWcd1nW/ZLruPEYxeUEAVX0YHbG7w+BB4aYgfknaLGotI/ZvPWUZpzhC8l1EybrVlz++lm3E6ODIJOg==} + /esbuild-sunos-64/0.15.9: + resolution: {integrity: sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true - dev: false optional: true /esbuild-windows-32/0.14.47: @@ -5064,22 +4628,12 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.5: - resolution: {integrity: sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.15.6: - resolution: {integrity: sha512-pBqdOsKqCD5LRYiwF29PJRDJZi7/Wgkz46u3d17MRFmrLFcAZDke3nbdDa1c8YgY78RiemudfCeAemN8EBlIpA==} + /esbuild-windows-32/0.15.9: + resolution: {integrity: sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true - dev: false optional: true /esbuild-windows-64/0.14.47: @@ -5100,22 +4654,12 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.5: - resolution: {integrity: sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.15.6: - resolution: {integrity: sha512-KpPOh4aTOo//g9Pk2oVAzXMpc9Sz9n5A9sZTmWqDSXCiiachfFhbuFlsKBGATYCVitXfmBIJ4nNYYWSOdz4hQg==} + /esbuild-windows-64/0.15.9: + resolution: {integrity: sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true - dev: false optional: true /esbuild-windows-arm64/0.14.47: @@ -5136,22 +4680,12 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.5: - resolution: {integrity: sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.15.6: - resolution: {integrity: sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg==} + /esbuild-windows-arm64/0.15.9: + resolution: {integrity: sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true - dev: false optional: true /esbuild/0.14.47: @@ -5210,63 +4744,34 @@ packages: esbuild-windows-arm64: 0.14.50 dev: true - /esbuild/0.15.5: - resolution: {integrity: sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/linux-loong64': 0.15.5 - esbuild-android-64: 0.15.5 - esbuild-android-arm64: 0.15.5 - esbuild-darwin-64: 0.15.5 - esbuild-darwin-arm64: 0.15.5 - esbuild-freebsd-64: 0.15.5 - esbuild-freebsd-arm64: 0.15.5 - esbuild-linux-32: 0.15.5 - esbuild-linux-64: 0.15.5 - esbuild-linux-arm: 0.15.5 - esbuild-linux-arm64: 0.15.5 - esbuild-linux-mips64le: 0.15.5 - esbuild-linux-ppc64le: 0.15.5 - esbuild-linux-riscv64: 0.15.5 - esbuild-linux-s390x: 0.15.5 - esbuild-netbsd-64: 0.15.5 - esbuild-openbsd-64: 0.15.5 - esbuild-sunos-64: 0.15.5 - esbuild-windows-32: 0.15.5 - esbuild-windows-64: 0.15.5 - esbuild-windows-arm64: 0.15.5 - dev: true - - /esbuild/0.15.6: - resolution: {integrity: sha512-sgLOv3l4xklvXzzczhRwKRotyrfyZ2i1fCS6PTOLPd9wevDPArGU8HFtHrHCOcsMwTjLjzGm15gvC8uxVzQf+w==} + /esbuild/0.15.9: + resolution: {integrity: sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/linux-loong64': 0.15.6 - esbuild-android-64: 0.15.6 - esbuild-android-arm64: 0.15.6 - esbuild-darwin-64: 0.15.6 - esbuild-darwin-arm64: 0.15.6 - esbuild-freebsd-64: 0.15.6 - esbuild-freebsd-arm64: 0.15.6 - esbuild-linux-32: 0.15.6 - esbuild-linux-64: 0.15.6 - esbuild-linux-arm: 0.15.6 - esbuild-linux-arm64: 0.15.6 - esbuild-linux-mips64le: 0.15.6 - esbuild-linux-ppc64le: 0.15.6 - esbuild-linux-riscv64: 0.15.6 - esbuild-linux-s390x: 0.15.6 - esbuild-netbsd-64: 0.15.6 - esbuild-openbsd-64: 0.15.6 - esbuild-sunos-64: 0.15.6 - esbuild-windows-32: 0.15.6 - esbuild-windows-64: 0.15.6 - esbuild-windows-arm64: 0.15.6 - dev: false + '@esbuild/android-arm': 0.15.9 + '@esbuild/linux-loong64': 0.15.9 + esbuild-android-64: 0.15.9 + esbuild-android-arm64: 0.15.9 + esbuild-darwin-64: 0.15.9 + esbuild-darwin-arm64: 0.15.9 + esbuild-freebsd-64: 0.15.9 + esbuild-freebsd-arm64: 0.15.9 + esbuild-linux-32: 0.15.9 + esbuild-linux-64: 0.15.9 + esbuild-linux-arm: 0.15.9 + esbuild-linux-arm64: 0.15.9 + esbuild-linux-mips64le: 0.15.9 + esbuild-linux-ppc64le: 0.15.9 + esbuild-linux-riscv64: 0.15.9 + esbuild-linux-s390x: 0.15.9 + esbuild-netbsd-64: 0.15.9 + esbuild-openbsd-64: 0.15.9 + esbuild-sunos-64: 0.15.9 + esbuild-windows-32: 0.15.9 + esbuild-windows-64: 0.15.9 + esbuild-windows-arm64: 0.15.9 /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -5284,8 +4789,8 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /eslint-define-config/1.6.0: - resolution: {integrity: sha512-3qulYnwDRGYQHXHGdXBSRcfpI7m37ilBoERzTUYI8fBUoK/46yfUVNkGwM9cF/aoBrGgIDcBSz/HyPQJTHI/+w==} + /eslint-define-config/1.7.0: + resolution: {integrity: sha512-13zk8z8eKO4tpPMvAGV0sa6ok0XuMeu7Zhcizu2bLwcLy1fbNt7/h8PU1wbp9IoIgQETggZJozU0nPXUXOao2g==} engines: {node: '>= 14.6.0', npm: '>= 6.0.0', pnpm: '>= 7.0.0'} dev: true @@ -5298,7 +4803,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.3_v26d7mdxwhyqykunawffqp7s2m: + /eslint-module-utils/2.7.3_wksnzkbqgr3q3djac7fn35kbeq: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} peerDependencies: @@ -5316,7 +4821,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.35.1_pyvvhc3zqdua4akflcggygkl44 + '@typescript-eslint/parser': 5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje debug: 3.2.7 eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 @@ -5324,18 +4829,18 @@ packages: - supports-color dev: true - /eslint-plugin-es/3.0.1_eslint@8.23.0: + /eslint-plugin-es/3.0.1_eslint@8.23.1: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.23.0 + eslint: 8.23.1 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_kavhtzjob4obuugpatbfgsyfbm: + /eslint-plugin-import/2.26.0_cxqatnnjiq7ozd2bkspxnuicdq: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -5345,14 +4850,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.35.1_pyvvhc3zqdua4akflcggygkl44 + '@typescript-eslint/parser': 5.38.0_3pgpbtxx6aaanl2g7t7xjqhlje array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.23.0 + eslint: 8.23.1 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_v26d7mdxwhyqykunawffqp7s2m + eslint-module-utils: 2.7.3_wksnzkbqgr3q3djac7fn35kbeq has: 1.0.3 is-core-module: 2.9.0 is-glob: 4.0.3 @@ -5366,14 +4871,14 @@ packages: - supports-color dev: true - /eslint-plugin-node/11.1.0_eslint@8.23.0: + /eslint-plugin-node/11.1.0_eslint@8.23.1: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.23.0 - eslint-plugin-es: 3.0.1_eslint@8.23.0 + eslint: 8.23.1 + eslint-plugin-es: 3.0.1_eslint@8.23.1 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.1.2 @@ -5404,13 +4909,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.23.0: + /eslint-utils/3.0.0_eslint@8.23.1: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.23.0 + eslint: 8.23.1 eslint-visitor-keys: 2.1.0 dev: true @@ -5429,12 +4934,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.23.0: - resolution: {integrity: sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==} + /eslint/8.23.1: + resolution: {integrity: sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.1 + '@eslint/eslintrc': 1.3.2 '@humanwhocodes/config-array': 0.10.4 '@humanwhocodes/gitignore-to-minimatch': 1.0.2 '@humanwhocodes/module-importer': 1.0.1 @@ -5445,7 +4950,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.23.0 + eslint-utils: 3.0.0_eslint@8.23.1 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -5453,7 +4958,6 @@ packages: fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 find-up: 5.0.0 - functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 globals: 13.15.0 globby: 11.1.0 @@ -5462,6 +4966,7 @@ packages: import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + js-sdsl: 4.1.4 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -5604,8 +5109,8 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob/3.2.11: - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5810,10 +5315,6 @@ packages: functions-have-names: 1.2.3 dev: true - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true @@ -5966,7 +5467,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.11 + fast-glob: 3.2.12 ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 @@ -5977,7 +5478,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.2.11 + fast-glob: 3.2.12 ignore: 5.2.0 merge2: 1.4.1 slash: 4.0.0 @@ -6061,20 +5562,14 @@ packages: engines: {node: '>=10.0.0'} dev: true - /history/5.3.0: - resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} - dependencies: - '@babel/runtime': 7.18.3 - dev: false - /hoist-non-react-statics/3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: react-is: 16.13.1 dev: false - /hookable/5.1.1: - resolution: {integrity: sha512-7qam9XBFb+DijNBthaL1k/7lHU2TEMZkWSyuqmU3sCQze1wFm5w9AlEx30PD7a+QVAjOy6Ec2goFwe1YVyk2uA==} + /hookable/5.3.0: + resolution: {integrity: sha512-4gTA2q08HT8G32uIW7Jpro3rSXgT2ZTM8R6+r7H7joq90eZlqFPPTvHD6w8WZUohIrbXbDperL96ilb6dkNxNw==} dev: true /hosted-git-info/2.8.9: @@ -6331,7 +5826,7 @@ packages: is-extglob: 2.1.1 /is-module/1.0.0: - resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=} + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} dev: true /is-negative-zero/2.0.2: @@ -6455,6 +5950,10 @@ packages: engines: {node: '>=10'} dev: true + /js-sdsl/4.1.4: + resolution: {integrity: sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==} + dev: true + /js-stringify/1.0.2: resolution: {integrity: sha1-Fzb939lyTyijaCrcYjCufk6Weds=} dev: true @@ -6505,8 +6004,8 @@ packages: engines: {node: '>=6'} hasBin: true - /jsonc-parser/3.1.0: - resolution: {integrity: sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==} + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true /jsonfile/4.0.0: @@ -6558,8 +6057,8 @@ packages: engines: {node: '>=6'} dev: true - /kolorist/1.5.1: - resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==} + /kolorist/1.6.0: + resolution: {integrity: sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==} dev: true /launch-editor-middleware/2.6.0: @@ -6776,8 +6275,8 @@ packages: dependencies: sourcemap-codec: 1.4.8 - /magic-string/0.26.2: - resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} + /magic-string/0.26.4: + resolution: {integrity: sha512-e5uXtVJ22aEpK9u1+eQf0fSxHeqwyV19K+uGnlROCxUhzwRip9tBsaMViK/0vC3viyPd5Gtucp3UmEp/Q2cPTQ==} engines: {node: '>=12'} dependencies: sourcemap-codec: 1.4.8 @@ -6981,7 +6480,7 @@ packages: engines: {node: '>=10'} hasBin: true - /mkdist/0.3.13_typescript@4.7.4: + /mkdist/0.3.13_typescript@4.8.2: resolution: {integrity: sha512-+eCPpkr8l2X630y5PIlkts2tzYEsb+aGIgXdrQv9ZGtWE2bLlD6kVIFfI6FJwFpjjw4dPPyorxQc6Uhm/oXlvg==} hasBin: true peerDependencies: @@ -6997,15 +6496,15 @@ packages: jiti: 1.14.0 mri: 1.2.0 pathe: 0.2.0 - typescript: 4.7.4 + typescript: 4.8.2 dev: true - /mlly/0.5.14: - resolution: {integrity: sha512-DgRgNUSX9NIxxCxygX4Xeg9C7GX7OUx1wuQ8cXx9o9LE0e9wrH+OZ9fcnrlEedsC/rtqry3ZhUddC759XD/L0w==} + /mlly/0.5.16: + resolution: {integrity: sha512-LaJ8yuh4v0zEmge/g3c7jjFlhoCPfQn6RCjXgm9A0Qiuochq4BcuOxVfWmdnCoLTlg2MV+hqhOek+W2OhG0Lwg==} dependencies: acorn: 8.8.0 - pathe: 0.3.5 - pkg-types: 0.3.4 + pathe: 0.3.8 + pkg-types: 0.3.5 ufo: 0.8.5 dev: true @@ -7128,10 +6627,6 @@ packages: engines: {node: '>= 6.0.0'} dev: true - /node-releases/2.0.4: - resolution: {integrity: sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==} - dev: true - /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} @@ -7207,6 +6702,10 @@ packages: set-blocking: 2.0.0 dev: false + /nprogress/0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + dev: true + /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -7409,10 +6908,10 @@ packages: engines: {node: '>= 0.10'} dev: true - /parse5/7.0.0: - resolution: {integrity: sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==} + /parse5/7.1.1: + resolution: {integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==} dependencies: - entities: 4.3.1 + entities: 4.4.0 dev: true /parseurl/1.3.3: @@ -7471,8 +6970,8 @@ packages: resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} dev: true - /pathe/0.3.5: - resolution: {integrity: sha512-grU/QeYP0ChuE5kjU2/k8VtAeODzbernHlue0gTa27+ayGIu3wqYBIPGfP9r5xSqgCgDd4nWrjKXEfxMillByg==} + /pathe/0.3.8: + resolution: {integrity: sha512-c71n61F1skhj/jzZe+fWE9XDoTYjWbUwIKVwFftZ5IOgiX44BVkTkD+/803YDgR50tqeO4eXWxLyVHBLWQAD1g==} dev: true /pathval/1.1.1: @@ -7486,8 +6985,8 @@ packages: is-reference: 3.0.0 dev: true - /phoenix/1.6.11: - resolution: {integrity: sha512-z/MSg9yY20JhTSj6tKmOYE9p+PuU+FVstYtgBfIZPGNLKhSuV9Zcs9LLLKWeiJ9EUzaXS/QeO8Po4+jJnyNfMw==} + /phoenix/1.6.12: + resolution: {integrity: sha512-r0MkPQqC348wfEO9Tn6sbFMPt0zn0Mo0aYIz+zig76xxvFQp7xk5GwwlErh04qyCnNfXta2emTQ7aEyo1OtMIQ==} dev: false /picocolors/1.0.0: @@ -7524,31 +7023,31 @@ packages: dev: true optional: true - /pkg-types/0.3.4: - resolution: {integrity: sha512-s214f/xkRpwlwVBToWq9Mu0XlU3HhZMYCnr2var8+jjbavBHh/VCh4pBLsJW29rJ//B1jb4HlpMIaNIMH+W2/w==} + /pkg-types/0.3.5: + resolution: {integrity: sha512-VkxCBFVgQhNHYk9subx+HOhZ4jzynH11ah63LZsprTKwPCWG9pfWBlkElWFbvkP9BVR0dP1jS9xPdhaHQNK74Q==} dependencies: - jsonc-parser: 3.1.0 - mlly: 0.5.14 - pathe: 0.3.5 + jsonc-parser: 3.2.0 + mlly: 0.5.16 + pathe: 0.3.8 dev: true - /playwright-chromium/1.25.1: - resolution: {integrity: sha512-X/B6ycySwV4L+smHu9t+rytPnBLCLI5RAV5TpjVwInv6RPYF6TWZ62zymwiSLxYXeNkyyx0pxTS7jqeOEmMM2g==} + /playwright-chromium/1.26.0: + resolution: {integrity: sha512-4hDiVmMKmtuHW5ne11S1HCQTdL+wytprQMhWYecEjMSIKBR1DJ3JLrcUDgqA0L5Jzi/CBKYQQk6TOVlTjXybXQ==} engines: {node: '>=14'} hasBin: true requiresBuild: true dependencies: - playwright-core: 1.25.1 + playwright-core: 1.26.0 dev: true - /playwright-core/1.25.1: - resolution: {integrity: sha512-lSvPCmA2n7LawD2Hw7gSCLScZ+vYRkhU8xH0AapMyzwN+ojoDqhkH/KIEUxwNu2PjPoE/fcE0wLAksdOhJ2O5g==} + /playwright-core/1.26.0: + resolution: {integrity: sha512-p8huU8eU4gD3VkJd3DA1nA7R3XA6rFvFL+1RYS96cSljCF2yJE9CWEHTPF4LqX8KN9MoWCrAfVKP5381X3CZqg==} engines: {node: '>=14'} hasBin: true dev: true - /pnpm/7.9.5: - resolution: {integrity: sha512-+r7+PlBIsblqia8eUOUsBp/R+lHmGAm55jyQRt3DWMUI0srVR1aNJhQECfx24L53Ckz9g48mVxQXEniQMWQPmw==} + /pnpm/7.12.2: + resolution: {integrity: sha512-8QvnKANKN+YZXDmVYGI7zRJysdKldZI+w3AYnxu9IwtnLv1x6WuzrJr0nxMcTeuUAT908RjDqK+/6KJB9wNqxA==} engines: {node: '>=14.6'} hasBin: true dev: true @@ -7828,7 +7327,7 @@ packages: jstransformer: 1.0.0 pug-error: 2.0.0 pug-walk: 2.0.0 - resolve: 1.22.0 + resolve: 1.22.1 dev: true /pug-lexer/5.0.1: @@ -7971,24 +7470,26 @@ packages: engines: {node: '>=0.10.0'} dev: false - /react-router-dom/6.3.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==} + /react-router-dom/6.4.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-MY7NJCrGNVJtGp8ODMOBHu20UaIkmwD2V3YsAOUQoCXFk7Ppdwf55RdcGyrSj+ycSL9Uiwrb3gTLYSnzcRoXww==} + engines: {node: '>=14'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - history: 5.3.0 + '@remix-run/router': 1.0.1 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-router: 6.3.0_react@18.2.0 + react-router: 6.4.1_react@18.2.0 dev: false - /react-router/6.3.0_react@18.2.0: - resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==} + /react-router/6.4.1_react@18.2.0: + resolution: {integrity: sha512-OJASKp5AykDWFewgWUim1vlLr7yfD4vO/h+bSgcP/ix8Md+LMHuAjovA74MQfsfhQJGGN1nHRhwS5qQQbbBt3A==} + engines: {node: '>=14'} peerDependencies: react: '>=16.8' dependencies: - history: 5.3.0 + '@remix-run/router': 1.0.1 react: 18.2.0 dev: false @@ -8153,15 +7654,6 @@ packages: path-parse: 1.0.7 dev: true - /resolve/1.22.0: - resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} - hasBin: true - dependencies: - is-core-module: 2.9.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - /resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true @@ -8192,22 +7684,22 @@ packages: dependencies: glob: 7.2.0 - /rollup-plugin-dts/4.2.2_nm5mlcuxlwr6samvke7b2fz27i: + /rollup-plugin-dts/4.2.2_id3sp2lbl4kx3dskm7teaj32um: resolution: {integrity: sha512-A3g6Rogyko/PXeKoUlkjxkP++8UDVpgA7C+Tdl77Xj4fgEaIjPSnxRmR53EzvoYy97VMVwLAOcWJudaVAuxneQ==} engines: {node: '>=v12.22.11'} peerDependencies: rollup: ^2.55 typescript: ^4.1 dependencies: - magic-string: 0.26.2 - rollup: 2.78.0 - typescript: 4.7.4 + magic-string: 0.26.4 + rollup: 2.79.0 + typescript: 4.8.2 optionalDependencies: '@babel/code-frame': 7.18.6 dev: true - /rollup-plugin-esbuild/4.9.3_g2b53jqudjimruv6spqg4ieafm: - resolution: {integrity: sha512-bxfUNYTa9Tw/4kdFfT9gtidDtqXyRdCW11ctZM7D8houCCVqp5qHzQF7hhIr31rqMA0APbG47fgVbbCGXgM49Q==} + /rollup-plugin-esbuild/4.10.1_zprrkcbct7bo6atdakidof6o3q: + resolution: {integrity: sha512-/ymcRB283zjFp1JTBXO8ekxv0c9vRc2L6OTljghsLthQ4vqeDSDWa9BVz1tHiVrx6SbUnUpDPLC0K/MXK7j5TA==} engines: {node: '>=12'} peerDependencies: esbuild: '>=0.10.1' @@ -8216,10 +7708,10 @@ packages: '@rollup/pluginutils': 4.2.1 debug: 4.3.4 es-module-lexer: 0.9.3 - esbuild: 0.15.5 + esbuild: 0.15.9 joycon: 3.1.1 - jsonc-parser: 3.1.0 - rollup: 2.78.0 + jsonc-parser: 3.2.0 + rollup: 2.79.0 transitivePeerDependencies: - supports-color dev: true @@ -8233,7 +7725,7 @@ packages: commenting: 1.1.0 glob: 7.2.0 lodash: 4.17.21 - magic-string: 0.26.2 + magic-string: 0.26.4 mkdirp: 1.0.4 moment: 2.29.3 package-name-regex: 2.0.6 @@ -8249,6 +7741,14 @@ packages: optionalDependencies: fsevents: 2.3.2 + /rollup/2.79.0: + resolution: {integrity: sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -8276,8 +7776,8 @@ packages: truncate-utf8-bytes: 1.0.2 dev: true - /sass/1.54.5: - resolution: {integrity: sha512-p7DTOzxkUPa/63FU0R3KApkRHwcVZYC0PLnLm5iyZACyp15qSi32x7zVUhRdABAATmkALqgGrjCJAcWvobmhHw==} + /sass/1.55.0: + resolution: {integrity: sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==} engines: {node: '>=12.0.0'} hasBin: true dependencies: @@ -8407,7 +7907,7 @@ packages: /shiki/0.11.1: resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: - jsonc-parser: 3.1.0 + jsonc-parser: 3.2.0 vscode-oniguruma: 1.6.2 vscode-textmate: 6.0.0 dev: true @@ -8689,8 +8189,8 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal/0.4.0: - resolution: {integrity: sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA==} + /strip-literal/0.4.2: + resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==} dependencies: acorn: 8.8.0 dev: true @@ -8732,8 +8232,8 @@ packages: resolution: {integrity: sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=} dev: false - /systemjs/6.12.4: - resolution: {integrity: sha512-ha/j+KULJmavOQY3ZQ5vQ5Qp4Y9uf+lWL5ulrC7FqbhKsIyEyPDOTkHYSSKSVTwN9HimZYc0UN7rwVVK+HKwwA==} + /systemjs/6.12.6: + resolution: {integrity: sha512-SawLiWya8/uNR4p12OggSYZ35tP4U4QTpfV57DdZEOPr6+J6zlLSeeEpMmzYTEoBAsMhctdEE+SWJUDYX4EaKw==} dev: false /tailwindcss/3.1.8: @@ -8747,7 +8247,7 @@ packages: detective: 5.2.1 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.2.11 + fast-glob: 3.2.12 glob-parent: 6.0.2 is-glob: 4.0.3 lilconfig: 2.0.6 @@ -8777,7 +8277,7 @@ packages: detective: 5.2.1 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.2.11 + fast-glob: 3.2.12 glob-parent: 6.0.2 is-glob: 4.0.3 lilconfig: 2.0.6 @@ -8863,8 +8363,12 @@ packages: resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} dev: false - /tinypool/0.2.4: - resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} + /tinybench/2.1.5: + resolution: {integrity: sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ==} + dev: true + + /tinypool/0.3.0: + resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} engines: {node: '>=14.0.0'} dev: true @@ -8985,8 +8489,8 @@ packages: typescript: 4.6.4 dev: true - /tsx/3.8.2: - resolution: {integrity: sha512-Jf9izq3Youry5aEarspf6Gm+v/IE2A2xP7YVhtNH1VSCpM0jjACg7C3oD5rIoLBfXWGJSZj4KKC2bwE0TgLb2Q==} + /tsx/3.9.0: + resolution: {integrity: sha512-ofxsE+qjqCYYq4UBt5khglvb+ESgxef1YpuNcdQI92kvcAT2tZVrnSK3g4bRXTUhLmKHcC5q8vIZA47os/stng==} hasBin: true dependencies: '@esbuild-kit/cjs-loader': 2.3.3 @@ -9061,6 +8565,12 @@ packages: hasBin: true dev: true + /typescript/4.8.2: + resolution: {integrity: sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + /typeson-registry/1.0.0-alpha.39: resolution: {integrity: sha512-NeGDEquhw+yfwNhguLPcZ9Oj0fzbADiX4R0WxvoY8nGhy98IbzQy1sezjoEFWOywOboj/DWehI+/aUlRVrJnnw==} engines: {node: '>=10.0.0'} @@ -9100,38 +8610,38 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /unbuild/0.8.9: - resolution: {integrity: sha512-LCFL/V3Y0UDxal6MNvSTGuyOnTAha467oTCRURZqj4zaW1r/kTDeVNkA9OdP8J/bnsxr0CvkdjRjlvv/K3o7Yw==} + /unbuild/0.8.11: + resolution: {integrity: sha512-q/oUXuqpJCoDKUk3qIkRjHPcgee5vvV1oiRJYpKwNkFSSRfzvYchQ+HxObwGrUubzDhnT+0qxO2wz5UunZtzog==} hasBin: true dependencies: - '@rollup/plugin-alias': 3.1.9_rollup@2.78.0 - '@rollup/plugin-commonjs': 22.0.2_rollup@2.78.0 - '@rollup/plugin-json': 4.1.0_rollup@2.78.0 - '@rollup/plugin-node-resolve': 13.3.0_rollup@2.78.0 - '@rollup/plugin-replace': 4.0.0_rollup@2.78.0 + '@rollup/plugin-alias': 3.1.9_rollup@2.79.0 + '@rollup/plugin-commonjs': 22.0.2_rollup@2.79.0 + '@rollup/plugin-json': 4.1.0_rollup@2.79.0 + '@rollup/plugin-node-resolve': 13.3.0_rollup@2.79.0 + '@rollup/plugin-replace': 4.0.0_rollup@2.79.0 '@rollup/pluginutils': 4.2.1 chalk: 5.0.1 consola: 2.15.3 defu: 6.1.0 - esbuild: 0.15.5 + esbuild: 0.15.9 globby: 13.1.2 - hookable: 5.1.1 + hookable: 5.3.0 jiti: 1.14.0 - magic-string: 0.26.2 + magic-string: 0.26.4 mkdirp: 1.0.4 - mkdist: 0.3.13_typescript@4.7.4 - mlly: 0.5.14 + mkdist: 0.3.13_typescript@4.8.2 + mlly: 0.5.16 mri: 1.2.0 - pathe: 0.3.5 - pkg-types: 0.3.4 + pathe: 0.3.8 + pkg-types: 0.3.5 pretty-bytes: 6.0.0 rimraf: 3.0.2 - rollup: 2.78.0 - rollup-plugin-dts: 4.2.2_nm5mlcuxlwr6samvke7b2fz27i - rollup-plugin-esbuild: 4.9.3_g2b53jqudjimruv6spqg4ieafm + rollup: 2.79.0 + rollup-plugin-dts: 4.2.2_id3sp2lbl4kx3dskm7teaj32um + rollup-plugin-esbuild: 4.10.1_zprrkcbct7bo6atdakidof6o3q scule: 0.3.2 - typescript: 4.7.4 - untyped: 0.4.5 + typescript: 4.8.2 + untyped: 0.5.0 transitivePeerDependencies: - supports-color dev: true @@ -9151,24 +8661,24 @@ packages: engines: {node: '>= 0.8'} dev: true - /untyped/0.4.5: - resolution: {integrity: sha512-buq9URfOj4xAnVfu6BYNKzHZLHAzsCbHsDc/kHy66ESMqRpj00oD9qWf2M2qm0pC0DigsVxRF3uhOa5HJtrwGA==} + /untyped/0.5.0: + resolution: {integrity: sha512-2Sre5A1a7G61bjaAKZnSFaVgbJMwwbbYQpJFH69hAYcDfN7kIaktlSphS02XJilz4+/jR1tsJ5MHo1oMoCezxg==} dependencies: - '@babel/core': 7.18.10 - '@babel/standalone': 7.18.12 - '@babel/types': 7.18.13 + '@babel/core': 7.19.1 + '@babel/standalone': 7.19.2 + '@babel/types': 7.19.0 scule: 0.3.2 transitivePeerDependencies: - supports-color dev: true - /update-browserslist-db/1.0.5_browserslist@4.21.3: - resolution: {integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==} + /update-browserslist-db/1.0.9_browserslist@4.21.4: + resolution: {integrity: sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.3 + browserslist: 4.21.4 escalade: 3.1.1 picocolors: 1.0.0 @@ -9223,19 +8733,20 @@ packages: engines: {node: '>= 0.8'} dev: true - /vitepress/1.0.0-alpha.12: - resolution: {integrity: sha512-++e7p9oxqk7RKz2fMNtrOAWmZSWVPozDuOG1owwntPRincC8/pIhPkJ9ojNHcHCHBylszJBsjkRqbseurZ7vCg==} + /vitepress/1.0.0-alpha.15: + resolution: {integrity: sha512-+pHJQCpnv0wVgLRyonisrj7Y77PVhbns2nTLxV9GkH3T+RTY/W2JmRatzBg5WciMaPyO8Ms6F3YElO5PULVv3w==} hasBin: true dependencies: '@docsearch/css': 3.2.1 '@docsearch/js': 3.2.1 '@vitejs/plugin-vue': link:packages/plugin-vue '@vue/devtools-api': 6.2.1 - '@vueuse/core': 9.1.0_vue@3.2.37 + '@vueuse/core': 9.2.0_vue@3.2.39 body-scroll-lock: 4.0.0-beta.0 + nprogress: 0.2.0 shiki: 0.11.1 vite: link:packages/vite - vue: 3.2.37 + vue: 3.2.39 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -9244,8 +8755,8 @@ packages: - react-dom dev: true - /vitest/0.22.1: - resolution: {integrity: sha512-+x28YTnSLth4KbXg7MCzoDAzPJlJex7YgiZbUh6YLp0/4PqVZ7q7/zyfdL0OaPtKTpNiQFPpMC8Y2MSzk8F7dw==} + /vitest/0.23.4: + resolution: {integrity: sha512-iukBNWqQAv8EKDBUNntspLp9SfpaVFbmzmM0sNcnTxASQZMzRw3PsM6DMlsHiI+I6GeO5/sYDg3ecpC+SNFLrQ==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -9272,7 +8783,9 @@ packages: chai: 4.3.6 debug: 4.3.4 local-pkg: 0.4.2 - tinypool: 0.2.4 + strip-literal: 0.4.2 + tinybench: 2.1.5 + tinypool: 0.3.0 tinyspy: 1.0.2 vite: link:packages/vite transitivePeerDependencies: @@ -9292,7 +8805,7 @@ packages: resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==} dev: true - /vue-demi/0.13.1_vue@3.2.37: + /vue-demi/0.13.1_vue@3.2.39: resolution: {integrity: sha512-xmkJ56koG3ptpLnpgmIzk9/4nFf4CqduSJbUM0OdPoU87NwRuZ6x49OLhjSa/fC15fV+5CbEnrxU4oyE022svg==} engines: {node: '>=12'} hasBin: true @@ -9304,34 +8817,34 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.37 + vue: 3.2.39 dev: true - /vue-router/4.1.5_vue@3.2.37: + /vue-router/4.1.5_vue@3.2.39: resolution: {integrity: sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.2.1 - vue: 3.2.37 + vue: 3.2.39 dev: false - /vue/3.2.37: - resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} + /vue/3.2.39: + resolution: {integrity: sha512-tRkguhRTw9NmIPXhzk21YFBqXHT2t+6C6wPOgQ50fcFVWnPdetmRqbmySRHznrYjX2E47u0cGlKGcxKZJ38R/g==} dependencies: - '@vue/compiler-dom': 3.2.37 - '@vue/compiler-sfc': 3.2.37 - '@vue/runtime-dom': 3.2.37 - '@vue/server-renderer': 3.2.37_vue@3.2.37 - '@vue/shared': 3.2.37 + '@vue/compiler-dom': 3.2.39 + '@vue/compiler-sfc': 3.2.39 + '@vue/runtime-dom': 3.2.39 + '@vue/server-renderer': 3.2.39_vue@3.2.39 + '@vue/shared': 3.2.39 - /vuex/4.0.2_vue@3.2.37: + /vuex/4.0.2_vue@3.2.39: resolution: {integrity: sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==} peerDependencies: vue: ^3.0.2 dependencies: '@vue/devtools-api': 6.1.4 - vue: 3.2.37 + vue: 3.2.39 dev: false /web-streams-polyfill/3.2.1: @@ -9409,8 +8922,8 @@ packages: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': 7.18.5 - '@babel/types': 7.17.10 + '@babel/parser': 7.19.1 + '@babel/types': 7.19.0 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: true @@ -9458,8 +8971,8 @@ packages: optional: true dev: true - /ws/8.8.1: - resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} + /ws/8.9.0: + resolution: {integrity: sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -9569,7 +9082,7 @@ packages: name: '@vitejs/dep-that-imports-vue' version: 0.0.0 dependencies: - vue: 3.2.37 + vue: 3.2.39 dev: false file:playground/external/dep-that-requires-vue: @@ -9577,7 +9090,7 @@ packages: name: '@vitejs/dep-that-requires-vue' version: 0.0.0 dependencies: - vue: 3.2.37 + vue: 3.2.39 dev: false file:playground/import-assertion/import-assertion-dep: @@ -9844,6 +9357,18 @@ packages: version: 0.0.0 dev: false + file:playground/ssr-resolve/entries: + resolution: {directory: playground/ssr-resolve/entries, type: directory} + name: entries + version: 0.0.0 + dev: false + + file:playground/ssr-resolve/pkg-exports: + resolution: {directory: playground/ssr-resolve/pkg-exports, type: directory} + name: pkg-exports + version: 0.0.0 + dev: false + file:playground/ssr-vue/example-external-component: resolution: {directory: playground/ssr-vue/example-external-component, type: directory} name: example-external-component