From 339d9e394620c843c9c0c9c8afc4d77e27879620 Mon Sep 17 00:00:00 2001 From: patak Date: Wed, 6 Jul 2022 09:37:54 +0200 Subject: [PATCH 001/716] feat: avoid scanner during build and only optimize CJS in SSR (#8932) --- docs/vite.config.ts | 5 ++ packages/vite/LICENSE.md | 2 +- packages/vite/src/node/config.ts | 4 +- packages/vite/src/node/optimizer/index.ts | 20 +++--- packages/vite/src/node/optimizer/optimizer.ts | 9 ++- packages/vite/src/node/plugins/preAlias.ts | 72 +++++++++++++++++-- packages/vite/src/node/plugins/resolve.ts | 47 +++++++++--- packages/vite/src/node/ssr/ssrExternal.ts | 21 ++++-- 8 files changed, 143 insertions(+), 37 deletions(-) diff --git a/docs/vite.config.ts b/docs/vite.config.ts index 3da9f8c96af31a..94f3ed69000771 100644 --- a/docs/vite.config.ts +++ b/docs/vite.config.ts @@ -6,5 +6,10 @@ export default defineConfig({ }, legacy: { buildSsrCjsExternalHeuristics: true + }, + optimizeDeps: { + // vitepress is aliased with replacement `join(DIST_CLIENT_PATH, '/index')` + // This needs to be excluded from optimization + exclude: ['vitepress'] } }) diff --git a/packages/vite/LICENSE.md b/packages/vite/LICENSE.md index 9bfb71d673183a..b6ea3555b32d39 100644 --- a/packages/vite/LICENSE.md +++ b/packages/vite/LICENSE.md @@ -975,7 +975,7 @@ Repository: http://github.com/bripkens/connect-history-api-fallback.git > The MIT License > -> Copyright (c) 2012 Ben Ripkens http://bripkens.de +> Copyright (c) 2022 Ben Blackmore and contributors > > Permission is hereby granted, free of charge, to any person obtaining a copy > of this software and associated documentation files (the "Software"), to deal diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 779a7cdeec9e7e..c06b826132535e 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -545,7 +545,9 @@ export async function resolveConfig( ] })) } - return (await container.resolveId(id, importer, { ssr }))?.id + return ( + await container.resolveId(id, importer, { ssr, scan: options?.scan }) + )?.id } } diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index d941b2fa6c7570..0798f27e079379 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -54,11 +54,7 @@ export type ExportsData = { export interface DepsOptimizer { metadata: DepOptimizationMetadata scanProcessing?: Promise - registerMissingImport: ( - id: string, - resolved: string, - ssr?: boolean - ) => OptimizedDepInfo + registerMissingImport: (id: string, resolved: string) => OptimizedDepInfo run: () => void isOptimizedDepFile: (id: string) => boolean @@ -281,7 +277,7 @@ export async function optimizeServerSsrDeps( ) as string[] noExternalFilter = noExternal === true - ? (dep: unknown) => false + ? (dep: unknown) => true : createFilter(undefined, exclude, { resolve: false }) @@ -705,16 +701,22 @@ export async function addManuallyIncludedOptimizeDeps( ) } } - const resolve = config.createResolver({ asSrc: false, scan: true }) + const resolve = config.createResolver({ + asSrc: false, + scan: true, + ssrOptimizeCheck: ssr + }) for (const id of [...optimizeDepsInclude, ...extra]) { // normalize 'foo >bar` as 'foo > bar' to prevent same id being added // and for pretty printing const normalizedId = normalizeId(id) if (!deps[normalizedId] && filter?.(normalizedId) !== false) { - const entry = await resolve(id) + const entry = await resolve(id, undefined, undefined, ssr) if (entry) { if (isOptimizable(entry, optimizeDeps)) { - deps[normalizedId] = entry + if (!entry.endsWith('?__vite_skip_optimization')) { + deps[normalizedId] = entry + } } else { unableToOptimize(entry, 'Cannot optimize dependency') } diff --git a/packages/vite/src/node/optimizer/optimizer.ts b/packages/vite/src/node/optimizer/optimizer.ts index 4759edeb9d0b51..652ab47c5f83b1 100644 --- a/packages/vite/src/node/optimizer/optimizer.ts +++ b/packages/vite/src/node/optimizer/optimizer.ts @@ -183,11 +183,10 @@ async function createDepsOptimizer( newDepsDiscovered = true } - // TODO: We need the scan during build time, until preAliasPlugin - // is refactored to work without the scanned deps. We could skip - // this for build later. - - runScanner() + if (!isBuild) { + // Important, the scanner is dev only + runScanner() + } } async function runScanner() { diff --git a/packages/vite/src/node/plugins/preAlias.ts b/packages/vite/src/node/plugins/preAlias.ts index d9cd9cdfb888d6..9eb4cfeeffa85d 100644 --- a/packages/vite/src/node/plugins/preAlias.ts +++ b/packages/vite/src/node/plugins/preAlias.ts @@ -1,6 +1,14 @@ -import type { Alias, AliasOptions, ResolvedConfig } from '..' +import fs from 'node:fs' +import path from 'node:path' +import type { + Alias, + AliasOptions, + DepOptimizationOptions, + ResolvedConfig +} from '..' import type { Plugin } from '../plugin' -import { bareImportRE } from '../utils' +import { createIsConfiguredAsSsrExternal } from '../ssr/ssrExternal' +import { bareImportRE, isOptimizable, moduleListContains } from '../utils' import { getDepsOptimizer } from '../optimizer' import { tryOptimizedResolve } from './resolve' @@ -9,6 +17,8 @@ import { tryOptimizedResolve } from './resolve' */ export function preAliasPlugin(config: ResolvedConfig): Plugin { const findPatterns = getAliasPatterns(config.resolve.alias) + const isConfiguredAsExternal = createIsConfiguredAsSsrExternal(config) + const isBuild = config.command === 'build' return { name: 'vite:pre-alias', async resolveId(id, importer, options) { @@ -18,16 +28,70 @@ export function preAliasPlugin(config: ResolvedConfig): Plugin { importer && depsOptimizer && bareImportRE.test(id) && - !options?.scan + !options?.scan && + id !== '@vite/client' && + id !== '@vite/env' ) { if (findPatterns.find((pattern) => matches(pattern, id))) { - return await tryOptimizedResolve(depsOptimizer, id, importer) + const optimizedId = await tryOptimizedResolve( + depsOptimizer, + id, + importer + ) + if (optimizedId) { + return optimizedId // aliased dep already optimized + } + + const resolved = await this.resolve(id, importer, { + skipSelf: true, + ...options + }) + if (resolved && !depsOptimizer.isOptimizedDepFile(resolved.id)) { + const optimizeDeps = depsOptimizer.options + const resolvedId = resolved.id + const isVirtual = resolvedId === id || resolvedId.includes('\0') + if ( + !isVirtual && + fs.existsSync(resolvedId) && + !moduleListContains(optimizeDeps.exclude, id) && + path.isAbsolute(resolvedId) && + (resolvedId.includes('node_modules') || + optimizeDeps.include?.includes(id)) && + isOptimizable(resolvedId, optimizeDeps) && + !(isBuild && ssr && isConfiguredAsExternal(id)) && + (!ssr || optimizeAliasReplacementForSSR(resolvedId, optimizeDeps)) + ) { + // aliased dep has not yet been optimized + const optimizedInfo = depsOptimizer!.registerMissingImport( + id, + resolvedId + ) + return { id: depsOptimizer!.getOptimizedDepId(optimizedInfo) } + } + } + return resolved } } } } } +function optimizeAliasReplacementForSSR( + id: string, + optimizeDeps: DepOptimizationOptions +) { + if (optimizeDeps.include?.includes(id)) { + return true + } + // In the regular resolution, the default for non-external modules is to + // be optimized if they are CJS. Here, we don't have the package id but + // only the replacement file path. We could find the package.json from + // the id and respect the same default in the future. + // Default to not optimize an aliased replacement for now, forcing the + // user to explicitly add it to the ssr.optimizeDeps.include list. + return false +} + // In sync with rollup plugin alias logic function matches(pattern: string | RegExp, importee: string) { if (pattern instanceof RegExp) { diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index cbad9fab449e0d..051f11024a6768 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -82,6 +82,8 @@ export interface InternalResolveOptions extends ResolveOptions { tryEsmOnly?: boolean // True when resolving during the scan phase to discover dependencies scan?: boolean + // Appends ?__vite_skip_optimization to the resolved id if shouldn't be optimized + ssrOptimizeCheck?: boolean // Resolve using esbuild deps optimization getDepsOptimizer?: (ssr: boolean) => DepsOptimizer | undefined shouldExternalize?: (id: string) => boolean | undefined @@ -665,32 +667,57 @@ export function tryNodeResolve( }) } + const ext = path.extname(resolved) + const isCJS = ext === '.cjs' || (ext === '.js' && pkg.data.type !== 'module') + if ( - !resolved.includes('node_modules') || // linked - !depsOptimizer || // resolving before listening to the server - options.scan // initial esbuild scan phase + !options.ssrOptimizeCheck && + (!resolved.includes('node_modules') || // linked + !depsOptimizer || // resolving before listening to the server + options.scan) // initial esbuild scan phase ) { return { id: resolved } } + // if we reach here, it's a valid dep import that hasn't been optimized. const isJsType = OPTIMIZABLE_ENTRY_RE.test(resolved) - const exclude = depsOptimizer.options.exclude - if ( + let exclude = depsOptimizer?.options.exclude + let include = depsOptimizer?.options.exclude + if (options.ssrOptimizeCheck) { + // we don't have the depsOptimizer + exclude = options.ssrConfig?.optimizeDeps?.exclude + include = options.ssrConfig?.optimizeDeps?.exclude + } + + const skipOptimization = !isJsType || importer?.includes('node_modules') || exclude?.includes(pkgId) || exclude?.includes(nestedPath) || SPECIAL_QUERY_RE.test(resolved) || - (!isBuild && ssr) - ) { + (!isBuild && ssr) || + // Only optimize non-external CJS deps during SSR by default + (ssr && + !isCJS && + !(include?.includes(pkgId) || include?.includes(nestedPath))) + + if (options.ssrOptimizeCheck) { + return { + id: skipOptimization + ? injectQuery(resolved, `__vite_skip_optimization`) + : resolved + } + } + + if (skipOptimization) { // excluded from optimization // Inject a version query to npm deps so that the browser // can cache it without re-validation, but only do so for known js types. // otherwise we may introduce duplicated modules for externalized files // from pre-bundled deps. if (!isBuild) { - const versionHash = depsOptimizer.metadata.browserHash + const versionHash = depsOptimizer!.metadata.browserHash if (versionHash && isJsType) { resolved = injectQuery(resolved, `v=${versionHash}`) } @@ -698,8 +725,8 @@ export function tryNodeResolve( } else { // this is a missing import, queue optimize-deps re-run and // get a resolved its optimized info - const optimizedInfo = depsOptimizer.registerMissingImport(id, resolved, ssr) - resolved = depsOptimizer.getOptimizedDepId(optimizedInfo) + const optimizedInfo = depsOptimizer!.registerMissingImport(id, resolved) + resolved = depsOptimizer!.getOptimizedDepId(optimizedInfo) } if (isBuild) { diff --git a/packages/vite/src/node/ssr/ssrExternal.ts b/packages/vite/src/node/ssr/ssrExternal.ts index 59d396d2c78a55..c403d85f83d9bb 100644 --- a/packages/vite/src/node/ssr/ssrExternal.ts +++ b/packages/vite/src/node/ssr/ssrExternal.ts @@ -105,20 +105,17 @@ export function shouldExternalizeForSSR( return isSsrExternal(id) } -function createIsSsrExternal( +export function createIsConfiguredAsSsrExternal( config: ResolvedConfig -): (id: string) => boolean | undefined { - const processedIds = new Map() - - const { ssr, root } = config - +): (id: string) => boolean { + const { ssr } = config const noExternal = ssr?.noExternal const noExternalFilter = noExternal !== 'undefined' && typeof noExternal !== 'boolean' && createFilter(undefined, noExternal, { resolve: false }) - const isConfiguredAsExternal = (id: string) => { + return (id: string) => { const { ssr } = config if (!ssr || ssr.external?.includes(id)) { return true @@ -131,6 +128,16 @@ function createIsSsrExternal( } return true } +} + +function createIsSsrExternal( + config: ResolvedConfig +): (id: string) => boolean | undefined { + const processedIds = new Map() + + const { ssr, root } = config + + const isConfiguredAsExternal = createIsConfiguredAsSsrExternal(config) const resolveOptions: InternalResolveOptions = { root, From 6e0dd3aa9d1b806dbe4abb07f18b191e225d7f41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Wed, 6 Jul 2022 16:41:20 +0900 Subject: [PATCH 002/716] fix(css): always use css module content (#8936) --- packages/vite/src/node/plugins/css.ts | 6 +++++- playground/css/__tests__/css.spec.ts | 9 ++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index ef0f7404763f73..bfe60ed04dc529 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -426,7 +426,11 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { code = `export default ${JSON.stringify(content)}` } } else { - code = `export default ''` + // if moduleCode exists return it **even if** it does not have `?used` + // this will disable tree-shake to work with `import './foo.module.css'` but this usually does not happen + // this is a limitation of the current approach by `?used` to make tree-shake work + // See #8936 for more details + code = modulesCode || `export default ''` } return { diff --git a/playground/css/__tests__/css.spec.ts b/playground/css/__tests__/css.spec.ts index 5b7114c07f46cd..57b75599150ea8 100644 --- a/playground/css/__tests__/css.spec.ts +++ b/playground/css/__tests__/css.spec.ts @@ -349,8 +349,7 @@ test('PostCSS dir-dependency', async () => { } }) -// skip because #8278 is reverted -test.skip('import dependency includes css import', async () => { +test('import dependency includes css import', async () => { expect(await getColor('.css-js-dep')).toBe('green') expect(await getColor('.css-js-dep-module')).toBe('green') }) @@ -437,9 +436,9 @@ test('PostCSS source.input.from includes query', async () => { ) }) -// skip because #8278 is reverted -test.skip('aliased css has content', async () => { +test('aliased css has content', async () => { expect(await getColor('.aliased')).toBe('blue') - expect(await page.textContent('.aliased-content')).toMatch('.aliased') + // skipped: currently not supported see #8936 + // expect(await page.textContent('.aliased-content')).toMatch('.aliased') expect(await getColor('.aliased-module')).toBe('blue') }) From 0d2c257a1f34e6b3126ef155d3985a2973a57f13 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 6 Jul 2022 09:47:32 +0200 Subject: [PATCH 003/716] release: v3.0.0-beta.7 --- packages/vite/CHANGELOG.md | 11 +++++++++++ packages/vite/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index a1b050c70da301..959a47e3764273 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,14 @@ +## 3.0.0-beta.7 (2022-07-06) + +* fix: ssrBuild is optional, avoid breaking VitePress (#8912) ([722f514](https://github.com/vitejs/vite/commit/722f514)), closes [#8912](https://github.com/vitejs/vite/issues/8912) +* fix(css): always use css module content (#8936) ([6e0dd3a](https://github.com/vitejs/vite/commit/6e0dd3a)), closes [#8936](https://github.com/vitejs/vite/issues/8936) +* feat: avoid scanner during build and only optimize CJS in SSR (#8932) ([339d9e3](https://github.com/vitejs/vite/commit/339d9e3)), closes [#8932](https://github.com/vitejs/vite/issues/8932) +* feat: improved cold start using deps scanner (#8869) ([188f188](https://github.com/vitejs/vite/commit/188f188)), closes [#8869](https://github.com/vitejs/vite/issues/8869) +* feat: ssr.optimizeDeps (#8917) ([f280dd9](https://github.com/vitejs/vite/commit/f280dd9)), closes [#8917](https://github.com/vitejs/vite/issues/8917) +* feat: support import assertions (#8937) ([2390422](https://github.com/vitejs/vite/commit/2390422)), closes [#8937](https://github.com/vitejs/vite/issues/8937) + + + ## 3.0.0-beta.6 (2022-07-04) * chore: add package.json to export map (#8838) ([cbefc63](https://github.com/vitejs/vite/commit/cbefc63)), closes [#8838](https://github.com/vitejs/vite/issues/8838) diff --git a/packages/vite/package.json b/packages/vite/package.json index a99ac5eeee70bc..8d35c763cb9990 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "vite", - "version": "3.0.0-beta.6", + "version": "3.0.0-beta.7", "type": "module", "license": "MIT", "author": "Evan You", From 7ea4d95221df8a9ebe75f5b7e54697c3147fd764 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 6 Jul 2022 09:48:35 +0200 Subject: [PATCH 004/716] release: plugin-legacy@2.0.0-beta.1 --- packages/plugin-legacy/CHANGELOG.md | 8 ++++++++ packages/plugin-legacy/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/plugin-legacy/CHANGELOG.md b/packages/plugin-legacy/CHANGELOG.md index be2b4309e7e55a..a78da9b382017d 100644 --- a/packages/plugin-legacy/CHANGELOG.md +++ b/packages/plugin-legacy/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.0.0-beta.1 (2022-07-06) + +* fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) +* feat: experimental.renderBuiltUrl (revised build base options) (#8762) ([895a7d6](https://github.com/vitejs/vite/commit/895a7d6)), closes [#8762](https://github.com/vitejs/vite/issues/8762) +* chore: use `tsx` directly instead of indirect `esno` (#8773) ([f018f13](https://github.com/vitejs/vite/commit/f018f13)), closes [#8773](https://github.com/vitejs/vite/issues/8773) + + + ## 2.0.0-beta.0 (2022-06-21) * feat: bump minimum node version to 14.18.0 (#8662) ([8a05432](https://github.com/vitejs/vite/commit/8a05432)), closes [#8662](https://github.com/vitejs/vite/issues/8662) diff --git a/packages/plugin-legacy/package.json b/packages/plugin-legacy/package.json index b443eea58e8fbd..492042761c754e 100644 --- a/packages/plugin-legacy/package.json +++ b/packages/plugin-legacy/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-legacy", - "version": "2.0.0-beta.0", + "version": "2.0.0-beta.1", "license": "MIT", "author": "Evan You", "files": [ From 6becf224471c2d77715845a9076feaff189ee374 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 6 Jul 2022 09:49:26 +0200 Subject: [PATCH 005/716] release: plugin-react@2.0.0-beta.1 --- packages/plugin-react/CHANGELOG.md | 9 +++++++++ packages/plugin-react/package.json | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/plugin-react/CHANGELOG.md b/packages/plugin-react/CHANGELOG.md index dfffbf17fe73bc..c10d8565d18449 100644 --- a/packages/plugin-react/CHANGELOG.md +++ b/packages/plugin-react/CHANGELOG.md @@ -1,3 +1,12 @@ +## 2.0.0-beta.1 (2022-07-06) + +* fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) +* fix(plugin-react): pass correct context to runPluginOverrides (#8809) ([09742e2](https://github.com/vitejs/vite/commit/09742e2)), closes [#8809](https://github.com/vitejs/vite/issues/8809) +* fix(plugin-react): return code if should skip in transform (fix #7586) (#8676) ([206e22a](https://github.com/vitejs/vite/commit/206e22a)), closes [#7586](https://github.com/vitejs/vite/issues/7586) [#8676](https://github.com/vitejs/vite/issues/8676) +* chore: use `tsx` directly instead of indirect `esno` (#8773) ([f018f13](https://github.com/vitejs/vite/commit/f018f13)), closes [#8773](https://github.com/vitejs/vite/issues/8773) + + + ## 2.0.0-beta.0 (2022-06-21) * feat: bump minimum node version to 14.18.0 (#8662) ([8a05432](https://github.com/vitejs/vite/commit/8a05432)), closes [#8662](https://github.com/vitejs/vite/issues/8662) diff --git a/packages/plugin-react/package.json b/packages/plugin-react/package.json index d6e2c9c163c1e5..bb0d146594d900 100644 --- a/packages/plugin-react/package.json +++ b/packages/plugin-react/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-react", - "version": "2.0.0-beta.0", + "version": "2.0.0-beta.1", "license": "MIT", "author": "Evan You", "contributors": [ From a7ac1ec8ea4dd3e54b616b255f6f8769911a526d Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 6 Jul 2022 09:50:03 +0200 Subject: [PATCH 006/716] release: plugin-vue@3.0.0-beta.1 --- packages/plugin-vue/CHANGELOG.md | 9 +++++++++ packages/plugin-vue/package.json | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/plugin-vue/CHANGELOG.md b/packages/plugin-vue/CHANGELOG.md index 26cae010056f50..2486b316e26acd 100644 --- a/packages/plugin-vue/CHANGELOG.md +++ b/packages/plugin-vue/CHANGELOG.md @@ -1,3 +1,12 @@ +## 3.0.0-beta.1 (2022-07-06) + +* fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) +* fix(plugin-vue): handle TS decorators in rewriteDefault fallback ([cb0c76a](https://github.com/vitejs/vite/commit/cb0c76a)) +* chore: use `tsx` directly instead of indirect `esno` (#8773) ([f018f13](https://github.com/vitejs/vite/commit/f018f13)), closes [#8773](https://github.com/vitejs/vite/issues/8773) +* chore(plugin-vue): mark export helper with null byte (#8792) ([8de4319](https://github.com/vitejs/vite/commit/8de4319)), closes [#8792](https://github.com/vitejs/vite/issues/8792) + + + ## 3.0.0-beta.0 (2022-06-21) * feat: bump minimum node version to 14.18.0 (#8662) ([8a05432](https://github.com/vitejs/vite/commit/8a05432)), closes [#8662](https://github.com/vitejs/vite/issues/8662) diff --git a/packages/plugin-vue/package.json b/packages/plugin-vue/package.json index 0fd91b55829172..6e665b5ad115f0 100644 --- a/packages/plugin-vue/package.json +++ b/packages/plugin-vue/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-vue", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "license": "MIT", "author": "Evan You", "files": [ From bef378d4a0737a8e8f4d75171ec919a758d2833d Mon Sep 17 00:00:00 2001 From: Obinna Ekwuno Date: Wed, 6 Jul 2022 17:50:57 +0400 Subject: [PATCH 007/716] docs: update Cloudflare pages option (updates: #8927) (#8949) --- docs/guide/static-deploy.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/guide/static-deploy.md b/docs/guide/static-deploy.md index 4fd597a984ae15..1d16b65af32e31 100644 --- a/docs/guide/static-deploy.md +++ b/docs/guide/static-deploy.md @@ -189,6 +189,8 @@ $ ntl deploy --prod ## Cloudflare Pages +### Cloudflare Pages via Wrangler + 1. Install [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/get-started/). 2. Authenticate Wrangler with your Cloudflare account using `wrangler login`. 3. Run your build command. @@ -210,6 +212,20 @@ $ npx wrangler pages publish dist After your assets are uploaded, Wrangler will give you a preview URL to inspect your site. When you log into the Cloudflare Pages dashboard, you will see your new project. +### Cloudflare Pages with Git + +1. Push your code to your git repository (GitHub, GitLab). +2. Log in to the Cloudflare dashboard and select your account in **Account Home** > **Pages**. +3. Select **Create a new Project** and the **Connect Git** option. +4. Select the git project you want to deploy and click **Begin setup** +5. Select the corresponding framework preset in the build setting depending on the Vite framework you have selected. +6. Then save and deploy! +7. Your application is deployed! (e.g `https://.pages.dev/`) + +After your project has been imported and deployed, all subsequent pushes to branches will generate [Preview Deployments](https://developers.cloudflare.com/pages/platform/preview-deployments/) unless specified not to in your [branch build controls](https://developers.cloudflare.com/pages/platform/branch-build-controls/). All changes to the Production Branch (commonly “main”) will result in a Production Deployment. + +You can also add custom domains and handle custom build settings on Pages. Learn more about [Cloudflare Pages Git Integration](https://developers.cloudflare.com/pages/get-started/#manage-your-site). + ## Google Firebase 1. Make sure you have [firebase-tools](https://www.npmjs.com/package/firebase-tools) installed. From 2185f7236e91361304b197de8c9b84b66511be73 Mon Sep 17 00:00:00 2001 From: patak Date: Wed, 6 Jul 2022 16:07:54 +0200 Subject: [PATCH 008/716] fix: cjs interop export names local clash, fix #8950 (#8953) --- .../src/node/__tests__/plugins/import.spec.ts | 16 ++++++++-------- packages/vite/src/node/plugins/importAnalysis.ts | 8 ++++++-- playground/alias/index.html | 2 ++ playground/optimize-deps/cjs.js | 5 +++++ 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/packages/vite/src/node/__tests__/plugins/import.spec.ts b/packages/vite/src/node/__tests__/plugins/import.spec.ts index d7320a70094a4d..6c1f950da4f7f2 100644 --- a/packages/vite/src/node/__tests__/plugins/import.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/import.spec.ts @@ -70,9 +70,9 @@ describe('transformCjsImport', () => { ) ).toBe( 'import __vite__cjsImport0_react from "./node_modules/.vite/deps/react.js"; ' + - 'const useState = __vite__cjsImport0_react["useState"]; ' + - 'const Component = __vite__cjsImport0_react["Component"]; ' + - 'export { useState, Component }' + 'const __vite__cjsExport_useState = __vite__cjsImport0_react["useState"]; ' + + 'const __vite__cjsExport_Component = __vite__cjsImport0_react["Component"]; ' + + 'export { __vite__cjsExport_useState as useState, __vite__cjsExport_Component as Component }' ) expect( @@ -84,9 +84,9 @@ describe('transformCjsImport', () => { ) ).toBe( 'import __vite__cjsImport0_react from "./node_modules/.vite/deps/react.js"; ' + - 'const useStateAlias = __vite__cjsImport0_react["useState"]; ' + - 'const ComponentAlias = __vite__cjsImport0_react["Component"]; ' + - 'export { useStateAlias, ComponentAlias }' + 'const __vite__cjsExport_useStateAlias = __vite__cjsImport0_react["useState"]; ' + + 'const __vite__cjsExport_ComponentAlias = __vite__cjsImport0_react["Component"]; ' + + 'export { __vite__cjsExport_useStateAlias as useStateAlias, __vite__cjsExport_ComponentAlias as ComponentAlias }' ) }) @@ -108,8 +108,8 @@ describe('transformCjsImport', () => { ) ).toBe( 'import __vite__cjsImport0_react from "./node_modules/.vite/deps/react.js"; ' + - 'const React = __vite__cjsImport0_react.__esModule ? __vite__cjsImport0_react.default : __vite__cjsImport0_react; ' + - 'export { React }' + 'const __vite__cjsExport_React = __vite__cjsImport0_react.__esModule ? __vite__cjsImport0_react.default : __vite__cjsImport0_react; ' + + 'export { __vite__cjsExport_React as React }' ) expect( diff --git a/packages/vite/src/node/plugins/importAnalysis.ts b/packages/vite/src/node/plugins/importAnalysis.ts index 94105bc58a5db8..bf2ff5c07e760c 100644 --- a/packages/vite/src/node/plugins/importAnalysis.ts +++ b/packages/vite/src/node/plugins/importAnalysis.ts @@ -824,6 +824,7 @@ export function transformCjsImport( spec.exported.type === 'Identifier' ) { // for ExportSpecifier, local name is same as imported name + // prefix the variable name to avoid clashing with other local variables const importedName = spec.local.name // we want to specify exported name as variable and re-export it const exportedName = spec.exported.name @@ -833,8 +834,11 @@ export function transformCjsImport( ) importNames.push({ importedName, localName: defaultExports }) } else { - importNames.push({ importedName, localName: exportedName }) - exportNames.push(exportedName) + const localName = makeLegalIdentifier( + `__vite__cjsExport_${exportedName}` + ) + importNames.push({ importedName, localName }) + exportNames.push(`${localName} as ${exportedName}`) } } } diff --git a/playground/alias/index.html b/playground/alias/index.html index 909aaf6ef5411e..32a2fd171fc2b8 100644 --- a/playground/alias/index.html +++ b/playground/alias/index.html @@ -45,6 +45,8 @@

Alias

// aliased to an absolute URL in CJS, should be optimized import { isFunction } from '@vue/shared' + // also check name clash for aliased deps + export { isFunction } from '@vue/shared' console.log(isFunction(() => {})) diff --git a/playground/optimize-deps/cjs.js b/playground/optimize-deps/cjs.js index 53da284e0dc8d2..9a4651d6ad4008 100644 --- a/playground/optimize-deps/cjs.js +++ b/playground/optimize-deps/cjs.js @@ -6,6 +6,11 @@ import ReactDOM from 'react-dom/client' import { Socket } from 'phoenix' import clip from 'clipboard' +// Test exporting a name that was already imported +export { useState } from 'react' +export { useState as anotherNameForUseState } from 'react' +export { default as React } from 'react' + if (typeof clip === 'function') { text('.cjs-clipboard', 'ok') } From 57c6c158ca0546962d0644f9ea3ee1bddbbaaf2c Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Thu, 7 Jul 2022 18:48:38 +0800 Subject: [PATCH 009/716] fix: handle context resolve options (#8966) --- .../server/__tests__/pluginContainer.spec.ts | 46 +++++++++++++++++++ .../vite/src/node/server/pluginContainer.ts | 18 ++++++-- 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/packages/vite/src/node/server/__tests__/pluginContainer.spec.ts b/packages/vite/src/node/server/__tests__/pluginContainer.spec.ts index c6f81e9107ef0b..94acc70304e86e 100644 --- a/packages/vite/src/node/server/__tests__/pluginContainer.spec.ts +++ b/packages/vite/src/node/server/__tests__/pluginContainer.spec.ts @@ -100,6 +100,52 @@ describe('plugin container', () => { expect.assertions(1) }) + + it('can pass custom resolve opts between plugins', async () => { + const entryUrl = '/x.js' + + const plugin1: Plugin = { + name: 'p1', + resolveId(id) { + if (id === entryUrl) { + return this.resolve('foobar', 'notreal', { + custom: { p1: 'success' }, + isEntry: true + }) + } + } + } + + const plugin2: Plugin = { + name: 'p2', + resolveId(id, importer, opts) { + if (id === 'foobar') { + expect(importer).toBe('notreal') + expect(opts).toEqual( + expect.objectContaining({ + custom: { p1: 'success' }, + isEntry: true + }) + ) + return entryUrl + } + }, + load(id) { + if (id === entryUrl) { + return null + } + } + } + + const container = await getPluginContainer({ + plugins: [plugin1, plugin2] + }) + + await moduleGraph.ensureEntryFromUrl(entryUrl, false) + await container.load(entryUrl) + + expect.assertions(2) + }) }) }) diff --git a/packages/vite/src/node/server/pluginContainer.ts b/packages/vite/src/node/server/pluginContainer.ts index 0a708ed62c4e6c..fc1523fc7888a0 100644 --- a/packages/vite/src/node/server/pluginContainer.ts +++ b/packages/vite/src/node/server/pluginContainer.ts @@ -34,6 +34,7 @@ import { join, resolve } from 'node:path' import { performance } from 'node:perf_hooks' import { createRequire } from 'node:module' import type { + CustomPluginOptions, EmittedFile, InputOptions, LoadResult, @@ -91,6 +92,7 @@ export interface PluginContainer { id: string, importer?: string, options?: { + custom?: CustomPluginOptions skip?: Set ssr?: boolean /** @@ -258,7 +260,11 @@ export async function createPluginContainer( async resolve( id: string, importer?: string, - options?: { skipSelf?: boolean } + options?: { + custom?: CustomPluginOptions + isEntry?: boolean + skipSelf?: boolean + } ) { let skip: Set | undefined if (options?.skipSelf && this._activePlugin) { @@ -266,6 +272,8 @@ export async function createPluginContainer( skip.add(this._activePlugin) } let out = await container.resolveId(id, importer, { + custom: options?.custom, + isEntry: !!options?.isEntry, skip, ssr: this.ssr, scan: this._scan @@ -528,7 +536,6 @@ export async function createPluginContainer( const skip = options?.skip const ssr = options?.ssr const scan = !!options?.scan - const isEntry = !!options?.isEntry const ctx = new Context() ctx.ssr = !!ssr ctx._scan = scan @@ -548,7 +555,12 @@ export async function createPluginContainer( ctx as any, rawId, importer, - { ssr, scan, isEntry } + { + custom: options?.custom, + isEntry: !!options?.isEntry, + ssr, + scan + } ) if (!result) continue From 752af6ce18b2ed01ea8d233665ca31faf0e223d3 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Thu, 7 Jul 2022 19:50:28 +0800 Subject: [PATCH 010/716] fix(scan): detect import .ts as .js (#8969) --- packages/vite/src/node/optimizer/scan.ts | 27 ++++++++++++++++++----- packages/vite/src/node/plugins/resolve.ts | 5 ++++- playground/vue/TsImport.vue | 2 +- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/packages/vite/src/node/optimizer/scan.ts b/packages/vite/src/node/optimizer/scan.ts index f4eae2bc2ed3e2..f1f698a15258a9 100644 --- a/packages/vite/src/node/optimizer/scan.ts +++ b/packages/vite/src/node/optimizer/scan.ts @@ -25,6 +25,8 @@ import type { PluginContainer } from '../server/pluginContainer' import { createPluginContainer } from '../server/pluginContainer' import { transformGlobImport } from '../plugins/importMetaGlob' +type ResolveIdOptions = Parameters[2] + const debug = createDebugger('vite:deps') const htmlTypesRE = /\.(html|vue|svelte|astro)$/ @@ -163,7 +165,11 @@ function esbuildScanPlugin( ): Plugin { const seen = new Map() - const resolve = async (id: string, importer?: string) => { + const resolve = async ( + id: string, + importer?: string, + options?: ResolveIdOptions + ) => { const key = id + (importer && path.dirname(importer)) if (seen.has(key)) { return seen.get(key) @@ -172,6 +178,7 @@ function esbuildScanPlugin( id, importer && normalizePath(importer), { + ...options, scan: true } ) @@ -316,12 +323,18 @@ function esbuildScanPlugin( config.root, resolve ) - )?.s.toString() || transpiledContents + )?.s.toString() || transpiledContents, + pluginData: { + htmlType: { loader } + } } } else { scripts[key] = { loader, - contents + contents, + pluginData: { + htmlType: { loader } + } } } @@ -434,9 +447,13 @@ function esbuildScanPlugin( { filter: /.*/ }, - async ({ path: id, importer }) => { + async ({ path: id, importer, pluginData }) => { // use vite resolver to support urls and omitted extensions - const resolved = await resolve(id, importer) + const resolved = await resolve(id, importer, { + custom: { + depScan: { loader: pluginData?.htmlType?.loader } + } + }) if (resolved) { if (shouldExternalizeDep(resolved, id) || !isScannable(resolved)) { return externalUnlessEntry({ path: id }) diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index 051f11024a6768..1ebe847359384c 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -132,7 +132,10 @@ export function resolvePlugin(resolveOptions: InternalResolveOptions): Plugin { } if (importer) { - if (isTsRequest(importer)) { + if ( + isTsRequest(importer) || + resolveOpts.custom?.depScan?.loader?.startsWith('ts') + ) { options.isFromTsImporter = true } else { const moduleLang = this.getModuleInfo(importer)?.meta?.vite?.lang diff --git a/playground/vue/TsImport.vue b/playground/vue/TsImport.vue index 986c383b2b9f4b..2b65011a160d23 100644 --- a/playground/vue/TsImport.vue +++ b/playground/vue/TsImport.vue @@ -4,5 +4,5 @@ From c956cf7335bb38bb3546ae2b8120954be5b246a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=B0=E5=A4=A9=E6=B8=B8?= Date: Thu, 7 Jul 2022 20:50:24 +0800 Subject: [PATCH 011/716] chore: update readme (#8971) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fa452cb8bf7b1e..9799c10e49598f 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ In addition, Vite is highly extensible via its [Plugin API](https://vitejs.dev/g ## v3.0 -Current Status: **Alpha** (for internal testing, not recommended for production) +Current Status: **Beta** (for internal testing, not recommended for production) The `main` branch is now for v3.0, if you are looking for current stable releases, check the [`v2` branch](https://github.com/vitejs/vite/tree/v2) branch instead. From 5c6cf5a2a6577fb8e8ecc66a0411143af3fed042 Mon Sep 17 00:00:00 2001 From: patak Date: Thu, 7 Jul 2022 14:51:52 +0200 Subject: [PATCH 012/716] refactor!: move basic ssl setup to external plugin, fix #8532 (#8961) --- docs/config/server-options.md | 2 + docs/guide/migration.md | 13 + packages/vite/LICENSE.md | 340 +------------------------- packages/vite/package.json | 1 - packages/vite/src/node/certificate.ts | 169 ------------- packages/vite/src/node/http.ts | 29 +-- pnpm-lock.yaml | 7 - 7 files changed, 17 insertions(+), 544 deletions(-) delete mode 100644 packages/vite/src/node/certificate.ts diff --git a/docs/config/server-options.md b/docs/config/server-options.md index 6a5ae5ebab3aa4..d5ed802ef716a6 100644 --- a/docs/config/server-options.md +++ b/docs/config/server-options.md @@ -55,6 +55,8 @@ Enable TLS + HTTP/2. Note this downgrades to TLS only when the [`server.proxy` o The value can also be an [options object](https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener) passed to `https.createServer()`. +A valid certificate is needed. For a basic setup, you can add [@vitejs/plugin-basic-ssl](https://github.com/vitejs/vite-plugin-basic-ssl) to the project plugins, which will automatically create and cache a self-signed certificate. But we recommend creating your own certificates. + ## server.open - **Type:** `boolean | string` diff --git a/docs/guide/migration.md b/docs/guide/migration.md index acf6460f93cf9a..3153c856ce2e61 100644 --- a/docs/guide/migration.md +++ b/docs/guide/migration.md @@ -101,6 +101,19 @@ You can use `?init` which is similar to the previous behavior. }) ``` +### Automatic https certificate generation + +A valid certificate is needed when using `https`. In Vite v2, if no certificate was configured, a self-signed certificate was automatically created and cached. +Since Vite v3, we recommend manually creating your certificates. If you still want to use the automatic generation from v2, this feature can be enabled back by adding [@vitejs/plugin-basic-ssl](https://github.com/vitejs/vite-plugin-basic-ssl) to the project plugins. + +```js +import basicSsl from '@vitejs/plugin-basic-ssl' + +export default { + plugins: [basicSsl()] +} +``` + ## Advanced There are some changes which only affects plugin/tool creators. diff --git a/packages/vite/LICENSE.md b/packages/vite/LICENSE.md index b6ea3555b32d39..41da37ad32dd33 100644 --- a/packages/vite/LICENSE.md +++ b/packages/vite/LICENSE.md @@ -25,7 +25,7 @@ SOFTWARE. # Licenses of bundled dependencies The published Vite artifact additionally contains code with the following licenses: -Apache-2.0, BSD-2-Clause, CC0-1.0, ISC, MIT, (BSD-3-Clause OR GPL-2.0) +Apache-2.0, BSD-2-Clause, CC0-1.0, ISC, MIT # Bundled dependencies: ## @ampproject/remapping @@ -2276,344 +2276,6 @@ Repository: zeit/ms --------------------------------------- -## node-forge -License: (BSD-3-Clause OR GPL-2.0) -By: Digital Bazaar, Inc., Dave Longley, David I. Lehn, Stefan Siegl, Christoph Dorn -Repository: https://github.com/digitalbazaar/forge - -> You may use the Forge project under the terms of either the BSD License or the -> GNU General Public License (GPL) Version 2. -> -> The BSD License is recommended for most projects. It is simple and easy to -> understand and it places almost no restrictions on what you can do with the -> Forge project. -> -> If the GPL suits your project better you are also free to use Forge under -> that license. -> -> You don't have to do anything special to choose one license or the other and -> you don't have to notify anyone which license you are using. You are free to -> use this project in commercial projects as long as the copyright header is -> left intact. -> -> If you are a commercial entity and use this set of libraries in your -> commercial software then reasonable payment to Digital Bazaar, if you can -> afford it, is not required but is expected and would be appreciated. If this -> library saves you time, then it's saving you money. The cost of developing -> the Forge software was on the order of several hundred hours and tens of -> thousands of dollars. We are attempting to strike a balance between helping -> the development community while not being taken advantage of by lucrative -> commercial entities for our efforts. -> -> ------------------------------------------------------------------------------- -> New BSD License (3-clause) -> Copyright (c) 2010, Digital Bazaar, Inc. -> All rights reserved. -> -> Redistribution and use in source and binary forms, with or without -> modification, are permitted provided that the following conditions are met: -> * Redistributions of source code must retain the above copyright -> notice, this list of conditions and the following disclaimer. -> * Redistributions in binary form must reproduce the above copyright -> notice, this list of conditions and the following disclaimer in the -> documentation and/or other materials provided with the distribution. -> * Neither the name of Digital Bazaar, Inc. nor the -> names of its contributors may be used to endorse or promote products -> derived from this software without specific prior written permission. -> -> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -> ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -> WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -> DISCLAIMED. IN NO EVENT SHALL DIGITAL BAZAAR BE LIABLE FOR ANY -> DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -> (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -> LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -> ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -> SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -> -> ------------------------------------------------------------------------------- -> GNU GENERAL PUBLIC LICENSE -> Version 2, June 1991 -> -> Copyright (C) 1989, 1991 Free Software Foundation, Inc. -> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -> Everyone is permitted to copy and distribute verbatim copies -> of this license document, but changing it is not allowed. -> -> Preamble -> -> The licenses for most software are designed to take away your -> freedom to share and change it. By contrast, the GNU General Public -> License is intended to guarantee your freedom to share and change free -> software--to make sure the software is free for all its users. This -> General Public License applies to most of the Free Software -> Foundation's software and to any other program whose authors commit to -> using it. (Some other Free Software Foundation software is covered by -> the GNU Lesser General Public License instead.) You can apply it to -> your programs, too. -> -> When we speak of free software, we are referring to freedom, not -> price. Our General Public Licenses are designed to make sure that you -> have the freedom to distribute copies of free software (and charge for -> this service if you wish), that you receive source code or can get it -> if you want it, that you can change the software or use pieces of it -> in new free programs; and that you know you can do these things. -> -> To protect your rights, we need to make restrictions that forbid -> anyone to deny you these rights or to ask you to surrender the rights. -> These restrictions translate to certain responsibilities for you if you -> distribute copies of the software, or if you modify it. -> -> For example, if you distribute copies of such a program, whether -> gratis or for a fee, you must give the recipients all the rights that -> you have. You must make sure that they, too, receive or can get the -> source code. And you must show them these terms so they know their -> rights. -> -> We protect your rights with two steps: (1) copyright the software, and -> (2) offer you this license which gives you legal permission to copy, -> distribute and/or modify the software. -> -> Also, for each author's protection and ours, we want to make certain -> that everyone understands that there is no warranty for this free -> software. If the software is modified by someone else and passed on, we -> want its recipients to know that what they have is not the original, so -> that any problems introduced by others will not reflect on the original -> authors' reputations. -> -> Finally, any free program is threatened constantly by software -> patents. We wish to avoid the danger that redistributors of a free -> program will individually obtain patent licenses, in effect making the -> program proprietary. To prevent this, we have made it clear that any -> patent must be licensed for everyone's free use or not licensed at all. -> -> The precise terms and conditions for copying, distribution and -> modification follow. -> -> GNU GENERAL PUBLIC LICENSE -> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -> -> 0. This License applies to any program or other work which contains -> a notice placed by the copyright holder saying it may be distributed -> under the terms of this General Public License. The "Program", below, -> refers to any such program or work, and a "work based on the Program" -> means either the Program or any derivative work under copyright law: -> that is to say, a work containing the Program or a portion of it, -> either verbatim or with modifications and/or translated into another -> language. (Hereinafter, translation is included without limitation in -> the term "modification".) Each licensee is addressed as "you". -> -> Activities other than copying, distribution and modification are not -> covered by this License; they are outside its scope. The act of -> running the Program is not restricted, and the output from the Program -> is covered only if its contents constitute a work based on the -> Program (independent of having been made by running the Program). -> Whether that is true depends on what the Program does. -> -> 1. You may copy and distribute verbatim copies of the Program's -> source code as you receive it, in any medium, provided that you -> conspicuously and appropriately publish on each copy an appropriate -> copyright notice and disclaimer of warranty; keep intact all the -> notices that refer to this License and to the absence of any warranty; -> and give any other recipients of the Program a copy of this License -> along with the Program. -> -> You may charge a fee for the physical act of transferring a copy, and -> you may at your option offer warranty protection in exchange for a fee. -> -> 2. You may modify your copy or copies of the Program or any portion -> of it, thus forming a work based on the Program, and copy and -> distribute such modifications or work under the terms of Section 1 -> above, provided that you also meet all of these conditions: -> -> a) You must cause the modified files to carry prominent notices -> stating that you changed the files and the date of any change. -> -> b) You must cause any work that you distribute or publish, that in -> whole or in part contains or is derived from the Program or any -> part thereof, to be licensed as a whole at no charge to all third -> parties under the terms of this License. -> -> c) If the modified program normally reads commands interactively -> when run, you must cause it, when started running for such -> interactive use in the most ordinary way, to print or display an -> announcement including an appropriate copyright notice and a -> notice that there is no warranty (or else, saying that you provide -> a warranty) and that users may redistribute the program under -> these conditions, and telling the user how to view a copy of this -> License. (Exception: if the Program itself is interactive but -> does not normally print such an announcement, your work based on -> the Program is not required to print an announcement.) -> -> These requirements apply to the modified work as a whole. If -> identifiable sections of that work are not derived from the Program, -> and can be reasonably considered independent and separate works in -> themselves, then this License, and its terms, do not apply to those -> sections when you distribute them as separate works. But when you -> distribute the same sections as part of a whole which is a work based -> on the Program, the distribution of the whole must be on the terms of -> this License, whose permissions for other licensees extend to the -> entire whole, and thus to each and every part regardless of who wrote it. -> -> Thus, it is not the intent of this section to claim rights or contest -> your rights to work written entirely by you; rather, the intent is to -> exercise the right to control the distribution of derivative or -> collective works based on the Program. -> -> In addition, mere aggregation of another work not based on the Program -> with the Program (or with a work based on the Program) on a volume of -> a storage or distribution medium does not bring the other work under -> the scope of this License. -> -> 3. You may copy and distribute the Program (or a work based on it, -> under Section 2) in object code or executable form under the terms of -> Sections 1 and 2 above provided that you also do one of the following: -> -> a) Accompany it with the complete corresponding machine-readable -> source code, which must be distributed under the terms of Sections -> 1 and 2 above on a medium customarily used for software interchange; or, -> -> b) Accompany it with a written offer, valid for at least three -> years, to give any third party, for a charge no more than your -> cost of physically performing source distribution, a complete -> machine-readable copy of the corresponding source code, to be -> distributed under the terms of Sections 1 and 2 above on a medium -> customarily used for software interchange; or, -> -> c) Accompany it with the information you received as to the offer -> to distribute corresponding source code. (This alternative is -> allowed only for noncommercial distribution and only if you -> received the program in object code or executable form with such -> an offer, in accord with Subsection b above.) -> -> The source code for a work means the preferred form of the work for -> making modifications to it. For an executable work, complete source -> code means all the source code for all modules it contains, plus any -> associated interface definition files, plus the scripts used to -> control compilation and installation of the executable. However, as a -> special exception, the source code distributed need not include -> anything that is normally distributed (in either source or binary -> form) with the major components (compiler, kernel, and so on) of the -> operating system on which the executable runs, unless that component -> itself accompanies the executable. -> -> If distribution of executable or object code is made by offering -> access to copy from a designated place, then offering equivalent -> access to copy the source code from the same place counts as -> distribution of the source code, even though third parties are not -> compelled to copy the source along with the object code. -> -> 4. You may not copy, modify, sublicense, or distribute the Program -> except as expressly provided under this License. Any attempt -> otherwise to copy, modify, sublicense or distribute the Program is -> void, and will automatically terminate your rights under this License. -> However, parties who have received copies, or rights, from you under -> this License will not have their licenses terminated so long as such -> parties remain in full compliance. -> -> 5. You are not required to accept this License, since you have not -> signed it. However, nothing else grants you permission to modify or -> distribute the Program or its derivative works. These actions are -> prohibited by law if you do not accept this License. Therefore, by -> modifying or distributing the Program (or any work based on the -> Program), you indicate your acceptance of this License to do so, and -> all its terms and conditions for copying, distributing or modifying -> the Program or works based on it. -> -> 6. Each time you redistribute the Program (or any work based on the -> Program), the recipient automatically receives a license from the -> original licensor to copy, distribute or modify the Program subject to -> these terms and conditions. You may not impose any further -> restrictions on the recipients' exercise of the rights granted herein. -> You are not responsible for enforcing compliance by third parties to -> this License. -> -> 7. If, as a consequence of a court judgment or allegation of patent -> infringement or for any other reason (not limited to patent issues), -> conditions are imposed on you (whether by court order, agreement or -> otherwise) that contradict the conditions of this License, they do not -> excuse you from the conditions of this License. If you cannot -> distribute so as to satisfy simultaneously your obligations under this -> License and any other pertinent obligations, then as a consequence you -> may not distribute the Program at all. For example, if a patent -> license would not permit royalty-free redistribution of the Program by -> all those who receive copies directly or indirectly through you, then -> the only way you could satisfy both it and this License would be to -> refrain entirely from distribution of the Program. -> -> If any portion of this section is held invalid or unenforceable under -> any particular circumstance, the balance of the section is intended to -> apply and the section as a whole is intended to apply in other -> circumstances. -> -> It is not the purpose of this section to induce you to infringe any -> patents or other property right claims or to contest validity of any -> such claims; this section has the sole purpose of protecting the -> integrity of the free software distribution system, which is -> implemented by public license practices. Many people have made -> generous contributions to the wide range of software distributed -> through that system in reliance on consistent application of that -> system; it is up to the author/donor to decide if he or she is willing -> to distribute software through any other system and a licensee cannot -> impose that choice. -> -> This section is intended to make thoroughly clear what is believed to -> be a consequence of the rest of this License. -> -> 8. If the distribution and/or use of the Program is restricted in -> certain countries either by patents or by copyrighted interfaces, the -> original copyright holder who places the Program under this License -> may add an explicit geographical distribution limitation excluding -> those countries, so that distribution is permitted only in or among -> countries not thus excluded. In such case, this License incorporates -> the limitation as if written in the body of this License. -> -> 9. The Free Software Foundation may publish revised and/or new versions -> of the General Public License from time to time. Such new versions will -> be similar in spirit to the present version, but may differ in detail to -> address new problems or concerns. -> -> Each version is given a distinguishing version number. If the Program -> specifies a version number of this License which applies to it and "any -> later version", you have the option of following the terms and conditions -> either of that version or of any later version published by the Free -> Software Foundation. If the Program does not specify a version number of -> this License, you may choose any version ever published by the Free Software -> Foundation. -> -> 10. If you wish to incorporate parts of the Program into other free -> programs whose distribution conditions are different, write to the author -> to ask for permission. For software which is copyrighted by the Free -> Software Foundation, write to the Free Software Foundation; we sometimes -> make exceptions for this. Our decision will be guided by the two goals -> of preserving the free status of all derivatives of our free software and -> of promoting the sharing and reuse of software generally. -> -> NO WARRANTY -> -> 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -> FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -> OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -> PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -> OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -> MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -> TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -> PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -> REPAIR OR CORRECTION. -> -> 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -> WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -> REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -> INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -> OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -> TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -> YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -> PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -> POSSIBILITY OF SUCH DAMAGES. - ---------------------------------------- - ## normalize-path License: MIT By: Jon Schlinkert, Blaine Bublitz diff --git a/packages/vite/package.json b/packages/vite/package.json index 8d35c763cb9990..8bb80653bd9ea5 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -101,7 +101,6 @@ "micromatch": "^4.0.5", "mlly": "^0.5.4", "mrmime": "^1.0.1", - "node-forge": "^1.3.1", "okie": "^1.0.1", "open": "^8.4.0", "periscopic": "^3.0.4", diff --git a/packages/vite/src/node/certificate.ts b/packages/vite/src/node/certificate.ts deleted file mode 100644 index d8ce82d6b5365d..00000000000000 --- a/packages/vite/src/node/certificate.ts +++ /dev/null @@ -1,169 +0,0 @@ -// Simplified fork of selfsigned with inlined options and partial -// node-forge usage to achieve smaller bundle. See: -// https://github.com/jfromaniello/selfsigned/blob/da38146f8d02183c35f49f91659a744a243e8707/index.js -// -// this utility create untrusted certificate which still -// allows to access page after proceeding a wall with warning -// -// should be deprecated eventually and replaced with recipes -// about generating secure trusted certificates -// -// ## selfsigned -// License: MIT -// By: José F. Romaniello, Paolo Fragomeni, Charles Bushong -// Repository: git://github.com/jfromaniello/selfsigned.git -// MIT License -// Copyright (c) 2013 José F. Romaniello -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// @ts-ignore -import forge from 'node-forge/lib/forge' -// @ts-ignore -import 'node-forge/lib/pki' - -// a hexString is considered negative if it's most significant bit is 1 -// because serial numbers use ones' complement notation -// this RFC in section 4.1.2.2 requires serial numbers to be positive -// http://www.ietf.org/rfc/rfc5280.txt -function toPositiveHex(hexString: string) { - let mostSignificativeHexAsInt = parseInt(hexString[0], 16) - if (mostSignificativeHexAsInt < 8) { - return hexString - } - - mostSignificativeHexAsInt -= 8 - return mostSignificativeHexAsInt.toString() + hexString.substring(1) -} - -export function createCertificate(): string { - const days = 30 - const keySize = 2048 - - const extensions = [ - // { - // name: 'basicConstraints', - // cA: true, - // }, - { - name: 'keyUsage', - keyCertSign: true, - digitalSignature: true, - nonRepudiation: true, - keyEncipherment: true, - dataEncipherment: true - }, - { - name: 'extKeyUsage', - serverAuth: true, - clientAuth: true, - codeSigning: true, - timeStamping: true - }, - { - name: 'subjectAltName', - altNames: [ - { - // type 2 is DNS - type: 2, - value: 'localhost' - }, - { - type: 2, - value: 'localhost.localdomain' - }, - { - type: 2, - value: 'lvh.me' - }, - { - type: 2, - value: '*.lvh.me' - }, - { - type: 2, - value: '[::1]' - }, - { - // type 7 is IP - type: 7, - ip: '127.0.0.1' - }, - { - type: 7, - ip: 'fe80::1' - } - ] - } - ] - - const attrs = [ - { - name: 'commonName', - value: 'example.org' - }, - { - name: 'countryName', - value: 'US' - }, - { - shortName: 'ST', - value: 'Virginia' - }, - { - name: 'localityName', - value: 'Blacksburg' - }, - { - name: 'organizationName', - value: 'Test' - }, - { - shortName: 'OU', - value: 'Test' - } - ] - - const keyPair = forge.pki.rsa.generateKeyPair(keySize) - - const cert = forge.pki.createCertificate() - - cert.serialNumber = toPositiveHex( - forge.util.bytesToHex(forge.random.getBytesSync(9)) - ) // the serial number can be decimal or hex (if preceded by 0x) - - cert.validity.notBefore = new Date() - cert.validity.notAfter = new Date() - cert.validity.notAfter.setDate(cert.validity.notBefore.getDate() + days) - - cert.setSubject(attrs) - cert.setIssuer(attrs) - - cert.publicKey = keyPair.publicKey - - cert.setExtensions(extensions) - - const algorithm = forge.md.sha256.create() - cert.sign(keyPair.privateKey, algorithm) - - const privateKeyPem = forge.pki.privateKeyToPem(keyPair.privateKey) - const certPem = forge.pki.certificateToPem(cert) - - return privateKeyPem + certPem -} diff --git a/packages/vite/src/node/http.ts b/packages/vite/src/node/http.ts index d34e67d62aeb36..18ce37f6a327e1 100644 --- a/packages/vite/src/node/http.ts +++ b/packages/vite/src/node/http.ts @@ -1,4 +1,4 @@ -import fs, { promises as fsp } from 'node:fs' +import fs from 'node:fs' import path from 'node:path' import type { Server as HttpServer, @@ -134,9 +134,6 @@ export async function resolveHttpsConfig( key: readFileIfExists(key), pfx: readFileIfExists(pfx) }) - if (!httpsOption.key || !httpsOption.cert) { - httpsOption.cert = httpsOption.key = await getCertificate(cacheDir) - } return httpsOption } @@ -151,30 +148,6 @@ function readFileIfExists(value?: string | Buffer | any[]) { return value } -async function getCertificate(cacheDir: string) { - const cachePath = path.join(cacheDir, '_cert.pem') - - try { - const [stat, content] = await Promise.all([ - fsp.stat(cachePath), - fsp.readFile(cachePath, 'utf8') - ]) - - if (Date.now() - stat.ctime.valueOf() > 30 * 24 * 60 * 60 * 1000) { - throw new Error('cache is outdated.') - } - - return content - } catch { - const content = (await import('./certificate')).createCertificate() - fsp - .mkdir(cacheDir, { recursive: true }) - .then(() => fsp.writeFile(cachePath, content)) - .catch(() => {}) - return content - } -} - export async function httpServerStart( httpServer: HttpServer, serverOptions: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2135de17c45851..a9b329c87ac56d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -247,7 +247,6 @@ importers: micromatch: ^4.0.5 mlly: ^0.5.4 mrmime: ^1.0.1 - node-forge: ^1.3.1 okie: ^1.0.1 open: ^8.4.0 periscopic: ^3.0.4 @@ -312,7 +311,6 @@ importers: micromatch: 4.0.5 mlly: 0.5.4 mrmime: 1.0.1 - node-forge: 1.3.1 okie: 1.0.1 open: 8.4.0 periscopic: 3.0.4 @@ -6405,11 +6403,6 @@ packages: engines: {node: '>= 6.0.0'} dev: true - /node-forge/1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - dev: true - /node-releases/2.0.4: resolution: {integrity: sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==} From b8356991c0a7dae32fb70b613460f15027915aa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Fri, 8 Jul 2022 15:13:08 +0900 Subject: [PATCH 013/716] fix: re-encode url to prevent fs.allow bypass (fixes #8498) (#8979) --- .../src/node/server/middlewares/static.ts | 4 +-- .../fs-serve/__tests__/fs-serve.spec.ts | 10 +++++++ playground/fs-serve/root/src/index.html | 29 +++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/server/middlewares/static.ts b/packages/vite/src/node/server/middlewares/static.ts index 9f18b6391face0..3b482068bd6138 100644 --- a/packages/vite/src/node/server/middlewares/static.ts +++ b/packages/vite/src/node/server/middlewares/static.ts @@ -109,7 +109,7 @@ export function serveStaticMiddleware( } if (redirected) { - req.url = redirected + req.url = encodeURIComponent(redirected) } serve(req, res, next) @@ -144,7 +144,7 @@ export function serveRawFsMiddleware( url = url.slice(FS_PREFIX.length) if (isWindows) url = url.replace(/^[A-Z]:/i, '') - req.url = url + req.url = encodeURIComponent(url) serveFromRoot(req, res, next) } else { next() diff --git a/playground/fs-serve/__tests__/fs-serve.spec.ts b/playground/fs-serve/__tests__/fs-serve.spec.ts index 2111cac80cc4e7..d65ccdea7368cf 100644 --- a/playground/fs-serve/__tests__/fs-serve.spec.ts +++ b/playground/fs-serve/__tests__/fs-serve.spec.ts @@ -42,6 +42,11 @@ describe.runIf(isServe)('main', () => { expect(await page.textContent('.unsafe-fetch-8498-status')).toBe('403') }) + test('unsafe fetch with special characters 2 (#8498)', async () => { + expect(await page.textContent('.unsafe-fetch-8498-2')).toMatch('') + expect(await page.textContent('.unsafe-fetch-8498-2-status')).toBe('404') + }) + test('safe fs fetch', async () => { expect(await page.textContent('.safe-fs-fetch')).toBe(stringified) expect(await page.textContent('.safe-fs-fetch-status')).toBe('200') @@ -64,6 +69,11 @@ describe.runIf(isServe)('main', () => { expect(await page.textContent('.unsafe-fs-fetch-8498-status')).toBe('403') }) + test('unsafe fs fetch with special characters 2 (#8498)', async () => { + expect(await page.textContent('.unsafe-fs-fetch-8498-2')).toBe('') + expect(await page.textContent('.unsafe-fs-fetch-8498-2-status')).toBe('404') + }) + test('nested entry', async () => { expect(await page.textContent('.nested-entry')).toBe('foobar') }) diff --git a/playground/fs-serve/root/src/index.html b/playground/fs-serve/root/src/index.html index 6939e0f4b09ed9..68eed69810c7d4 100644 --- a/playground/fs-serve/root/src/index.html +++ b/playground/fs-serve/root/src/index.html @@ -19,6 +19,8 @@

Unsafe Fetch


 

 

+

+

 
 

Safe /@fs/ Fetch


@@ -31,6 +33,8 @@ 

Unsafe /@fs/ Fetch


 

 

+

+

 
 

Nested Entry


@@ -100,6 +104,19 @@ 

Denied

console.error(e) }) + // outside of allowed dir with special characters 2 #8498 + fetch('/src/%252e%252e%252funsafe%252etxt') + .then((r) => { + text('.unsafe-fetch-8498-2-status', r.status) + return r.text() + }) + .then((data) => { + text('.unsafe-fetch-8498-2', data) + }) + .catch((e) => { + console.error(e) + }) + // imported before, should be treated as safe fetch('/@fs/' + ROOT + '/safe.json') .then((r) => { @@ -133,6 +150,18 @@

Denied

text('.unsafe-fs-fetch-8498', JSON.stringify(data)) }) + // outside root with special characters 2 #8498 + fetch( + '/@fs/' + ROOT + '/root/src/%252e%252e%252f%252e%252e%252funsafe%252ejson' + ) + .then((r) => { + text('.unsafe-fs-fetch-8498-2-status', r.status) + return r.json() + }) + .then((data) => { + text('.unsafe-fs-fetch-8498-2', JSON.stringify(data)) + }) + // not imported before, inside root with special characters, treated as safe fetch( '/@fs/' + From f8c8cf272345364e8a6181725335e95b957ba8c4 Mon Sep 17 00:00:00 2001 From: patak Date: Fri, 8 Jul 2022 09:46:02 +0200 Subject: [PATCH 014/716] refactor: opt-in optimizeDeps during build and SSR (#8965) --- docs/guide/migration.md | 23 +++++------ package.json | 2 +- packages/vite/src/node/build.ts | 9 +++-- packages/vite/src/node/config.ts | 39 +++++-------------- packages/vite/src/node/optimizer/index.ts | 3 +- packages/vite/src/node/ssr/index.ts | 1 + playground/import-assertion/vite.config.js | 12 ++++++ .../__tests__/optimize-deps.spec.ts | 13 +++---- playground/optimize-deps/vite.config.js | 8 +++- playground/ssr-deps/server.js | 14 ++----- 10 files changed, 54 insertions(+), 70 deletions(-) create mode 100644 playground/import-assertion/vite.config.js diff --git a/docs/guide/migration.md b/docs/guide/migration.md index 3153c856ce2e61..9a80580fcf2eb0 100644 --- a/docs/guide/migration.md +++ b/docs/guide/migration.md @@ -31,26 +31,12 @@ A small fraction of users will now require using [@vitejs/plugin-legacy](https:/ This section describes the biggest architecture changes in Vite v3. To allow projects to migrate from v2 in case of a compat issue, legacy options have been added to revert to the Vite v2 strategies. -:::warning -These options are marked as experimental and deprecated. They may be removed in a future v3 minor without respecting semver. Please pin the Vite version when using them. - -- `legacy.buildRollupPluginCommonjs` -- `legacy.buildSsrCjsExternalHeuristics` - -::: - ### Dev Server Changes Vite's default dev server port is now 5173. You can use [`server.port`](../config/server-options.md#server-port) to set it to 3000. Vite's default dev server host is now `localhost`. You can use [`server.host`](../config/server-options.md#server-host) to set it to `127.0.0.1`. -### Build Changes - -In v3, Vite uses esbuild to optimize dependencies by default. Doing so, it removes one of the most significant differences between dev and prod present in v2. Because esbuild converts CJS-only dependencies to ESM, [`@rollupjs/plugin-commonjs`](https://github.com/rollup/plugins/tree/master/packages/commonjs) is no longer used. - -If you need to get back to the v2 strategy, you can use `legacy.buildRollupPluginCommonjs`. - ### SSR Changes Vite v3 uses ESM for the SSR build by default. When using ESM, the [SSR externalization heuristics](https://vitejs.dev/guide/ssr.html#ssr-externals) are no longer needed. By default, all dependencies are externalized. You can use [`ssr.noExternal`](../config/ssr-options.md#ssr-noexternal) to control what dependencies to include in the SSR bundle. @@ -114,6 +100,15 @@ export default { } ``` +## Experimental + +### Using esbuild deps optimization at build time + +In v3, Vite allows the use of esbuild to optimize dependencies during build time. If enabled, it removes one of the most significant differences between dev and prod present in v2. [`@rollupjs/plugin-commonjs`](https://github.com/rollup/plugins/tree/master/packages/commonjs) is no longer needed in this case since esbuild converts CJS-only dependencies to ESM. + +If you want to try this build strategy, you can use `optimizeDeps.disabled: false` (the default in v3 is `disabled: 'build'`). `@rollup/plugin-commonjs` +can be removed by passing `build.commonjsOptions: { include: [] }` + ## Advanced There are some changes which only affects plugin/tool creators. diff --git a/package.json b/package.json index 0704bdc7081142..8ef5b2d811cc05 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "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-legacy-cjs": "cross-env VITE_TEST_LEGACY_CJS_PLUGIN=1 pnpm test-build", + "test-build-without-plugin-commonjs": "cross-env 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", diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index f9bfb31a0365b9..973dcef199d8ee 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -297,14 +297,15 @@ export function resolveBuildPlugins(config: ResolvedConfig): { post: Plugin[] } { const options = config.build - + const { commonjsOptions } = options + const usePluginCommonjs = + !Array.isArray(commonjsOptions?.include) || + commonjsOptions?.include.length !== 0 return { pre: [ ...(options.watch ? [ensureWatchPlugin()] : []), watchPackageDataPlugin(config), - ...(config.legacy?.buildRollupPluginCommonjs - ? [commonjsPlugin(options.commonjsOptions)] - : []), + ...(usePluginCommonjs ? [commonjsPlugin(options.commonjsOptions)] : []), dataURIPlugin(), assetImportMetaUrlPlugin(config), ...(options.rollupOptions.plugins diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index c06b826132535e..8f16aed9c84917 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -280,14 +280,6 @@ export interface ExperimentalOptions { } export interface LegacyOptions { - /** - * Revert vite build to the v2.9 strategy. Disable esbuild deps optimization and adds `@rollup/plugin-commonjs` - * - * @experimental - * @deprecated - * @default false - */ - buildRollupPluginCommonjs?: boolean /** * Revert vite build --ssr to the v2.9 strategy. Use CJS SSR build and v2.9 externalization heuristics * @@ -571,11 +563,14 @@ export async function resolveConfig( const optimizeDeps = config.optimizeDeps || {} - if (process.env.VITE_TEST_LEGACY_CJS_PLUGIN) { - config.legacy = { - ...config.legacy, - buildRollupPluginCommonjs: true - } + if (process.env.VITE_TEST_WITHOUT_PLUGIN_COMMONJS) { + config.build ??= {} + config.build.commonjsOptions = { include: [] } + config.optimizeDeps ??= {} + config.optimizeDeps.disabled = false + config.ssr ??= {} + config.ssr.optimizeDeps ??= {} + config.ssr.optimizeDeps.disabled = false } const BASE_URL = resolvedBase @@ -616,6 +611,7 @@ export async function resolveConfig( packageCache: new Map(), createResolver, optimizeDeps: { + disabled: 'build', ...optimizeDeps, esbuildOptions: { preserveSymlinks: config.resolve?.preserveSymlinks, @@ -623,7 +619,7 @@ export async function resolveConfig( } }, worker: resolvedWorkerOptions, - appType: config.appType ?? middlewareMode === 'ssr' ? 'custom' : 'spa', + appType: config.appType ?? (middlewareMode === 'ssr' ? 'custom' : 'spa'), experimental: { importGlobRestoreExtension: false, hmrPartialAccept: false, @@ -661,21 +657,6 @@ export async function resolveConfig( ) } - if (resolved.legacy?.buildRollupPluginCommonjs) { - const optimizerDisabled = resolved.optimizeDeps.disabled - if (!optimizerDisabled) { - resolved.optimizeDeps.disabled = 'build' - } else if (optimizerDisabled === 'dev') { - resolved.optimizeDeps.disabled = true // Also disabled during build - } - const ssrOptimizerDisabled = resolved.ssr.optimizeDeps.disabled - if (!ssrOptimizerDisabled) { - resolved.ssr.optimizeDeps.disabled = 'build' - } else if (ssrOptimizerDisabled === 'dev') { - resolved.ssr.optimizeDeps.disabled = true // Also disabled during build - } - } - // Some plugins that aren't intended to work in the bundling of workers (doing post-processing at build time for example). // And Plugins may also have cached that could be corrupted by being used in these extra rollup calls. // So we need to separate the worker plugin from the plugin that vite needs to run. diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 0798f27e079379..267a59e2f9b39a 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -564,8 +564,7 @@ export async function runOptimizeDeps( rollupOptionsExternal.some((ext) => typeof ext !== 'string') ) { throw new Error( - `[vite] 'build.rollupOptions.external' can only be an array of strings or a string.\n` + - `You can turn on 'legacy.buildRollupPluginCommonjs' to support more advanced options.` + `[vite] 'build.rollupOptions.external' can only be an array of strings or a string when using esbuild optimization at build time.` ) } external.push(...(rollupOptionsExternal as string[])) diff --git a/packages/vite/src/node/ssr/index.ts b/packages/vite/src/node/ssr/index.ts index 0d70e53cccdb5e..7d2e4724f98b44 100644 --- a/packages/vite/src/node/ssr/index.ts +++ b/packages/vite/src/node/ssr/index.ts @@ -61,6 +61,7 @@ export function resolveSSROptions( target, ...ssr, optimizeDeps: { + disabled: true, ...optimizeDeps, esbuildOptions: { preserveSymlinks, diff --git a/playground/import-assertion/vite.config.js b/playground/import-assertion/vite.config.js new file mode 100644 index 00000000000000..13a5b43e3c7946 --- /dev/null +++ b/playground/import-assertion/vite.config.js @@ -0,0 +1,12 @@ +import { defineConfig } from 'vite' + +export default defineConfig({ + build: { + commonjsOptions: { + include: [] + } + }, + optimizeDeps: { + disabled: false + } +}) diff --git a/playground/optimize-deps/__tests__/optimize-deps.spec.ts b/playground/optimize-deps/__tests__/optimize-deps.spec.ts index b0af6debca526e..a62b4525e057be 100644 --- a/playground/optimize-deps/__tests__/optimize-deps.spec.ts +++ b/playground/optimize-deps/__tests__/optimize-deps.spec.ts @@ -105,14 +105,11 @@ test('vue + vuex', async () => { // When we use the Rollup CommonJS plugin instead of esbuild prebundling, // the esbuild plugins won't apply to dependencies -test.skipIf(isBuild && process.env.VITE_TEST_LEGACY_CJS_PLUGIN)( - 'esbuild-plugin', - async () => { - expect(await page.textContent('.esbuild-plugin')).toMatch( - `Hello from an esbuild plugin` - ) - } -) +test('esbuild-plugin', async () => { + expect(await page.textContent('.esbuild-plugin')).toMatch( + `Hello from an esbuild plugin` + ) +}) test('import from hidden dir', async () => { expect(await page.textContent('.hidden-dir')).toBe('hello!') diff --git a/playground/optimize-deps/vite.config.js b/playground/optimize-deps/vite.config.js index 0b857173fe1e83..091f994e2c6aec 100644 --- a/playground/optimize-deps/vite.config.js +++ b/playground/optimize-deps/vite.config.js @@ -14,8 +14,8 @@ module.exports = { 'node:url': 'url' } }, - optimizeDeps: { + disabled: false, include: [ 'dep-linked-include', 'nested-exclude > nested-include', @@ -44,7 +44,11 @@ module.exports = { build: { // to make tests faster - minify: false + minify: false, + // Avoid @rollup/plugin-commonjs + commonjsOptions: { + include: [] + } }, plugins: [ diff --git a/playground/ssr-deps/server.js b/playground/ssr-deps/server.js index 7075cbcacc4d7a..32e6f0c6556509 100644 --- a/playground/ssr-deps/server.js +++ b/playground/ssr-deps/server.js @@ -36,16 +36,10 @@ export async function createServer(root = process.cwd(), hmrPort) { appType: 'custom', ssr: { noExternal: ['no-external-cjs', 'import-builtin-cjs', 'no-external-css'], - external: ['nested-external'] - }, - optimizeDeps: { - include: [ - 'no-external-cjs', - 'import-builtin-cjs', - 'optimized-with-nested-external', - 'optimized-cjs-with-nested-external' - ], - exclude: ['nested-external'] + external: ['nested-external'], + optimizeDeps: { + disabled: 'build' + } } }) // use vite's connect instance as middleware From 33d61774c1063bd6922b632e9e1c6d4d079f0854 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Fri, 8 Jul 2022 10:14:47 +0200 Subject: [PATCH 015/716] release: v3.0.0-beta.8 --- packages/vite/CHANGELOG.md | 11 +++++++++++ packages/vite/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 959a47e3764273..ec9b4f0cfc4a1b 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,14 @@ +## 3.0.0-beta.8 (2022-07-08) + +* refactor: opt-in optimizeDeps during build and SSR (#8965) ([f8c8cf2](https://github.com/vitejs/vite/commit/f8c8cf2)), closes [#8965](https://github.com/vitejs/vite/issues/8965) +* fix: cjs interop export names local clash, fix #8950 (#8953) ([2185f72](https://github.com/vitejs/vite/commit/2185f72)), closes [#8950](https://github.com/vitejs/vite/issues/8950) [#8953](https://github.com/vitejs/vite/issues/8953) +* fix: handle context resolve options (#8966) ([57c6c15](https://github.com/vitejs/vite/commit/57c6c15)), closes [#8966](https://github.com/vitejs/vite/issues/8966) +* fix: re-encode url to prevent fs.allow bypass (fixes #8498) (#8979) ([b835699](https://github.com/vitejs/vite/commit/b835699)), closes [#8498](https://github.com/vitejs/vite/issues/8498) [#8979](https://github.com/vitejs/vite/issues/8979) +* fix(scan): detect import .ts as .js (#8969) ([752af6c](https://github.com/vitejs/vite/commit/752af6c)), closes [#8969](https://github.com/vitejs/vite/issues/8969) +* refactor!: move basic ssl setup to external plugin, fix #8532 (#8961) ([5c6cf5a](https://github.com/vitejs/vite/commit/5c6cf5a)), closes [#8532](https://github.com/vitejs/vite/issues/8532) [#8961](https://github.com/vitejs/vite/issues/8961) + + + ## 3.0.0-beta.7 (2022-07-06) * fix: ssrBuild is optional, avoid breaking VitePress (#8912) ([722f514](https://github.com/vitejs/vite/commit/722f514)), closes [#8912](https://github.com/vitejs/vite/issues/8912) diff --git a/packages/vite/package.json b/packages/vite/package.json index 8bb80653bd9ea5..1494c88378068a 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "vite", - "version": "3.0.0-beta.7", + "version": "3.0.0-beta.8", "type": "module", "license": "MIT", "author": "Evan You", From 07aef1b4c02a64732b31b00591d2d9d9c8025aab Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 8 Jul 2022 17:05:58 +0800 Subject: [PATCH 016/716] docs: cleanup changes (#8989) --- docs/config/server-options.md | 4 +- docs/guide/api-javascript.md | 15 +++-- docs/guide/api-plugin.md | 4 +- docs/guide/assets.md | 4 -- docs/guide/build.md | 40 ++++++------- docs/guide/env-and-mode.md | 9 ++- docs/guide/features.md | 5 +- docs/guide/index.md | 2 +- docs/guide/migration.md | 22 ++++---- docs/guide/ssr.md | 12 ++-- docs/guide/static-deploy.md | 96 +++++++++++--------------------- packages/plugin-legacy/README.md | 2 +- packages/plugin-vue/README.md | 3 +- 13 files changed, 97 insertions(+), 121 deletions(-) diff --git a/docs/config/server-options.md b/docs/config/server-options.md index d5ed802ef716a6..6a43117f2ff164 100644 --- a/docs/config/server-options.md +++ b/docs/config/server-options.md @@ -198,8 +198,8 @@ Create Vite server in middleware mode. - **Example:** ```js -const express = require('express') -const { createServer: createViteServer } = require('vite') +import express from 'express' +import { createServer as createViteServer } from 'vite' async function createServer() { const app = express() diff --git a/docs/guide/api-javascript.md b/docs/guide/api-javascript.md index 33202e0d608238..6167bd7dfe7793 100644 --- a/docs/guide/api-javascript.md +++ b/docs/guide/api-javascript.md @@ -13,7 +13,10 @@ async function createServer(inlineConfig?: InlineConfig): Promise **Example Usage:** ```js -const { createServer } = require('vite') +import { fileURLToPath } from 'url' +import { createServer } from 'vite' + +const __dirname = fileURLToPath(new URL('.', import.meta.url)) ;(async () => { const server = await createServer({ @@ -134,8 +137,11 @@ async function build( **Example Usage:** ```js -const path = require('path') -const { build } = require('vite') +import path from 'path' +import { fileURLToPath } from 'url' +import { build } from 'vite' + +const __dirname = fileURLToPath(new URL('.', import.meta.url)) ;(async () => { await build({ @@ -161,8 +167,7 @@ async function preview(inlineConfig?: InlineConfig): Promise **Example Usage:** ```js -const { preview } = require('vite') - +import { preview } from 'vite' ;(async () => { const previewServer = await preview({ // any valid user config options, plus `mode` and `configFile` diff --git a/docs/guide/api-plugin.md b/docs/guide/api-plugin.md index 968505906b1c39..89c71cfdeecee7 100644 --- a/docs/guide/api-plugin.md +++ b/docs/guide/api-plugin.md @@ -11,7 +11,7 @@ Vite strives to offer established patterns out of the box, so before creating a When creating a plugin, you can inline it in your `vite.config.js`. There is no need to create a new package for it. Once you see that a plugin was useful in your projects, consider sharing it to help others [in the ecosystem](https://chat.vitejs.dev). ::: tip -When learning, debugging, or authoring plugins we suggest including [vite-plugin-inspect](https://github.com/antfu/vite-plugin-inspect) in your project. It allows you to inspect the intermediate state of Vite plugins. After installing, you can visit `localhost:5173/__inspect/` to inspect the modules and transformation stack of your project. Check out install instructions in the [vite-plugin-inspect docs](https://github.com/antfu/vite-plugin-inspect). +When learning, debugging, or authoring plugins, we suggest including [vite-plugin-inspect](https://github.com/antfu/vite-plugin-inspect) in your project. It allows you to inspect the intermediate state of Vite plugins. After installing, you can visit `localhost:5173/__inspect/` to inspect the modules and transformation stack of your project. Check out install instructions in the [vite-plugin-inspect docs](https://github.com/antfu/vite-plugin-inspect). ![vite-plugin-inspect](/images/vite-plugin-inspect.png) ::: @@ -199,7 +199,7 @@ Vite plugins can also provide hooks that serve Vite-specific purposes. These hoo name: 'mutate-config', config(config, { command }) { if (command === 'build') { - config.root = __dirname + config.root = 'foo' } } }) diff --git a/docs/guide/assets.md b/docs/guide/assets.md index a9483a610faccc..4ba6e417bd3d40 100644 --- a/docs/guide/assets.md +++ b/docs/guide/assets.md @@ -113,7 +113,3 @@ const imgUrl = new URL(imagePath, import.meta.url).href ::: warning Does not work with SSR This pattern does not work if you are using Vite for Server-Side Rendering, because `import.meta.url` have different semantics in browsers vs. Node.js. The server bundle also cannot determine the client host URL ahead of time. ::: - -::: warning `target` needs to be `es2020` or higher -This pattern will not work if [build-target](/config/build-options.md#build-target) or [optimizedeps.esbuildoptions.target](/config/dep-optimization-options.md#optimizedeps-esbuildoptions) is set to a value lower than `es2020`. -::: diff --git a/docs/guide/build.md b/docs/guide/build.md index 48d2f5a14ccf9c..e5a4af31c865d2 100644 --- a/docs/guide/build.md +++ b/docs/guide/build.md @@ -35,7 +35,7 @@ The build can be customized via various [build config options](/config/build-opt ```js // vite.config.js -module.exports = defineConfig({ +export default defineConfig({ build: { rollupOptions: { // https://rollupjs.org/guide/en/#big-list-of-options @@ -53,7 +53,7 @@ You can configure how chunks are split using `build.rollupOptions.output.manualC ```js // vite.config.js import { splitVendorChunkPlugin } from 'vite' -module.exports = defineConfig({ +export default defineConfig({ plugins: [splitVendorChunkPlugin()] }) ``` @@ -66,7 +66,7 @@ You can enable rollup watcher with `vite build --watch`. Or, you can directly ad ```js // vite.config.js -module.exports = defineConfig({ +export default defineConfig({ build: { watch: { // https://rollupjs.org/guide/en/#watch-options @@ -97,10 +97,10 @@ During build, all you need to do is to specify multiple `.html` files as entry p ```js // vite.config.js -const { resolve } = require('path') -const { defineConfig } = require('vite') +import { resolve } from 'path' +import { defineConfig } from 'vite' -module.exports = defineConfig({ +export default defineConfig({ build: { rollupOptions: { input: { @@ -122,10 +122,10 @@ When it is time to bundle your library for distribution, use the [`build.lib` co ```js // vite.config.js -const path = require('path') -const { defineConfig } = require('vite') +import { resolve } from 'path' +import { defineConfig } from 'vite' -module.exports = defineConfig({ +export default defineConfig({ build: { lib: { entry: path.resolve(__dirname, 'lib/main.js'), @@ -214,17 +214,17 @@ experimental: { If the hashed assets and public files aren't deployed together, options for each group can be defined independently using asset `type` included in the third `context` param given to the function. ```js - experimental: { - renderBuiltUrl(filename: string, { hostType: 'js' | 'css' | 'html', type: 'public' | 'asset' }) { - if (type === 'public') { - return 'https://www.domain.com/' + filename - } - else if (path.extname(importer) === '.js') { - return { runtime: `window.__assetsPath(${JSON.stringify(filename)})` } - } - else { - return 'https://cdn.domain.com/assets/' + filename - } +experimental: { + renderBuiltUrl(filename: string, { hostType: 'js' | 'css' | 'html', type: 'public' | 'asset' }) { + if (type === 'public') { + return 'https://www.domain.com/' + filename + } + else if (path.extname(importer) === '.js') { + return { runtime: `window.__assetsPath(${JSON.stringify(filename)})` } + } + else { + return 'https://cdn.domain.com/assets/' + filename } } +} ``` diff --git a/docs/guide/env-and-mode.md b/docs/guide/env-and-mode.md index e3eb14f6524329..43da3c3b8ace38 100644 --- a/docs/guide/env-and-mode.md +++ b/docs/guide/env-and-mode.md @@ -12,6 +12,8 @@ Vite exposes env variables on the special **`import.meta.env`** object. Some bui - **`import.meta.env.DEV`**: {boolean} whether the app is running in development (always the opposite of `import.meta.env.PROD`) +- **`import.meta.env.SSR`**: {boolean} whether the app is running in the [server](./ssr.md#conditional-logic). + ### Production Replacement During production, these env variables are **statically replaced**. It is therefore necessary to always reference them using the full static string. For example, dynamic key access like `import.meta.env[key]` will not work. @@ -47,12 +49,17 @@ Loaded env variables are also exposed to your client source code via `import.met To prevent accidentally leaking env variables to the client, only variables prefixed with `VITE_` are exposed to your Vite-processed code. e.g. the following file: ``` -DB_PASSWORD=foobar VITE_SOME_KEY=123 +DB_PASSWORD=foobar ``` Only `VITE_SOME_KEY` will be exposed as `import.meta.env.VITE_SOME_KEY` to your client source code, but `DB_PASSWORD` will not. +```js +console.log(import.meta.env.VITE_SOME_KEY) // 123 +console.log(import.meta.env.DB_PASSWORD) // undefined +``` + If you want to customize env variables prefix, see [envPrefix](/config/index#envprefix) option. :::warning SECURITY NOTES diff --git a/docs/guide/features.md b/docs/guide/features.md index 265d6c82fa45ef..b7449e15bfc1c9 100644 --- a/docs/guide/features.md +++ b/docs/guide/features.md @@ -108,11 +108,12 @@ Vite provides first-class Vue support: - Vue 3 SFC support via [@vitejs/plugin-vue](https://github.com/vitejs/vite/tree/main/packages/plugin-vue) - Vue 3 JSX support via [@vitejs/plugin-vue-jsx](https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx) -- Vue 2 support via [underfin/vite-plugin-vue2](https://github.com/underfin/vite-plugin-vue2) +- Vue 2.7 support via [vitejs/vite-plugin-vue2](https://github.com/vitejs/vite-plugin-vue2) +- Vue <2.7 support via [underfin/vite-plugin-vue2](https://github.com/underfin/vite-plugin-vue2) ## JSX -`.jsx` and `.tsx` files are also supported out of the box. JSX transpilation is also handled via [esbuild](https://esbuild.github.io), and defaults to the React 16 flavor. React 17 style JSX support in esbuild is tracked [here](https://github.com/evanw/esbuild/issues/334). +`.jsx` and `.tsx` files are also supported out of the box. JSX transpilation is also handled via [esbuild](https://esbuild.github.io). Vue users should use the official [@vitejs/plugin-vue-jsx](https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx) plugin, which provides Vue 3 specific features including HMR, global component resolving, directives and slots. diff --git a/docs/guide/index.md b/docs/guide/index.md index f0f327c22988a2..0236b895aedee1 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -18,7 +18,7 @@ You can learn more about the rationale behind the project in the [Why Vite](./wh ## Browser Support -- The default build targets browsers that support both [native ES Modules](https://caniuse.com/es6-module) and [native ESM dynamic import](https://caniuse.com/es6-module-dynamic-import). Legacy browsers can be supported via the official [@vitejs/plugin-legacy](https://github.com/vitejs/vite/tree/main/packages/plugin-legacy) - see the [Building for Production](./build) section for more details. +The default build targets browsers that support both [native ES Modules](https://caniuse.com/es6-module) and [native ESM dynamic import](https://caniuse.com/es6-module-dynamic-import). Legacy browsers can be supported via the official [@vitejs/plugin-legacy](https://github.com/vitejs/vite/tree/main/packages/plugin-legacy) - see the [Building for Production](./build) section for more details. ## Trying Vite Online diff --git a/docs/guide/migration.md b/docs/guide/migration.md index 9a80580fcf2eb0..4b0d492c026fea 100644 --- a/docs/guide/migration.md +++ b/docs/guide/migration.md @@ -17,17 +17,17 @@ A small fraction of users will now require using [@vitejs/plugin-legacy](https:/ ## Config Options Changes -- The following options that were already deprecated in v2 have been removed: +The following options that were already deprecated in v2 have been removed: - - `alias` (switch to [`resolve.alias`](../config/shared-options.md#resolve-alias)) - - `dedupe` (switch to [`resolve.dedupe`](../config/shared-options.md#resolve-dedupe)) - - `build.base` (switch to [`base`](../config/shared-options.md#base)) - - `build.brotliSize` (switch to [`build.reportCompressedSize`](../config/build-options.md#build-reportcompressedsize)) - - `build.cleanCssOptions` (Vite now uses esbuild for CSS minification) - - `build.polyfillDynamicImport` (use [`@vitejs/plugin-legacy`](https://github.com/vitejs/vite/tree/main/packages/plugin-legacy) for browsers without dynamic import support) - - `optimizeDeps.keepNames` (switch to [`optimizeDeps.esbuildOptions.keepNames`](../config/dep-optimization-options.md#optimizedeps-esbuildoptions)) +- `alias` (switch to [`resolve.alias`](../config/shared-options.md#resolve-alias)) +- `dedupe` (switch to [`resolve.dedupe`](../config/shared-options.md#resolve-dedupe)) +- `build.base` (switch to [`base`](../config/shared-options.md#base)) +- `build.brotliSize` (switch to [`build.reportCompressedSize`](../config/build-options.md#build-reportcompressedsize)) +- `build.cleanCssOptions` (Vite now uses esbuild for CSS minification) +- `build.polyfillDynamicImport` (use [`@vitejs/plugin-legacy`](https://github.com/vitejs/vite/tree/main/packages/plugin-legacy) for browsers without dynamic import support) +- `optimizeDeps.keepNames` (switch to [`optimizeDeps.esbuildOptions.keepNames`](../config/dep-optimization-options.md#optimizedeps-esbuildoptions)) -## Architecture changes and legacy Options +## Architecture Changes and Legacy Options This section describes the biggest architecture changes in Vite v3. To allow projects to migrate from v2 in case of a compat issue, legacy options have been added to revert to the Vite v2 strategies. @@ -72,7 +72,7 @@ Also [`build.rollupOptions.output.inlineDynamicImports`](https://rollupjs.org/gu - When using an alias with `import.meta.glob`, the keys are always absolute. - `import.meta.globEager` is now deprecated. Use `import.meta.glob('*', { eager: true })` instead. -### WebAssembly support +### WebAssembly Support `import init from 'example.wasm'` syntax is dropped to prevent future collision with ["ESM integration for Wasm"](https://github.com/WebAssembly/esm-integration). You can use `?init` which is similar to the previous behavior. @@ -87,7 +87,7 @@ You can use `?init` which is similar to the previous behavior. }) ``` -### Automatic https certificate generation +### Automatic https Certificate Generation A valid certificate is needed when using `https`. In Vite v2, if no certificate was configured, a self-signed certificate was automatically created and cached. Since Vite v3, we recommend manually creating your certificates. If you still want to use the automatic generation from v2, this feature can be enabled back by adding [@vitejs/plugin-basic-ssl](https://github.com/vitejs/vite-plugin-basic-ssl) to the project plugins. diff --git a/docs/guide/ssr.md b/docs/guide/ssr.md index eb3cbdedc78cf1..535feaf36931b7 100644 --- a/docs/guide/ssr.md +++ b/docs/guide/ssr.md @@ -66,10 +66,10 @@ When building an SSR app, you likely want to have full control over your main se **server.js** ```js{17-19} -const fs = require('fs') -const path = require('path') -const express = require('express') -const { createServer: createViteServer } = require('vite') +import fs from 'fs' +import path from 'path' +import express from 'express' +import {createServer as createViteServer} from 'vite' async function createServer() { const app = express() @@ -154,7 +154,7 @@ The `dev` script in `package.json` should also be changed to use the server scri To ship an SSR project for production, we need to: 1. Produce a client build as normal; -2. Produce an SSR build, which can be directly loaded via `require()` so that we don't have to go through Vite's `ssrLoadModule`; +2. Produce an SSR build, which can be directly loaded via `import()` so that we don't have to go through Vite's `ssrLoadModule`; Our scripts in `package.json` will look like this: @@ -174,7 +174,7 @@ Then, in `server.js` we need to add some production specific logic by checking ` - Instead of reading the root `index.html`, use the `dist/client/index.html` as the template instead, since it contains the correct asset links to the client build. -- Instead of `await vite.ssrLoadModule('/src/entry-server.js')`, use `require('./dist/server/entry-server.js')` instead (this file is the result of the SSR build). +- Instead of `await vite.ssrLoadModule('/src/entry-server.js')`, use `import('./dist/server/entry-server.js')` instead (this file is the result of the SSR build). - Move the creation and all usage of the `vite` dev server behind dev-only conditional branches, then add static file serving middlewares to serve files from `dist/client`. diff --git a/docs/guide/static-deploy.md b/docs/guide/static-deploy.md index 1d16b65af32e31..756f6a9c85d010 100644 --- a/docs/guide/static-deploy.md +++ b/docs/guide/static-deploy.md @@ -18,10 +18,10 @@ The following guides are based on some shared assumptions: It is important to note that `vite preview` is intended for previewing the build locally and not meant as a production server. ::: tip NOTE -These guides provide instructions for performing a static deployment of your Vite site. Vite also has experimental support for Server Side Rendering. SSR refers to front-end frameworks that support running the same application in Node.js, pre-rendering it to HTML, and finally hydrating it on the client. Check out the [SSR Guide](./ssr) to learn about this feature. On the other hand, if you are looking for integration with traditional server-side frameworks, check out the [Backend Integration guide](./backend-integration) instead. +These guides provide instructions for performing a static deployment of your Vite site. Vite also supports Server Side Rendering. SSR refers to front-end frameworks that support running the same application in Node.js, pre-rendering it to HTML, and finally hydrating it on the client. Check out the [SSR Guide](./ssr) to learn about this feature. On the other hand, if you are looking for integration with traditional server-side frameworks, check out the [Backend Integration guide](./backend-integration) instead. ::: -## Building The App +## Building the App You may run `npm run build` command to build the app. @@ -31,7 +31,7 @@ $ npm run build By default, the build output will be placed at `dist`. You may deploy this `dist` folder to any of your preferred platforms. -### Testing The App Locally +### Testing the App Locally Once you've built the app, you may test it locally by running `npm run preview` command. @@ -52,7 +52,7 @@ You may configure the port of the server by passing `--port` flag as an argument } ``` -Now the `preview` method will launch the server at `http://localhost:8080`. +Now the `preview` command will launch the server at `http://localhost:8080`. ## GitHub Pages @@ -97,40 +97,6 @@ Now the `preview` method will launch the server at `http://localhost:8080`. You can also run the above script in your CI setup to enable automatic deployment on each push. ::: -### GitHub Pages and Travis CI - -1. Set the correct `base` in `vite.config.js`. - - If you are deploying to `https://.github.io/`, you can omit `base` as it defaults to `'/'`. - - If you are deploying to `https://.github.io//`, for example your repository is at `https://github.com//`, then set `base` to `'//'`. - -2. Create a file named `.travis.yml` in the root of your project. - -3. Run `npm install` locally and commit the generated lockfile (`package-lock.json`). - -4. Use the GitHub Pages deploy provider template, and follow the [Travis CI documentation](https://docs.travis-ci.com/user/deployment/pages/). - - ```yaml - language: node_js - node_js: - - lts/* - install: - - npm ci - script: - - npm run build - deploy: - provider: pages - skip_cleanup: true - local_dir: dist - # A token generated on GitHub allowing Travis to push code on you repository. - # Set in the Travis settings page of your repository, as a secure variable. - github_token: $GITHUB_TOKEN - keep_history: true - on: - branch: main - ``` - ## GitLab Pages and GitLab CI 1. Set the correct `base` in `vite.config.js`. @@ -187,6 +153,33 @@ The Netlify CLI will share with you a preview URL to inspect. When you are ready $ ntl deploy --prod ``` +## Vercel + +### Vercel CLI + +1. Install the [Vercel CLI](https://vercel.com/cli) and run `vercel` to deploy. +2. Vercel will detect that you are using Vite and will enable the correct settings for your deployment. +3. Your application is deployed! (e.g. [vite-vue-template.vercel.app](https://vite-vue-template.vercel.app/)) + +```bash +$ npm i -g vercel +$ vercel init vite +Vercel CLI +> Success! Initialized "vite" example in ~/your-folder. +- To deploy, `cd vite` and run `vercel`. +``` + +### Vercel for Git + +1. Push your code to your git repository (GitHub, GitLab, Bitbucket). +2. [Import your Vite project](https://vercel.com/new) into Vercel. +3. Vercel will detect that you are using Vite and will enable the correct settings for your deployment. +4. Your application is deployed! (e.g. [vite-vue-template.vercel.app](https://vite-vue-template.vercel.app/)) + +After your project has been imported and deployed, all subsequent pushes to branches will generate [Preview Deployments](https://vercel.com/docs/concepts/deployments/environments#preview), and all changes made to the Production Branch (commonly “main”) will result in a [Production Deployment](https://vercel.com/docs/concepts/deployments/environments#production). + +Learn more about Vercel’s [Git Integration](https://vercel.com/docs/concepts/git). + ## Cloudflare Pages ### Cloudflare Pages via Wrangler @@ -325,33 +318,6 @@ You can also deploy to a [custom domain](http://surge.sh/help/adding-a-custom-do $ heroku open ``` -## Vercel - -### Vercel CLI - -1. Install the [Vercel CLI](https://vercel.com/cli) and run `vercel` to deploy. -2. Vercel will detect that you are using Vite and will enable the correct settings for your deployment. -3. Your application is deployed! (e.g. [vite-vue-template.vercel.app](https://vite-vue-template.vercel.app/)) - -```bash -$ npm i -g vercel -$ vercel init vite -Vercel CLI -> Success! Initialized "vite" example in ~/your-folder. -- To deploy, `cd vite` and run `vercel`. -``` - -### Vercel for Git - -1. Push your code to your git repository (GitHub, GitLab, Bitbucket). -2. [Import your Vite project](https://vercel.com/new) into Vercel. -3. Vercel will detect that you are using Vite and will enable the correct settings for your deployment. -4. Your application is deployed! (e.g. [vite-vue-template.vercel.app](https://vite-vue-template.vercel.app/)) - -After your project has been imported and deployed, all subsequent pushes to branches will generate [Preview Deployments](https://vercel.com/docs/concepts/deployments/environments#preview), and all changes made to the Production Branch (commonly “main”) will result in a [Production Deployment](https://vercel.com/docs/concepts/deployments/environments#production). - -Learn more about Vercel’s [Git Integration](https://vercel.com/docs/concepts/git). - ## 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/packages/plugin-legacy/README.md b/packages/plugin-legacy/README.md index 4cec856f95d7af..b5c3631ab2ac60 100644 --- a/packages/plugin-legacy/README.md +++ b/packages/plugin-legacy/README.md @@ -163,7 +163,7 @@ Run `node --input-type=module -e "import {cspHashes} from '@vitejs/plugin-legacy These values (without the `sha256-` prefix) can also be retrieved via ```js -const { cspHashes } = require('@vitejs/plugin-legacy') +import { cspHashes } from '@vitejs/plugin-legacy' ``` When using the `regenerator-runtime` polyfill, it will attempt to use the `globalThis` object to register itself. If `globalThis` is not available (it is [fairly new](https://caniuse.com/?search=globalThis) and not widely supported, including IE 11), it attempts to perform dynamic `Function(...)` call which violates the CSP. To avoid dynamic `eval` in the absence of `globalThis` consider adding `core-js/proposals/global-this` to `additionalLegacyPolyfills` to define it. diff --git a/packages/plugin-vue/README.md b/packages/plugin-vue/README.md index ae848051cecd10..5f2236edf02604 100644 --- a/packages/plugin-vue/README.md +++ b/packages/plugin-vue/README.md @@ -110,6 +110,7 @@ export default { ```ts import vue from '@vitejs/plugin-vue' +import yaml from 'js-yaml' const vueI18nPlugin = { name: 'vue-i18n', @@ -118,7 +119,7 @@ const vueI18nPlugin = { return } if (/\.ya?ml$/.test(id)) { - code = JSON.stringify(require('js-yaml').load(code.trim())) + code = JSON.stringify(yaml.load(code.trim())) } return `export default Comp => { Comp.i18n = ${code} From cf23963b50eafe5504cb16e97b161fa6cc4ebabe Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 8 Jul 2022 17:40:01 +0800 Subject: [PATCH 017/716] chore: use vite-env.d.ts convention (#8988) --- .../create-vite/template-vue-ts/src/{env.d.ts => vite-env.d.ts} | 1 - 1 file changed, 1 deletion(-) rename packages/create-vite/template-vue-ts/src/{env.d.ts => vite-env.d.ts} (66%) diff --git a/packages/create-vite/template-vue-ts/src/env.d.ts b/packages/create-vite/template-vue-ts/src/vite-env.d.ts similarity index 66% rename from packages/create-vite/template-vue-ts/src/env.d.ts rename to packages/create-vite/template-vue-ts/src/vite-env.d.ts index aafef9509dd5c4..323c78a6cd8507 100644 --- a/packages/create-vite/template-vue-ts/src/env.d.ts +++ b/packages/create-vite/template-vue-ts/src/vite-env.d.ts @@ -2,7 +2,6 @@ declare module '*.vue' { import type { DefineComponent } from 'vue' - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types const component: DefineComponent<{}, {}, any> export default component } From e36988014ba1982768ab8a9544b0b5308e37383c Mon Sep 17 00:00:00 2001 From: patak Date: Fri, 8 Jul 2022 12:20:37 +0200 Subject: [PATCH 018/716] fix: respect explicitily external/noExternal config (#8983) --- packages/vite/src/node/ssr/ssrExternal.ts | 33 +++++++++++++---------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/packages/vite/src/node/ssr/ssrExternal.ts b/packages/vite/src/node/ssr/ssrExternal.ts index c403d85f83d9bb..c69c117ebde843 100644 --- a/packages/vite/src/node/ssr/ssrExternal.ts +++ b/packages/vite/src/node/ssr/ssrExternal.ts @@ -107,7 +107,7 @@ export function shouldExternalizeForSSR( export function createIsConfiguredAsSsrExternal( config: ResolvedConfig -): (id: string) => boolean { +): (id: string) => boolean | undefined { const { ssr } = config const noExternal = ssr?.noExternal const noExternalFilter = @@ -115,18 +115,22 @@ export function createIsConfiguredAsSsrExternal( typeof noExternal !== 'boolean' && createFilter(undefined, noExternal, { resolve: false }) + // Returns true if it is configured as external, false if it is filtered + // by noExternal and undefined if it isn't affected by the explicit config return (id: string) => { const { ssr } = config - if (!ssr || ssr.external?.includes(id)) { - return true - } - if (typeof noExternal === 'boolean') { - return !noExternal - } - if (noExternalFilter) { - return noExternalFilter(id) + if (ssr) { + if (ssr.external?.includes(id)) { + return true + } + if (typeof noExternal === 'boolean') { + return !noExternal + } + if (noExternalFilter && !noExternalFilter(id)) { + return false + } } - return true + return undefined } } @@ -165,10 +169,11 @@ function createIsSsrExternal( if (processedIds.has(id)) { return processedIds.get(id) } - const external = - !id.startsWith('.') && - !path.isAbsolute(id) && - (isBuiltin(id) || (isConfiguredAsExternal(id) && isValidPackageEntry(id))) + let external = false + if (!id.startsWith('.') && !path.isAbsolute(id)) { + external = + isBuiltin(id) || (isConfiguredAsExternal(id) ?? isValidPackageEntry(id)) + } processedIds.set(id, external) return external } From 5a7d04d7e3694fd15996fd665215756ace6b2a89 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Fri, 8 Jul 2022 15:10:12 +0200 Subject: [PATCH 019/716] release: v3.0.0-beta.9 --- packages/vite/CHANGELOG.md | 6 ++++++ packages/vite/package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index ec9b4f0cfc4a1b..594c8dcec37ab7 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,9 @@ +## 3.0.0-beta.9 (2022-07-08) + +* fix: respect explicitily external/noExternal config (#8983) ([e369880](https://github.com/vitejs/vite/commit/e369880)), closes [#8983](https://github.com/vitejs/vite/issues/8983) + + + ## 3.0.0-beta.8 (2022-07-08) * refactor: opt-in optimizeDeps during build and SSR (#8965) ([f8c8cf2](https://github.com/vitejs/vite/commit/f8c8cf2)), closes [#8965](https://github.com/vitejs/vite/issues/8965) diff --git a/packages/vite/package.json b/packages/vite/package.json index 1494c88378068a..236437e43584ae 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "vite", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.9", "type": "module", "license": "MIT", "author": "Evan You", From 2a9bc6dda4be0b8a0cdbcc20878c18197dabfc4e Mon Sep 17 00:00:00 2001 From: patak Date: Fri, 8 Jul 2022 15:43:01 +0200 Subject: [PATCH 020/716] chore: v3.0.0-beta.9 release notes (#8996) --- packages/vite/CHANGELOG.md | 196 ++++++++++++++++++------------------- 1 file changed, 95 insertions(+), 101 deletions(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 594c8dcec37ab7..c5d867dbbc5ac9 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,102 +1,5 @@ ## 3.0.0-beta.9 (2022-07-08) -* fix: respect explicitily external/noExternal config (#8983) ([e369880](https://github.com/vitejs/vite/commit/e369880)), closes [#8983](https://github.com/vitejs/vite/issues/8983) - - - -## 3.0.0-beta.8 (2022-07-08) - -* refactor: opt-in optimizeDeps during build and SSR (#8965) ([f8c8cf2](https://github.com/vitejs/vite/commit/f8c8cf2)), closes [#8965](https://github.com/vitejs/vite/issues/8965) -* fix: cjs interop export names local clash, fix #8950 (#8953) ([2185f72](https://github.com/vitejs/vite/commit/2185f72)), closes [#8950](https://github.com/vitejs/vite/issues/8950) [#8953](https://github.com/vitejs/vite/issues/8953) -* fix: handle context resolve options (#8966) ([57c6c15](https://github.com/vitejs/vite/commit/57c6c15)), closes [#8966](https://github.com/vitejs/vite/issues/8966) -* fix: re-encode url to prevent fs.allow bypass (fixes #8498) (#8979) ([b835699](https://github.com/vitejs/vite/commit/b835699)), closes [#8498](https://github.com/vitejs/vite/issues/8498) [#8979](https://github.com/vitejs/vite/issues/8979) -* fix(scan): detect import .ts as .js (#8969) ([752af6c](https://github.com/vitejs/vite/commit/752af6c)), closes [#8969](https://github.com/vitejs/vite/issues/8969) -* refactor!: move basic ssl setup to external plugin, fix #8532 (#8961) ([5c6cf5a](https://github.com/vitejs/vite/commit/5c6cf5a)), closes [#8532](https://github.com/vitejs/vite/issues/8532) [#8961](https://github.com/vitejs/vite/issues/8961) - - - -## 3.0.0-beta.7 (2022-07-06) - -* fix: ssrBuild is optional, avoid breaking VitePress (#8912) ([722f514](https://github.com/vitejs/vite/commit/722f514)), closes [#8912](https://github.com/vitejs/vite/issues/8912) -* fix(css): always use css module content (#8936) ([6e0dd3a](https://github.com/vitejs/vite/commit/6e0dd3a)), closes [#8936](https://github.com/vitejs/vite/issues/8936) -* feat: avoid scanner during build and only optimize CJS in SSR (#8932) ([339d9e3](https://github.com/vitejs/vite/commit/339d9e3)), closes [#8932](https://github.com/vitejs/vite/issues/8932) -* feat: improved cold start using deps scanner (#8869) ([188f188](https://github.com/vitejs/vite/commit/188f188)), closes [#8869](https://github.com/vitejs/vite/issues/8869) -* feat: ssr.optimizeDeps (#8917) ([f280dd9](https://github.com/vitejs/vite/commit/f280dd9)), closes [#8917](https://github.com/vitejs/vite/issues/8917) -* feat: support import assertions (#8937) ([2390422](https://github.com/vitejs/vite/commit/2390422)), closes [#8937](https://github.com/vitejs/vite/issues/8937) - - - -## 3.0.0-beta.6 (2022-07-04) - -* chore: add package.json to export map (#8838) ([cbefc63](https://github.com/vitejs/vite/commit/cbefc63)), closes [#8838](https://github.com/vitejs/vite/issues/8838) -* chore: update deprecation warnings for improved migration DX (#8866) ([4eb2348](https://github.com/vitejs/vite/commit/4eb2348)), closes [#8866](https://github.com/vitejs/vite/issues/8866) -* chore: use tsconfig for client build (#8815) ([10936cd](https://github.com/vitejs/vite/commit/10936cd)), closes [#8815](https://github.com/vitejs/vite/issues/8815) -* chore(deps): update all non-major dependencies (#8905) ([4a24c17](https://github.com/vitejs/vite/commit/4a24c17)), closes [#8905](https://github.com/vitejs/vite/issues/8905) -* chore(deps): update dependency connect-history-api-fallback to v2 (#8906) ([129c7c6](https://github.com/vitejs/vite/commit/129c7c6)), closes [#8906](https://github.com/vitejs/vite/issues/8906) -* refactor: remove ?used inject in glob plugin (#8900) ([f9b5c14](https://github.com/vitejs/vite/commit/f9b5c14)), closes [#8900](https://github.com/vitejs/vite/issues/8900) -* fix: avoid optimizing non-optimizable external deps (#8860) ([cd8d63b](https://github.com/vitejs/vite/commit/cd8d63b)), closes [#8860](https://github.com/vitejs/vite/issues/8860) -* fix: ensure define overrides import.meta in build (#8892) ([7d810a9](https://github.com/vitejs/vite/commit/7d810a9)), closes [#8892](https://github.com/vitejs/vite/issues/8892) -* fix: ignore Playwright test results directory (#8778) ([314c09c](https://github.com/vitejs/vite/commit/314c09c)), closes [#8778](https://github.com/vitejs/vite/issues/8778) -* fix: node platform for ssr dev regression (#8840) ([7257fd8](https://github.com/vitejs/vite/commit/7257fd8)), closes [#8840](https://github.com/vitejs/vite/issues/8840) -* fix: optimize deps on dev SSR, builtin imports in node (#8854) ([d49856c](https://github.com/vitejs/vite/commit/d49856c)), closes [#8854](https://github.com/vitejs/vite/issues/8854) -* fix: prevent crash when the pad amount is negative (#8747) ([3af6a1b](https://github.com/vitejs/vite/commit/3af6a1b)), closes [#8747](https://github.com/vitejs/vite/issues/8747) -* fix: reverts #8278 ([a0da2f0](https://github.com/vitejs/vite/commit/a0da2f0)), closes [#8278](https://github.com/vitejs/vite/issues/8278) -* fix: server.force deprecation and force on restart API (#8842) ([c94f564](https://github.com/vitejs/vite/commit/c94f564)), closes [#8842](https://github.com/vitejs/vite/issues/8842) -* fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) -* fix(hmr): set isSelfAccepting unless it is delayed (#8898) ([ae34565](https://github.com/vitejs/vite/commit/ae34565)), closes [#8898](https://github.com/vitejs/vite/issues/8898) -* fix(worker): dont throw on `import.meta.url` in ssr (#8846) ([ef749ed](https://github.com/vitejs/vite/commit/ef749ed)), closes [#8846](https://github.com/vitejs/vite/issues/8846) -* feat: accept AcceptedPlugin type for postcss plugin (#8830) ([6886078](https://github.com/vitejs/vite/commit/6886078)), closes [#8830](https://github.com/vitejs/vite/issues/8830) -* feat: ssrBuild flag in config env (#8863) ([b6d655a](https://github.com/vitejs/vite/commit/b6d655a)), closes [#8863](https://github.com/vitejs/vite/issues/8863) - - - -## 3.0.0-beta.5 (2022-06-28) - -* fix: deps optimizer should wait on entries (#8822) ([2db1b5b](https://github.com/vitejs/vite/commit/2db1b5b)), closes [#8822](https://github.com/vitejs/vite/issues/8822) -* fix: incorrectly resolving `knownJsSrcRE` files from root (fixes #4161) (#8808) ([e1e426e](https://github.com/vitejs/vite/commit/e1e426e)), closes [#4161](https://github.com/vitejs/vite/issues/4161) [#8808](https://github.com/vitejs/vite/issues/8808) -* feat: experimental.renderBuiltUrl (revised build base options) (#8762) ([895a7d6](https://github.com/vitejs/vite/commit/895a7d6)), closes [#8762](https://github.com/vitejs/vite/issues/8762) -* feat: respect esbuild minify config for css (#8811) ([d90409e](https://github.com/vitejs/vite/commit/d90409e)), closes [#8811](https://github.com/vitejs/vite/issues/8811) -* feat: use esbuild supported feature (#8665) ([2061d41](https://github.com/vitejs/vite/commit/2061d41)), closes [#8665](https://github.com/vitejs/vite/issues/8665) - - - -## 3.0.0-beta.4 (2022-06-27) - -* fix: /@fs/ dir traversal with escaped chars (fixes #8498) (#8804) ([6851009](https://github.com/vitejs/vite/commit/6851009)), closes [#8498](https://github.com/vitejs/vite/issues/8498) [#8804](https://github.com/vitejs/vite/issues/8804) -* fix: preserve extension of css assets in the manifest (#8768) ([9508549](https://github.com/vitejs/vite/commit/9508549)), closes [#8768](https://github.com/vitejs/vite/issues/8768) - - - -## 3.0.0-beta.3 (2022-06-26) - -* fix: always remove temp config (#8782) ([2c2a86b](https://github.com/vitejs/vite/commit/2c2a86b)), closes [#8782](https://github.com/vitejs/vite/issues/8782) -* fix: ensure deps optimizer first run, fixes #8750 (#8775) ([3f689a4](https://github.com/vitejs/vite/commit/3f689a4)), closes [#8750](https://github.com/vitejs/vite/issues/8750) [#8775](https://github.com/vitejs/vite/issues/8775) -* fix: remove buildTimeImportMetaUrl (#8785) ([cd32095](https://github.com/vitejs/vite/commit/cd32095)), closes [#8785](https://github.com/vitejs/vite/issues/8785) -* fix: skip inline html (#8789) ([4a6408b](https://github.com/vitejs/vite/commit/4a6408b)), closes [#8789](https://github.com/vitejs/vite/issues/8789) -* fix(optimizer): only run require-import conversion if require'd (#8795) ([7ae0d3e](https://github.com/vitejs/vite/commit/7ae0d3e)), closes [#8795](https://github.com/vitejs/vite/issues/8795) -* perf: avoid sourcemap chains during dev (#8796) ([1566f61](https://github.com/vitejs/vite/commit/1566f61)), closes [#8796](https://github.com/vitejs/vite/issues/8796) -* chore: use `tsx` directly instead of indirect `esno` (#8773) ([f018f13](https://github.com/vitejs/vite/commit/f018f13)), closes [#8773](https://github.com/vitejs/vite/issues/8773) -* feat: respect esbuild minify config (#8754) ([8b77695](https://github.com/vitejs/vite/commit/8b77695)), closes [#8754](https://github.com/vitejs/vite/issues/8754) -* chore!: update rollup commonjs plugin to v22 (#8743) ([d4dcdd1](https://github.com/vitejs/vite/commit/d4dcdd1)), closes [#8743](https://github.com/vitejs/vite/issues/8743) - - - -## 3.0.0-beta.2 (2022-06-24) - -* feat: enable tree-shaking for lib es (#8737) ([5dc0f72](https://github.com/vitejs/vite/commit/5dc0f72)), closes [#8737](https://github.com/vitejs/vite/issues/8737) -* feat: supports cts and mts config (#8729) ([c2b09db](https://github.com/vitejs/vite/commit/c2b09db)), closes [#8729](https://github.com/vitejs/vite/issues/8729) -* fix: avoid type mismatch with Rollup (fix #7843) (#8701) ([87e51f7](https://github.com/vitejs/vite/commit/87e51f7)), closes [#7843](https://github.com/vitejs/vite/issues/7843) [#8701](https://github.com/vitejs/vite/issues/8701) -* fix: optimizeDeps.entries transformRequest url (fix #8719) (#8748) ([9208c3b](https://github.com/vitejs/vite/commit/9208c3b)), closes [#8719](https://github.com/vitejs/vite/issues/8719) [#8748](https://github.com/vitejs/vite/issues/8748) -* fix(hmr): __HMR_PORT__ should not be `'undefined'` (#8761) ([3271266](https://github.com/vitejs/vite/commit/3271266)), closes [#8761](https://github.com/vitejs/vite/issues/8761) -* perf(lib): improve helper inject regex (#8741) ([19fc7e5](https://github.com/vitejs/vite/commit/19fc7e5)), closes [#8741](https://github.com/vitejs/vite/issues/8741) -* refactor: remove unnecessary condition (#8742) ([2ae269e](https://github.com/vitejs/vite/commit/2ae269e)), closes [#8742](https://github.com/vitejs/vite/issues/8742) -* docs: fix alpha changelog links (#8736) ([31348b5](https://github.com/vitejs/vite/commit/31348b5)), closes [#8736](https://github.com/vitejs/vite/issues/8736) -* chore: v3 beta release notes (#8718) ([7e899d0](https://github.com/vitejs/vite/commit/7e899d0)), closes [#8718](https://github.com/vitejs/vite/issues/8718) - - - -## 3.0.0-beta.1 (2022-06-22) - ### Main Changes - New docs theme using [VitePress](https://vitepress.vuejs.org/) v1 alpha: https://main.vitejs.dev @@ -109,8 +12,7 @@ - The Modern Browser Baseline now targets browsers which support the [native ES Modules](https://caniuse.com/es6-module) and [native ESM dynamic import](https://caniuse.com/es6-module-dynamic-import) and [`import.meta`](https://caniuse.com/mdn-javascript_statements_import_meta). - JS file extensions in SSR and lib mode now use a valid extension (`js`, `mjs`, or `cjs`) for output JS entries and chunks based on their format and the package type. - Architecture changes - - Vite no longer pre-scans user code with esbuild to get an initial list of dependencies on cold start. Instead, it delays the first dependency optimization run until every imported user module on load is processed. - - Vite now uses esbuild to optimize dependencies avoiding the need of[`@rollupjs/plugin-commonjs`](https://github.com/rollup/plugins/tree/master/packages/commonjs), removing one of the most significant differences between dev and prod present in v2. + - Vite now avoids full reload during cold start when imports are injected by plugins in while crawling the initial statically imported modules ([#8869](https://github.com/vitejs/vite/issues/8869)). - Vite uses ESM for the SSR build by default, and previous [SSR externalization heuristics](https://vitejs.dev/guide/ssr.html#ssr-externals) are no longer needed. - `import.meta.glob` has been improved, read about the new features in the [Glob Import Guide](https://main.vitejs.dev/guide/features.html#glob-import) - The WebAssembly import API has been revised to avoid collisions with future standards. Read more in the [WebAssembly guide](https://main.vitejs.dev/guide/features.html#webassembly) @@ -118,7 +20,10 @@ - Experimental Features - [Build Advanced Base Options](https://main.vitejs.dev/guide/build.html#advanced-base-options) - [HMR Partial Accept](https://github.com/vitejs/vite/pull/7324) -- Terser is now an optional dependency to reduce the bundle size. If you use `build.minify: 'terser'`, you'll need to install it (`npm add -D terser`) + - Vite now allows the use of [esbuild to optimize dependencies during build time](https://main.vitejs.dev/guide/migration.html#using-esbuild-deps-optimization-at-build-time) avoiding the need of [`@rollupjs/plugin-commonjs`](https://github.com/rollup/plugins/tree/master/packages/commonjs), removing one of the difference id dependency handling between dev and prod. +- Bundle size reduction + - Terser is now an optional dependency. If you use `build.minify: 'terser'`, you'll need to install it (`npm add -D terser`) + - node-forge moved out of the monorepo to [@vitejs/plugin-basic-ssl](https://main.vitejs.dev/guide/migration.html#automatic-https-certificate-generation) - Options that were [already deprecated in v2](https://main.vitejs.dev/guide/migration.html#config-options-changes) have been removed. > **Note** @@ -126,6 +31,21 @@ ### Features +* refactor: opt-in optimizeDeps during build and SSR (#8965) ([f8c8cf2](https://github.com/vitejs/vite/commit/f8c8cf2)), closes [#8965](https://github.com/vitejs/vite/issues/8965) +* refactor!: move basic ssl setup to external plugin, fix #8532 (#8961) ([5c6cf5a](https://github.com/vitejs/vite/commit/5c6cf5a)), closes [#8532](https://github.com/vitejs/vite/issues/8532) [#8961](https://github.com/vitejs/vite/issues/8961) +* feat: avoid scanner during build and only optimize CJS in SSR (#8932) ([339d9e3](https://github.com/vitejs/vite/commit/339d9e3)), closes [#8932](https://github.com/vitejs/vite/issues/8932) +* feat: improved cold start using deps scanner (#8869) ([188f188](https://github.com/vitejs/vite/commit/188f188)), closes [#8869](https://github.com/vitejs/vite/issues/8869) +* feat: ssr.optimizeDeps (#8917) ([f280dd9](https://github.com/vitejs/vite/commit/f280dd9)), closes [#8917](https://github.com/vitejs/vite/issues/8917) +* feat: support import assertions (#8937) ([2390422](https://github.com/vitejs/vite/commit/2390422)), closes [#8937](https://github.com/vitejs/vite/issues/8937) +* feat: accept AcceptedPlugin type for postcss plugin (#8830) ([6886078](https://github.com/vitejs/vite/commit/6886078)), closes [#8830](https://github.com/vitejs/vite/issues/8830) +* feat: ssrBuild flag in config env (#8863) ([b6d655a](https://github.com/vitejs/vite/commit/b6d655a)), closes [#8863](https://github.com/vitejs/vite/issues/8863) +* feat: experimental.renderBuiltUrl (revised build base options) (#8762) ([895a7d6](https://github.com/vitejs/vite/commit/895a7d6)), closes [#8762](https://github.com/vitejs/vite/issues/8762) +* feat: respect esbuild minify config for css (#8811) ([d90409e](https://github.com/vitejs/vite/commit/d90409e)), closes [#8811](https://github.com/vitejs/vite/issues/8811) +* feat: use esbuild supported feature (#8665) ([2061d41](https://github.com/vitejs/vite/commit/2061d41)), closes [#8665](https://github.com/vitejs/vite/issues/8665) +* feat: respect esbuild minify config (#8754) ([8b77695](https://github.com/vitejs/vite/commit/8b77695)), closes [#8754](https://github.com/vitejs/vite/issues/8754) +* feat: update rollup commonjs plugin to v22 (#8743) ([d4dcdd1](https://github.com/vitejs/vite/commit/d4dcdd1)), closes [#8743](https://github.com/vitejs/vite/issues/8743) +* feat: enable tree-shaking for lib es (#8737) ([5dc0f72](https://github.com/vitejs/vite/commit/5dc0f72)), closes [#8737](https://github.com/vitejs/vite/issues/8737) +* feat: supports cts and mts config (#8729) ([c2b09db](https://github.com/vitejs/vite/commit/c2b09db)), closes [#8729](https://github.com/vitejs/vite/issues/8729) * feat: bump minimum node version to 14.18.0 (#8662) ([8a05432](https://github.com/vitejs/vite/commit/8a05432)), closes [#8662](https://github.com/vitejs/vite/issues/8662) * feat: experimental.buildAdvancedBaseOptions (#8450) ([8ef7333](https://github.com/vitejs/vite/commit/8ef7333)), closes [#8450](https://github.com/vitejs/vite/issues/8450) * feat: export esbuildVersion and rollupVersion (#8675) ([15ebe1e](https://github.com/vitejs/vite/commit/15ebe1e)), closes [#8675](https://github.com/vitejs/vite/issues/8675) @@ -180,6 +100,38 @@ ### Bug Fixes +* fix: respect explicitily external/noExternal config (#8983) ([e369880](https://github.com/vitejs/vite/commit/e369880)), closes [#8983](https://github.com/vitejs/vite/issues/8983) +* fix: cjs interop export names local clash, fix #8950 (#8953) ([2185f72](https://github.com/vitejs/vite/commit/2185f72)), closes [#8950](https://github.com/vitejs/vite/issues/8950) [#8953](https://github.com/vitejs/vite/issues/8953) +* fix: handle context resolve options (#8966) ([57c6c15](https://github.com/vitejs/vite/commit/57c6c15)), closes [#8966](https://github.com/vitejs/vite/issues/8966) +* fix: re-encode url to prevent fs.allow bypass (fixes #8498) (#8979) ([b835699](https://github.com/vitejs/vite/commit/b835699)), closes [#8498](https://github.com/vitejs/vite/issues/8498) [#8979](https://github.com/vitejs/vite/issues/8979) +* fix(scan): detect import .ts as .js (#8969) ([752af6c](https://github.com/vitejs/vite/commit/752af6c)), closes [#8969](https://github.com/vitejs/vite/issues/8969) +* fix: ssrBuild is optional, avoid breaking VitePress (#8912) ([722f514](https://github.com/vitejs/vite/commit/722f514)), closes [#8912](https://github.com/vitejs/vite/issues/8912) +* fix(css): always use css module content (#8936) ([6e0dd3a](https://github.com/vitejs/vite/commit/6e0dd3a)), closes [#8936](https://github.com/vitejs/vite/issues/8936) +* fix: avoid optimizing non-optimizable external deps (#8860) ([cd8d63b](https://github.com/vitejs/vite/commit/cd8d63b)), closes [#8860](https://github.com/vitejs/vite/issues/8860) +* fix: ensure define overrides import.meta in build (#8892) ([7d810a9](https://github.com/vitejs/vite/commit/7d810a9)), closes [#8892](https://github.com/vitejs/vite/issues/8892) +* fix: ignore Playwright test results directory (#8778) ([314c09c](https://github.com/vitejs/vite/commit/314c09c)), closes [#8778](https://github.com/vitejs/vite/issues/8778) +* fix: node platform for ssr dev regression (#8840) ([7257fd8](https://github.com/vitejs/vite/commit/7257fd8)), closes [#8840](https://github.com/vitejs/vite/issues/8840) +* fix: optimize deps on dev SSR, builtin imports in node (#8854) ([d49856c](https://github.com/vitejs/vite/commit/d49856c)), closes [#8854](https://github.com/vitejs/vite/issues/8854) +* fix: prevent crash when the pad amount is negative (#8747) ([3af6a1b](https://github.com/vitejs/vite/commit/3af6a1b)), closes [#8747](https://github.com/vitejs/vite/issues/8747) +* fix: reverts #8278 ([a0da2f0](https://github.com/vitejs/vite/commit/a0da2f0)), closes [#8278](https://github.com/vitejs/vite/issues/8278) +* fix: server.force deprecation and force on restart API (#8842) ([c94f564](https://github.com/vitejs/vite/commit/c94f564)), closes [#8842](https://github.com/vitejs/vite/issues/8842) +* fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) +* fix(hmr): set isSelfAccepting unless it is delayed (#8898) ([ae34565](https://github.com/vitejs/vite/commit/ae34565)), closes [#8898](https://github.com/vitejs/vite/issues/8898) +* fix(worker): dont throw on `import.meta.url` in ssr (#8846) ([ef749ed](https://github.com/vitejs/vite/commit/ef749ed)), closes [#8846](https://github.com/vitejs/vite/issues/8846) +* fix: deps optimizer should wait on entries (#8822) ([2db1b5b](https://github.com/vitejs/vite/commit/2db1b5b)), closes [#8822](https://github.com/vitejs/vite/issues/8822) +* fix: incorrectly resolving `knownJsSrcRE` files from root (fixes #4161) (#8808) ([e1e426e](https://github.com/vitejs/vite/commit/e1e426e)), closes [#4161](https://github.com/vitejs/vite/issues/4161) [#8808](https://github.com/vitejs/vite/issues/8808) +* fix: /@fs/ dir traversal with escaped chars (fixes #8498) (#8804) ([6851009](https://github.com/vitejs/vite/commit/6851009)), closes [#8498](https://github.com/vitejs/vite/issues/8498) [#8804](https://github.com/vitejs/vite/issues/8804) +* fix: preserve extension of css assets in the manifest (#8768) ([9508549](https://github.com/vitejs/vite/commit/9508549)), closes [#8768](https://github.com/vitejs/vite/issues/8768) +* fix: always remove temp config (#8782) ([2c2a86b](https://github.com/vitejs/vite/commit/2c2a86b)), closes [#8782](https://github.com/vitejs/vite/issues/8782) +* fix: ensure deps optimizer first run, fixes #8750 (#8775) ([3f689a4](https://github.com/vitejs/vite/commit/3f689a4)), closes [#8750](https://github.com/vitejs/vite/issues/8750) [#8775](https://github.com/vitejs/vite/issues/8775) +* fix: remove buildTimeImportMetaUrl (#8785) ([cd32095](https://github.com/vitejs/vite/commit/cd32095)), closes [#8785](https://github.com/vitejs/vite/issues/8785) +* fix: skip inline html (#8789) ([4a6408b](https://github.com/vitejs/vite/commit/4a6408b)), closes [#8789](https://github.com/vitejs/vite/issues/8789) +* fix(optimizer): only run require-import conversion if require'd (#8795) ([7ae0d3e](https://github.com/vitejs/vite/commit/7ae0d3e)), closes [#8795](https://github.com/vitejs/vite/issues/8795) +* perf: avoid sourcemap chains during dev (#8796) ([1566f61](https://github.com/vitejs/vite/commit/1566f61)), closes [#8796](https://github.com/vitejs/vite/issues/8796) +* perf(lib): improve helper inject regex (#8741) ([19fc7e5](https://github.com/vitejs/vite/commit/19fc7e5)), closes [#8741](https://github.com/vitejs/vite/issues/8741) +* fix: avoid type mismatch with Rollup (fix #7843) (#8701) ([87e51f7](https://github.com/vitejs/vite/commit/87e51f7)), closes [#7843](https://github.com/vitejs/vite/issues/7843) [#8701](https://github.com/vitejs/vite/issues/8701) +* fix: optimizeDeps.entries transformRequest url (fix #8719) (#8748) ([9208c3b](https://github.com/vitejs/vite/commit/9208c3b)), closes [#8719](https://github.com/vitejs/vite/issues/8719) [#8748](https://github.com/vitejs/vite/issues/8748) +* fix(hmr): __HMR_PORT__ should not be `'undefined'` (#8761) ([3271266](https://github.com/vitejs/vite/commit/3271266)), closes [#8761](https://github.com/vitejs/vite/issues/8761) * fix: respect `rollupOptions.external` for transitive dependencies (#8679) ([4f9097b](https://github.com/vitejs/vite/commit/4f9097b)), closes [#8679](https://github.com/vitejs/vite/issues/8679) * fix: use esbuild platform browser/node instead of neutral (#8714) ([a201cd4](https://github.com/vitejs/vite/commit/a201cd4)), closes [#8714](https://github.com/vitejs/vite/issues/8714) * fix: disable inlineDynamicImports for ssr.target = node (#8641) ([3b41a8e](https://github.com/vitejs/vite/commit/3b41a8e)), closes [#8641](https://github.com/vitejs/vite/issues/8641) @@ -261,10 +213,52 @@ ### Previous Changelogs -#### [3.0.0-beta.0](https://github.com/vitejs/vite/compare/v2.9.12...v3.0.0-beta.0) (2022-06-21) + +#### [3.0.0-beta.8](https://github.com/vitejs/vite/compare/v3.0.0-beta.7...v3.0.0-beta.8) (2022-07-08) + +See [3.0.0-beta.8 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.8/packages/vite/CHANGELOG.md) + + +#### [3.0.0-beta.7](https://github.com/vitejs/vite/compare/v3.0.0-beta.6...v3.0.0-beta.7) (2022-07-06) + +See [3.0.0-beta.7 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.7/packages/vite/CHANGELOG.md) + + +#### [3.0.0-beta.6](https://github.com/vitejs/vite/compare/v3.0.0-beta.5...v3.0.0-beta.6) (2022-07-04) + +See [3.0.0-beta.6 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.6/packages/vite/CHANGELOG.md) + + +#### [3.0.0-beta.5](https://github.com/vitejs/vite/compare/v3.0.0-beta.4...v3.0.0-beta.5) (2022-06-28) + +See [3.0.0-beta.5 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.5/packages/vite/CHANGELOG.md) + + +#### [3.0.0-beta.4](https://github.com/vitejs/vite/compare/v3.0.0-beta.3...v3.0.0-beta.4) (2022-06-27) + +See [3.0.0-beta.4 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.4/packages/vite/CHANGELOG.md) + + +#### [3.0.0-beta.3](https://github.com/vitejs/vite/compare/v3.0.0-beta.2...v3.0.0-beta.3) (2022-06-26) + +See [3.0.0-beta.3 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.3/packages/vite/CHANGELOG.md) + + +#### [3.0.0-beta.2](https://github.com/vitejs/vite/compare/v3.0.0-beta.1...v3.0.0-beta.2) (2022-06-24) + +See [3.0.0-beta.2 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.2/packages/vite/CHANGELOG.md) + + +#### [3.0.0-beta.1](https://github.com/vitejs/vite/compare/v3.0.0-beta.0...v3.0.0-beta.1) (2022-06-22) + +See [3.0.0-beta.1 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.1/packages/vite/CHANGELOG.md) + + +#### [3.0.0-beta.0](https://github.com/vitejs/vite/compare/v3.0.0-alpha.14...v3.0.0-beta.0) (2022-06-21) See [3.0.0-beta.0 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.0/packages/vite/CHANGELOG.md) + #### [3.0.0-alpha.14](https://github.com/vitejs/vite/compare/v3.0.0-alpha.13...v3.0.0-alpha.14) (2022-06-20) See [3.0.0-alpha.14 changelog](https://github.com/vitejs/vite/blob/v3.0.0-alpha.14/packages/vite/CHANGELOG.md) From 05b17dfcdf0c6d792a7ec5d9cf9a11e17ac79b6c Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Sun, 10 Jul 2022 00:29:53 +0800 Subject: [PATCH 021/716] docs: update api-javascript (#8999) --- docs/guide/api-javascript.md | 92 ++++++++++++++++++++++- packages/vite/src/node/optimizer/index.ts | 3 +- 2 files changed, 93 insertions(+), 2 deletions(-) diff --git a/docs/guide/api-javascript.md b/docs/guide/api-javascript.md index 6167bd7dfe7793..205d32a6070cda 100644 --- a/docs/guide/api-javascript.md +++ b/docs/guide/api-javascript.md @@ -44,6 +44,13 @@ The `InlineConfig` interface extends `UserConfig` with additional properties: - `configFile`: specify config file to use. If not set, Vite will try to automatically resolve one from project root. Set to `false` to disable auto resolving. - `envFile`: Set to `false` to disable `.env` files. +## `ResolvedConfig` + +The `ResolvedConfig` interface has all the same properties of a `UserConfig`, except most properties are resolved and non-undefined. It also contains utilities like: + +- `config.assetsInclude`: A function to check if an `id` is considered an asset. +- `config.logger`: Vite's internal logger object. + ## `ViteDevServer` ```ts @@ -189,12 +196,74 @@ import { preview } from 'vite' async function resolveConfig( inlineConfig: InlineConfig, command: 'build' | 'serve', - defaultMode?: string + defaultMode = 'development' ): Promise ``` The `command` value is `serve` in dev (in the cli `vite`, `vite dev`, and `vite serve` are aliases). +## `mergeConfig` + +**Type Signature:** + +```ts +function mergeConfig( + defaults: Record, + overrides: Record, + isRoot = true +): Record +``` + +Deeply merge two Vite configs. `isRoot` represents the level within the Vite config which is being merged. For example, set `false` if you're merging two `build` options. + +## `searchForWorkspaceRoot` + +**Type Signature:** + +```ts +function searchForWorkspaceRoot( + current: string, + root = searchForPackageRoot(current) +): string +``` + +**Related:** [server.fs.allow](/config/server-options.md#server-fs-allow) + +Search for the root of the potential workspace if it meets the following conditions, otherwise it would fallback to `root`: + +- contains `workspaces` field in `package.json` +- contains one of the following file + - `lerna.json` + - `pnpm-workspace.yaml` + +## `loadEnv` + +**Type Signature:** + +```ts +function loadEnv( + mode: string, + envDir: string, + prefixes: string | string[] = 'VITE_' +): Record +``` + +**Related:** [`.env` Files](./env-and-mode.md#env-files) + +Load `.env` files within the `envDir`. By default only env variables prefixed with `VITE_` are loaded, unless `prefixes` is changed. + +## `normalizePath` + +**Type Signature:** + +```ts +function normalizePath(id: string): string +``` + +**Related:** [Path Normalization](./api-plugin.md#path-normalization) + +Normalizes a path to interoperate between Vite plugins. + ## `transformWithEsbuild` **Type Signature:** @@ -207,3 +276,24 @@ async function transformWithEsbuild( inMap?: object ): Promise ``` + +Transform JavaScript or TypeScript with esbuild. Useful for plugins that prefers matching Vite's internal esbuild transform. + +## `loadConfigFromFile` + +**Type Signature:** + +```ts +async function loadConfigFromFile( + configEnv: ConfigEnv, + configFile?: string, + configRoot: string = process.cwd(), + logLevel?: LogLevel +): Promise<{ + path: string + config: UserConfig + dependencies: string[] +} | null> +``` + +Load a Vite config file manually with esbuild. diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 267a59e2f9b39a..4cbd13f8d965a7 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -214,7 +214,8 @@ export interface DepOptimizationMetadata { } /** - * Used by Vite CLI when running `vite optimize` + * Scan and optimize dependencies within a project. + * Used by Vite CLI when running `vite optimize`. */ export async function optimizeDeps( config: ResolvedConfig, From da7c3aeac254a028deef2c7387bbf28447c7410a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Sun, 10 Jul 2022 02:40:30 +0900 Subject: [PATCH 022/716] feat: show ws connection error (#9007) --- packages/vite/src/client/client.ts | 16 +++++++++++++++- .../vite/src/node/plugins/clientInjections.ts | 15 +++++++++++---- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/vite/src/client/client.ts b/packages/vite/src/client/client.ts index 509b5048da6d47..cee0e1e9f066ea 100644 --- a/packages/vite/src/client/client.ts +++ b/packages/vite/src/client/client.ts @@ -7,6 +7,7 @@ import '@vite/env' // injected by the hmr plugin when served declare const __BASE__: string +declare const __SERVER_HOST__: string declare const __HMR_PROTOCOL__: string | null declare const __HMR_HOSTNAME__: string | null declare const __HMR_PORT__: number | null @@ -20,6 +21,7 @@ console.debug('[vite] connecting...') const importMetaUrl = new URL(import.meta.url) // use server configuration, then fallback to inference +const serverHost = __SERVER_HOST__ const socketProtocol = __HMR_PROTOCOL__ || (location.protocol === 'https:' ? 'wss' : 'ws') const hmrPort = __HMR_PORT__ @@ -38,7 +40,19 @@ try { fallback = () => { // fallback to connecting directly to the hmr server // for servers which does not support proxying websocket - socket = setupWebSocket(socketProtocol, directSocketHost) + socket = setupWebSocket(socketProtocol, directSocketHost, () => { + const currentScriptHostURL = new URL(import.meta.url) + const currentScriptHost = + currentScriptHostURL.host + + currentScriptHostURL.pathname.replace(/@vite\/client$/, '') + console.error( + '[vite] failed to connect to websocket.\n' + + 'your current setup:\n' + + ` (browser) ${currentScriptHost} <--[HTTP]--> ${serverHost} (server)\n` + + ` (browser) ${socketHost} <--[WebSocket (failing)]--> ${directSocketHost} (server)\n` + + 'Check out your Vite / network configuration and https://vitejs.dev/config/server-options.html#server-hmr .' + ) + }) socket.addEventListener( 'open', () => { diff --git a/packages/vite/src/node/plugins/clientInjections.ts b/packages/vite/src/node/plugins/clientInjections.ts index 4eb1654d09d7a8..c4472cb8f14b62 100644 --- a/packages/vite/src/node/plugins/clientInjections.ts +++ b/packages/vite/src/node/plugins/clientInjections.ts @@ -17,6 +17,14 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin { name: 'vite:client-inject', async transform(code, id, options) { if (id === normalizedClientEntry || id === normalizedEnvEntry) { + const resolvedServerHostname = ( + await resolveHostname(config.server.host) + ).name + const resolvedServerPort = config.server.port! + const devBase = config.base + + const serverHost = `${resolvedServerHostname}:${resolvedServerPort}${devBase}` + let hmrConfig = config.server.hmr hmrConfig = isObject(hmrConfig) ? hmrConfig : undefined const host = hmrConfig?.host || null @@ -31,10 +39,8 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin { port ||= 24678 } - const devBase = config.base - let directTarget = - hmrConfig?.host || (await resolveHostname(config.server.host)).name - directTarget += `:${hmrConfig?.port || config.server.port!}` + let directTarget = hmrConfig?.host || resolvedServerHostname + directTarget += `:${hmrConfig?.port || resolvedServerPort}` directTarget += devBase let hmrBase = devBase @@ -46,6 +52,7 @@ export function clientInjectionsPlugin(config: ResolvedConfig): Plugin { .replace(`__MODE__`, JSON.stringify(config.mode)) .replace(`__BASE__`, JSON.stringify(devBase)) .replace(`__DEFINES__`, serializeDefine(config.define || {})) + .replace(`__SERVER_HOST__`, JSON.stringify(serverHost)) .replace(`__HMR_PROTOCOL__`, JSON.stringify(protocol)) .replace(`__HMR_HOSTNAME__`, JSON.stringify(host)) .replace(`__HMR_PORT__`, JSON.stringify(port)) From bdae7fad81e1dc5ef388c34349c1736f2e50ff84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Sun, 10 Jul 2022 05:08:13 +0900 Subject: [PATCH 023/716] fix(react): sourcemap incorrect warning and classic runtime sourcemap (#9006) --- packages/plugin-react/package.json | 1 + packages/plugin-react/src/index.ts | 29 ++++++++++++++++--- playground/react-sourcemap/App.jsx | 8 +++++ .../__tests__/react-sourcemap.spec.ts | 7 +++++ playground/react-sourcemap/index.html | 2 ++ playground/react-sourcemap/main.jsx | 9 ++++++ playground/react-sourcemap/package.json | 21 ++++++++++++++ playground/react-sourcemap/vite.config.ts | 15 ++++++++++ pnpm-lock.yaml | 17 ++++++++++- 9 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 playground/react-sourcemap/App.jsx create mode 100644 playground/react-sourcemap/__tests__/react-sourcemap.spec.ts create mode 100644 playground/react-sourcemap/index.html create mode 100644 playground/react-sourcemap/main.jsx create mode 100644 playground/react-sourcemap/package.json create mode 100644 playground/react-sourcemap/vite.config.ts diff --git a/packages/plugin-react/package.json b/packages/plugin-react/package.json index bb0d146594d900..c21207996e4089 100644 --- a/packages/plugin-react/package.json +++ b/packages/plugin-react/package.json @@ -44,6 +44,7 @@ "@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", "react-refresh": "^0.14.0" }, "peerDependencies": { diff --git a/packages/plugin-react/src/index.ts b/packages/plugin-react/src/index.ts index 160e9ca1d2f883..f1adf81510bcef 100644 --- a/packages/plugin-react/src/index.ts +++ b/packages/plugin-react/src/index.ts @@ -3,6 +3,8 @@ import type { ParserOptions, TransformOptions, types as t } from '@babel/core' import * as babel from '@babel/core' import { createFilter, normalizePath } from 'vite' import type { Plugin, PluginOption, ResolvedConfig } from 'vite' +import MagicString from 'magic-string' +import type { SourceMap } from 'magic-string' import { addRefreshWrapper, isRefreshBoundary, @@ -88,11 +90,14 @@ declare module 'vite' { } } +const prependReactImportCode = "import React from 'react'; " + export default function viteReact(opts: Options = {}): PluginOption[] { // Provide default values for Rollup compat. let devBase = '/' let resolvedCacheDir: string let filter = createFilter(opts.include, opts.exclude) + let needHiresSourcemap = false let isProduction = true let projectRoot = process.cwd() let skipFastRefresh = opts.fastRefresh === false @@ -135,6 +140,8 @@ export default function viteReact(opts: Options = {}): PluginOption[] { filter = createFilter(opts.include, opts.exclude, { resolve: projectRoot }) + needHiresSourcemap = + config.command === 'build' && !!config.build.sourcemap isProduction = config.isProduction skipFastRefresh ||= isProduction || config.command === 'build' @@ -217,6 +224,7 @@ export default function viteReact(opts: Options = {}): PluginOption[] { } let ast: t.File | null | undefined + let prependReactImport = false if (!isProjectFile || isJSX) { if (useAutomaticRuntime) { // By reverse-compiling "React.createElement" calls into JSX, @@ -261,11 +269,23 @@ export default function viteReact(opts: Options = {}): PluginOption[] { // Even if the automatic JSX runtime is not used, we can still // inject the React import for .jsx and .tsx modules. if (!skipReactImport && !importReactRE.test(code)) { - code = `import React from 'react'; ` + code + prependReactImport = true } } } + let inputMap: SourceMap | undefined + if (prependReactImport) { + if (needHiresSourcemap) { + const s = new MagicString(code) + s.prepend(prependReactImportCode) + code = s.toString() + inputMap = s.generateMap({ hires: true, source: id }) + } else { + code = prependReactImportCode + code + } + } + // Plugins defined through this Vite plugin are only applied // to modules within the project root, but "babel.config.js" // files can define plugins that need to be applied to every @@ -275,10 +295,11 @@ export default function viteReact(opts: Options = {}): PluginOption[] { !babelOptions.configFile && !(isProjectFile && babelOptions.babelrc) + // Avoid parsing if no plugins exist. if (shouldSkip) { - // Avoid parsing if no plugins exist. return { - code + code, + map: inputMap ?? null } } @@ -326,7 +347,7 @@ export default function viteReact(opts: Options = {}): PluginOption[] { plugins, sourceMaps: true, // Vite handles sourcemap flattening - inputSourceMap: false as any + inputSourceMap: inputMap ?? (false as any) }) if (result) { diff --git a/playground/react-sourcemap/App.jsx b/playground/react-sourcemap/App.jsx new file mode 100644 index 00000000000000..ec47ca46ad212e --- /dev/null +++ b/playground/react-sourcemap/App.jsx @@ -0,0 +1,8 @@ +console.log('App.jsx 1') // for sourcemap +function App() { + return
foo
+} + +console.log('App.jsx 2') // for sourcemap + +export default App diff --git a/playground/react-sourcemap/__tests__/react-sourcemap.spec.ts b/playground/react-sourcemap/__tests__/react-sourcemap.spec.ts new file mode 100644 index 00000000000000..a1d35485760753 --- /dev/null +++ b/playground/react-sourcemap/__tests__/react-sourcemap.spec.ts @@ -0,0 +1,7 @@ +import { isBuild, serverLogs } from '~utils' + +test.runIf(isBuild)('should not output sourcemap warning', () => { + serverLogs.forEach((log) => { + expect(log).not.toMatch('Sourcemap is likely to be incorrect') + }) +}) diff --git a/playground/react-sourcemap/index.html b/playground/react-sourcemap/index.html new file mode 100644 index 00000000000000..d3ca9807c608ba --- /dev/null +++ b/playground/react-sourcemap/index.html @@ -0,0 +1,2 @@ +
+ diff --git a/playground/react-sourcemap/main.jsx b/playground/react-sourcemap/main.jsx new file mode 100644 index 00000000000000..705d3340097aeb --- /dev/null +++ b/playground/react-sourcemap/main.jsx @@ -0,0 +1,9 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.jsx' + +ReactDOM.createRoot(document.getElementById('app')).render( + React.createElement(App) +) + +console.log('main.jsx') // for sourcemap diff --git a/playground/react-sourcemap/package.json b/playground/react-sourcemap/package.json new file mode 100644 index 00000000000000..91aa3331b877b4 --- /dev/null +++ b/playground/react-sourcemap/package.json @@ -0,0 +1,21 @@ +{ + "name": "test-react-sourcemap", + "private": true, + "version": "0.0.0", + "scripts": { + "dev": "vite", + "dev:classic": "cross-env USE_CLASSIC=1 vite", + "build": "vite build", + "build:classic": "cross-env USE_CLASSIC=1 vite build", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@vitejs/plugin-react": "workspace:*", + "cross-env": "^7.0.3" + } +} diff --git a/playground/react-sourcemap/vite.config.ts b/playground/react-sourcemap/vite.config.ts new file mode 100644 index 00000000000000..d8a2cc46b419b9 --- /dev/null +++ b/playground/react-sourcemap/vite.config.ts @@ -0,0 +1,15 @@ +import react from '@vitejs/plugin-react' +import type { UserConfig } from 'vite' + +const config: UserConfig = { + plugins: [ + react({ + jsxRuntime: process.env.USE_CLASSIC === '1' ? 'classic' : 'automatic' + }) + ], + build: { + sourcemap: true + } +} + +export default config diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9b329c87ac56d..c6a4178e50ab9c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -162,6 +162,7 @@ importers: '@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 react-refresh: ^0.14.0 vite: workspace:* dependencies: @@ -170,6 +171,7 @@ importers: '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.18.6 '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.18.6 '@babel/plugin-transform-react-jsx-source': 7.18.6_@babel+core@7.18.6 + magic-string: 0.26.2 react-refresh: 0.14.0 devDependencies: vite: link:../vite @@ -821,6 +823,19 @@ importers: '@emotion/babel-plugin': 11.9.2 '@vitejs/plugin-react': link:../../packages/plugin-react + playground/react-sourcemap: + specifiers: + '@vitejs/plugin-react': workspace:* + cross-env: ^7.0.3 + react: ^18.2.0 + react-dom: ^18.2.0 + dependencies: + react: 18.2.0 + 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: {} @@ -5710,7 +5725,7 @@ packages: dev: true /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true /jiti/1.13.0: From ce790c4080b6592ed60edfcf90a9ec344d575fa1 Mon Sep 17 00:00:00 2001 From: Alex Lambiris Date: Sat, 9 Jul 2022 23:25:30 +0300 Subject: [PATCH 024/716] docs: Improve wording of 'Why Vite' (#9005) Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> --- docs/guide/why.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/why.md b/docs/guide/why.md index 92341d430e7eec..8a38c36ef89953 100644 --- a/docs/guide/why.md +++ b/docs/guide/why.md @@ -6,7 +6,7 @@ Before ES modules were available in browsers, developers had no native mechanism Over time we have seen tools like [webpack](https://webpack.js.org/), [Rollup](https://rollupjs.org) and [Parcel](https://parceljs.org/), which greatly improved the development experience for frontend developers. -However, as we start to build more and more ambitious applications, the amount of JavaScript we are dealing with also increased exponentially. It is not uncommon for large scale projects to contain thousands of modules. We are starting to hit a performance bottleneck for JavaScript based tooling: it can often take an unreasonably long wait (sometimes up to minutes!) to spin up a dev server, and even with HMR, file edits can take a couple of seconds to be reflected in the browser. The slow feedback loop can greatly affect developers' productivity and happiness. +However, as we build more and more ambitious applications, the amount of JavaScript we are dealing with is also increasing dramatically. It is not uncommon for large scale projects to contain thousands of modules. We are starting to hit a performance bottleneck for JavaScript based tooling: it can often take an unreasonably long wait (sometimes up to minutes!) to spin up a dev server, and even with HMR, file edits can take a couple of seconds to be reflected in the browser. The slow feedback loop can greatly affect developers' productivity and happiness. Vite aims to address these issues by leveraging new advancements in the ecosystem: the availability of native ES modules in the browser, and the rise of JavaScript tools written in compile-to-native languages. From aff4544d7ed85fd21e9c21abcb532dc72fe6540b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Sun, 10 Jul 2022 19:31:19 +0900 Subject: [PATCH 025/716] fix(ssr): sourcemap content (fixes #8657) (#8997) --- packages/vite/src/node/server/index.ts | 2 +- .../vite/src/node/server/transformRequest.ts | 3 +- .../node/ssr/__tests__/ssrTransform.spec.ts | 364 +++++++----------- packages/vite/src/node/ssr/ssrTransform.ts | 30 +- 4 files changed, 162 insertions(+), 237 deletions(-) diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts index d270c92bfd0e74..8fe8f00b6d8165 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -320,7 +320,7 @@ export async function createServer( ws, moduleGraph, ssrTransform(code: string, inMap: SourceMap | null, url: string) { - return ssrTransform(code, inMap, url, { + return ssrTransform(code, inMap, url, code, { json: { stringify: server.config.json?.stringify } }) }, diff --git a/packages/vite/src/node/server/transformRequest.ts b/packages/vite/src/node/server/transformRequest.ts index 7f74d5ee704544..8714a547f60783 100644 --- a/packages/vite/src/node/server/transformRequest.ts +++ b/packages/vite/src/node/server/transformRequest.ts @@ -235,6 +235,7 @@ async function loadAndTransform( inMap: map, ssr }) + const originalCode = code if ( transformResult == null || (isObject(transformResult) && transformResult.code == null) @@ -258,7 +259,7 @@ async function loadAndTransform( } const result = ssr - ? await ssrTransform(code, map as SourceMap, url, { + ? await ssrTransform(code, map as SourceMap, url, originalCode, { json: { stringify: !!server.config.json?.stringify } }) : ({ diff --git a/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts b/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts index fbf7bb7bbd22ad..cc5b19522ef9a5 100644 --- a/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts +++ b/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts @@ -3,15 +3,14 @@ import { transformWithEsbuild } from '../../plugins/esbuild' import { traverseHtml } from '../../plugins/html' import { ssrTransform } from '../ssrTransform' +const ssrTransformSimple = async (code: string, url = '') => + ssrTransform(code, null, url, code) +const ssrTransformSimpleCode = async (code: string, url?: string) => + (await ssrTransformSimple(code, url))?.code + test('default import', async () => { expect( - ( - await ssrTransform( - `import foo from 'vue';console.log(foo.bar)`, - null, - null - ) - ).code + await ssrTransformSimpleCode(`import foo from 'vue';console.log(foo.bar)`) ).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); console.log(__vite_ssr_import_0__.default.bar)" @@ -20,13 +19,9 @@ test('default import', async () => { test('named import', async () => { expect( - ( - await ssrTransform( - `import { ref } from 'vue';function foo() { return ref(0) }`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `import { ref } from 'vue';function foo() { return ref(0) }` + ) ).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); function foo() { return __vite_ssr_import_0__.ref(0) }" @@ -35,13 +30,9 @@ test('named import', async () => { test('namespace import', async () => { expect( - ( - await ssrTransform( - `import * as vue from 'vue';function foo() { return vue.ref(0) }`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `import * as vue from 'vue';function foo() { return vue.ref(0) }` + ) ).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); function foo() { return __vite_ssr_import_0__.ref(0) }" @@ -49,7 +40,7 @@ test('namespace import', async () => { }) test('export function declaration', async () => { - expect((await ssrTransform(`export function foo() {}`, null, null)).code) + expect(await ssrTransformSimpleCode(`export function foo() {}`)) .toMatchInlineSnapshot(` "function foo() {} Object.defineProperty(__vite_ssr_exports__, \\"foo\\", { enumerable: true, configurable: true, get(){ return foo }});" @@ -57,7 +48,7 @@ test('export function declaration', async () => { }) test('export class declaration', async () => { - expect((await ssrTransform(`export class foo {}`, null, null)).code) + expect(await ssrTransformSimpleCode(`export class foo {}`)) .toMatchInlineSnapshot(` "class foo {} Object.defineProperty(__vite_ssr_exports__, \\"foo\\", { enumerable: true, configurable: true, get(){ return foo }});" @@ -65,18 +56,17 @@ test('export class declaration', async () => { }) test('export var declaration', async () => { - expect((await ssrTransform(`export const a = 1, b = 2`, null, null)).code) + expect(await ssrTransformSimpleCode(`export const a = 1, b = 2`)) .toMatchInlineSnapshot(` - "const a = 1, b = 2 - Object.defineProperty(__vite_ssr_exports__, \\"a\\", { enumerable: true, configurable: true, get(){ return a }}); - Object.defineProperty(__vite_ssr_exports__, \\"b\\", { enumerable: true, configurable: true, get(){ return b }});" - `) + "const a = 1, b = 2 + Object.defineProperty(__vite_ssr_exports__, \\"a\\", { enumerable: true, configurable: true, get(){ return a }}); + Object.defineProperty(__vite_ssr_exports__, \\"b\\", { enumerable: true, configurable: true, get(){ return b }});" + `) }) test('export named', async () => { expect( - (await ssrTransform(`const a = 1, b = 2; export { a, b as c }`, null, null)) - .code + await ssrTransformSimpleCode(`const a = 1, b = 2; export { a, b as c }`) ).toMatchInlineSnapshot(` "const a = 1, b = 2; Object.defineProperty(__vite_ssr_exports__, \\"a\\", { enumerable: true, configurable: true, get(){ return a }}); @@ -86,8 +76,7 @@ test('export named', async () => { test('export named from', async () => { expect( - (await ssrTransform(`export { ref, computed as c } from 'vue'`, null, null)) - .code + await ssrTransformSimpleCode(`export { ref, computed as c } from 'vue'`) ).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); @@ -98,13 +87,9 @@ test('export named from', async () => { test('named exports of imported binding', async () => { expect( - ( - await ssrTransform( - `import {createApp} from 'vue';export {createApp}`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `import {createApp} from 'vue';export {createApp}` + ) ).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); @@ -114,13 +99,9 @@ test('named exports of imported binding', async () => { test('export * from', async () => { expect( - ( - await ssrTransform( - `export * from 'vue'\n` + `export * from 'react'`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `export * from 'vue'\n` + `export * from 'react'` + ) ).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); __vite_ssr_exportAll__(__vite_ssr_import_0__); @@ -130,7 +111,7 @@ test('export * from', async () => { }) test('export * as from', async () => { - expect((await ssrTransform(`export * as foo from 'vue'`, null, null)).code) + expect(await ssrTransformSimpleCode(`export * as foo from 'vue'`)) .toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); @@ -140,148 +121,126 @@ test('export * as from', async () => { test('export default', async () => { expect( - (await ssrTransform(`export default {}`, null, null)).code + await ssrTransformSimpleCode(`export default {}`) ).toMatchInlineSnapshot(`"__vite_ssr_exports__.default = {}"`) }) test('import.meta', async () => { expect( - (await ssrTransform(`console.log(import.meta.url)`, null, null)).code + await ssrTransformSimpleCode(`console.log(import.meta.url)`) ).toMatchInlineSnapshot(`"console.log(__vite_ssr_import_meta__.url)"`) }) test('dynamic import', async () => { - const result = await ssrTransform( - `export const i = () => import('./foo')`, - null, - null + const result = await ssrTransformSimple( + `export const i = () => import('./foo')` ) - expect(result.code).toMatchInlineSnapshot(` + expect(result?.code).toMatchInlineSnapshot(` "const i = () => __vite_ssr_dynamic_import__('./foo') Object.defineProperty(__vite_ssr_exports__, \\"i\\", { enumerable: true, configurable: true, get(){ return i }});" `) - expect(result.deps).toEqual([]) - expect(result.dynamicDeps).toEqual(['./foo']) + expect(result?.deps).toEqual([]) + expect(result?.dynamicDeps).toEqual(['./foo']) }) test('do not rewrite method definition', async () => { - const result = await ssrTransform( - `import { fn } from 'vue';class A { fn() { fn() } }`, - null, - null + const result = await ssrTransformSimple( + `import { fn } from 'vue';class A { fn() { fn() } }` ) - expect(result.code).toMatchInlineSnapshot(` + expect(result?.code).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); class A { fn() { __vite_ssr_import_0__.fn() } }" `) - expect(result.deps).toEqual(['vue']) + expect(result?.deps).toEqual(['vue']) }) test('do not rewrite when variable is in scope', async () => { - const result = await ssrTransform( - `import { fn } from 'vue';function A(){ const fn = () => {}; return { fn }; }`, - null, - null + const result = await ssrTransformSimple( + `import { fn } from 'vue';function A(){ const fn = () => {}; return { fn }; }` ) - expect(result.code).toMatchInlineSnapshot(` + expect(result?.code).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); function A(){ const fn = () => {}; return { fn }; }" `) - expect(result.deps).toEqual(['vue']) + expect(result?.deps).toEqual(['vue']) }) // #5472 test('do not rewrite when variable is in scope with object destructuring', async () => { - const result = await ssrTransform( - `import { fn } from 'vue';function A(){ let {fn, test} = {fn: 'foo', test: 'bar'}; return { fn }; }`, - null, - null + const result = await ssrTransformSimple( + `import { fn } from 'vue';function A(){ let {fn, test} = {fn: 'foo', test: 'bar'}; return { fn }; }` ) - expect(result.code).toMatchInlineSnapshot(` + expect(result?.code).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); function A(){ let {fn, test} = {fn: 'foo', test: 'bar'}; return { fn }; }" `) - expect(result.deps).toEqual(['vue']) + expect(result?.deps).toEqual(['vue']) }) // #5472 test('do not rewrite when variable is in scope with array destructuring', async () => { - const result = await ssrTransform( - `import { fn } from 'vue';function A(){ let [fn, test] = ['foo', 'bar']; return { fn }; }`, - null, - null + const result = await ssrTransformSimple( + `import { fn } from 'vue';function A(){ let [fn, test] = ['foo', 'bar']; return { fn }; }` ) - expect(result.code).toMatchInlineSnapshot(` + expect(result?.code).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); function A(){ let [fn, test] = ['foo', 'bar']; return { fn }; }" `) - expect(result.deps).toEqual(['vue']) + expect(result?.deps).toEqual(['vue']) }) // #5727 test('rewrite variable in string interpolation in function nested arguments', async () => { - const result = await ssrTransform( - `import { fn } from 'vue';function A({foo = \`test\${fn}\`} = {}){ return {}; }`, - null, - null + const result = await ssrTransformSimple( + `import { fn } from 'vue';function A({foo = \`test\${fn}\`} = {}){ return {}; }` ) - expect(result.code).toMatchInlineSnapshot(` + expect(result?.code).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); function A({foo = \`test\${__vite_ssr_import_0__.fn}\`} = {}){ return {}; }" `) - expect(result.deps).toEqual(['vue']) + expect(result?.deps).toEqual(['vue']) }) // #6520 test('rewrite variables in default value of destructuring params', async () => { - const result = await ssrTransform( - `import { fn } from 'vue';function A({foo = fn}){ return {}; }`, - null, - null + const result = await ssrTransformSimple( + `import { fn } from 'vue';function A({foo = fn}){ return {}; }` ) - expect(result.code).toMatchInlineSnapshot(` + expect(result?.code).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); function A({foo = __vite_ssr_import_0__.fn}){ return {}; }" `) - expect(result.deps).toEqual(['vue']) + expect(result?.deps).toEqual(['vue']) }) test('do not rewrite when function declaration is in scope', async () => { - const result = await ssrTransform( - `import { fn } from 'vue';function A(){ function fn() {}; return { fn }; }`, - null, - null + const result = await ssrTransformSimple( + `import { fn } from 'vue';function A(){ function fn() {}; return { fn }; }` ) - expect(result.code).toMatchInlineSnapshot(` + expect(result?.code).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); function A(){ function fn() {}; return { fn }; }" `) - expect(result.deps).toEqual(['vue']) + expect(result?.deps).toEqual(['vue']) }) test('do not rewrite catch clause', async () => { - const result = await ssrTransform( - `import {error} from './dependency';try {} catch(error) {}`, - null, - null + const result = await ssrTransformSimple( + `import {error} from './dependency';try {} catch(error) {}` ) - expect(result.code).toMatchInlineSnapshot(` + expect(result?.code).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"./dependency\\"); try {} catch(error) {}" `) - expect(result.deps).toEqual(['./dependency']) + expect(result?.deps).toEqual(['./dependency']) }) // #2221 test('should declare variable for imported super class', async () => { expect( - ( - await ssrTransform( - `import { Foo } from './dependency';` + `class A extends Foo {}`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `import { Foo } from './dependency';` + `class A extends Foo {}` + ) ).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"./dependency\\"); const Foo = __vite_ssr_import_0__.Foo; @@ -291,15 +250,11 @@ test('should declare variable for imported super class', async () => { // exported classes: should prepend the declaration at root level, before the // first class that uses the binding expect( - ( - await ssrTransform( - `import { Foo } from './dependency';` + - `export default class A extends Foo {}\n` + - `export class B extends Foo {}`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `import { Foo } from './dependency';` + + `export default class A extends Foo {}\n` + + `export class B extends Foo {}` + ) ).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"./dependency\\"); const Foo = __vite_ssr_import_0__.Foo; @@ -313,28 +268,22 @@ test('should declare variable for imported super class', async () => { // #4049 test('should handle default export variants', async () => { // default anonymous functions - expect( - (await ssrTransform(`export default function() {}\n`, null, null)).code - ).toMatchInlineSnapshot(` + expect(await ssrTransformSimpleCode(`export default function() {}\n`)) + .toMatchInlineSnapshot(` "__vite_ssr_exports__.default = function() {} " `) // default anonymous class - expect((await ssrTransform(`export default class {}\n`, null, null)).code) + expect(await ssrTransformSimpleCode(`export default class {}\n`)) .toMatchInlineSnapshot(` "__vite_ssr_exports__.default = class {} " `) // default named functions expect( - ( - await ssrTransform( - `export default function foo() {}\n` + - `foo.prototype = Object.prototype;`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `export default function foo() {}\n` + `foo.prototype = Object.prototype;` + ) ).toMatchInlineSnapshot(` "function foo() {} foo.prototype = Object.prototype; @@ -342,13 +291,9 @@ test('should handle default export variants', async () => { `) // default named classes expect( - ( - await ssrTransform( - `export default class A {}\n` + `export class B extends A {}`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `export default class A {}\n` + `export class B extends A {}` + ) ).toMatchInlineSnapshot(` "class A {} class B extends A {} @@ -358,27 +303,30 @@ test('should handle default export variants', async () => { }) test('sourcemap source', async () => { - expect( - (await ssrTransform(`export const a = 1`, null, 'input.js')).map.sources - ).toStrictEqual(['input.js']) + const map = ( + await ssrTransform( + `export const a = 1`, + null, + 'input.js', + 'export const a = 1 /* */' + ) + )?.map + expect(map?.sources).toStrictEqual(['input.js']) + expect(map?.sourcesContent).toStrictEqual(['export const a = 1 /* */']) }) test('overwrite bindings', async () => { expect( - ( - await ssrTransform( - `import { inject } from 'vue';` + - `const a = { inject }\n` + - `const b = { test: inject }\n` + - `function c() { const { test: inject } = { test: true }; console.log(inject) }\n` + - `const d = inject\n` + - `function f() { console.log(inject) }\n` + - `function e() { const { inject } = { inject: true } }\n` + - `function g() { const f = () => { const inject = true }; console.log(inject) }\n`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `import { inject } from 'vue';` + + `const a = { inject }\n` + + `const b = { test: inject }\n` + + `function c() { const { test: inject } = { test: true }; console.log(inject) }\n` + + `const d = inject\n` + + `function f() { console.log(inject) }\n` + + `function e() { const { inject } = { inject: true } }\n` + + `function g() { const f = () => { const inject = true }; console.log(inject) }\n` + ) ).toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); const a = { inject: __vite_ssr_import_0__.inject } @@ -394,24 +342,20 @@ test('overwrite bindings', async () => { test('Empty array pattern', async () => { expect( - (await ssrTransform(`const [, LHS, RHS] = inMatch;`, null, null)).code + await ssrTransformSimpleCode(`const [, LHS, RHS] = inMatch;`) ).toMatchInlineSnapshot(`"const [, LHS, RHS] = inMatch;"`) }) test('function argument destructure', async () => { expect( - ( - await ssrTransform( - ` + await ssrTransformSimpleCode( + ` import { foo, bar } from 'foo' const a = ({ _ = foo() }) => {} function b({ _ = bar() }) {} function c({ _ = bar() + foo() }) {} -`, - null, - null - ) - ).code +` + ) ).toMatchInlineSnapshot(` " const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"foo\\"); @@ -425,19 +369,15 @@ function c({ _ = bar() + foo() }) {} test('object destructure alias', async () => { expect( - ( - await ssrTransform( - ` + await ssrTransformSimpleCode( + ` import { n } from 'foo' const a = () => { const { type: n = 'bar' } = {} console.log(n) } -`, - null, - null - ) - ).code +` + ) ).toMatchInlineSnapshot(` " const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"foo\\"); @@ -452,9 +392,8 @@ const a = () => { test('nested object destructure alias', async () => { expect( - ( - await ssrTransform( - ` + await ssrTransformSimpleCode( + ` import { remove, add, get, set, rest, objRest } from 'vue' function a() { @@ -479,11 +418,8 @@ get() set() rest() objRest() -`, - null, - null - ) - ).code +` + ) ).toMatchInlineSnapshot(` " const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); @@ -517,20 +453,16 @@ objRest() test('class props', async () => { expect( - ( - await ssrTransform( - ` + await ssrTransformSimpleCode( + ` import { remove, add } from 'vue' class A { remove = 1 add = null } -`, - null, - null - ) - ).code +` + ) ).toMatchInlineSnapshot(` " const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); @@ -548,9 +480,8 @@ class A { test('class methods', async () => { expect( - ( - await ssrTransform( - ` + await ssrTransformSimpleCode( + ` import foo from 'foo' const bar = 'bar' @@ -562,11 +493,8 @@ class A { #foo() {} bar(foo) {} } -`, - null, - null - ) - ).code +` + ) ).toMatchInlineSnapshot(` " const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"foo\\"); @@ -587,9 +515,8 @@ class A { test('declare scope', async () => { expect( - ( - await ssrTransform( - ` + await ssrTransformSimpleCode( + ` import { aaa, bbb, ccc, ddd } from 'vue' function foobar() { @@ -612,11 +539,8 @@ function foobar() { aaa() bbb() -`, - null, - null - ) - ).code +` + ) ).toMatchInlineSnapshot(` " const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"vue\\"); @@ -661,7 +585,7 @@ test('jsx', async () => { ` const id = '/foo.jsx' const result = await transformWithEsbuild(code, id) - expect((await ssrTransform(result.code, null, '/foo.jsx')).code) + expect(await ssrTransformSimpleCode(result.code, '/foo.jsx')) .toMatchInlineSnapshot(` "const __vite_ssr_import_0__ = await __vite_ssr_import__(\\"react\\"); @@ -676,17 +600,13 @@ test('jsx', async () => { test('continuous exports', async () => { expect( - ( - await ssrTransform( - ` + await ssrTransformSimpleCode( + ` export function fn1() { }export function fn2() { } - `, - null, - null - ) - ).code + ` + ) ).toMatchInlineSnapshot(` " function fn1() { @@ -710,28 +630,24 @@ export default (function getRandom() { }); `.trim() - expect((await ssrTransform(code, null, null)).code).toMatchInlineSnapshot(` + expect(await ssrTransformSimpleCode(code)).toMatchInlineSnapshot(` "__vite_ssr_exports__.default = (function getRandom() { return Math.random(); });" `) expect( - (await ssrTransform(`export default (class A {});`, null, null)).code + await ssrTransformSimpleCode(`export default (class A {});`) ).toMatchInlineSnapshot(`"__vite_ssr_exports__.default = (class A {});"`) }) // #8002 test('with hashbang', async () => { expect( - ( - await ssrTransform( - `#!/usr/bin/env node -console.log("it can parse the hashbang")`, - null, - null - ) - ).code + await ssrTransformSimpleCode( + `#!/usr/bin/env node +console.log("it can parse the hashbang")` + ) ).toMatchInlineSnapshot(` "#!/usr/bin/env node console.log(\\"it can parse the hashbang\\")" diff --git a/packages/vite/src/node/ssr/ssrTransform.ts b/packages/vite/src/node/ssr/ssrTransform.ts index e6f0d8b3a4562c..2c38c53e74714e 100644 --- a/packages/vite/src/node/ssr/ssrTransform.ts +++ b/packages/vite/src/node/ssr/ssrTransform.ts @@ -38,12 +38,13 @@ export async function ssrTransform( code: string, inMap: SourceMap | null, url: string, + originalCode: string, options?: TransformOptions ): Promise { if (options?.json?.stringify && isJSONRequest(url)) { return ssrTransformJSON(code, inMap) } - return ssrTransformScript(code, inMap, url) + return ssrTransformScript(code, inMap, url, originalCode) } async function ssrTransformJSON( @@ -61,7 +62,8 @@ async function ssrTransformJSON( async function ssrTransformScript( code: string, inMap: SourceMap | null, - url: string + url: string, + originalCode: string ): Promise { const s = new MagicString(code) @@ -265,17 +267,23 @@ async function ssrTransformScript( let map = s.generateMap({ hires: true }) if (inMap && inMap.mappings && inMap.sources.length > 0) { - map = combineSourcemaps(url, [ - { - ...map, - sources: inMap.sources, - sourcesContent: inMap.sourcesContent - } as RawSourceMap, - inMap as RawSourceMap - ]) as SourceMap + map = combineSourcemaps( + url, + [ + { + ...map, + sources: inMap.sources, + sourcesContent: inMap.sourcesContent + } as RawSourceMap, + inMap as RawSourceMap + ], + false + ) as SourceMap } else { map.sources = [url] - map.sourcesContent = [code] + // needs to use originalCode instead of code + // because code might be already transformed even if map is null + map.sourcesContent = [originalCode] } return { From 70af44abcca937b198b68832e17c3e900e6ee6f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Sun, 10 Jul 2022 20:50:08 +0900 Subject: [PATCH 026/716] fix(vue): handle undefined on import.meta.hot.accept (fixes #8625) (#9011) --- packages/plugin-vue/src/main.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/plugin-vue/src/main.ts b/packages/plugin-vue/src/main.ts index 5771d64d1dfcee..37de21de004442 100644 --- a/packages/plugin-vue/src/main.ts +++ b/packages/plugin-vue/src/main.ts @@ -128,7 +128,9 @@ export async function transformMain( output.push(`export const _rerender_only = true`) } output.push( - `import.meta.hot.accept(({ default: updated, _rerender_only }) => {`, + `import.meta.hot.accept(mod => {`, + ` if (!mod) return`, + ` const { default: updated, _rerender_only } = mod`, ` if (_rerender_only) {`, ` __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render)`, ` } else {`, From 9363872146b3bced0df9b827abd5ef17ecd2295f Mon Sep 17 00:00:00 2001 From: patak Date: Sun, 10 Jul 2022 19:06:14 +0200 Subject: [PATCH 027/716] chore: fix test optimizeDeps at build time flag (#9004) --- packages/vite/src/node/config.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 8f16aed9c84917..d6b32d4a52ada5 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -427,6 +427,15 @@ export async function resolveConfig( } } + if (process.env.VITE_TEST_WITHOUT_PLUGIN_COMMONJS) { + config = mergeConfig(config, { + optimizeDeps: { disabled: false }, + ssr: { optimizeDeps: { disabled: false } } + }) + config.build ??= {} + config.build.commonjsOptions = { include: [] } + } + // resolve root const resolvedRoot = normalizePath( config.root ? path.resolve(config.root) : process.cwd() @@ -563,16 +572,6 @@ export async function resolveConfig( const optimizeDeps = config.optimizeDeps || {} - if (process.env.VITE_TEST_WITHOUT_PLUGIN_COMMONJS) { - config.build ??= {} - config.build.commonjsOptions = { include: [] } - config.optimizeDeps ??= {} - config.optimizeDeps.disabled = false - config.ssr ??= {} - config.ssr.optimizeDeps ??= {} - config.ssr.optimizeDeps.disabled = false - } - const BASE_URL = resolvedBase const resolved: ResolvedConfig = { From 53799e1cced7957f9877a5b5c9b6351b48e216a7 Mon Sep 17 00:00:00 2001 From: patak Date: Sun, 10 Jul 2022 20:43:37 +0200 Subject: [PATCH 028/716] chore: scanner after server listen (#9020) --- packages/vite/src/node/optimizer/optimizer.ts | 78 +++++++++---------- 1 file changed, 38 insertions(+), 40 deletions(-) diff --git a/packages/vite/src/node/optimizer/optimizer.ts b/packages/vite/src/node/optimizer/optimizer.ts index 652ab47c5f83b1..e11a713958a727 100644 --- a/packages/vite/src/node/optimizer/optimizer.ts +++ b/packages/vite/src/node/optimizer/optimizer.ts @@ -185,52 +185,50 @@ async function createDepsOptimizer( if (!isBuild) { // Important, the scanner is dev only - runScanner() - } - } + const scanPhaseProcessing = newDepOptimizationProcessing() + depsOptimizer.scanProcessing = scanPhaseProcessing.promise + // Ensure server listen is called before the scanner + setTimeout(async () => { + try { + debug(colors.green(`scanning for dependencies...`)) - async function runScanner() { - const scanPhaseProcessing = newDepOptimizationProcessing() - depsOptimizer.scanProcessing = scanPhaseProcessing.promise + const deps = await discoverProjectDependencies(config) - try { - debug(colors.green(`scanning for dependencies...`)) + debug( + colors.green( + Object.keys(deps).length > 0 + ? `dependencies found by scanner: ${depsLogString( + Object.keys(deps) + )}` + : `no dependencies found by scanner` + ) + ) - const deps = await discoverProjectDependencies(config) + // Add these dependencies to the discovered list, as these are currently + // used by the preAliasPlugin to support aliased and optimized deps. + // This is also used by the CJS externalization heuristics in legacy mode + for (const id of Object.keys(deps)) { + if (!metadata.discovered[id]) { + addMissingDep(id, deps[id]) + } + } - debug( - colors.green( - Object.keys(deps).length > 0 - ? `dependencies found by scanner: ${depsLogString( - Object.keys(deps) - )}` - : `no dependencies found by scanner` - ) - ) + if (!isBuild) { + const knownDeps = prepareKnownDeps() - // Add these dependencies to the discovered list, as these are currently - // used by the preAliasPlugin to support aliased and optimized deps. - // This is also used by the CJS externalization heuristics in legacy mode - for (const id of Object.keys(deps)) { - if (!metadata.discovered[id]) { - addMissingDep(id, deps[id]) + // For dev, we run the scanner and the first optimization + // run on the background, but we wait until crawling has ended + // to decide if we send this result to the browser or we need to + // do another optimize step + postScanOptimizationResult = runOptimizeDeps(config, knownDeps) + } + } catch (e) { + logger.error(e.message) + } finally { + scanPhaseProcessing.resolve() + depsOptimizer.scanProcessing = undefined } - } - - if (!isBuild) { - const knownDeps = prepareKnownDeps() - - // For dev, we run the scanner and the first optimization - // run on the background, but we wait until crawling has ended - // to decide if we send this result to the browser or we need to - // do another optimize step - postScanOptimizationResult = runOptimizeDeps(config, knownDeps) - } - } catch (e) { - logger.error(e.message) - } finally { - scanPhaseProcessing.resolve() - depsOptimizer.scanProcessing = undefined + }, 0) } } From e2a6bf42de427e60a0091860b93b352bf06530d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=89=E9=9E=8B=E6=B2=A1=E5=8F=B7?= <308487730@qq.com> Date: Mon, 11 Jul 2022 13:37:21 +0800 Subject: [PATCH 029/716] chore: ignore ts warning (#9015) --- packages/vite/src/node/plugins/importAnalysis.ts | 2 +- packages/vite/src/node/plugins/importAnalysisBuild.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/plugins/importAnalysis.ts b/packages/vite/src/node/plugins/importAnalysis.ts index bf2ff5c07e760c..f04cb8625f864b 100644 --- a/packages/vite/src/node/plugins/importAnalysis.ts +++ b/packages/vite/src/node/plugins/importAnalysis.ts @@ -294,7 +294,7 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { if (ssr) { return [url, url] } - this.error( + return this.error( `Failed to resolve import "${url}" from "${path.relative( process.cwd(), importerFile diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index c431ec2d1ef31a..f392cfda538584 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -189,7 +189,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { if (ssr) { return [url, url] } - this.error( + return this.error( `Failed to resolve import "${url}" from "${path.relative( process.cwd(), importerFile From 6342140e6ac7e033ca83d3494f94ea20ca2eaf07 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Jul 2022 09:37:10 +0200 Subject: [PATCH 030/716] chore(deps): update all non-major dependencies (#9022) --- package.json | 12 +- .../create-vite/template-lit-ts/package.json | 2 +- .../create-vite/template-lit/package.json | 2 +- .../template-preact-ts/package.json | 4 +- .../create-vite/template-preact/package.json | 4 +- .../template-react-ts/package.json | 6 +- .../create-vite/template-react/package.json | 6 +- .../template-svelte-ts/package.json | 4 +- .../create-vite/template-svelte/package.json | 4 +- .../template-vanilla-ts/package.json | 2 +- .../create-vite/template-vanilla/package.json | 2 +- .../create-vite/template-vue-ts/package.json | 4 +- .../create-vite/template-vue/package.json | 2 +- packages/plugin-legacy/package.json | 4 +- packages/plugin-vue-jsx/package.json | 2 +- packages/vite/package.json | 6 +- playground/backend-integration/package.json | 2 +- playground/preload/package.json | 2 +- playground/ssr-vue/package.json | 2 +- playground/tailwind-sourcemap/package.json | 2 +- playground/tailwind/package.json | 4 +- pnpm-lock.yaml | 291 +++++++++--------- 22 files changed, 183 insertions(+), 186 deletions(-) diff --git a/package.json b/package.json index 8ef5b2d811cc05..ab9cbb5990503d 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,8 @@ "ci-docs": "run-s build docs-build" }, "devDependencies": { - "@babel/types": "^7.18.7", - "@microsoft/api-extractor": "^7.28.2", + "@babel/types": "^7.18.8", + "@microsoft/api-extractor": "^7.28.4", "@rollup/plugin-typescript": "^8.3.3", "@types/babel__core": "^7.1.19", "@types/babel__standalone": "^7.1.4", @@ -59,8 +59,8 @@ "@types/semver": "^7.3.10", "@types/stylus": "^0.48.38", "@types/ws": "^8.5.3", - "@typescript-eslint/eslint-plugin": "^5.30.4", - "@typescript-eslint/parser": "^5.30.4", + "@typescript-eslint/eslint-plugin": "^5.30.5", + "@typescript-eslint/parser": "^5.30.5", "conventional-changelog-cli": "^2.2.2", "cross-env": "^7.0.3", "esbuild": "^0.14.47", @@ -76,7 +76,7 @@ "node-fetch": "^3.2.6", "npm-run-all": "^4.1.5", "picocolors": "^1.0.0", - "playwright-chromium": "^1.23.1", + "playwright-chromium": "^1.23.2", "pnpm": "^7.5.0", "prettier": "2.7.1", "prompts": "^2.4.2", @@ -91,7 +91,7 @@ "unbuild": "^0.7.4", "vite": "workspace:*", "vitepress": "^1.0.0-alpha.4", - "vitest": "^0.17.0", + "vitest": "^0.18.0", "vue": "^3.2.37" }, "simple-git-hooks": { diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index d19a17d7fa0ef8..879eb314424d9d 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": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 96af5308786c29..00a4b00871a6f4 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -18,6 +18,6 @@ "lit": "^2.2.7" }, "devDependencies": { - "vite": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 7211956abe377b..4f842e21784cdf 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.8.2" + "preact": "^10.9.0" }, "devDependencies": { "@preact/preset-vite": "^2.3.0", "typescript": "^4.6.4", - "vite": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index 782c58cb22e4d7..bf03982ec213d4 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.8.2" + "preact": "^10.9.0" }, "devDependencies": { "@preact/preset-vite": "^2.3.0", - "vite": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index d4e368fb9be663..7aeee67e57f3f8 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.14", - "@types/react-dom": "^18.0.5", + "@types/react": "^18.0.15", + "@types/react-dom": "^18.0.6", "@vitejs/plugin-react": "^1.3.2", "typescript": "^4.6.4", - "vite": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index ef49229047ce93..3ecf8e3261091c 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.14", - "@types/react-dom": "^18.0.5", + "@types/react": "^18.0.15", + "@types/react-dom": "^18.0.6", "@vitejs/plugin-react": "^1.3.2", - "vite": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-svelte-ts/package.json b/packages/create-vite/template-svelte-ts/package.json index 91763551a0f82a..6fc0b0c7c609e0 100644 --- a/packages/create-vite/template-svelte-ts/package.json +++ b/packages/create-vite/template-svelte-ts/package.json @@ -12,11 +12,11 @@ "devDependencies": { "@sveltejs/vite-plugin-svelte": "^1.0.0-next.49", "@tsconfig/svelte": "^3.0.0", - "svelte": "^3.48.0", + "svelte": "^3.49.0", "svelte-check": "^2.8.0", "svelte-preprocess": "^4.10.7", "tslib": "^2.4.0", "typescript": "^4.6.4", - "vite": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 1601057ce323b6..80eb5ee0467ddd 100644 --- a/packages/create-vite/template-svelte/package.json +++ b/packages/create-vite/template-svelte/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^1.0.0-next.49", - "svelte": "^3.48.0", - "vite": "^2.9.13" + "svelte": "^3.49.0", + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index 357f680278e836..66e5d01782a4ba 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": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index e5d2b2742b9cf1..26efffdf6e4d12 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": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 06e21979b4c36e..47d46309b2e03f 100644 --- a/packages/create-vite/template-vue-ts/package.json +++ b/packages/create-vite/template-vue-ts/package.json @@ -14,7 +14,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^2.3.3", "typescript": "^4.6.4", - "vite": "^2.9.13", - "vue-tsc": "^0.38.2" + "vite": "^2.9.14", + "vue-tsc": "^0.38.4" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index 58985a381b00d3..5a6803d87e9b3f 100644 --- a/packages/create-vite/template-vue/package.json +++ b/packages/create-vite/template-vue/package.json @@ -13,6 +13,6 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^2.3.3", - "vite": "^2.9.13" + "vite": "^2.9.14" } } diff --git a/packages/plugin-legacy/package.json b/packages/plugin-legacy/package.json index 492042761c754e..57585a7bf9dff0 100644 --- a/packages/plugin-legacy/package.json +++ b/packages/plugin-legacy/package.json @@ -35,8 +35,8 @@ }, "homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-legacy#readme", "dependencies": { - "@babel/standalone": "^7.18.7", - "core-js": "^3.23.1", + "@babel/standalone": "^7.18.8", + "core-js": "^3.23.4", "magic-string": "^0.26.2", "regenerator-runtime": "^0.13.9", "systemjs": "^6.12.1" diff --git a/packages/plugin-vue-jsx/package.json b/packages/plugin-vue-jsx/package.json index d340b603b8efd7..873916c1e4d825 100644 --- a/packages/plugin-vue-jsx/package.json +++ b/packages/plugin-vue-jsx/package.json @@ -37,7 +37,7 @@ "dependencies": { "@babel/core": "^7.18.6", "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.8", "@vue/babel-plugin-jsx": "^1.1.1" }, "devDependencies": { diff --git a/packages/vite/package.json b/packages/vite/package.json index 236437e43584ae..309faecdd944c3 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -68,8 +68,8 @@ }, "devDependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.7", + "@babel/parser": "^7.18.8", + "@babel/types": "^7.18.8", "@jridgewell/trace-mapping": "^0.3.14", "@rollup/plugin-alias": "^3.1.9", "@rollup/plugin-commonjs": "^22.0.1", @@ -118,7 +118,7 @@ "tsconfck": "^2.0.1", "tslib": "^2.4.0", "types": "link:./types", - "ufo": "^0.8.4", + "ufo": "^0.8.5", "ws": "^8.8.0" }, "peerDependencies": { diff --git a/playground/backend-integration/package.json b/playground/backend-integration/package.json index ead0c3a70d8e10..c33391a3ce6df9 100644 --- a/playground/backend-integration/package.json +++ b/playground/backend-integration/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "sass": "^1.53.0", - "tailwindcss": "^3.1.4", + "tailwindcss": "^3.1.5", "fast-glob": "^3.2.11" } } diff --git a/playground/preload/package.json b/playground/preload/package.json index c72b346dece591..a40b86c977d8cb 100644 --- a/playground/preload/package.json +++ b/playground/preload/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "vue": "^3.2.37", - "vue-router": "^4.0.16" + "vue-router": "^4.1.1" }, "devDependencies": { "@vitejs/plugin-vue": "workspace:*", diff --git a/playground/ssr-vue/package.json b/playground/ssr-vue/package.json index cbd56ca0104571..f567ae24e846fb 100644 --- a/playground/ssr-vue/package.json +++ b/playground/ssr-vue/package.json @@ -17,7 +17,7 @@ "dependencies": { "example-external-component": "file:example-external-component", "vue": "^3.2.37", - "vue-router": "^4.0.16", + "vue-router": "^4.1.1", "vuex": "^4.0.2" }, "devDependencies": { diff --git a/playground/tailwind-sourcemap/package.json b/playground/tailwind-sourcemap/package.json index 3b0ee8ec7c2dcb..019255d63fb6b1 100644 --- a/playground/tailwind-sourcemap/package.json +++ b/playground/tailwind-sourcemap/package.json @@ -9,6 +9,6 @@ "preview": "vite preview" }, "dependencies": { - "tailwindcss": "^3.1.4" + "tailwindcss": "^3.1.5" } } diff --git a/playground/tailwind/package.json b/playground/tailwind/package.json index 803e342cd81a89..b5f9e1f22ff404 100644 --- a/playground/tailwind/package.json +++ b/playground/tailwind/package.json @@ -10,9 +10,9 @@ }, "dependencies": { "autoprefixer": "^10.4.7", - "tailwindcss": "^3.1.4", + "tailwindcss": "^3.1.5", "vue": "^3.2.37", - "vue-router": "^4.0.16" + "vue-router": "^4.1.1" }, "devDependencies": { "@vitejs/plugin-vue": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c6a4178e50ab9c..3c3511025f8704 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,8 +10,8 @@ importers: .: specifiers: - '@babel/types': ^7.18.7 - '@microsoft/api-extractor': ^7.28.2 + '@babel/types': ^7.18.8 + '@microsoft/api-extractor': ^7.28.4 '@rollup/plugin-typescript': ^8.3.3 '@types/babel__core': ^7.1.19 '@types/babel__standalone': ^7.1.4 @@ -33,8 +33,8 @@ importers: '@types/semver': ^7.3.10 '@types/stylus': ^0.48.38 '@types/ws': ^8.5.3 - '@typescript-eslint/eslint-plugin': ^5.30.4 - '@typescript-eslint/parser': ^5.30.4 + '@typescript-eslint/eslint-plugin': ^5.30.5 + '@typescript-eslint/parser': ^5.30.5 conventional-changelog-cli: ^2.2.2 cross-env: ^7.0.3 esbuild: ^0.14.47 @@ -50,7 +50,7 @@ importers: node-fetch: ^3.2.6 npm-run-all: ^4.1.5 picocolors: ^1.0.0 - playwright-chromium: ^1.23.1 + playwright-chromium: ^1.23.2 pnpm: ^7.5.0 prettier: 2.7.1 prompts: ^2.4.2 @@ -65,11 +65,11 @@ importers: unbuild: ^0.7.4 vite: workspace:* vitepress: ^1.0.0-alpha.4 - vitest: ^0.17.0 + vitest: ^0.18.0 vue: ^3.2.37 devDependencies: - '@babel/types': 7.18.7 - '@microsoft/api-extractor': 7.28.2 + '@babel/types': 7.18.8 + '@microsoft/api-extractor': 7.28.4 '@rollup/plugin-typescript': 8.3.3_uct5nfewsakxkk4livyn3qaf3e '@types/babel__core': 7.1.19 '@types/babel__standalone': 7.1.4 @@ -91,14 +91,14 @@ importers: '@types/semver': 7.3.10 '@types/stylus': 0.48.38 '@types/ws': 8.5.3 - '@typescript-eslint/eslint-plugin': 5.30.4_nnp5j3mtg3i6tzbs733geadfcy - '@typescript-eslint/parser': 5.30.4_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/eslint-plugin': 5.30.5_v2rueh5ttlnebqgd37frxlfko4 + '@typescript-eslint/parser': 5.30.5_g4cxuhevh5o54harssx6h7xjim conventional-changelog-cli: 2.2.2 cross-env: 7.0.3 esbuild: 0.14.47 eslint: 8.19.0 eslint-define-config: 1.5.1 - eslint-plugin-import: 2.26.0_eewxtjj33uq4o73zpcjsegq3l4 + eslint-plugin-import: 2.26.0_iom7pm3yknyiblqpw2vvqvxs5i eslint-plugin-node: 11.1.0_eslint@8.19.0 execa: 6.1.0 fs-extra: 10.1.0 @@ -108,7 +108,7 @@ importers: node-fetch: 3.2.6 npm-run-all: 4.1.5 picocolors: 1.0.0 - playwright-chromium: 1.23.1 + playwright-chromium: 1.23.2 pnpm: 7.5.0 prettier: 2.7.1 prompts: 2.4.2 @@ -123,7 +123,7 @@ importers: unbuild: 0.7.4 vite: link:packages/vite vitepress: 1.0.0-alpha.4 - vitest: 0.17.0 + vitest: 0.18.0 vue: 3.2.37 packages/create-vite: @@ -139,15 +139,15 @@ importers: packages/plugin-legacy: specifiers: '@babel/core': ^7.18.6 - '@babel/standalone': ^7.18.7 - core-js: ^3.23.1 + '@babel/standalone': ^7.18.8 + core-js: ^3.23.4 magic-string: ^0.26.2 regenerator-runtime: ^0.13.9 systemjs: ^6.12.1 vite: workspace:* dependencies: - '@babel/standalone': 7.18.7 - core-js: 3.23.1 + '@babel/standalone': 7.18.8 + core-js: 3.23.4 magic-string: 0.26.2 regenerator-runtime: 0.13.9 systemjs: 6.12.1 @@ -200,13 +200,13 @@ importers: specifiers: '@babel/core': ^7.18.6 '@babel/plugin-syntax-import-meta': ^7.10.4 - '@babel/plugin-transform-typescript': ^7.18.6 + '@babel/plugin-transform-typescript': ^7.18.8 '@vue/babel-plugin-jsx': ^1.1.1 vite: workspace:* dependencies: '@babel/core': 7.18.6 '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.18.6 - '@babel/plugin-transform-typescript': 7.18.6_@babel+core@7.18.6 + '@babel/plugin-transform-typescript': 7.18.8_@babel+core@7.18.6 '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.18.6 devDependencies: vite: link:../vite @@ -214,8 +214,8 @@ importers: packages/vite: specifiers: '@ampproject/remapping': ^2.2.0 - '@babel/parser': ^7.18.6 - '@babel/types': ^7.18.7 + '@babel/parser': ^7.18.8 + '@babel/types': ^7.18.8 '@jridgewell/trace-mapping': ^0.3.14 '@rollup/plugin-alias': ^3.1.9 '@rollup/plugin-commonjs': ^22.0.1 @@ -269,7 +269,7 @@ importers: tsconfck: ^2.0.1 tslib: ^2.4.0 types: link:./types - ufo: ^0.8.4 + ufo: ^0.8.5 ws: ^8.8.0 dependencies: esbuild: 0.14.47 @@ -280,8 +280,8 @@ importers: fsevents: 2.3.2 devDependencies: '@ampproject/remapping': 2.2.0 - '@babel/parser': 7.18.6 - '@babel/types': 7.18.7 + '@babel/parser': 7.18.8 + '@babel/types': 7.18.8 '@jridgewell/trace-mapping': 0.3.14 '@rollup/plugin-alias': 3.1.9_rollup@2.75.6 '@rollup/plugin-commonjs': 22.0.1_rollup@2.75.6 @@ -330,7 +330,7 @@ importers: tsconfck: 2.0.1 tslib: 2.4.0 types: link:types - ufo: 0.8.4 + ufo: 0.8.5 ws: 8.8.0 playground: @@ -364,11 +364,11 @@ importers: specifiers: fast-glob: ^3.2.11 sass: ^1.53.0 - tailwindcss: ^3.1.4 + tailwindcss: ^3.1.5 devDependencies: fast-glob: 3.2.11 sass: 1.53.0 - tailwindcss: 3.1.4 + tailwindcss: 3.1.5 playground/cli: specifiers: {} @@ -752,10 +752,10 @@ importers: dep-including-a: file:./dep-including-a terser: ^5.14.1 vue: ^3.2.37 - vue-router: ^4.0.16 + vue-router: ^4.1.1 dependencies: vue: 3.2.37 - vue-router: 4.0.16_vue@3.2.37 + vue-router: 4.1.1_vue@3.2.37 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue dep-a: file:playground/preload/dep-a @@ -1044,12 +1044,12 @@ importers: express: ^4.18.1 serve-static: ^1.15.0 vue: ^3.2.37 - vue-router: ^4.0.16 + vue-router: ^4.1.1 vuex: ^4.0.2 dependencies: example-external-component: file:playground/ssr-vue/example-external-component vue: 3.2.37 - vue-router: 4.0.16_vue@3.2.37 + vue-router: 4.1.1_vue@3.2.37 vuex: 4.0.2_vue@3.2.37 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue @@ -1081,24 +1081,24 @@ importers: specifiers: '@vitejs/plugin-vue': workspace:* autoprefixer: ^10.4.7 - tailwindcss: ^3.1.4 + tailwindcss: ^3.1.5 ts-node: ^10.8.2 vue: ^3.2.37 - vue-router: ^4.0.16 + vue-router: ^4.1.1 dependencies: autoprefixer: 10.4.7 - tailwindcss: 3.1.4_ts-node@10.8.2 + tailwindcss: 3.1.5_ts-node@10.8.2 vue: 3.2.37 - vue-router: 4.0.16_vue@3.2.37 + vue-router: 4.1.1_vue@3.2.37 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue ts-node: 10.8.2 playground/tailwind-sourcemap: specifiers: - tailwindcss: ^3.1.4 + tailwindcss: ^3.1.5 dependencies: - tailwindcss: 3.1.4 + tailwindcss: 3.1.5 playground/tsconfig-json: specifiers: {} @@ -1329,7 +1329,7 @@ packages: '@babel/parser': 7.18.5 '@babel/template': 7.16.7 '@babel/traverse': 7.18.5 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1365,7 +1365,7 @@ packages: resolution: {integrity: sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 '@jridgewell/gen-mapping': 0.1.1 jsesc: 2.5.2 dev: false @@ -1374,7 +1374,7 @@ packages: resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 '@jridgewell/gen-mapping': 0.3.1 jsesc: 2.5.2 dev: true @@ -1441,7 +1441,7 @@ packages: resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 dev: true /@babel/helper-environment-visitor/7.18.2: @@ -1458,7 +1458,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.16.7 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 dev: true /@babel/helper-function-name/7.18.6: @@ -1466,32 +1466,32 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.6 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 /@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.7 + '@babel/types': 7.18.8 /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 /@babel/helper-member-expression-to-functions/7.18.6: resolution: {integrity: sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 dev: false /@babel/helper-module-imports/7.16.7: resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} @@ -1510,7 +1510,7 @@ packages: '@babel/helper-validator-identifier': 7.16.7 '@babel/template': 7.16.7 '@babel/traverse': 7.18.5 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 transitivePeerDependencies: - supports-color dev: true @@ -1534,7 +1534,7 @@ packages: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 dev: false /@babel/helper-plugin-utils/7.16.7: @@ -1554,7 +1554,7 @@ packages: '@babel/helper-member-expression-to-functions': 7.18.6 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/traverse': 7.18.6 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 transitivePeerDependencies: - supports-color dev: false @@ -1563,7 +1563,7 @@ packages: resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 dev: true /@babel/helper-simple-access/7.18.6: @@ -1576,14 +1576,14 @@ packages: resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 dev: true /@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.7 + '@babel/types': 7.18.8 /@babel/helper-validator-identifier/7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} @@ -1608,7 +1608,7 @@ packages: dependencies: '@babel/template': 7.16.7 '@babel/traverse': 7.18.5 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 transitivePeerDependencies: - supports-color dev: true @@ -1653,6 +1653,14 @@ packages: dependencies: '@babel/types': 7.18.7 + /@babel/parser/7.18.8: + resolution: {integrity: sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.18.8 + dev: true + /@babel/plugin-proposal-pipeline-operator/7.18.6: resolution: {integrity: sha512-TtmOg+ew8KKLTNfOzEM/KCkwp3JKjA8E5E95rnrqnBZWs9KuXS+2yXq/x10uy+Sq9Ys6TscfRVCN2UFOhZ4bZw==} engines: {node: '>=6.9.0'} @@ -1763,8 +1771,8 @@ packages: '@babel/types': 7.18.7 dev: false - /@babel/plugin-transform-typescript/7.18.6_@babel+core@7.18.6: - resolution: {integrity: sha512-ijHNhzIrLj5lQCnI6aaNVRtGVuUZhOXFLRVFs7lLrkXTHip4FKty5oAuQdk4tywG0/WjXmjTfQCWmuzrvFer1w==} + /@babel/plugin-transform-typescript/7.18.8_@babel+core@7.18.6: + resolution: {integrity: sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1802,8 +1810,8 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/standalone/7.18.7: - resolution: {integrity: sha512-AIOn3ON0KhYqAbvmkT11vi/YAlhrPn6RSPQb8Hl3PUZoE1yFwut5fQ9/oJ4Dvf2SGmO41pF7xmwP2W1RT0uJCA==} + /@babel/standalone/7.18.8: + resolution: {integrity: sha512-cDayR7x6IAp7k1947fYeo7OxD7QwT9/UZ+BT05Zq2pfsOzkhOJZdY19X0NvL6fYaszwnzO0zVHgp04OspPh3SA==} engines: {node: '>=6.9.0'} dev: false @@ -1813,7 +1821,7 @@ packages: dependencies: '@babel/code-frame': 7.16.7 '@babel/parser': 7.18.5 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 /@babel/template/7.18.6: resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==} @@ -1834,7 +1842,7 @@ packages: '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-split-export-declaration': 7.18.6 '@babel/parser': 7.18.5 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -1852,7 +1860,7 @@ packages: '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-split-export-declaration': 7.16.7 '@babel/parser': 7.18.5 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -1870,7 +1878,7 @@ packages: '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 '@babel/parser': 7.18.6 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -1897,6 +1905,13 @@ packages: '@babel/helper-validator-identifier': 7.18.6 to-fast-properties: 2.0.0 + /@babel/types/7.18.8: + resolution: {integrity: sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + to-fast-properties: 2.0.0 + /@cloudflare/workers-types/2.2.2: resolution: {integrity: sha512-kaMn2rueJ0PL1TYVGknTCh0X0x0d9G+FNXAFep7/4uqecEZoQb/63o6rOmMuiqI09zLuHV6xhKRXinokV/MY9A==} dev: true @@ -2172,8 +2187,8 @@ packages: '@rushstack/node-core-library': 3.49.0 dev: true - /@microsoft/api-extractor/7.28.2: - resolution: {integrity: sha512-sl97erZ5Zh3ov5dvV/rMSt45//dYf7C5Y6PCpIXpFidDYMyRwN+pizZ543g2d8D5/WbthGvsZoYcYSzG7CkjHQ==} + /@microsoft/api-extractor/7.28.4: + resolution: {integrity: sha512-7JeROBGYTUt4/4HPnpMscsQgLzX0OfGTQR2qOQzzh3kdkMyxmiv2mzpuhoMnwbubb1GvPcyFm+NguoqOqkCVaw==} hasBin: true dependencies: '@microsoft/api-extractor-model': 7.21.0 @@ -2475,7 +2490,7 @@ packages: resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: '@babel/parser': 7.18.5 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.17.1 @@ -2484,7 +2499,7 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 dev: true /@types/babel__standalone/7.1.4: @@ -2499,13 +2514,13 @@ packages: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: '@babel/parser': 7.18.5 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 dev: true /@types/babel__traverse/7.17.1: resolution: {integrity: sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==} dependencies: - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 dev: true /@types/braces/3.0.1: @@ -2655,8 +2670,8 @@ packages: '@types/node': 17.0.42 dev: true - /@typescript-eslint/eslint-plugin/5.30.4_nnp5j3mtg3i6tzbs733geadfcy: - resolution: {integrity: sha512-xjujQISAIa4HAaos8fcMZXmqkuZqMx6icdxkI88jMM/eNe4J8AuTLYnLK+zdm0mBYLyctdFf//UE4/xFCcQzYQ==} + /@typescript-eslint/eslint-plugin/5.30.5_v2rueh5ttlnebqgd37frxlfko4: + resolution: {integrity: sha512-lftkqRoBvc28VFXEoRgyZuztyVUQ04JvUnATSPtIRFAccbXTWL6DEtXGYMcbg998kXw1NLUJm7rTQ9eUt+q6Ig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2666,10 +2681,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.30.4_g4cxuhevh5o54harssx6h7xjim - '@typescript-eslint/scope-manager': 5.30.4 - '@typescript-eslint/type-utils': 5.30.4_g4cxuhevh5o54harssx6h7xjim - '@typescript-eslint/utils': 5.30.4_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/parser': 5.30.5_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/scope-manager': 5.30.5 + '@typescript-eslint/type-utils': 5.30.5_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/utils': 5.30.5_g4cxuhevh5o54harssx6h7xjim debug: 4.3.4 eslint: 8.19.0 functional-red-black-tree: 1.0.1 @@ -2682,8 +2697,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.30.4_g4cxuhevh5o54harssx6h7xjim: - resolution: {integrity: sha512-/ge1HtU63wVoED4VnlU2o+FPFmi017bPYpeSrCmd8Ycsti4VSxXrmcpXXm7JpI4GT0Aa7qviabv1PEp6L5bboQ==} + /@typescript-eslint/parser/5.30.5_g4cxuhevh5o54harssx6h7xjim: + resolution: {integrity: sha512-zj251pcPXI8GO9NDKWWmygP6+UjwWmrdf9qMW/L/uQJBM/0XbU2inxe5io/234y/RCvwpKEYjZ6c1YrXERkK4Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2692,9 +2707,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.30.4 - '@typescript-eslint/types': 5.30.4 - '@typescript-eslint/typescript-estree': 5.30.4_typescript@4.6.4 + '@typescript-eslint/scope-manager': 5.30.5 + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/typescript-estree': 5.30.5_typescript@4.6.4 debug: 4.3.4 eslint: 8.19.0 typescript: 4.6.4 @@ -2702,16 +2717,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.30.4: - resolution: {integrity: sha512-DNzlQwGSiGefz71JwaHrpcaAX3zYkEcy8uVuan3YMKOa6qeW/y+7SaD8KIsIAruASwq6P+U4BjWBWtM2O+mwBQ==} + /@typescript-eslint/scope-manager/5.30.5: + resolution: {integrity: sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.30.4 - '@typescript-eslint/visitor-keys': 5.30.4 + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/visitor-keys': 5.30.5 dev: true - /@typescript-eslint/type-utils/5.30.4_g4cxuhevh5o54harssx6h7xjim: - resolution: {integrity: sha512-55cf1dZviwwv+unDB+mF8vZkfta5muTK6bppPvenWWCD7slZZ0DEsXUjZerqy7Rq8s3J4SXdg4rMIY8ngCtTmA==} + /@typescript-eslint/type-utils/5.30.5_g4cxuhevh5o54harssx6h7xjim: + resolution: {integrity: sha512-k9+ejlv1GgwN1nN7XjVtyCgE0BTzhzT1YsQF0rv4Vfj2U9xnslBgMYYvcEYAFVdvhuEscELJsB7lDkN7WusErw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2720,7 +2735,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.30.4_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/utils': 5.30.5_g4cxuhevh5o54harssx6h7xjim debug: 4.3.4 eslint: 8.19.0 tsutils: 3.21.0_typescript@4.6.4 @@ -2729,13 +2744,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.30.4: - resolution: {integrity: sha512-NTEvqc+Vvu8Q6JeAKryHk2eqLKqsr2St3xhIjhOjQv5wQUBhaTuix4WOSacqj0ONWfKVU12Eug3LEAB95GBkMA==} + /@typescript-eslint/types/5.30.5: + resolution: {integrity: sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.30.4_typescript@4.6.4: - resolution: {integrity: sha512-V4VnEs6/J9/nNizaA12IeU4SAeEYaiKr7XndLNfV5+3zZSB4hIu6EhHJixTKhvIqA+EEHgBl6re8pivBMLLO1w==} + /@typescript-eslint/typescript-estree/5.30.5_typescript@4.6.4: + resolution: {integrity: sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -2743,8 +2758,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.30.4 - '@typescript-eslint/visitor-keys': 5.30.4 + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/visitor-keys': 5.30.5 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2755,16 +2770,16 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.30.4_g4cxuhevh5o54harssx6h7xjim: - resolution: {integrity: sha512-a+GQrJzOUhn4WT1mUumXDyam+22Oo4c5K/jnZ+6r/4WTQF3q8e4CsC9PLHb4SnOClzOqo/5GLZWvkE1aa5UGKQ==} + /@typescript-eslint/utils/5.30.5_g4cxuhevh5o54harssx6h7xjim: + resolution: {integrity: sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA==} 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.30.4 - '@typescript-eslint/types': 5.30.4 - '@typescript-eslint/typescript-estree': 5.30.4_typescript@4.6.4 + '@typescript-eslint/scope-manager': 5.30.5 + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/typescript-estree': 5.30.5_typescript@4.6.4 eslint: 8.19.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.19.0 @@ -2773,11 +2788,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.30.4: - resolution: {integrity: sha512-ulKGse3mruSc8x6l8ORSc6+1ORyJzKmZeIaRTu/WpaF/jx3vHvEn5XZUKF9XaVg2710mFmTAUlLcLYLPp/Zf/Q==} + /@typescript-eslint/visitor-keys/5.30.5: + resolution: {integrity: sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.30.4 + '@typescript-eslint/types': 5.30.5 eslint-visitor-keys: 3.3.0 dev: true @@ -3811,8 +3826,8 @@ packages: is-what: 3.14.1 dev: true - /core-js/3.23.1: - resolution: {integrity: sha512-wfMYHWi1WQjpgZNC9kAlN4ut04TM9fUTdi7CqIoTVM7yaiOUQTklOzfb+oWH3r9edQcT3F887swuVmxrV+CC8w==} + /core-js/3.23.4: + resolution: {integrity: sha512-vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjzQ==} requiresBuild: true dev: false @@ -4612,7 +4627,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.3_baa5opwrycsxtp3dnugww5zmnq: + /eslint-module-utils/2.7.3_ea34krk32wbcqzxapvwr7rsjs4: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} peerDependencies: @@ -4630,7 +4645,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.30.4_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/parser': 5.30.5_g4cxuhevh5o54harssx6h7xjim debug: 3.2.7 eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 @@ -4649,7 +4664,7 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_eewxtjj33uq4o73zpcjsegq3l4: + /eslint-plugin-import/2.26.0_iom7pm3yknyiblqpw2vvqvxs5i: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -4659,14 +4674,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.30.4_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/parser': 5.30.5_g4cxuhevh5o54harssx6h7xjim array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.19.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_baa5opwrycsxtp3dnugww5zmnq + eslint-module-utils: 2.7.3_ea34krk32wbcqzxapvwr7rsjs4 has: 1.0.3 is-core-module: 2.9.0 is-glob: 4.0.3 @@ -6806,17 +6821,17 @@ packages: pathe: 0.3.2 dev: true - /playwright-chromium/1.23.1: - resolution: {integrity: sha512-Cx9VkJBFPxSim7qz571aDXU+oXmqYJW2W+Po6eiq2vi/abkH87BtxM/E0tsFJavFMB8ZpBWX1Z+77LctZv3V5w==} + /playwright-chromium/1.23.2: + resolution: {integrity: sha512-kQ34dgOyum93X7Q0G8CS85jloZL0xVsDnqu8ElPcEIz0YyKvJRaptq1dnq7Wx8p7llHCIDg6d30Pm5+jAwtdJw==} engines: {node: '>=14'} hasBin: true requiresBuild: true dependencies: - playwright-core: 1.23.1 + playwright-core: 1.23.2 dev: true - /playwright-core/1.23.1: - resolution: {integrity: sha512-9CXsE0gawph4KXl6oUaa0ehHRySZjHvly4TybcBXDvzK3N3o6L/eZ8Q6iVWUiMn0LLS5bRFxo1qEtOETlYJxjw==} + /playwright-core/1.23.2: + resolution: {integrity: sha512-UGbutIr0nBALDHWW/HcXfyK6ZdmefC99Moo4qyTr89VNIkYZuDrW8Sw554FyFUamcFSdKOgDPk6ECSkofGIZjQ==} engines: {node: '>=14'} hasBin: true dev: true @@ -6847,9 +6862,9 @@ packages: camelcase-css: 2.0.1 postcss: 8.4.14 - /postcss-load-config/3.1.4_i7duc3lt6p42geuj2nwruihc6u: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} + /postcss-load-config/4.0.1_i7duc3lt6p42geuj2nwruihc6u: + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' ts-node: '>=9.0.0' @@ -6862,25 +6877,9 @@ packages: lilconfig: 2.0.5 postcss: 8.4.14 ts-node: 10.8.2 - yaml: 1.10.2 + yaml: 2.1.1 dev: false - /postcss-load-config/3.1.4_postcss@8.4.14: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.0.5 - postcss: 8.4.14 - yaml: 1.10.2 - /postcss-load-config/4.0.1_postcss@8.4.14: resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} @@ -6896,7 +6895,6 @@ packages: lilconfig: 2.0.5 postcss: 8.4.14 yaml: 2.1.1 - dev: true /postcss-modules-extract-imports/3.0.0_postcss@8.4.14: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} @@ -7995,8 +7993,8 @@ packages: resolution: {integrity: sha512-hqTN6kW+pN6/qro6G9OZ7ceDQOcYno020zBQKpZQLsJhYTDMCMNfXi/Y8duF5iW+4WWZr42ry0MMkcRGpbwG2A==} dev: false - /tailwindcss/3.1.4: - resolution: {integrity: sha512-NrxbFV4tYsga/hpWbRyUfIaBrNMXDxx5BsHgBS4v5tlyjf+sDsgBg5m9OxjrXIqAS/uR9kicxLKP+bEHI7BSeQ==} + /tailwindcss/3.1.5: + resolution: {integrity: sha512-bC/2dy3dGPqxMWAqFSRgQxVCfmO/31ZbeEp8s9DMDh4zgPZ5WW1gxRJkbBkXcTUIzaSUdhWrcsrSOe32ccgB4w==} engines: {node: '>=12.13.0'} hasBin: true dependencies: @@ -8016,7 +8014,7 @@ packages: postcss: 8.4.14 postcss-import: 14.1.0_postcss@8.4.14 postcss-js: 4.0.0_postcss@8.4.14 - postcss-load-config: 3.1.4_postcss@8.4.14 + postcss-load-config: 4.0.1_postcss@8.4.14 postcss-nested: 5.0.6_postcss@8.4.14 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 @@ -8025,8 +8023,8 @@ packages: transitivePeerDependencies: - ts-node - /tailwindcss/3.1.4_ts-node@10.8.2: - resolution: {integrity: sha512-NrxbFV4tYsga/hpWbRyUfIaBrNMXDxx5BsHgBS4v5tlyjf+sDsgBg5m9OxjrXIqAS/uR9kicxLKP+bEHI7BSeQ==} + /tailwindcss/3.1.5_ts-node@10.8.2: + resolution: {integrity: sha512-bC/2dy3dGPqxMWAqFSRgQxVCfmO/31ZbeEp8s9DMDh4zgPZ5WW1gxRJkbBkXcTUIzaSUdhWrcsrSOe32ccgB4w==} engines: {node: '>=12.13.0'} hasBin: true dependencies: @@ -8046,7 +8044,7 @@ packages: postcss: 8.4.14 postcss-import: 14.1.0_postcss@8.4.14 postcss-js: 4.0.0_postcss@8.4.14 - postcss-load-config: 3.1.4_i7duc3lt6p42geuj2nwruihc6u + postcss-load-config: 4.0.1_i7duc3lt6p42geuj2nwruihc6u postcss-nested: 5.0.6_postcss@8.4.14 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 @@ -8336,8 +8334,8 @@ packages: resolution: {integrity: sha512-kMBmblijHJXyOpKzgDhKx9INYU4u4E1RPMB0HqmKSgWG8vEcf3exEfLh4FFfzd3xdQOw9EuIy/cP0akY6rHopQ==} dev: true - /ufo/0.8.4: - resolution: {integrity: sha512-/+BmBDe8GvlB2nIflWasLLAInjYG0bC9HRnfEpNi4sw77J2AJNnEVnTDReVrehoh825+Q/evF3THXTAweyam2g==} + /ufo/0.8.5: + resolution: {integrity: sha512-e4+UtA5IRO+ha6hYklwj6r7BjiGMxS0O+UaSg9HbaTefg4kMkzj4tXzEBajRR+wkxf+golgAWKzLbytCUDMJAA==} dev: true /uglify-js/3.16.1: @@ -8412,7 +8410,7 @@ packages: dependencies: '@babel/core': 7.18.5 '@babel/standalone': 7.18.5 - '@babel/types': 7.18.7 + '@babel/types': 7.18.8 scule: 0.2.1 transitivePeerDependencies: - supports-color @@ -8494,8 +8492,8 @@ packages: - react-dom dev: true - /vitest/0.17.0: - resolution: {integrity: sha512-5YO9ubHo0Zg35mea3+zZAr4sCku32C3usvIH5COeJB48TZV/R0J9aGNtGOOqEWZYfOKP0pGZUvTokne3x/QEFg==} + /vitest/0.18.0: + resolution: {integrity: sha512-ryAtlh5Gvg3+aLNuOQ8YOHxgQCCu46jx40X5MBL0K0/ejB9i5zsr8fV8LTGXbXex80UMHlzceI9F+ouGaiR+mQ==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -8557,8 +8555,8 @@ packages: vue: 3.2.37 dev: true - /vue-router/4.0.16_vue@3.2.37: - resolution: {integrity: sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==} + /vue-router/4.1.1_vue@3.2.37: + resolution: {integrity: sha512-Wp1mEf2xCwT0ez7o9JvgpfBp9JGnVb+dPERzXDbugTatzJAJ60VWOhJKifQty85k+jOreoFHER4r5fu062PhPw==} peerDependencies: vue: ^3.2.0 dependencies: @@ -8740,7 +8738,6 @@ packages: /yaml/2.1.1: resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} engines: {node: '>= 14'} - dev: true /yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} From 519f7debe176d99f464a96240842c303d8ec5e57 Mon Sep 17 00:00:00 2001 From: Kia King Ishii Date: Mon, 11 Jul 2022 21:59:03 +0900 Subject: [PATCH 031/716] docs: add team page (#8720) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Shinigami Co-authored-by: patak Co-authored-by: Bjorn Lu Co-authored-by: 翠 / green Co-authored-by: Alec Larson <1925840+aleclarson@users.noreply.github.com> Co-authored-by: Anthony Fu Co-authored-by: ygj6 <7699524+ygj6@users.noreply.github.com> --- docs/.vitepress/config.ts | 51 +++++++------ docs/_data/team.js | 152 ++++++++++++++++++++++++++++++++++++++ docs/team.md | 36 +++++++++ 3 files changed, 216 insertions(+), 23 deletions(-) create mode 100644 docs/_data/team.js create mode 100644 docs/team.md diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 3f7762f2cdd2c4..71ee79a150e015 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -72,31 +72,36 @@ export default defineConfig({ { text: 'Config', link: '/config/', activeMatch: '/config/' }, { text: 'Plugins', link: '/plugins/', activeMatch: '/plugins/' }, { - text: 'Links', + text: 'Resources', items: [ + { text: 'Team', link: '/team' }, { - text: 'Twitter', - link: 'https://twitter.com/vite_js' - }, - { - text: 'Discord Chat', - link: 'https://chat.vitejs.dev' - }, - { - text: 'Awesome Vite', - link: 'https://github.com/vitejs/awesome-vite' - }, - { - text: 'DEV Community', - link: 'https://dev.to/t/vite' - }, - { - text: 'Rollup Plugins Compat', - link: 'https://vite-rollup-plugins.patak.dev/' - }, - { - text: 'Changelog', - link: 'https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md' + items: [ + { + text: 'Twitter', + link: 'https://twitter.com/vite_js' + }, + { + text: 'Discord Chat', + link: 'https://chat.vitejs.dev' + }, + { + text: 'Awesome Vite', + link: 'https://github.com/vitejs/awesome-vite' + }, + { + text: 'DEV Community', + link: 'https://dev.to/t/vite' + }, + { + text: 'Rollup Plugins Compat', + link: 'https://vite-rollup-plugins.patak.dev/' + }, + { + text: 'Changelog', + link: 'https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md' + } + ] } ] }, diff --git a/docs/_data/team.js b/docs/_data/team.js new file mode 100644 index 00000000000000..43b56ad5bf481b --- /dev/null +++ b/docs/_data/team.js @@ -0,0 +1,152 @@ +export const core = [ + { + avatar: 'https://www.github.com/yyx990803.png', + name: 'Evan You', + title: 'Creator', + org: 'Vue.js', + orgLink: 'https://vuejs.org/', + desc: 'Husband, father of two, independent open source developer.', + links: [ + { icon: 'github', link: 'https://github.com/yyx990803' }, + { icon: 'twitter', link: 'https://twitter.com/youyuxi' } + ], + sponsor: 'https://github.com/sponsors/yyx990803' + }, + { + avatar: 'https://www.github.com/patak-dev.png', + name: 'Patak', + title: 'A collaborative being', + org: 'StackBlitz', + orgLink: 'https://stackblitz.com/', + desc: 'Core team member of Vite. Team member of Vue.', + links: [ + { icon: 'github', link: 'https://github.com/patak-dev' }, + { icon: 'twitter', link: 'https://twitter.com/patak_dev' } + ], + sponsor: 'https://github.com/sponsors/patak-dev' + }, + { + avatar: 'https://www.github.com/antfu.png', + name: 'Anthony Fu', + title: 'A fanatical open sourceror', + org: 'NuxtLabs', + orgLink: 'https://nuxtlabs.com/', + desc: 'Core team member of Vite & Vue. Working at NuxtLabs.', + links: [ + { icon: 'github', link: 'https://github.com/antfu' }, + { icon: 'twitter', link: 'https://twitter.com/antfu7' } + ], + sponsor: 'https://github.com/sponsors/antfu' + }, + { + avatar: 'https://github.com/sodatea.png', + name: 'Haoqun Jiang', + title: 'Developer', + org: 'Vue.js', + orgLink: 'https://vuejs.org/', + desc: 'Vite/Vite core team member. Full-time open sourcerer.', + links: [ + { icon: 'github', link: 'https://github.com/sodatea' }, + { icon: 'twitter', link: 'https://twitter.com/haoqunjiang' } + ], + sponsor: 'https://github.com/sponsors/sodatea' + }, + { + avatar: 'https://github.com/Shinigami92.png', + name: 'Shinigami', + title: 'Maintainer', + org: 'Faker', + orgLink: 'https://fakerjs.dev', + desc: 'Passionate TypeScript enthusiast working extensively with Vue SPA and pug.', + links: [ + { icon: 'github', link: 'https://github.com/Shinigami92' }, + { icon: 'twitter', link: 'https://twitter.com/Shini_92' } + ], + sponsor: 'https://github.com/sponsors/Shinigami92' + }, + { + avatar: 'https://i.imgur.com/KMed6rQ.jpeg', + name: 'Alec Larson', + title: 'Entrepreneur', + desc: 'Dabbling in social ecommerce, meta frameworks, and board games', + links: [ + { icon: 'github', link: 'https://github.com/aleclarson' }, + { icon: 'twitter', link: 'https://twitter.com/retropragma' } + ], + sponsor: 'https://github.com/sponsors/aleclarson' + }, + { + avatar: 'https://github.com/bluwy.png', + name: 'Bjorn Lu', + title: 'Frontend Developer', + desc: 'Svelte and Vite team member. Something something opinions.', + links: [ + { icon: 'github', link: 'https://github.com/bluwy' }, + { icon: 'twitter', link: 'https://twitter.com/bluwyoo' } + ], + sponsor: 'https://bjornlu.com/sponsor' + }, + { + avatar: 'https://github.com/poyoho.png', + name: 'yoho', + title: 'Frontend Developer', + desc: 'Frontend. Vite team member.', + links: [ + { icon: 'github', link: 'https://github.com/poyoho' }, + { icon: 'twitter', link: 'https://twitter.com/yoho_po' } + ] + }, + { + avatar: 'https://github.com/sapphi-red.png', + name: 'green', + title: 'Web Developer', + desc: 'Vite team member. Call me sapphi or green or midori ;)', + links: [ + { icon: 'github', link: 'https://github.com/sapphi-red' }, + { icon: 'twitter', link: 'https://twitter.com/sapphi_red' } + ], + sponsor: 'https://github.com/sponsors/sapphi-red' + }, + { + avatar: 'https://github.com/ygj6.png', + name: 'ygj6', + title: 'Developer', + desc: 'Web Developer. Vue & Vite team member', + links: [ + { icon: 'github', link: 'https://github.com/ygj6' }, + { icon: 'twitter', link: 'https://twitter.com/ygj_66' } + ] + }, + { + avatar: 'https://github.com/Niputi.png', + name: 'Niputi', + title: 'Developer', + org: 'Computershare Denmark', + desc: 'weeb/javascript lover.', + links: [ + { icon: 'github', link: 'https://github.com/Niputi' }, + { icon: 'twitter', link: 'https://twitter.com/Niputi_' } + ] + } +] + +export const emeriti = [ + { + avatar: 'https://github.com/underfin.png', + name: 'underfin', + title: 'Developer', + links: [{ icon: 'github', link: 'https://github.com/underfin' }] + }, + { + avatar: 'https://github.com/GrygrFlzr.png', + name: 'GrygrFlzr', + title: 'Developer', + links: [{ icon: 'github', link: 'https://github.com/GrygrFlzr' }] + }, + { + avatar: 'https://github.com/nihalgonsalves.png', + name: 'Nihal Gonsalves', + title: 'Senior Software Engineer', + links: [{ icon: 'github', link: 'https://github.com/nihalgonsalves' }] + } +] diff --git a/docs/team.md b/docs/team.md new file mode 100644 index 00000000000000..fdd2cb822e9afa --- /dev/null +++ b/docs/team.md @@ -0,0 +1,36 @@ +--- +layout: page +title: Meet the Team +description: The development of Vite is guided by an international team. +--- + + + + + + + + + + + + + + + From 26bcdc3186807bb6f3817119cd7e64ae8308a057 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 12 Jul 2022 01:27:01 +0800 Subject: [PATCH 032/716] feat: expose server resolved urls (#8986) --- docs/guide/migration.md | 2 - .../vite/src/node/__tests__/utils.spec.ts | 15 +-- packages/vite/src/node/index.ts | 3 +- packages/vite/src/node/logger.ts | 109 +++--------------- packages/vite/src/node/preview.ts | 25 +++- packages/vite/src/node/server/index.ts | 54 ++++++--- packages/vite/src/node/utils.ts | 63 +++++++++- 7 files changed, 142 insertions(+), 129 deletions(-) diff --git a/docs/guide/migration.md b/docs/guide/migration.md index 4b0d492c026fea..8047c03c198c80 100644 --- a/docs/guide/migration.md +++ b/docs/guide/migration.md @@ -139,8 +139,6 @@ Also there are other breaking changes which only affect few users. - `server.force` option was removed in favor of `optimizeDeps.force` option. - [[#8550] fix: dont handle sigterm in middleware mode](https://github.com/vitejs/vite/pull/8550) - When running in middleware mode, Vite no longer kills process on `SIGTERM`. -- [[#8647] feat: print resolved address for localhost](https://github.com/vitejs/vite/pull/8647) - - `server.printUrls` and `previewServer.printUrls` are now async ## Migration from v1 diff --git a/packages/vite/src/node/__tests__/utils.spec.ts b/packages/vite/src/node/__tests__/utils.spec.ts index a4ffd2b7c917be..51990edf709da2 100644 --- a/packages/vite/src/node/__tests__/utils.spec.ts +++ b/packages/vite/src/node/__tests__/utils.spec.ts @@ -56,8 +56,7 @@ describe('resolveHostname', () => { expect(await resolveHostname(undefined)).toEqual({ host: 'localhost', - name: resolved ?? 'localhost', - implicit: true + name: resolved ?? 'localhost' }) }) @@ -66,24 +65,21 @@ describe('resolveHostname', () => { expect(await resolveHostname('localhost')).toEqual({ host: 'localhost', - name: resolved ?? 'localhost', - implicit: false + name: resolved ?? 'localhost' }) }) test('accepts 0.0.0.0', async () => { expect(await resolveHostname('0.0.0.0')).toEqual({ host: '0.0.0.0', - name: 'localhost', - implicit: false + name: 'localhost' }) }) test('accepts ::', async () => { expect(await resolveHostname('::')).toEqual({ host: '::', - name: 'localhost', - implicit: false + name: 'localhost' }) }) @@ -92,8 +88,7 @@ describe('resolveHostname', () => { await resolveHostname('0000:0000:0000:0000:0000:0000:0000:0000') ).toEqual({ host: '0000:0000:0000:0000:0000:0000:0000:0000', - name: 'localhost', - implicit: false + name: 'localhost' }) }) }) diff --git a/packages/vite/src/node/index.ts b/packages/vite/src/node/index.ts index bdac099dd214e6..7dfada6825780b 100644 --- a/packages/vite/src/node/index.ts +++ b/packages/vite/src/node/index.ts @@ -17,7 +17,8 @@ export type { ServerOptions, FileSystemServeOptions, ServerHook, - ResolvedServerOptions + ResolvedServerOptions, + ResolvedServerUrls } from './server' export type { BuildOptions, diff --git a/packages/vite/src/node/logger.ts b/packages/vite/src/node/logger.ts index 597de2358f43e3..d0c5d29334c023 100644 --- a/packages/vite/src/node/logger.ts +++ b/packages/vite/src/node/logger.ts @@ -1,15 +1,9 @@ /* eslint no-console: 0 */ -import type { AddressInfo, Server } from 'node:net' -import os from 'node:os' import readline from 'readline' import colors from 'picocolors' import type { RollupError } from 'rollup' -import type { CommonServerOptions } from './http' -import type { Hostname } from './utils' -import { resolveHostname } from './utils' -import { loopbackHosts } from './constants' -import type { ResolvedConfig } from '.' +import type { ResolvedServerUrls } from './server' export type LogType = 'error' | 'warn' | 'info' export type LogLevel = LogType | 'silent' @@ -145,94 +139,23 @@ export function createLogger( return logger } -export async function printCommonServerUrls( - server: Server, - options: CommonServerOptions, - config: ResolvedConfig -): Promise { - const address = server.address() - const isAddressInfo = (x: any): x is AddressInfo => x?.address - if (isAddressInfo(address)) { - const hostname = await resolveHostname(options.host) - const protocol = options.https ? 'https' : 'http' - const base = config.base === './' || config.base === '' ? '/' : config.base - printServerUrls(hostname, protocol, address.port, base, config.logger.info) - } -} - -function printServerUrls( - hostname: Hostname, - protocol: string, - port: number, - base: string, +export function printServerUrls( + urls: ResolvedServerUrls, + optionsHost: string | boolean | undefined, info: Logger['info'] ): void { - const urls: Array<{ label: string; url: string; disabled?: boolean }> = [] - const notes: Array<{ label: string; message: string }> = [] - - if (hostname.host && loopbackHosts.has(hostname.host)) { - let hostnameName = hostname.name - if ( - hostnameName === '::1' || - hostnameName === '0000:0000:0000:0000:0000:0000:0000:0001' - ) { - hostnameName = `[${hostnameName}]` - } - - urls.push({ - label: 'Local', - url: colors.cyan( - `${protocol}://${hostnameName}:${colors.bold(port)}${base}` - ) - }) - - if (hostname.implicit) { - urls.push({ - label: 'Network', - url: `use ${colors.white(colors.bold('--host'))} to expose`, - disabled: true - }) - } - } else { - Object.values(os.networkInterfaces()) - .flatMap((nInterface) => nInterface ?? []) - .filter( - (detail) => - detail && - detail.address && - // Node < v18 - ((typeof detail.family === 'string' && detail.family === 'IPv4') || - // Node >= v18 - (typeof detail.family === 'number' && detail.family === 4)) - ) - .forEach((detail) => { - const host = detail.address.replace('127.0.0.1', hostname.name) - const url = `${protocol}://${host}:${colors.bold(port)}${base}` - const label = detail.address.includes('127.0.0.1') ? 'Local' : 'Network' - - urls.push({ label, url: colors.cyan(url) }) - }) + const colorUrl = (url: string) => + colors.cyan(url.replace(/:(\d+)\//, (_, port) => `:${colors.bold(port)}/`)) + for (const url of urls.local) { + info(` ${colors.green('➜')} ${colors.bold('Local')}: ${colorUrl(url)}`) } - - const length = Math.max( - ...[...urls, ...notes].map(({ label }) => label.length) - ) - const print = ( - iconWithColor: string, - label: string, - messageWithColor: string, - disabled?: boolean - ) => { - const message = ` ${iconWithColor} ${ - label ? colors.bold(label) + ':' : ' ' - } ${' '.repeat(length - label.length)}${messageWithColor}` - info(disabled ? colors.dim(message) : message) + for (const url of urls.network) { + 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` + info( + colors.dim(` ${colors.green('➜')} ${colors.bold('Network')}: ${note}`) + ) } - - urls.forEach(({ label, url: text, disabled }) => { - print(colors.green('➜'), label, text, disabled) - }) - notes.forEach(({ label, message: text }) => { - print(colors.white('❖'), label, text) - }) } diff --git a/packages/vite/src/node/preview.ts b/packages/vite/src/node/preview.ts index 5820a3bc6cdb91..7b2cc4bb1729b4 100644 --- a/packages/vite/src/node/preview.ts +++ b/packages/vite/src/node/preview.ts @@ -4,14 +4,14 @@ import sirv from 'sirv' import connect from 'connect' import type { Connect } from 'types/connect' import corsMiddleware from 'cors' -import type { ResolvedServerOptions } from './server' +import type { ResolvedServerOptions, ResolvedServerUrls } from './server' import type { CommonServerOptions } from './http' import { httpServerStart, resolveHttpServer, resolveHttpsConfig } from './http' import { openBrowser } from './server/openBrowser' import compression from './server/middlewares/compression' import { proxyMiddleware } from './server/middlewares/proxy' -import { resolveHostname } from './utils' -import { printCommonServerUrls } from './logger' +import { resolveHostname, resolveServerUrls } from './utils' +import { printServerUrls } from './logger' import { resolveConfig } from '.' import type { InlineConfig, ResolvedConfig } from '.' @@ -47,10 +47,16 @@ export interface PreviewServer { * native Node http server instance */ httpServer: http.Server + /** + * The resolved urls Vite prints on the + * + * @experimental + */ + resolvedUrls: ResolvedServerUrls /** * Print server urls */ - printUrls: () => Promise + printUrls(): void } export type PreviewServerHook = (server: { @@ -127,6 +133,12 @@ export async function preview( logger }) + const resolvedUrls = await resolveServerUrls( + httpServer, + config.preview, + config + ) + if (options.open) { const path = typeof options.open === 'string' ? options.open : previewBase openBrowser( @@ -141,8 +153,9 @@ export async function preview( return { config, httpServer, - async printUrls() { - await printCommonServerUrls(httpServer, config.preview, config) + resolvedUrls, + printUrls() { + printServerUrls(resolvedUrls, options.host, logger.info) } } } diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts index 8fe8f00b6d8165..a8222be65ae7b2 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -19,7 +19,8 @@ import { isParentDirectory, mergeConfig, normalizePath, - resolveHostname + resolveHostname, + resolveServerUrls } from '../utils' import { ssrLoadModule } from '../ssr/ssrModuleLoader' import { cjsSsrResolveExternals } from '../ssr/ssrExternal' @@ -35,7 +36,7 @@ import { } from '../optimizer' import { CLIENT_DIR } from '../constants' import type { Logger } from '../logger' -import { printCommonServerUrls } from '../logger' +import { printServerUrls } from '../logger' import { invalidatePackageData } from '../packages' import type { PluginContainer } from './pluginContainer' import { createPluginContainer } from './pluginContainer' @@ -184,6 +185,13 @@ export interface ViteDevServer { * and hmr state. */ moduleGraph: ModuleGraph + /** + * The resolved urls Vite prints on the CLI. null in middleware mode or + * before `server.listen` is called. + * + * @experimental + */ + resolvedUrls: ResolvedServerUrls | null /** * Programmatically resolve, load and transform a URL and get the result * without going through the http request pipeline. @@ -234,7 +242,7 @@ export interface ViteDevServer { /** * Print server urls */ - printUrls(): Promise + printUrls(): void /** * Restart the server. * @@ -271,6 +279,11 @@ export interface ViteDevServer { > } +export interface ResolvedServerUrls { + local: string[] + network: string[] +} + export async function createServer( inlineConfig: InlineConfig = {} ): Promise { @@ -319,6 +332,7 @@ export async function createServer( pluginContainer: container, ws, moduleGraph, + resolvedUrls: null, // will be set on listen ssrTransform(code: string, inMap: SourceMap | null, url: string) { return ssrTransform(code, inMap, url, code, { json: { stringify: server.config.json?.stringify } @@ -350,8 +364,16 @@ export async function createServer( ssrRewriteStacktrace(stack: string) { return ssrRewriteStacktrace(stack, moduleGraph) }, - listen(port?: number, isRestart?: boolean) { - return startServer(server, port, isRestart) + async listen(port?: number, isRestart?: boolean) { + await startServer(server, port, isRestart) + if (httpServer) { + server.resolvedUrls = await resolveServerUrls( + httpServer, + config.server, + config + ) + } + return server }, async close() { if (!middlewareMode) { @@ -360,19 +382,27 @@ export async function createServer( process.stdin.off('end', exitProcess) } } - await Promise.all([ watcher.close(), ws.close(), container.close(), closeHttpServer() ]) + server.resolvedUrls = null }, - async printUrls() { - if (httpServer) { - await printCommonServerUrls(httpServer, config.server, config) - } else { + printUrls() { + if (server.resolvedUrls) { + printServerUrls( + server.resolvedUrls, + serverConfig.host, + config.logger.info + ) + } else if (middlewareMode) { throw new Error('cannot print server URLs in middleware mode.') + } else { + throw new Error( + 'cannot print server URLs before server.listen is called.' + ) } }, async restart(forceOptimize?: boolean) { @@ -572,7 +602,7 @@ async function startServer( server: ViteDevServer, inlinePort?: number, isRestart: boolean = false -): Promise { +): Promise { const httpServer = server.httpServer if (!httpServer) { throw new Error('Cannot call server.listen in middleware mode.') @@ -622,8 +652,6 @@ async function startServer( server.config.logger ) } - - return server } function createServerCloseFn(server: http.Server | null) { diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index 0b0c205d80b9e4..1d647e366a3be2 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -7,6 +7,7 @@ import { URL, URLSearchParams, pathToFileURL } from 'node:url' import { builtinModules, createRequire } from 'node:module' import { promises as dns } from 'node:dns' import { performance } from 'node:perf_hooks' +import type { AddressInfo, Server } from 'node:net' import resolve from 'resolve' import type { FSWatcher } from 'chokidar' import remapping from '@ampproject/remapping' @@ -26,10 +27,13 @@ import { FS_PREFIX, OPTIMIZABLE_ENTRY_RE, VALID_ID_PREFIX, + loopbackHosts, wildcardHosts } from './constants' import type { DepOptimizationConfig } from './optimizer' -import type { ResolvedConfig } from '.' +import type { ResolvedConfig } from './config' +import type { ResolvedServerUrls } from './server' +import type { CommonServerOptions } from '.' /** * Inlined to keep `@rollup/pluginutils` in devDependencies @@ -770,8 +774,6 @@ export interface Hostname { host: string | undefined /** resolve to localhost when possible */ name: string - /** if it is using the default behavior */ - implicit: boolean } export async function resolveHostname( @@ -799,7 +801,60 @@ export async function resolveHostname( } } - return { host, name, implicit: optionsHost === undefined } + return { host, name } +} + +export async function resolveServerUrls( + server: Server, + options: CommonServerOptions, + config: ResolvedConfig +): Promise { + const address = server.address() + + const isAddressInfo = (x: any): x is AddressInfo => x?.address + if (!isAddressInfo(address)) { + return { local: [], network: [] } + } + + const local: string[] = [] + const network: string[] = [] + const hostname = await resolveHostname(options.host) + const protocol = options.https ? 'https' : 'http' + const port = address.port + const base = config.base === './' || config.base === '' ? '/' : config.base + + if (hostname.host && loopbackHosts.has(hostname.host)) { + let hostnameName = hostname.name + if ( + hostnameName === '::1' || + hostnameName === '0000:0000:0000:0000:0000:0000:0000:0001' + ) { + hostnameName = `[${hostnameName}]` + } + local.push(`${protocol}://${hostnameName}:${port}${base}`) + } else { + Object.values(os.networkInterfaces()) + .flatMap((nInterface) => nInterface ?? []) + .filter( + (detail) => + detail && + detail.address && + // Node < v18 + ((typeof detail.family === 'string' && detail.family === 'IPv4') || + // Node >= v18 + (typeof detail.family === 'number' && detail.family === 4)) + ) + .forEach((detail) => { + const host = detail.address.replace('127.0.0.1', hostname.name) + const url = `${protocol}://${host}:${port}${base}` + if (detail.address.includes('127.0.0.1')) { + local.push(url) + } else { + network.push(url) + } + }) + } + return { local, network } } export function arraify(target: T | T[]): T[] { From e685de39e54123fd86928828fa908ede31a23fa8 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Mon, 11 Jul 2022 20:27:03 +0200 Subject: [PATCH 033/716] release: v3.0.0-beta.10 --- packages/vite/CHANGELOG.md | 14 ++++++++++++++ packages/vite/package.json | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index c5d867dbbc5ac9..a0bd36deb61ebe 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,17 @@ +## 3.0.0-beta.10 (2022-07-11) + +* feat: expose server resolved urls (#8986) ([26bcdc3](https://github.com/vitejs/vite/commit/26bcdc3)), closes [#8986](https://github.com/vitejs/vite/issues/8986) +* feat: show ws connection error (#9007) ([da7c3ae](https://github.com/vitejs/vite/commit/da7c3ae)), closes [#9007](https://github.com/vitejs/vite/issues/9007) +* chore: fix test optimizeDeps at build time flag (#9004) ([9363872](https://github.com/vitejs/vite/commit/9363872)), closes [#9004](https://github.com/vitejs/vite/issues/9004) +* chore: ignore ts warning (#9015) ([e2a6bf4](https://github.com/vitejs/vite/commit/e2a6bf4)), closes [#9015](https://github.com/vitejs/vite/issues/9015) +* chore: scanner after server listen (#9020) ([53799e1](https://github.com/vitejs/vite/commit/53799e1)), closes [#9020](https://github.com/vitejs/vite/issues/9020) +* chore: v3.0.0-beta.9 release notes (#8996) ([2a9bc6d](https://github.com/vitejs/vite/commit/2a9bc6d)), closes [#8996](https://github.com/vitejs/vite/issues/8996) +* chore(deps): update all non-major dependencies (#9022) ([6342140](https://github.com/vitejs/vite/commit/6342140)), closes [#9022](https://github.com/vitejs/vite/issues/9022) +* fix(ssr): sourcemap content (fixes #8657) (#8997) ([aff4544](https://github.com/vitejs/vite/commit/aff4544)), closes [#8657](https://github.com/vitejs/vite/issues/8657) [#8997](https://github.com/vitejs/vite/issues/8997) +* docs: update api-javascript (#8999) ([05b17df](https://github.com/vitejs/vite/commit/05b17df)), closes [#8999](https://github.com/vitejs/vite/issues/8999) + + + ## 3.0.0-beta.9 (2022-07-08) ### Main Changes diff --git a/packages/vite/package.json b/packages/vite/package.json index 309faecdd944c3..9b9427b8b55f4f 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "vite", - "version": "3.0.0-beta.9", + "version": "3.0.0-beta.10", "type": "module", "license": "MIT", "author": "Evan You", From e37269376d915c943bd9073081ad2ab3d1c0da1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 12 Jul 2022 14:30:00 +0900 Subject: [PATCH 034/716] fix: reload on restart with middleware mode (fixes #9038) (#9040) --- packages/vite/src/client/client.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/client/client.ts b/packages/vite/src/client/client.ts index cee0e1e9f066ea..350b2f537d139c 100644 --- a/packages/vite/src/client/client.ts +++ b/packages/vite/src/client/client.ts @@ -294,7 +294,8 @@ async function waitForSuccessfulPing(hostAndPath: string, ms = 1000) { try { // A fetch on a websocket URL will return a successful promise with status 400, // but will reject a networking error. - await fetch(`${location.protocol}//${hostAndPath}`) + // When running on middleware mode, it returns status 426, and an cors error happens if mode is not no-cors + await fetch(`${location.protocol}//${hostAndPath}`, { mode: 'no-cors' }) break } catch (e) { // wait ms before attempting to ping again From 45b8b532fa2a1a91c8557b779b7ea2d5f10b672c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 12 Jul 2022 14:31:17 +0900 Subject: [PATCH 035/716] fix: remove ws is already closed error (#9041) --- packages/vite/src/client/client.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/client/client.ts b/packages/vite/src/client/client.ts index 350b2f537d139c..b2a62f0dd98eca 100644 --- a/packages/vite/src/client/client.ts +++ b/packages/vite/src/client/client.ts @@ -134,7 +134,11 @@ async function handleMessage(payload: HMRPayload) { sendMessageBuffer() // proxy(nginx, docker) hmr ws maybe caused timeout, // so send ping package let ws keep alive. - setInterval(() => socket.send('{"type":"ping"}'), __HMR_TIMEOUT__) + setInterval(() => { + if (socket.readyState === socket.OPEN) { + socket.send('{"type":"ping"}') + } + }, __HMR_TIMEOUT__) break case 'update': notifyListeners('vite:beforeUpdate', payload) From 8c528673ed731cdac9882cbf502bc40b382d5b65 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 12 Jul 2022 16:42:43 +0800 Subject: [PATCH 036/716] docs: update ssr (#8987) --- docs/config/ssr-options.md | 10 +++------- docs/guide/ssr.md | 4 ---- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/docs/config/ssr-options.md b/docs/config/ssr-options.md index 83f90b02c92a37..a9a2fa9fdd8a4d 100644 --- a/docs/config/ssr-options.md +++ b/docs/config/ssr-options.md @@ -1,20 +1,16 @@ # SSR Options -- **Related:** [SSR Externals](/guide/ssr#ssr-externals) - -:::warning Experimental -SSR options may be adjusted in minor releases. -::: - ## ssr.external - **Type:** `string[]` +- **Related:** [SSR Externals](/guide/ssr#ssr-externals) Force externalize dependencies for SSR. ## ssr.noExternal - **Type:** `string | RegExp | (string | RegExp)[] | true` +- **Related:** [SSR Externals](/guide/ssr#ssr-externals) Prevent listed dependencies from being externalized for SSR. If `true`, no dependencies are externalized. @@ -27,8 +23,8 @@ Build target for the SSR server. ## ssr.format +- **Experimental** - **Type:** `'esm' | 'cjs'` - **Default:** `esm` -- **Experimental** Build format for the SSR server. Since Vite v3 the SSR build generates ESM by default. `'cjs'` can be selected to generate a CJS build, but it isn't recommended. The option is left marked as experimental to give users more time to update to ESM. CJS builds requires complex externalization heuristics that aren't present in the ESM format. diff --git a/docs/guide/ssr.md b/docs/guide/ssr.md index 535feaf36931b7..f9133a254577b2 100644 --- a/docs/guide/ssr.md +++ b/docs/guide/ssr.md @@ -1,9 +1,5 @@ # Server-Side Rendering -:::warning Experimental -SSR support is still experimental and you may encounter bugs and unsupported use cases. Proceed at your own risk. -::: - :::tip Note SSR specifically refers to front-end frameworks (for example React, Preact, Vue, and Svelte) that support running the same application in Node.js, pre-rendering it to HTML, and finally hydrating it on the client. If you are looking for integration with traditional server-side frameworks, check out the [Backend Integration guide](./backend-integration) instead. From f020066e476c33f100a1881578c9dda051929dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 12 Jul 2022 23:19:36 +0900 Subject: [PATCH 037/716] chore: include 2.9.13-2.9.14 changelog in main (#9053) --- packages/vite/CHANGELOG.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index a0bd36deb61ebe..9c5449c24000e9 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -35,11 +35,11 @@ - [Build Advanced Base Options](https://main.vitejs.dev/guide/build.html#advanced-base-options) - [HMR Partial Accept](https://github.com/vitejs/vite/pull/7324) - Vite now allows the use of [esbuild to optimize dependencies during build time](https://main.vitejs.dev/guide/migration.html#using-esbuild-deps-optimization-at-build-time) avoiding the need of [`@rollupjs/plugin-commonjs`](https://github.com/rollup/plugins/tree/master/packages/commonjs), removing one of the difference id dependency handling between dev and prod. -- Bundle size reduction +- Bundle size reduction - Terser is now an optional dependency. If you use `build.minify: 'terser'`, you'll need to install it (`npm add -D terser`) - node-forge moved out of the monorepo to [@vitejs/plugin-basic-ssl](https://main.vitejs.dev/guide/migration.html#automatic-https-certificate-generation) -- Options that were [already deprecated in v2](https://main.vitejs.dev/guide/migration.html#config-options-changes) have been removed. - +- Options that were [already deprecated in v2](https://main.vitejs.dev/guide/migration.html#config-options-changes) have been removed. + > **Note** > Before updating, check out the [migration guide from v2](https://main.vitejs.dev/guide/migration) @@ -349,6 +349,22 @@ See [3.0.0-alpha.0 changelog](https://github.com/vitejs/vite/blob/v3.0.0-alpha.0 +## 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) From 7662998d90f628d148fdffd5913e633fe0fb0978 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Wed, 13 Jul 2022 17:05:27 +0800 Subject: [PATCH 038/716] fix: prevent production node_env in serve (#9066) --- packages/vite/src/node/config.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index d6b32d4a52ada5..3ece9213dab76a 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -360,6 +360,10 @@ export async function resolveConfig( if (mode === 'production') { process.env.NODE_ENV = 'production' } + // production env would not work in serve, fallback to development + if (command === 'serve' && process.env.NODE_ENV === 'production') { + process.env.NODE_ENV = 'development' + } const configEnv = { mode, From 5340005fc01ae536a077103f64b92f6e51bcec34 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Wed, 13 Jul 2022 17:15:08 +0800 Subject: [PATCH 039/716] docs: fix link a11y (#9055) --- docs/.vitepress/theme/styles/vars.css | 34 ++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/.vitepress/theme/styles/vars.css b/docs/.vitepress/theme/styles/vars.css index feacdfcd2dfd4d..8022a97bda0903 100644 --- a/docs/.vitepress/theme/styles/vars.css +++ b/docs/.vitepress/theme/styles/vars.css @@ -6,6 +6,7 @@ --vp-c-brand: #646cff; --vp-c-brand-light: #747bff; --vp-c-brand-lighter: #9499ff; + --vp-c-brand-lightest: #bcc0ff; --vp-c-brand-dark: #535bf2; --vp-c-brand-darker: #454ce1; --vp-c-brand-dimm: rgba(100, 108, 255, 0.08); @@ -71,7 +72,7 @@ .dark { --vp-custom-block-tip-border: var(--vp-c-brand); - --vp-custom-block-tip-text: var(--vp-c-brand-lighter); + --vp-custom-block-tip-text: var(--vp-c-brand-lightest); --vp-custom-block-tip-bg: var(--vp-c-brand-dimm); } @@ -82,3 +83,34 @@ .DocSearch { --docsearch-primary-color: var(--vp-c-brand) !important; } + +/** + * VitePress: Custom fix + * -------------------------------------------------------------------------- */ + +/* + Use lighter colors for links in dark mode for a11y. + Also specify some classes twice to have higher specificity + over scoped class data attribute. +*/ +.dark .vp-doc a, +.dark .vp-doc a > code, +.dark .VPNavBarMenuLink.VPNavBarMenuLink:hover, +.dark .VPNavBarMenuLink.VPNavBarMenuLink.active, +.dark .link.link:hover, +.dark .link.link.active, +.dark .edit-link-button.edit-link-button, +.dark .pager-link .title { + color: var(--vp-c-brand-lighter); +} + +.dark .vp-doc a:hover, +.dark .vp-doc a > code:hover { + color: var(--vp-c-brand-lightest); + opacity: 1; +} + +/* Transition by color instead of opacity */ +.dark .vp-doc .custom-block a { + transition: color 0.25s; +} From 63917913f7bd4759fdee8c7d105e07f20f4ec3eb Mon Sep 17 00:00:00 2001 From: patak Date: Wed, 13 Jul 2022 12:09:02 +0200 Subject: [PATCH 040/716] chore: v3 announcement blog post (#9037) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Haoqun Jiang Co-authored-by: 翠 / green Co-authored-by: Bjorn Lu Co-authored-by: Anthony Fu --- docs/.vitepress/config.ts | 4 +- docs/blog/announcing-vite3.md | 265 +++++++++++++++++++++ docs/images/lit.svg | 1 + docs/images/preact.svg | 1 + docs/images/react.svg | 1 + docs/images/svelte.svg | 1 + docs/images/v3-docs.png | Bin 0 -> 236807 bytes docs/images/v3-new-open-issues-and-PRs.png | Bin 0 -> 74456 bytes docs/images/v3-open-issues-and-PRs.png | Bin 0 -> 78395 bytes docs/images/vite-3-cold-start.svg | 16 ++ docs/images/vite.svg | 15 ++ docs/images/vue.svg | 1 + docs/public/og-image-announcing-vite3.png | Bin 0 -> 389821 bytes 13 files changed, 303 insertions(+), 2 deletions(-) create mode 100644 docs/blog/announcing-vite3.md create mode 100644 docs/images/lit.svg create mode 100644 docs/images/preact.svg create mode 100644 docs/images/react.svg create mode 100644 docs/images/svelte.svg create mode 100644 docs/images/v3-docs.png create mode 100644 docs/images/v3-new-open-issues-and-PRs.png create mode 100644 docs/images/v3-open-issues-and-PRs.png create mode 100644 docs/images/vite-3-cold-start.svg create mode 100644 docs/images/vite.svg create mode 100644 docs/images/vue.svg create mode 100644 docs/public/og-image-announcing-vite3.png diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 71ee79a150e015..20beb7c851088b 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,9 +1,9 @@ import { defineConfig } from 'vitepress' const ogDescription = 'Next Generation Frontend Tooling' -const ogImage = 'https://main.vitejs.dev/og-image.png' +const ogImage = 'https://vitejs.dev/og-image.png' const ogTitle = 'Vite' -const ogUrl = 'https://main.vitejs.dev' +const ogUrl = 'https://vitejs.dev' export default defineConfig({ title: 'Vite', diff --git a/docs/blog/announcing-vite3.md b/docs/blog/announcing-vite3.md new file mode 100644 index 00000000000000..c3455822364c58 --- /dev/null +++ b/docs/blog/announcing-vite3.md @@ -0,0 +1,265 @@ +--- +sidebar: false +head: + - - meta + - name: og:type + content: website + - - meta + - name: og:title + content: Announcing Vite 3 + - - meta + - name: og:image + content: https://vitejs.dev/og-image-announcing-vite3.png + - - meta + - name: og:url + content: https://vitejs.dev/blog/announcing-vite3 + - - meta + - name: twitter:description + content: Vite 3 Release Announcement + - - meta + - name: twitter:title + content: Announcing Vite 3 + - - meta + - name: twitter:card + content: summary_large_image + - - meta + - name: twitter:image + content: https://vitejs.dev/og-image-announcing-vite3.png + - - meta + - name: twitter:url + content: https://vitejs.dev/blog/announcing-vite3 +--- + +# Vite 3.0 is out! + +In February last year, [Evan You](https://twitter.com/youyuxi) released Vite 2. Since then, its adoption has grown non-stop, reaching more than 1 million npm downloads per week. A sprawling ecosystem rapidly formed after the release. Vite is powering a renewed innovation race in Web frameworks. [Nuxt 3](https://v3.nuxtjs.org/) uses Vite by default. [SvelteKit](https://kit.svelte.dev/), [Astro](https://astro.build/), [Hydrogen](https://hydrogen.shopify.dev/), and [SolidStart](https://docs.solidjs.com/start) are all built with Vite. [Laravel has now decided to use Vite by default](https://laravel.com/docs/9.x/vite). [Vite Ruby](https://vite-ruby.netlify.app/) shows how Vite can improve Rails DX. [Vitest](https://vitest.dev) is making strides as a Vite-native alternative to Jest. Vite is behind [Cypress](https://docs.cypress.io/guides/component-testing/writing-your-first-component-test) and [Playwright](https://playwright.dev/docs/test-components)'s new Component Testing features, Storybook has [Vite as an official builder](https://github.com/storybookjs/builder-vite). And [the list goes on](https://patak.dev/vite/ecosystem.html). Maintainers from most of these projects got involved in improving the Vite core itself, working closely with the Vite [team](https://vitejs.dev/team) and other contributors. + +Today, 16 months from the v2 launch we are happy to announce the release of Vite 3. We decided to release a new Vite major at least every year to align with [Node.js's EOL](https://nodejs.org/en/about/releases/), and take the opportunity to review Vite's API regularly with a short migration path for projects in the ecosystem. + +Quick links: + +- [Docs](/) +- [Migration Guide](/guide/migration) +- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#300-beta9-2022-07-08) + +If you are new to Vite, we recommend reading the [Why Vite Guide](https://vitejs.dev/guide/why.html). Then check out [the Getting Started](https://vitejs.dev/guide/getting-started) and [Features guide](https://vitejs.dev/guide/features) to see what Vite provides out of the box. As usual, contributions are welcome at [GitHub](https://github.com/vitejs/vite). More than [600 collaborators](https://github.com/vitejs/vite/graphs/contributors) have helped improve Vite so far. Follow the updates on [Twitter](https://twitter.com/vite_js), or join discussions with other Vite users on our [Discord chat server](http://chat.vitejs.dev/). + +## New Documentation + +Go to [vitejs.dev](https://vitejs.dev) to enjoy the new v3 docs. Vite is now using the new [VitePress](https://vitepress.vuejs.org) default theme, with a stunning dark mode between other features. + +[![Vite documentation frontpage](../images/v3-docs.png)](https://vitejs.dev) + +Several projects in the ecosystem have already migrated to it (see [Vitest](https://vitest.dev), [vite-plugin-pwa](https://vite-plugin-pwa.netlify.app/), and [VitePress](https://vitepress.vuejs.org/) itself). + +If you need to access the Vite 2 docs, they will remain online at [v2.vitejs.dev](https://v2.vitejs.dev). There is also a new [main.vitejs.dev](https://main.vitejs.dev) subdomain, where each commit to Vite’s main branch is auto deployed. This is useful when testing beta versions or contributing to the core’s development. + +There is also now an official Spanish translation, that has been added to the previous Chinese and Japanese translations: + +- [简体中文](https://cn.vitejs.dev/) +- [日本語](https://ja.vitejs.dev/) +- [Español](https://es.vitejs.dev/) + +## Create Vite Starter Templates + +[create-vite](/guide/#trying-vite-online) templates have been a great tool to quickly test Vite with your favorite framework. In Vite 3, all of the templates got a new theme in line with the new docs. Open them online and start playing with Vite 3 now: + + + + + +The theme is now shared by all templates. This should help better convey the scope for these starters as minimal templates to get started with Vite. For more complete solutions including linting, testing setup, and other features, there are official Vite-powered templates for some frameworks like [create-vue](https://github.com/vuejs/create-vue) and [create-svelte](https://github.com/sveltejs/kit). There is a community-maintained list of templates at [Awesome Vite](https://github.com/vitejs/awesome-vite#templates). + +## Dev Improvements + +### Vite CLI + +
+  VITE v3.0.0  ready in 320 ms
+
+    Local:   http://127.0.0.1:5173/
+    Network: use --host to expose
+
+ +Apart from the CLI’s aesthetics improvements, you’ll notice that the default dev server port is now 5173 and the preview server listening at 4173. This change ensures Vite will avoid collisions with other tools. + +### Improved WebSocket Connection Strategy + +One of the pain points of Vite 2 was configuring the server when running behind a proxy. Vite 3 changes the default connection scheme so it works out of the box in most scenarios. All these setups are now tested as part of the Vite Ecosystem CI through [`vite-setup-catalogue`](https://github.com/sapphi-red/vite-setup-catalogue). + +### Cold Start Improvements + +Vite now avoids full reload during cold start when imports are injected by plugins while crawling the initial statically imported modules ([#8869](https://github.com/vitejs/vite/issues/8869)). + +
+ Click to learn more + +In Vite 2.9, both the scanner and optimizer were run in the background. In the best scenario, where the scanner would find every dependency, no reload was needed in cold start. But if the scanner missed a dependency, a new optimization phase and then a reload were needed. Vite was able to avoid some of these reloads in v2.9, as we detected if the new optimized chunks were compatible with the ones the browser had. But if there was a common dep, the sub-chunks could change and a reload was required to avoid duplicated state. In Vite 3, the optimized deps aren't handed to the browser until the crawling of static imports is done. A quick optimization phase is issued if there is a missing dep (for example, injected by a plugin), and only then, the bundled deps are sent. So, a page reload is no longer needed for these cases. + +
+ +Two graphs comparing Vite 2.9 and Vite 3 optimization strategy + +### import.meta.glob + +`import.meta.glob` support was rewritten. Read about the new features in the [Glob Import Guide](/guide/features.html#glob-import): + +[Multiple Patterns](/guide/features.html#multiple-patterns) can be passed as an array + +```js +import.meta.glob(['./dir/*.js', './another/*.js']) +``` + +[Negative Patterns](/guide/features.html#negative-patterns) are now supported (prefixed with `!`) to ignore some specific files + +```js +import.meta.glob(['./dir/*.js', '!**/bar.js']) +``` + +[Named Imports](/guide/features.html#named-imports) can be specified to improve tree-shacking + +```js +import.meta.glob('./dir/*.js', { import: 'setup' }) +``` + +[Custom Queries](/guide/features.html#custom-queries) can be passed to attach metadata + +```js +import.meta.glob('./dir/*.js', { query: { custom: 'data' } }) +``` + +[Eager Imports](/guide/features.html#glob-import) is now passed as a flag + +```js +import.meta.glob('./dir/*.js', { eager: true }) +``` + +### Aligning WASM Import with Future Standards + +The WebAssembly import API has been revised to avoid collisions with future standards and to make it more flexible: + +```js +import init from './example.wasm?init' + +init().then((instance) => { + instance.exports.test() +}) +``` + +Learn more in the [WebAssembly guide](/guide/features.html#webassembly) + +## Build Improvements + +### ESM SSR Build by Default + +Most SSR frameworks in the ecosystem were already using ESM builds. So, Vite 3 makes ESM the default format for SSR builds. This allows us to streamline previous [SSR externalization heuristics](https://vitejs.dev/guide/ssr.html#ssr-externals), externalizing dependencies by default. + +### Improved Relative Base Support + +Vite 3 now properly supports relative base (using `base: ''`), allowing built assets to be deployed to different bases without re-building. This is useful when the base isn't known at build time, for example when deploying to content-addressable networks like [IPFS](https://ipfs.io/). + +## Experimental Features + +### Built Asset Paths fine-grained Control (Experimental) + +There are other deploy scenarios where this isn't enough. For example, if the generated hashed assets need to be deployed to a different CDN from the public files, then finer-grained control is required over path generation at build time. Vite 3 provides an experimental API to modify the built file paths. Check [Build Advanced Base Options](/guide/build.html#advanced-base-options) for more information. + +### Esbuild Deps Optimization at Build Time (Experimental) + +One of the main differences between dev and build time is how Vite handles dependencies. During build time, [`@rollupjs/plugin-commonjs`](https://github.com/rollup/plugins/tree/master/packages/commonjs) is used to allow importing CJS only dependencies (like React). When using the dev server, esbuild is used instead to pre-bundle and optimize dependencies, and an inline interop scheme is applied while transforming user code importing CJS deps. During the development of Vite 3, we introduced the changes needed to also allow the use of [esbuild to optimize dependencies during build time](/guide/migration.html#using-esbuild-deps-optimization-at-build-time). [`@rollupjs/plugin-commonjs`](https://github.com/rollup/plugins/tree/master/packages/commonjs) can then be avoided, making dev and build time work in the same way. + +Given that Rollup v3 will be out in the next months, and we're going to follow up with another Vite major, we've decided to make this mode optional to reduce v3 scope and give Vite and the ecosystem more time to work out possible issues with the new CJS interop approach during build time. Frameworks may switch to using esbuild deps optimization during build time by default at their own pace before Vite 4. + +### HMR Partial Accept (Experimental) + +There is opt-in support for [HMR Partial Accept](https://github.com/vitejs/vite/pull/7324). This feature could unlock finer-grained HMR for framework components that export several bindings in the same module. You can learn more at [the discussion for this proposal](https://github.com/vitejs/vite/discussions/7309). + +## Bundle Size Reduction + +Vite cares about its publish and install footprint; a fast installation of a new app is a feature. Vite bundles most of its dependencies and tries to use modern lightweight alternatives where possible. Continuing with this ongoing goal, Vite 3 publish size is 30% smaller than v2. + +| | Publish Size | Install Size | +| ----------- | :----------: | :----------: | +| Vite 2.9.14 | 4.38MB | 19.1MB | +| Vite 3.0.0 | 3.05MB | 17.8MB | +| Reduction | -30% | -7% | + +In part, this reduction was possible by making some dependencies that most users weren't needing optional. First, [Terser](https://github.com/terser/terser) is no longer installed by default. This dependency was no longer needed since we already made esbuild the default minifier for both JS and CSS in Vite 2. If you use `build.minify: 'terser'`, you'll need to install it (`npm add -D terser`). We also moved [node-forge](https://github.com/digitalbazaar/forge) out of the monorepo, implementing support for automatic https certificate generation as a new plugins: [`@vitejs/plugin-basic-ssl`](/guide/migration.html#automatic-https-certificate-generation). It is recommended creating secure certificates, so this feature didn't justify the added size of this dependency. + +## Bug Fixing + +A triaging marathon was spearheaded by [@bluwyoo](https://twitter.com/bluwyoo), [@sapphi_red](https://twitter.com/sapphi_red), that recently joined the Vite team. During the past three months, the Vite open issues were reduced from 770 to 400. And this dive was achieved while the newly open PRs were at an all-time high. + +[![Graph of open issues and pull requests in Vite](../images/v3-open-issues-and-PRs.png)](https://www.repotrends.com/vitejs/vite) + +[![Graph of new issues and pull requests in Vite](../images/v3-new-open-issues-and-PRs.png)](https://www.repotrends.com/vitejs/vite) + +## Compatibility Notes + +- Vite no longer supports Node.js 12, which reached its EOL. Node.js 14.18+ is now required. +- Vite is now published as ESM, with a CJS proxy to the ESM entry for compatibility. +- The Modern Browser Baseline now targets browsers which support the [native ES Modules](https://caniuse.com/es6-module), [native ESM dynamic import](https://caniuse.com/es6-module-dynamic-import), and [`import.meta`](https://caniuse.com/mdn-javascript_statements_import_meta) features. +- JS file extensions in SSR and library mode now use a valid extension (`js`, `mjs`, or `cjs`) for output JS entries and chunks based on their format and the package type. + +Learn more in the [Migration Guide](/guide/migration). + +## The Ecosystem is Ready for v3 + +We have worked closely with projects in the ecosystem to ensure that frameworks powered by Vite are ready for Vite 3. [vite-ecosystem-ci](https://github.com/vitejs/vite-ecosystem-ci) allows us to run the CI's from the leading players in the ecosystem against Vite's main branch and receive timely reports before introducing a regression. Today's release should soon be compatible with most projects using Vite. + +## Acknowledgments + +Vite 3 is the result of the aggregate effort of members of the [Vite Team](/team) working together with ecosystem project maintainers and other collaborators to Vite core. + +We want to thank everyone that have implemented features, and fixes, given feedback, and have been involved in Vite 3: + +- Vite team members [@youyuxi](https://twitter.com/youyuxi), [@patak_dev](https://twitter.com/patak_dev), [@antfu7](https://twitter.com/antfu7), [@bluwyoo](https://twitter.com/bluwyoo), [@sapphi_red](https://twitter.com/sapphi_red), [@haoqunjiang](https://twitter.com/haoqunjiang), [@poyoho](https://github.com/poyoho), [@Shini_92](https://twitter.com/Shini_92), and [@retropragma](https://twitter.com/retropragma). +- [@benmccann](https://github.com/benmccann), [@danielcroe](https://twitter.com/danielcroe), [@brillout](https://twitter.com/brillout), [@sheremet_va](https://twitter.com/sheremet_va), [@userquin](https://twitter.com/userquin), [@enzoinnocenzi](https://twitter.com/enzoinnocenzi), [@maximomussini](https://twitter.com/maximomussini), [@IanVanSchooten](https://twitter.com/IanVanSchooten), the [Astro team](https://astro.build/), and all other maintainers of frameworks and plugins in the ecosystem in that helped shape v3. +- [@dominikg](https://github.com/dominikg) for his work on vite-ecosystem-ci. +- [@rixo](https://github.com/rixo) for HMR Partial Accept support. +- [@KiaKing85](https://twitter.com/KiaKing85) for getting the theme ready for the Vite 3 release, and [@\_brc_dd](https://twitter.com/_brc_dd) for working on the VitePress internals. +- [@CodingWithCego](https://twitter.com/CodingWithCego) for the new Spanish translation, and [@ShenQingchuan](https://twitter.com/ShenQingchuan), [@hiro-lapis](https://github.com/hiro-lapis) and others in the Chinese and Japanese translations teams for keeping the translated docs up to date. + +We also want to thank individuals and companies sponsoring the Vite team, and companies investing in Vite development: some of [@antfu7](https://twitter.com/antfu7)'s work on Vite and the ecosystem is part of his job at [Nuxt Labs](https://nuxtlabs.com/), and [StackBlitz](https://stackblitz.com/) hired [@patak_dev](https://twitter.com/patak_dev) to work full time on Vite. + +## What's Next + +We'll take the following months to ensure a smooth transition for all the projects built on top of Vite. So the first minors will be focused on continuing our triaging efforts with a focus on newly opened issues. + +The Rollup team is [working on its next major](https://twitter.com/lukastaegert/status/1544186847399743488), to be released in the following months. Once the Rollup plugins ecosystem has time to update, we'll follow up with a new Vite major. This will give us another opportunity to introduce more significant changes this year, which we could take to stabilize some of the experimental features introduced in this release. + +If you are interested in helping improve Vite, the best way to get on board is to help with triaging issues. Join [our Discord](https://chat.vitejs.dev) and look for the `#contributing` channel. Or get involved in our `#docs`, `#help` others, or create plugins. We are just getting started. There are many open ideas to keep improving Vite's DX. diff --git a/docs/images/lit.svg b/docs/images/lit.svg new file mode 100644 index 00000000000000..4a9c1fe662ea4e --- /dev/null +++ b/docs/images/lit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/images/preact.svg b/docs/images/preact.svg new file mode 100644 index 00000000000000..908f17def0b5a4 --- /dev/null +++ b/docs/images/preact.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/images/react.svg b/docs/images/react.svg new file mode 100644 index 00000000000000..6c87de9bb33584 --- /dev/null +++ b/docs/images/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/images/svelte.svg b/docs/images/svelte.svg new file mode 100644 index 00000000000000..c5e08481f8aede --- /dev/null +++ b/docs/images/svelte.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/images/v3-docs.png b/docs/images/v3-docs.png new file mode 100644 index 0000000000000000000000000000000000000000..1198937195b60570a5ff4b51d1af6752fd72e8fc GIT binary patch literal 236807 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

&vu;O`Tk3iAN|EYQ}ZiA6N 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 QgZ-&L(owEcv)bgi)^q1B z^j*0??h(Hj!+h@Cf5#dsIv~JP(TAMkBoc}1xqSGC$tMD`{E`|HiWZN!#l>Wd#X#U^ z(po|<^tnY9IR#(edB`vN%1A`YP*_%<&GM_g4L2!6sZD<)^cFRl^t zeTr8?UH*-ih>Vf6vh@=|Ij-l5k}u3&YB=$TsXUi5WO^*X$}6pC;IE+X`&>#-Ue8Ay z_?AyhO+Z>(>ZOG^$PBZ6SqVtL0jk zJ~=h;djWARL2(@wBM3;#?UjOyh@7#qQJ}26Bj+>FGf8bF1OLwMepvl^wFELrum#>|KfI6XZ zlOO{RWwih$RX;^lA2ltQys?k6Ih2X@*&FM~H+IqLI`0+V2B=!S$6$^mL11mG2swTC zkar`(5=Jv~3nwS|XA<%%nh;fuz?a%iyLmWORFZHYkAo?Ciez`L_C| zwo8FDwGFM0u~<7-KTFFmgF|CV8vdxQZC7uY=nGX-?=(ZVL__0vhwyS;gD43(6R&^| zmJVK!cM;&XsXuEQ-CV0Dr)D*6Lq8>?nFW0LQCZ6)^0KJ3%GBD`_CrxZ%9n`P&sIVC zy#qrz1;urZzg$1ndBitm?$?Et{Z_Uca1i!d(@x_TUp47<;|22N2m&-?wyS0}482(?+zM^|0 zTe`;pPQQ%(m}iyT;s_{Jb}9VqF(3}uW@TkPFwqjCjO(aZMNa${N2bSONT$doa#z8L zMeoT^!GD9>gRTSONRK9-y7BpcO=)?P%w60EvYxDsIpLq~l;OZch)m!eax2|OX03!W z(^g$?jxzJq%`~5pe1+tbaIbifh3Rs}Hg*<^DQzcTcc>+6?DKd4Y$~y*K;v}mH8m+q@%^sesAdx)3-n=@I zci3DR%2wnT^h*HQIE9wVx5_8a^Q(#s3+sY)H@1;6)c9w5V@1el8pmNKXS5j+?8QmC zAITP7Fe(U&%<+kSg_pV+#Rby^_EdbPI>oBm!c;348S6Z%!14soO(6p~fy_BGU?VR{ zfr_i*7YZTw?;e&>l~V*rTW8&tRN^*E{NCI8RnZTxT=?O`1&js1Qr&D+$$Y`@mYCD} zDEA6il*Ya8i;^a+#uuk7zF(=cO01Fr z571|m7xtP#GY1~w=&fgf47Gw0>43k8J*{y-wcF==z&V$AKOQke#e#yMhbJCVg0oKR z0|Y}Vog~!xn^nr@5bljYiHw~d_~M;IwdLa7-!iv_FCq1gj1;XSoU_V=!QTS!uQtSa zK4`;gKjiMjlYu>u{#8``3e-abF@{q_>w3^vXJx<+rQE|00XnOSrK~Kwv1$bk2SFev z-Y*uQp35xU6^o}m%^H50E!*g-^?Fw716j~f48w*m%u`}6_LalsVr|djt{U*Ka@Oku zWm~&%GKE~pVCza1f*~4k{&N&bZ)lx@%?ckN!+A+R`TX6c+rr32{WAbQaecz|fz9K_ zdbzSP#a)?S$N&Zh5Q-8tI|oA>^2cAe=+}6V8Gms!Gzs2(*^@If0g2x=&tn0%mIG#LM_!y5-b3F>> zBC~NKgCpRU{fTJK6}|)EwG%!Hcb2>Q|IY+@F9K_OR?uQbly&0CH&)s#b(elG5YuY! zEa-BvLML9xqgcTQ_xCVIQl?)B!to)qu**3P`~L`X`x$rc6Z@FChfQQoz(=JvqJfXE zRDNc4bKwt+&OD$oc3-zTxd^?gR!;jR?85T7r}7UYg6==0|9X=?;URl=xSX03wYAhj z)CB4>oipc}Y!g==l_w{<;Uh*x($R&)hXS=11lx92ggFJg`7`i~1_?cDRdeobE|fok)6 zSFn~NEKiEJ12H3~U|BY;8wPg6 z7yS94Lo%T=(CKhz0cNmTL0nuEs%Q3mPMz73a#JiLaiiw;5T^czG=nQ_^^J;0yEVI5 z`C4Y>pm?2v5<^xVOvl6D-S4Rwb52_N3iGa?wDr1)7m*lz-(?BJNWOg0`_#8z+p<<- z>5;q!DTg7*`41D@Ud7NJfc-DDPDQu)qX>RB?M}< z`1~u-rYmkn&qSnrasA+BBrJlOZ@UJ?rFx{3cOYzCBz5q4a|eXG<8u0WyeI6v4&Hy+ z7RR4uGOZSOgr3bfEW1Rt$K=ImcMXCAr4w9z7b<$Yf(7D zW1KB+5@2}2>vXEyQhFf>=8b>gvl;>nFuT22PHDN_wd5UV19Gj3`^L;2`FE77c1 zx$;pF;R)hz>Z?=_ZhF6=+q%(TPfdbqMvvUVY+OztY+|YM#K?$x25&S5t zOMFTWw({wRd#_+21wVr(q)eu7@saHUq|>AxV4?>Bi^Fp7O=7nL%tUODisS>sg5Nx=mXJvTV?1_GnS$|m~bbckFX`PBRhyWrDI z8pe>=SAHw;u=g*si}=7N8hFuyF3UX3l|fqpSX>zC&6kDemm~U6U^W_y?nxLc+=jb= zs^quX-AT0kyE|CFWx4FvrD%a`H1y%OB_V&5z6%ZVRazuEiM+QUJUTsz-nO`hG^qq| z3bs;Z(sx^4t~H1^oT@OE54gj*K-?J4!P-nc<0+^D|F!u>%;uZe|B|?*S>(jHgT_2H zB()k?8a_;|CtW3ddYOHYk%W3nf+}&uT^V!~hyadJ(T%2{7WN0Nc!rjJ6(O}z_A%4s{hmgPL-&y0*(K9J0e$NG~t>+IBNi4OGU zvw)xWRDbLUGq2&dcK(=`9|m$z1S^3nhv99_Si+sF5b!vTF|M92KHwlGJQJPI7 z+CzY{``}WQHBc*8Gj6F3ePZFiqKzw%Z)D%G-+NBd=a)ZS*3rn_RV^gaM=(EP`PrbF zwOPPdOSYM2&4(=;)k|D^0hjqHqj3cnO7AWeG%)x@ z0rur+x8QcE)@s-wpRTO0rR2;Y9?q<8-3GBmAOV$BZy<6 zR6u8M|4EKoJ+;Z+5uaJ)zYqv2QiD_BWghv=fs`|X>W?`^?#^9y1gI*8bY>^|%e*1xw3g0-So3K;kmCRR9aMqbVDBMTe4MWQ(>>!^MSt+RkBCo_m2j zX8e9U@^`qCmd!dm@IHkeGt+RXq$u>WA4tlUDAaKY%w%F3b`DEa403qrU zAmRc{{*xy5{FuF z_q0P^-MHfLUq6&!vij*>;DO6^p3s>=s8qt0C}7+!YYDAk-leup&SvGh%F}x+8UqYW zh1;TU**sfolCKFz7&GrQ*LLQr%_`GDm^W!rT>_J^!=6*w2qGULNCb^kn}8FHv{u)+ z-qG%NKJ<3F5j#sKyEC+nBN%N;eo!7uH3p5Zc`WJwwkOF)unpCJY5CtZcqeqw(!e#h ztLRbs#~f|Tc%%mxtmmD=q~#7r&oy%kzrr4Ct+xnn(B%d!vE|jv6P@xtrbw!|zkR#L zw1xurqi^rCl)L6nz5R2!ir`)K;f5ME!?^766Yt~G^7B_y)R$quk3z*zqj){qL*Vcs z_|3Jiai3nMAA@>`yqxaw?d2T`KRPUZFPD@4W`cWm0Ws_qFrIe-O?sajXxT>e!37Fc z*O|m`m{uN8_SL%OO+T;842K46QAKa_G;MD&bs zJdnd+3-PfV;|>G-qu9UPhP?Ds=CaDakEurzelBrU1u8gVFLG+_L>B9r2hIkV>UOP$ z_W%NnJ@NjfCll8~KEX=qImsxo3T38O?(n`onKW0Dja?<(wIM$_Z(D>f-w)$Wy6$SH zTYX6TrRySJsO;HMgfzJLBaUkHrhG*EoA~1w@adh_-(ru78^cfgPu?g&*MnlaqNnn@WFJ;aobU-9du3bJyp_hkler+sne=>}xWae%94DJ5d3yb%e#;e(U z-%7f=qe+hwV-Yexpd}R#O%QfpKQR}ezR{;(z6i5D(~JE2MmF(Oeo$GQ&@1^l6SUyx zi!jQmCC#uh4c`<~I5Z`MMb)OvYX!@y@+JMMJ6?@-Lm5}%a zAhP^0lxQ0Akyd?$`w;w9p*47vFL{hac~IS>YPrr7Lmv)wcy!6a{70{`Gta&9a{Q2W zsH3pKli_Wuh!1&uPoemxSM>>od82$thI)QvL)R~lxcVIGqa(cjDEzKhMEf(lF4_aF z#|AKP7HE1NG;p=^s`6W0=5m&CY4Ce`oZ5>4#rlCxb!#hyv}g(?rFYUbD}L6(V^}v3xe7HGFz=m!+%S6bkzLd|8@3l0!A)=Q zz)Ev968Xf)DntS3mTk|!UsCL#o%$l%%d}Lx{s;QEt{n zr3-gJ0~t3C0}Iy_NyE9TPR9@;g{}Me4@ZS#%oR zf?*?Wxn0FR(PFpCm6Z+d?a zGCvr(|M;3+vygMF8j*`Ftn7O6Q(z2y=djbw;9lF;;1F1UvqG*y3G6Y5F0+8VJN5J- zBpi>sQCWEXh~s0Mr;a1KKVL$aKfaSb3k!$yCxxp*VagFw%T6es;h*kWmXS`;4mVra zJxqeFB0oAKzI5F-b(#Wxnh|FZESiZPKLTkHrgPGkaki)UNH8Qy4nMa&71+EH-qyDznN< zpk__>(_0aX+Hy-v@)Z<&xy|DylQO& zy)9qMmlJfJ?s}e3fa=qZePY0*|I>^i0#;2uOiBf{LF;3z>SAu8*e1G(n(N+$gzH@Q z+4jHxk-t{hny)u0YHR%OvBTDxVbu3@=@F?%M#IvXG}}3>2=%STeDFWokhm3Na+AHU z2XM)B5gG2$`uyC582S`pvvAj#%VysbVlm+I+*uW(M$;EzVXM2yw+J=(4gRt_kAcx% zT#6))Ugx()6&BEtc9jZHMEg@{h+RcCR&p|kXpwfYKdA%d-rT%K@Aq^eg>|iAt#eW# z#U_x<+aK@Nf*VY&NzXnlygo3=aKq(RY%RpGitkLD|E9pKb^FI%_!J_*2|vz~5XUMY zL(}#v^X!OBBO3Mc7S3RKlV@1p6mHwwU9#3Y>e>qg=ojSh@0Z8@1Z(B~>a9UEf5Ts< zvR$xjwsp9g&AR}q{svJ1HwK@EFTC(Qz>5a|H`}=j9kI7(Az;ET zfb5AKCa&LnWCI9fDs946yy#fuBczth7VWY#RzxZj`E5)S-n`6w6)&nvIWCP7@P2#j zP^-Z=_*T2fm*;Gj;Li(Bxxrt%_-3~rkm5Qn|3Q{DJ>h7KZ!!+u)Z=u&K610dh2fWo zY-rAf#`8;$Vs-ho{1lAr{ZN4(bumofFAA+zkp?qVZIw@$TW=@0<3lYtcd^@!J8rqv zhYTh4&3V_Y$H3&5M`y7`(oNu_&xgirg-^Nr%8F&zBR4aGf^EnD)ul2y^?YaKN9zdatx5 zSzyvUBd+__gN4=OvaJH%IJkw~m}1xJp^WE7r8z(+qLGbMe*N`P_y3-U=sIWEqNh2B z^+j*K7PFRNz29Y0={^I0rNge!Mdt_tE7Gk-~@ZO-qwnC0(@-dcaN)1b-NH$c3ftfN~8<&%SHUz6&cKI z;~DsrttI-_w_@ zAlE4`as@dT7fEbE7eI8SS^6IB;+oGl+&C_r9u#KgbFASsVs-m%x*SKkd`Xhm?p1{IIBWbPU?f8@M5{epaIZY3FMMD5ELjCd)qfqE<^cWD>w zva|hUClUUcImAml;?b**Qrk^5dxs;`SN!W~j$9PsK{c384yDL$zLP)Uj9=}Ry2;14 zJPPK&8^G=Vwko6Vwo?(n?^PyDV$po9rhJmd$U-Q_4~N;JBclu$YI{YRl+UG0P4CsC}_73B!2 zX~fFxZKCGPr^D{cGKz;y0UNNc6;Yru;volbuUDLGqYXxH720$K(QM}xIQ5MDp6cg( z(!VmGb@BatzbgOR6W{unz`7X9=5Rjr-r~WP?bmLEQS*HEQ->O;X6tQ88&Ldn%n<@_ z-l8A6L6sp!1Y?VM>9C0tC7Gvy%`_-5CGhy)BawN(@jZRYzI4!C|MqsNoh>G#3*5axz6>rXX zgMxt?{c?~)lQgiOr|n@7pT5E)5|zMnT%R)BiYY(YfkPq~8})rL@=8$6N)<{AVOI{8 zl=yP_q-|kRGHLF)`O_Pn3h>DS+IXL?d7^~Y(w`4yvkE21_m z;^8}YcizUh}?TWPY5L%xLYqg=pJj{f4a zlP@y&#XsIcgyViluzb7;YsUg^s$Wk{>Y`f%G#De7BZhrCcMVHd5Tq6#{hTA7i6Krp zMWQ$x9oFgN0Sm!^lffFTj_3sX8%Hy9khY})cWd zR1Mp@=R>rqc!!4R`X68R+&}1~{;Nb9g#pSQFXd8VJ8|w#=sX zxA|?i4<%1~r$5sWF<$w%|NeEdyg?P-H+};`2z6aTb_MqOeaeyh55X_{5K8^Qw^_vN@pT};Uzn7GR0D>$Tv5L-^1_}51l{1t}Yx{5jo`5s^Ztsz+~H8O>( zBT5~vpA=TVNw;&Ke|V)u3Qn|Ht%s~0i?~m^DCbUh?rd*Mcn*X}Lh3bk;BEi0Yc1V^ zK=hl|5DS;*NnRr1I@R`?L<733_x;VUyl|*Hx#T~q6hL=X&?&Sf)nsTBTzUbMmZY#s zq{}%4N9 zzeUF}3k5@uGMNM3I%GxGf(bIxn|l?xLJ)m3Xp7$Lhe2(p->RJi!Kv@>aFUutX7}b{ ztN2b{^f1*oT^^Ea_Lxwd!TWJR%=Oz1tK1(8H3-W0ZmQ1*K*;0I(f&B~9mjQul;S;V#tQLYK9H#J_!!iwnFRN^R5wLr~ihD;b5?`xF6t z4=%3(fI}xeMvc4=;l_mb4%l0Tg&inxMuX)wkwe-f8}W_cl7)1+_k;mD<#kf(!sdOp z14|N3%fja_M7j23)G7d2H%w@ge)DGncI6HoP>9iKjZgc1=@L@iF^Flwz)t1=DN=|4?J^Xz9~yAn7LWXymoAv z4E5PDDbh#o`9l-BSgWx*iexdcA%?gXJnP2n#Lc z8)!tw173-X6Y2-C%Rbe4miUsAkjbP~;%AJJHV^&UL(#_X>kBx{wpnLpgM>C7#1u|XpP60{MuJ9^>PA~dn0bYJzUc0}Vy@4RJSD70OsD|~PD|xtMdpVPW zRcK8yTS1hzregL5@IU6HTq6k4+*PqvC<~gr1rA#|sjnU(IuwO+$kfqjj4&;Tk?_aT z)GV(s<<`hS)uuZ>+og^K!Lppd-l~s!6S|_^hut6JoPujkB`Sk%`17pTrROnLs_2gp zYP-F~ACUT29zGaZ3#ni=-?9Ke#@i-EqXkw-ko#;$0lrrE*CC`UjM4(vb72*jfa~$) z5d5NYR6nVw_o4S#b|ZOh>59=o)t?W-T z=DfzXavb=xqmJIZE}AK8TEt}TY$x4cq`6;lLOKj=m~w>5CBm{`YeUszG)G6psH);) zbY=aTOIr2S_v`+eWqEUm^pb$z7yEZCI&HwE%*s&+QnIx5+vyU;HBt2~y*tDb*yv~f z(CXD62;D3bz0lwZWrRpIZ44HVQ4O#)Eo0u<_SR_`H{YmKuiZlfJts&PrXtEMrmv9~sMsoMT@>6)d@6pvee9X9zWpx8aJ}KIm|4-hzZ1wA4YY4K< zExU?r`L`x(q)nFVQtJj7WO#2OT)uWsN<50(2X=a!u4NNW3@Iul;}?nM&E%?>hs;PJB8x=j6axK+_SwfCDRHgXp^p$Np%i!!nOmBoT<}?-U11yTjG4Q%V<#3dW-lUX&UO(c`LT zj~`HK5CUTJURE}`k%t4Nch4$50tvSU!8(*WkGVje8cHDo{>1B+2LVJ;QQ0}$Wn&sl zsd_l8DnYbYU8WQ_j9Ki=KL}V$N4t3MJghOh8+QIJHjhYh>+hKMHM!X2apmHHdqU+o z`76jO;X-HU(44O^##ExlcrzFI z<3}TNovvBiL;~8$ilRq%u+N8bH3cY-i=jCvh{|k4)`QROf!@AfWNXk{waIz@>G5VLv znTPWp%wJvp@kW^2rC4ktTK1q6DSGB?W*8{f37am%|KY8^FTsw&p#4AID*vbKCIG8K z(O*Ksi2qBe|Bo2N)=YWiZCUzGH=BF1+}C*z`TrQ+46cg)^47`hG4{@6=kOEKyN9_q z`4wUwgLE1t9qD%uYp;jh1YPAa7P|zZwq5IE!;7SaHw0h2H@8bWn072Pm9deTCdb@a zgfdsk%NuDD-0 zTA@4MLTS#XB`IAaUzyAD11d)^lN+7;Q-=SfyP3Eaw9nMpCFv4D*C>PBTT0zp66;iy zcF~Sdiqj%Rz}Y1KDftq!!pZ%vIE2zjJTi#86hoqdE<$F>JJ>1Mm3<6+EGwPVvj1Fk z4sd51tUquj65d>sa{E zfGZMpo^&!laF9a)9hY%nDhO^;lMA+iyzA&Cu?HnHTKfGx-C8bzv(9W!lmiCc=fNJ^ zxkD!XCM4oW?Se6pKyXlOa)dF{9?cj6V{s6%82K$zFx_H9w46Js5KAWRd}^UZN8HX9r5w4UySSogKc4ev@}BvFtx^0;$f z15v7K+8!Xo+_~cImy$$BlFE!i%~e$!RayN`c|N`nI5X`@u!$#rTQbEs*Ps|#>JXx= zy+`DUutHU5K;+RGB(0}7Uj5~gj~O3c>A}ECDyHIqskQa*sNFgPvAUfY-sVYfRI>>U za(*GEi$cLDz#%PQD3i8xKg?u}sfVag(+-@xS|?z4ycGpO6+3fSp0up$npa3X$nmZd zY$j@r6sMtgU0z#G5yc*C(pL4i-7crh{zizcbj~+c{VuKT)bPgR1l>7=-59p+SL?VC zPyD#euYQdbt^1NOe#Ae$0e|I@<$28mBZm4w=h;s?zjV@^6DOOEUBDOvQ<7%sZnAyR zTRFy^*p+usP%L`UGM$_@Qs#QY{dGE^=Aqr=j=7mqpRG-;hPl~+QkOL1i@e>+>eZ94 zg{dAp{EsVa$w4|a@{cQWI|J5)MM*8q!wW$BTPcDBqJ!j0W=JLsb`K81ulRlePQ*)T zYElG!=ZbWQBT5Wg4dLBg$1F3zbf}w+OHa~lXabR7CC9i$#zT}V5NB8;XISi1;wZG0 zu&iW$(2snamXB!WC-4J+HqF~YpYQ?d@DQ@@w*%V+9%^KEv&QZ82 zIgx)!%k@#1Oc1xMCok)_#S2$T1K&?YlrmLZ`5n^suw5-I;+b4y-`fulhwk3G{pjzD ziwvGt8Q*tC<_d?nJT(gzNlhwxu#KHc$x#(6rD{=CojMdGVM4TmYj?sL%h&A{z=;{E z`V5{}*@(hxM;=N8XlT**>ju6(AL)AY4%4#a+One}%z_cG>1t?`j6pn1mUJkCmBs?A zAm2JU((y9}xw|-5-{dshin;gzr~K*|RcIS~fF6BpKm6L>9Rd_sX>fN7y~{?(dR}S` z=Qo6cV?%ccs{dn2v$WFSbMK+VXFUKjje7fxYP@hCpjcI~$FLK?v*(knZ92_Ryye+F zP>e@0Zjjf>gH?N(2|p9vk*?t3&EU4B0~7IrX{L2x)`*mQ!&=#TMLy?u|4R-l%HGt) z0kApNz`@YA;8Vj=A@FALpP~AnCyTDN5TBF0W!YL_^$bU)%R=7mhOKpO!_cjx=!us9 z%fSJ6-9WsS&Dc&jd$EidGv8E(sS-{eF^AJddmMlN-0f!rdld%@I!*C_N&fTYz^lP9 zR8T!M?+4k2FP&-h7z``lAe5`>!Z|YKAj#{pEo$*V;&_60_!uH4)pf@s!%a~jl$*nf z!q{!sfYv!HTv_wP;K{C`%-Y-!&nJxmf(PCO%%g|e zfD)Vi(za4Vi&$FQK((@a3u7yaYi)fdrQdg|(w4o!vCXx|HUF%&52Ec^GI*JIj@c;I ztQy??^R#l$6Q7UZei6ezf{S^Bf5X#1X5)DwlMclsI;&S&->LGw*ZwD+DLMC4MK zbKLzHf)<4(Y^Vfy|8Qu2vKS*yeErO`EHek-_v`*Mn-LLjnSX4!jWE>oa6KM*#!fM) z?J)uhJ~hB}cr*-($nd4Cu&iA0fHWlHkCd(ll*K@^EN3<5{x`zQMHu^x_v>(!_*(K8 z3YSc!e`7s*R)UMu1{pJL@Rb@SK&PxNgxl_5ua^`#zONuDdZ=WnuS?k!adLRWXdy)J zM-FQigPECQtbX?#;%i{_|Krhls6au2mF8c>iPcCHZDb)WO=!VNg#1#obVd>KL;Nmg zO1uVifC*+wf}ZXZ>p>@(w4qekuf{e8qMautxPn=6j#}`SxNlC`QhD8DB1E(a2HW;SZ+U&kt%pQG9bPcvLyf zFQ0=A-}2vPMFn##H~Ck^q`cT19qIDAM=^ohNk_IH_%m`=$@sED#U>2OuX}C!<<8wk zeGfa+;9{M)lL$}O`x!w-5Vp|g^?D3n>@8@p8_u46hG3+3t9^gHQXvJ?a(iF3!5}w9 z+I=fiU;64<#tmHPD2s9{x($y1!DAD|nkMDV;+$U21hOtev?f7OwiQQ`6g)8qLlIS|hxZZn2vfVKN zNKqp!^CLszZ)E^F%E%##^m!9oKag`}J`=Ejh?&BO&K$;mwY@%_^AbQwTExfp@IvRjv_rHPLgEA8aY1i zoh-TfLiD7(Z+GLOb-!X-;`dg>^O6}F{&&bmJ0etSoTA!+0_-ZnQ8Y3=(M?U9wE;?Y zxh3t%_gOC)uJ=BlQ3_`9{vi3v z;=tVu{A0iR_)5w7sgSZz5V2h5K{1~KveOOH?2@-Sz1wpmmhoO`3hhD&>|jnp95~L@ zW{GK-h#AJYF()0Uj;LfT&a<|$qn85q9NhF*_xUYW@u98cLA`xJsfro92Z)?EqJU;9 z#JvVD`w{_(6SfV#06H6UmJsxcSn2XB1W#S^V%oMu1a42-H?oZtR(OIU+~56j$BR5J zvk+=(FFaKOQbM*JFD^i8)G#S-gp`%sXgF0-Qa#zqodYiudWao-m^>XDI${Q&x?AFS zYeMWc>Z2o+xzkGOK~w?H;GQjfDHXTJf{hmAsd(Vwf2gdMfJ)I z|CeMyr<*W8k#R4N!VHEmUu$GjOxD{$*4vB4E;$&cERM6r)1#M8h-0*o#WthzS;D*5 zDJt90-T8_6{d=eCfNY#=An9&{*TA=${ph^6WV*Z{GtYWIa$tv9^T<OsS7@^Vcv=%ey_+Zy4hWmA9fd(Hmw>H#I3ZRlbHXex!t187HV zJrhT#@v(2#K)Y6N>`LtiT5T(ZgNuVKB^5YVzp`>8oDb?y zH{e)Nphq{*0H?A6Y$GRF9$A+I_6OID3wJL?S!puuontzLf7P*J+F-P1L19J5e1`u4 zIi2BZlyq)f^)FT=e;tWfZ|fjb02YS~jS#L|M^?FnpNYKb!w%`;dGTa68PvJilj^Ed z|7U3~6GvezFAjfgM*pFD-B4D3@JKLF`nK{DazrI|YW6K=k=jqN)(tV{GRCur6X%SR zR)nKta}K7%y*vQ$G;M)+$OP!?S*5Tas_F6PYNk9_Bn3e9F2YXQ`nNql-lBil(BiQB zBoYtwg~_v%6>~Kw#yKFkg`^BEYpuz87w{UBriXWqb^`0X5l7>MlnH*Qls?OwgB2|8 z(azmB5tLtoL|@J~H@D`xa{2vV2KvFbf6ur7dK^aeZ69R)q^aEZ+>n9<-R*rIwK1TP z*wG9Fbv(uy zH&JMyy?y|WFy=!Z46B-nb??XM&Y!N%64^HA#zj*>@8tAv6ydy(Vum79bi4BLgw}0GWIwLpm+^z-~M|9Al8yV-RI;tq?A`5b!}m@mo0Pi-k~ zFkVWT%>n9ePcG?|U<8hR2h&>bujVif`!)8R3dvFwb}Dz94b%=CR>^50ISP*0X(A7s z-3a=#sRrn;^3wXj+hmQ>X;~C%_5*V*Ra`ycS9(rYM;}z}R31n4H?%(u#xmwQ&8iXjB7MVY-~HpS5*Rxt@p<7eY{+fP$jjU}1#FDQDm2T~8Ouy6 z>nV)%xXOpCnD?mV*@$w(1IbQ`<4qr=|q+yAq?fW0F!3=4Z+_36S4BKyP?4t~;Dy z_xydeoKfv$g#*1&bv(zZ_7=wMObQvOcU3WSu`VZ31Snn(i<*<@7c?|JP1W2^$ccu$ zXrwqf>Lz(hh?$+PB_%6;5=h<(JEoZou2tT3*5)8b^VS(M4CJYwdin}kk1$z}d^CQ( zI!;fMQD{>HHoPy0zTb$7?_GP1VEJ#UQ@)Gou zHf23VPu@4wX&z^ac-!`EN}L?WVv5NN(g0;-nBcsRiKQ7iLMSnw;p?WaY?60VXG+f_ znaRn>c4lu2S&i;ZG^#qFL;HFg%fJM_n=_|6Q;{bU-G@l!w zq#^5QTZO0REDbYtpYbW)RV7;$vx2%C!h*@C64Z?xbx6ZvGjY*>9N1nunHF`XizUAH z5D)3OxZpHFc0&!dU|uueZr51FoavJuUiFNEE%vZ^Y|HaK65f-G>$a0tt2}u}dgcV} zZ&+jAK~i$jm6D5JeBNiL=A02nUh#I)-Z{m?WO zU%G$mV)^a%-!D;b^WK_qUORt%&ihe6ae$qt7&b?lO^_8ekT!iWrIPu@hz*`$h5m_arjy(Y;|>2dhKh{%RKjT zg$att!o-wB*X1=Zt1?a1lb)7+0rblJiM*Pc>9rdF)ps0>8z;oBCU=u=`wDb}yXxpI zS(CawGUbnBz7n(98Vj4QzQ|_O6D5>YIV?1*hqJ zj92jv4H@6Z1>2Zr1!y}{_2o@4vFYiJ6OFHAUtMK3U|T&Pc4fF%Rk?LjISIyGWX$R7 zm~k+#JJW|_<}+lHKZBof5U^>lsPz=KeNh0H#Hv~G%7`yUxP09IOwd3o4)LY%VrFXT z3YypzcraJ~_ouX0@l-H~v+tINdvUnefF{M;-o^73U)Y>?K@v?s_bf;ipZS>WLuyA` z=civ2w0@oUK#!;DL(iCd66@*l>vp7PAZ%5}ugx0ut$XUhOO~FFvX1QhEFwHUKB={> zMbAQWP@HG@Qz!oMaW{Cw9A5Qt{R3CKYDwg_qB3;e@OG~%#cDurFeCls7s1-5!=*zq zJol=fNL6&BVNUq@v4jJUT)3Ag;V}mX|2wLW_a1S@{)?B%fs;Oume8++iH*zbPM5IB zF|+;~XC#XUEq#l3Sn-G6aMy2^P${WietwK7FqjW z1Zhd0ekt~QgoaPR20nkg7dJ4db5NiJ5=VYfnBd^pU5%G8Dj=k5id^kG*n41Eaudc- zG{3d~hmtLHViDq_(F+8?Oq&jgOtPRFzGpCs+`p};M zFTb6mUq=2m|4W=6#*?#s-r>Q(dO3B2%DgD6nyBYe?=kAa1v=^iY^BwopDZLJUN6g& zl{eIUgKot3e;_Ps1Q^3x-dKeWi#Tw1IUHO3{e2lp;Nai@|JQtzK%dnx&$0BQehoF{ ziHIts`Ne8f{}6amia_u!aXfB$!3|;<@eUkGw{YI>F4P@-h|0&n z_vlaq%NkUCyw9Eh%Z-xiI9X1%-G12xn2O~wD#s?S+{sDPl zAgyyNCcUBrAgGQ6U1AK++R)fi=y?7pM%=8E%D{3R)7?D+$zV!0Ox@x+KdLbO{pory zd481>A6{Ket(ksS|AUy|ho_>54>e-hDVn1*43!E5LOdH$3Wa^-clTa8fN^S@oY;0y zO<=Hg(Pq}w>QE6!^!lCMjz4K@56+ZaWKP@uAs?<}N;GnBJ$54MYV};LRIqF32Ecy3 z@rgT`SvzEX%VaC}RIG)gpW*dMY~! z47R=sbAvo|oyykY5-9A9ucDwB`6Z09!0bxJ=RH;-3IxY*^ssOIVOb5gUadIHVg51t z;_Y`vke_(7uxNztC?9tyXrS>m&T)L7BmP8hbT{8KU@9i#d(S|foLcE@tNy4Mq}G3u z&8^3z8&* z=J}KzI=LdavZW>dn_gG|?*fyz)G-t4>>#?d+-6tjO7DSm6Od-YtL?3IaEBlL^GAKX z!0;03?MOq%iwoJx)IVQ$u>xlHv8My^gExRKU~fm@6Xt)J|KJ#MSo-5mg))iuhCY}&qAD>2CsD)plrlwog`!)aR+f^?ZQTBA=fbEK!C^^pS_=J47Swav@a(@Zz zqVXC_|A(osjEm~~zWy2r0)iqX-5t`+2udSJOO6UiDBU>JWHrKSnJZf)Z=2P z;|+Q??xUbHw*L8SX_n!Kjmx6RU3Qix;xPN#VLEa#P34G)?SWMvto)br!pEA+0ruT(Z$Yne)B%(nMyD?}soo*r9awDuXI z(ggmOaqLKUGwyb96T9hd5^0$<&2C^$rGZQt@jv`@N0DnU8ns*C!kYnOBD$OTFmLs6 z@5w16OS`KvmbxnKq8pdjr8aRLaT9@lo^uW_3EivgZLH5$!CFN|oBg?Y$oje;)YqM- zwT!3JTgwLuDk__xOL^=#`)u$!QYeznGeCNobimMNFQI=a=%{bp^Qh>ZlkN0qpIRR@ zRI3Q?`2}@9v=*H^``vE(*U+ zRSU}S;Q~O|cY$a!e;bnqOCSFo_iKn>khK*=NGi+-4TkcO#s4fB_m^HnCHxEBZ!x7E zDumuA{`+2mXpzjU%+rvXfl)dud$z_;y>&50l*S|NQOc%CgPTY8^hwU-u8+CYxZxoCRXwNEk%cT8=DO2W z*B^zL+_lr(H`xD8Sg{~w<%SE(S00~>6J0AAA?U(Q=2#1Ix9ohu@L-Ql&|EsOP4u$N zQ~WL6Z5)d|Fq(KXi1aUe>`tG5s{a1e6S1a#8q;W9w9)ivi^qe13_F*LFzENWRM?6w z0$PPYG4}L=(sTN=7dZW;)BZD4^X##UYyhQQ9nKR*S6A=(EK#n$cA4jl$^U-e5Wiz6 z6!S@`Y#KA}fc(%h;6q*467|in5tl~+(_3!beBX}bMV7Nj@|d_x*k^|v3C%0dL^eP0eN%VJ3 z8W0oRw}GK5Q`l^I-U|k?Ds{iUh;rc(|eJXP_&*bU+Q{Cyj)YFrO`hQ&S@DwA| zJ~RU>Eo(sTdIGq1W^to8g;q8oQNUHj`3Wv(*jWD=7=1`KAk+SuX5c(|Q29nhVr$l1 zKw7Vk(xLsD6@zn%jR*bsfv#>w;0NWG`u(GB5f^NNV3Ph+aayFzM9p$yR4ikbymF`4 zhl{`Am$)}3K|kaTESvLHn+GuC{75>ac*fdc(cw@lL)ZSP>?z7022&}DjdhZj9*<6( zjFbnF(RDkrLA~l14seE#k|uN@)$aQopV92!o1Dw0udc>-En!2I!=6G7JBU!E@VGMZ z<&Xy-j(~xaTGjlbsPuH|n1rm>gOj{TXfGA`$B!S&0hGpT$R4wZu$>=D>4!M8L#w+@ z64OhuM1PqlET5P;HHMq<3zH3+9M)K^a z4cUs10cVw2n*pHK1kM1|FjNp*%5nIZL$?b9euU1-^a z_isRTn+gxL$mXBr<6t#^rhMimox15Q%LAQzy7%3U@Gx6w3@3a(V$eb3=rn(+L`2zfVMhs2RUgwfJ}-v6S8IggH04ohykk9q)s zk~FyIAs3m}C_1a#Y~00IKPMn-nTU8@3jy$VDjQO)vBf`OzAmB*6?CT1!w_>tlkQ$R0cc`PeDeB99_brw63iKM=)4V|c&1axWm-eA z1vX~&V(rszIbCs^UxAHBHrA=FTowfx>r}Ckl07^CyHaMov{xVr z8dJwS5xhm0#pomZQ+hu%C7P(h2d)iP;q5i5Q`N^N^&CH2iPv#$9xX@Igp@tXmj(6G z_}mrvHwJOR(9_%aaOPA8?h8sV;K0@q#PXWFzx9*q-9SXiq3-;dyf?)>}SL!!O(GYF2yupi_1Ub^S9wP8(k49=t=Tf_ zR*rkA2?AfLS5WBR0+j$3(zza27+ZSGAfH6ns){v$7GEc1jrE0(FQ1Ml%T+81;p)If zytt&qx>kIL)#0e7^^MA?Zx6PSXQk|4f#NDbM{;OXx5;{S39DB3mf-19VzK_VgTse0Hr%f!cxLb4Aj?tLzCivB z2!Too>fVAAS`~v@&ot#no)9;(B2XaHQ9T@qgul+Tr3e7E;eWrM&*-`ZHb7?&!x3CK ze@)J}{$i24$#>Y}henPJZ88D$22*g3tbagrL4yic#scQL+>?^L8dlxA9S=uNr;R_k zT+v=!3TyuJi0uZx3Une{jQ7Iu#OU$1$>Deb`FhWk|E@s=f@;>(?6;Ci z0q!(j+UhRGy9GL)Bvc|w2%Qu9`=8(x)eSzDj|#M^Ac{5!GYGHBbDsMnONJ|8f%1zt*azP zTJDght6Z&#PM+ zctHvp9^WHJS`Fb~K=PQXhI5MQdK`uux@O~@_n~d3-Q$z6WMnUWstFjZ5{9ctxh<#~ zQ(J*_$-xi+lq{R;C?o(GkJtyh5@V7gQ8+N~YFkO4|7q=tP zo2J{lM{)HX&{jhmFkpI!hlKE0Y{=s=u90KDy$u{O|&g7op&8Xr( z#x+g90YQF}{!VdFwKN>HPx*n!E#bD0TRK-7k6t~&jyRE<>>NKEj#UNk1ofdsaJ_?{ z@!zmiWMqHxwzeTW13+&?Agjt&4;o~?%6V-CdjhvT)lq6rqz+Lj*Us0cj2Ww5)#$}F zbss?=5jMa1xaC5TMObK-FI2RU%67>Ac)1xSuE{<>vnm;%H=xbP+TD!KOoQ z&939fWoY$2r(H{k^7C6;MVh*}%V<98x^XsIYXu}xCfsLKc2;twO$6@e1aEOWl7a^Y zdO))DE|GF@*-Hxoc?t2ELW1a&Ym@pknubj-l813a`k&bE9qc_Rtk_A0M{O)K7KBDYS)UKMQ^T?y0L+NKh5BG)&1gcl#z8KdyIJ` z>-@q|{zyUowBbDRqZ{AI`L#~If!xa}P6+`r6Wn++c}nA(kcPi^;#Xq_R@Tptk`OOo zwBBn1t5+f5%PZ9t9kYCf22HmP4C!{}@h`}jZO9ar>y<#Zm3dzJL+!+@ zy&C4l zg`K~iTnPnwcBic-neYE>r%LqrdVT57`7t9*xU(O{(%d<5dhK8m+Kvu0XLEWqUp1}; zs1-fhmr>=-ZkDHdSSsjzKTxsO!z9=MV%7h!A^&rZYnr`z$OL2nF}EO-bb`0-1{0{q zSy79niVL`6wjb7Px0Wv5S82cJ3}eYT$BX&ZmR`Xsz>T!)Cgxe~nfyH_@$&4bD=>5Z zLEK627Gl9A^S^ywehKj9Pq^G6HJ~_S3Ry%VGJ?K7+$^i@zsE^cLZE}AArn^3Ad~&g zt8!dWP4oR7z9zkj|Ijkgdco5cK~aJNAY~EMjq`bO3c%zAZ+t8*s8$rRFJm*6%!BAU z&mnyi@RilsLdI{a5;>ppI;LxjtcCw%8Is{A@!^y9s|kgulaQ?<%UbzzTqKES3oY}c zD>8NEF_FWU*Ofg{#oLLrR1Yfzo&W3n3R!i6i9Agi-==vEVAiV;L0=s0dVa15fHX$3 z%LP*d-*$FmG{*6!jZEav4?kNHt%wF%?}<;gS61oQJTz<8^Bqu4s*|LB&LtoQQ zOTFgkZ>LQ>_rEym=B#NLmGKQku+Ne*M+x$P%gqf#rf`<_@!0DGuBNW)3UHE^tJ;nv z%~jP8_)(1!egO`zOnAaAatgsL`no0PC$p078OgRXoscB!^3QcAu3-DZUGL z^6HAxBX)yfnT(rvUg#^Ftlm8RxfbrDS9R{$^qyxPX;U2c-5j8g4jZ0|1`4~P2c8B+ zuUP06js{UhL+ahTi}@#nPrG`R2t%i+nn9yYNH4YC&wwVvJN}qVr&iv+Sx}v?L@i$y zc&DsE>P`B8@)&tj(3<T0k4! zv-dl^{Ghfkow=wqPW^+NaWk8k{pK9K%4gb$X)3!#F>NzW6NOu-z|9Oj-SOz|pL;*$ zxrn+1`_Gp9Z;os)6k=^cL1nR7o_@loSAJ_3KCws8F#(kiJG{IQMWM~VP;uA#8q1IS z%>(#bc9qvjO8Qq)mgqQ%r0Q3Z4Bhe z;DdsW2`<3pIvD{s?whXnaSWJJ4X2FxyYxDi|sNh&~a;$-glfB{>B=t3~`z`P7n zIE#?8IHAJ@KuXBhlM7n>=97qXy7QKt!k2Q+=zL+E)B_O75|YP*g@kp-e{Vb$uK3f? zbmrKRD|rq0*!ABmEZN~zY{ou<0T8n~)aA<7jLAJM07@Ca^R$Ykky64f(!=}6UAHhv zg9;`2=4RFPAJ=y;N4$<9X9k46R#bWKxYj8t)ZRBQ*?L76V;ccOweAU!NhnE99l0k8 zI(+U!>V+!b&-||vQjB^U5=Yc2jvd)U?z=4)=`v=T=R2$76uKRX^ z@e-#(&t(wG2~iE3+10%^?jxg6dTfnrz)GIm?*m8=y>evD`R$SO%Tc+`8I(ju zHl(v(O3A>4^gyjUMga&m@8+92 zVH6q5zI47Blc&dRNrH5cX^WdIPCz?(hlw#dPuJpJzs%dk&6)#W(Q0@btmW$Pe zzrhU4plPqzSpm+kF<8kK`J)rWtwA%KL0Z6=c;i|{_|p+(6%tDJ@0(9uoqYoCU)R$! z|8I6ZOw&&Kp~0^ql@m%;dSRAxW$;kn^)F=lNK^xEeE>cmumQLJfB`Hj$NW&aSX`mH z>Z6smoFvoEL$Y+YuHv$owTlPi$C}%-o8;xz1Fh%rsi?T=^nh#GNJmUn_MySR;o#vn zOls9(rEZ&|2l7CG62x&i-+t{BAUHH3g#ui&MVUR4!oW7K+o4rA+9|AyDnhpzgL^$# z>bR&zo-rSAXo-fDOjh}%(R}o?{n4|J+;bE0sXquWi+nXr)oc?86h7t!y!DV2;GwK? z;hV4kYhaa%7SjvdPOxVO;R7oQF<6OR9N2M(-Z!AyL`R{Wi~o& zKbkEff*pxR_{6S8gDql`NZ*_H6H1B!BKObue&lvikH>yF|w-1&$!VEu{EWu+8;zE*9Pb-Sk4hk zLXaTS7}_e_gO|O?d!(ha4;<#!Egft1V)Zd)Fl>y zn0<=wc>#h*=TGINL*ZP-gx18>r8G-9=vjZw@7FaH9>3=!$t%EcN931lro9gNT%{c5 zV|9R)YQE!HP}PEdjcw-kJTJd)wDy?c<$sUpnFVgA}1l< z{+p#n@8}Ke-QFV#G;lv;OG)(l6328kQ4&gl15m46;D4#(n?amS`~6d6ZcXh%S}HH! zd2YO5epp`;PHY+h<(~4zGD3?Mmr8J-AE+F2^|x0?Q|8e6=&c~e;&DAn4kH;TVK;p5 z{WVpz*IeM)^S3JPqq3YLVY=Plo){GC#x)Q!TABjxxpX~&yTvQw2;&FF*6G}@BrPDY zIAIQU{Wi_T!vufxDHOAH2{9I{orhqU#C|}Xx#shsBYUB; z*gv(8)HQ~WxOv~^mgSqhYSzD_4k!Q8PRN*;jJd;c$1F{C{MzR*4gqC(Khb^PYcRCr z6T$T>9*VfJqBo!NX!>lr!xB@grm)6Z;QE|Z0@25*y>i$kZ`Obnm{XrqDNbMcpm^^d zKdN8CAHpbVMO2Q=?+VtCsfEyeQrCZwGhON*<$)evwJwIACj8zZ5tpLbPk#9}r4Fg_;&{wuJmK5apj z!Ep$6yYcSyx;UFHqp3xJfpVMI!=RGS_gtoHesAre4i^M1|L!@_4F9Jt&>|e4i^~=F zkv3yw)Q(*C%((4Dx8}q0rxb}}(7Em2pC;J0M_}x+@Zo^a*4YUsCwy@_cB%icHXCH& zFCLA!hA;p+=(v@zEXN#+vAKxi`%a;N&Up((K)mB$0S=SEp{4-iHcyAo8i2y6M@_XE zPgjUE*<9jrnM)E>=2ff_G?MMy(ZKwh(7@oy5NK@-P-UPC zDl|Zkcv2d*Zz!oxkGU1mRrHTA=cK1AdVKwJ`bO2^O+3u`+ zihr}L47&dV>63Gm+Xk(jjWa*2D3w(u@()nlN%ZhAM7&-q^a5UdAhoDYVO${4S`~D6 z2z<5Nzy{^t)xO*#N{*2{vZW{k!?lnu3)ZTO9KLHqvIJ8Gd8M%3!`#zda{FoYp}4ou z-+>aEw^`{8fkisBI%5FF6$9{PvE8ls@1xlf5877ff{*Qc6-y7KP6`q(9`25^rvTgt zYI8Fg91TE&rD3#~0Dj%Vz-*ZSsUaABGGkF^g_8LxHC`}1w>~GxDc2>~fAyB{IYd?d!#RB!En@13ur)p?8^nN9 z`jm7a&x8La=2|d{$T|4Y`G5*L4*+%2d%@UKRA`Q3g){LE%z7s&p+}ZwGuO7mc%Q0O z-1Z4}#;-4^Kx?9$=@0AcU*YAUAIld6x=&`@m+PsN3 z*6jG*R!5mF{kY%#n=8!W$LG$Of$fG0*QTQiGh<#b?@R+UJE3>HMf;C##>jTMM_)_q z!xElH<#K(KF5n9Ci$^8`@eD5?x&35pi#M_wB{v=*KV6rYk`MHiI(4NN1gI9Rc*W+d zs$Rqg`jW_m*zOpX{HDrpKTBdX}q?J3U3mJ!2jN;A^d3O3IuwLXYw- zV#pUEbjTmVf$hN{c^{3r?3Wm(f>(xirO8K|OrOfFQ+hFJ4PT6SOV+*whg%8g0LJJ~ zpEZj}!|bQh#{#aRyz_>|#Piaxd0NgQiuB{4YaQRj=&gSO3Z!As$EtBW(a_Gl2A zWX-0t=oVP-QHZ()X+8LHejlvRU+l{LPq3*t!5(_6_{)V#Ts`AquY5L;4);X5FZ^Oz zL)wg-`^476sK&=<&>PpOaz+no$==JM>}lVMX*!o^&dyV4c7Z{pwJGNmdh&k)v6_g1 zDLj>@YG(O3Il)9j%OP40_&@Zl`9M#8I zP;rh)yAWPe?_By{j+Re~s82G!eia~e+;zP##o^)Om;qEiD$Pc~!TcaqjWEMoyAgZ1 zO$TB&Y8BLrQ(B4-(|xatUeQA$Y5rQXY zgV~SEzx~;3ap-)2j|s4b$e;dA;fQ9}MkIMXMjQLSh& z#zijfS9196N^tbb+5O|%LBIpEq_N^8XNk^1xu&rJZW=ZeR)t626nt4N8W?G7UI+Ps zvF@IKu|dOTX0u|Zz97M;w=v@`Ta!r9u1rwRQRV9M^8n)#j7;9rM=c!8HUZE znV`rDxtwZsZ1sb*Gc<>Tcy!h}=S)9P->hFfPHcs2UzeTHwgIH@OUdz$$x}wq-H{cI z?MK)wnNIZeisUypg`g;mQ2fyr%`TfKA!%XkiK!!0!rvWaW^ zwn`^v?6DxSymhB5+@C-4;t?!_YaQG5q8#bU(Hc|a4!Y5WHLlDbHUNR&UX{e+ zF0P=a#S`nQQpHZh#k~boi(SyD0UkdtwdHOIN*XeMtp4rdbDT**5R)xA;O7D;^KxaW zjdxPI34XX@3wQ9c`3TCIUz~686LDHO#NalzN>vA_J_oZ6y~m6#r?nYX8K`fxs4k!I zgR|SIfJYjg-zJQ669U+O-o$)pVf2?IK8+ebVD*yEIJ!Kp#+^%#e~<~*rX$byCo6js zCwuDW^`F5r?z)qYGyeSsc0(z3oS&kgvAWOsB?NE0G383j$E$j*FBy~^yEfCSwCQl) zpKBWikzw6>yi_DCtrB(RV_7_)P5vgQbv;ZJA97X7ZP&?k#)CtZ{(c3F`!p?4$ur(? zx+E^DjAr5h)MLD*PYY3CFli;bAg30ACZomX^7!N1((jZGt%O%NiJP4|Dhsw zsJsu^4SdO=h$&AS_^CxZ^Lu>5c4I7^)audtOEiD(ZhzabJje)_0|8wH@z_{ySl>x! zSGc&5`)W=+vtZ_i(B`JUtb^6`z)&_AV()KFIdRgn8S_*UxfYXXc=uO$s8OHEtdzLCVDtjhJXj8XE=wV3l%MxLxhLg5Jnf( zJl2JP8}lI~=y8d;Ju)9B!^>bu?vRsDHuClRI4Q~Vm)qqF zgmYndp6fiG#)nj#;1nLcMU_ev=6T0z5BNIKONGWCBY-r{`#_SwKyiG+B@Hj`Q4tRg z(#&Pg`>a_I*Tk15JJ~*X@%@^vw10vmH+eO zMz~p+szj<2idyg8&$5U`wTa%nGsAWbZy*;F@dc9^lG<6ZrntF6;ds2cK zBzxcd_3Lwmu<42kiBdRAs&Gf z_eQOc!rwWsJBw%cFyS`H+EDz&^y z`p~hpzk$zMn!?W%3jBrZ_hOFjF_JU^OL1ATKt8|Lf05cT{Dk((P1oG>utz54rr+gN z()0R&&Au%(0|H$N$c|}W8b)|^9o@lGbJ9FSy?Q2pAyzgaEmYEaL@Yaf5qoNDDne^4 zwpF*ZJB^$)6wyiJ*QPaz?Rm|x);H+-`~X}h#0rpX&VDnsE@;Ldu^d@z6*XI zPS$e@tw%#N+yt=atf%6t%ugvcO9b)z=LSB$=_MF^-*_lf8gF1EA6nO50VFJpE0-!! zW#Dt{U5BNJ(Gu!(Dps5PzW8Xb7>@}*W%TFP6DJ?-_?tC^(P@WEj!}%`G6Qa>@9u!zzd!?4I2K7Qbg@KQ2C*~E$nnYO2d z;j;hh{?|yGobcoo_{qR4c&6?0X025OTE{@6apeY+?}|rjoKYu;RnEe=LZzN;#N`lW zU)U}uArvp>VTikhf{II@#!@kCb`! zXM9{Coa~7?U+z|*kH-}67y9=K zQDq+2LwH6VKHeeGMA?Dvzo7`eP+3)vyx-ouC)-4eK`=Rk1jj?7|yk~*2p{Pm#vU=w3 z>ZsH1NL2$d^y#`;fy6j_z4hyP5e-gmY&Prjpx?>lY>yc6)71>Z9ky8}AEQ_q!?NUs zq`Z4?_+}%LqsxOU2L&f~1&x+?)o4wc)|*{y28cx%ErZ8YhSZ7?U`Bq(dD5X zoVd$ds7}V|{)f5ys}$o|$WO_GySndNAgGGx{ntU*kl~a|zbhcfB|GL!U(qI2V2?7d z@1ojkg7%(+F#vnrW&;z-MiZRpJ=Tx&cfyb83sLUD*T2l7?bomg;`}saj`X6u;%6p# zX;N9*UvY-v-KJ&E^4%L%SQtx8foSL4_QXui9=4uahN8XJ7bAYXejNDi-91xP#n#-f zo~DN)(4jwWl|Bco_yR|l1i2Wp&7I9@I4I}aHjT%`z3WQ5G5<~0mdgXFGI zsMnwW$Qot+$?Z!k8z`pY=el_)6F!=mId6^ME9y(FZ;(6L$=ikEHS>dVLJvX{nL~#3 z8#DFUmahai$3($*cC(6Q=Boz}WoV~yuQA{ngcQ8dvqJ!~h1}@4qMc+i+gn#5xZn6p z$bTnwOCI6tTa)W^&?6Tc$KcHsb`5J|#V*4^>w{bT1KyftJAZ;b(77h(2m=Ar>8xQB z(@q5j>FUD6gP%Hd+&tXWFtj6*O{;RGs!-0@JQeZ>c9G`>A4i1e^*{YdW@B@FnXkP+ z%d(U*+W8;m$gRO&KfV>_Hv(Sg5c)TdToqhB4PHKrcrb1kdL+j|_c*Mp&vn&@$^=IF zV@7_-%?ARFc()gO7!zfljfS`RZ_jJ5_`0c;qSW6+`{L8(&=|>qm*E)@RofxVm1?;S z58gvkUKPCg@bphVWAY6u>74mgD&_IAqRS75Ad@{8d4-B;b;-nMvIpbW)4x?}5-w0L zzqKhf3nzmU?Qu7e;j)=dy51yDT&tS8dWt&cL4~LV4AH(zRR7Y?cy}lOE+!f!S`p9; zKSeVrOauKl^haNdRQdd!p&DXMHW>OuGb`rdMamu;dILMDjDO2Fo=1G*Ui#!{vv?GV zFqkf z@%{OWbnHXB9oKC9R#)tOr!0PZq-ewx{pzQfx{H_12Q6keobAqkL!dcMn!vx`38j!d zA}<~{EP)uHBwOs?8%SsU@zSD$$^hvj3V3t-C7(tjcmx3;139}Pz0F+KsZA0o|IZE- zyvom+a_S{yw>o>W%cYV*MMVdp#ssjv9A(%J!78;srvP=KlAu(HBx~Jv1nv8^U1qLeyiOo zX0e;KcoVp)rbSYbu@2^H1#SaKJZBp0kyf_TI1DR6%L7T=R@t{AUz@{sa{neO`Gk`N z^D19~jkP)gulMvnZvanf-H1J-V@vxgYyb5=37n~vYP8k56NoKk<(8PC5B5-qbYFco zCI*TRJy4;y=MmM=`fix;C{9uV^@6$I=?q);{sq$R+D96|y;YZE;N~BTBp`Xiq9x{u z*to6!uVci)aX$S|5`0z2lc%~rh@OqNJ2Wo5|SXuM$g(~1TidNW{ z120gSgR;QYP!I=ES#{0DE<=Ys3uHX?q9?cYW=E<_bs&~fF<~q68J=!nf?r(KlAIE* zesJrdlqwdW+GF4OSX?r?5FCHcG`wVY4nGWkrT)%_a}Hm7?mCx$u^zF?AL3Z8YMza^PJ_UJWMI(3e>-e(>qbu8z@ zpE{lYQ!3Nh)J`;_{OC`j3F8C1+eMi3iuQ_hlhhMt5`xd%Au`9;#tg)aB*C&D-rP9% z024_H)GYTUK&Te_e5SD@RPi&Y)nNJx&0wUg6QHz{*o8$ShUfG`6zlLhC+QJDvmfG; zx&+zU)ZYremAYQ1DDkQ6+h;T^thRV9rntiU=|g-Y@Z?mC$xY|FjKuHc)*U#ur#~=w zLFK~#Bj^X)Hnk}PxiPJ>Q!tR&vdbsM@5l$-vA#*0dc6M-5^xzVX9~}r3zP=eV2`sa zGO!Es9)WM-TTkV-qHWFiJ=K+lxGl6UFLBE&hUWkYVqu7+E??(LZ+sYmQfgDqT)f7& zO7PYl7aC=G2hE%QY@>^BYRaX=m8Z|@z^HMs*PHsf z*}|0`Oo4UUuQmR}t`*l=IuC%%BV-)_5gZ0=-XuK2&9K$4oj$y;#(2o=oL}*}?oG!2 z6s-*`WQUg3(^ZjPeCtwW+xWn{@p$9BPFC{p?B~H^+(iyNhtl@trq??~^t0cr0pKs5 zN+h371+*p zdcB4UCkXjv5FFr+=EG)mlo2`PM|3|3PG?bcX7w=loH7rh38`$rygBAH=rZ9C3L>>{ zFw|%WDDE=YCv}Wc|MWO1mvWvjXe!iznvJ_)SFff~<5)uIiVXzk;qlZFOVyNYYD#7Q~uTJ;Zpj|IZwKHS~5wttX>N$)CCsI8jOR}uI zSo-d0-TSsQ_19r zQj-@Y+@2!BXXN#hz7jfa)4!58E4_dtyBnFGo#hc?##`4F0|ohUrh{qzlK)CbM-#~k zN&aD#`Jqy>#CFvXJt0WN@zD8seB(6Wn~NbSt#&~0UfxfWal?v))1pT%d+Uvlkk$7m zaer}RGJ+k*n{1^7L@b+KNWVT+EcM|nM996fzB6tKGuEVTUdW$W6S zq?2&iT1M-Z8?R$QXdc(|;UHpFWMZJkAx~-)%1#E=!Y(nvl}c)r6nRUG2Mqo2d0brm zKsp%sqNW{`ymZYfo@t6Uu)xR!0W#FP>DUA&!)tftRM!$im_x@zDNiO}T}kntL)(46 zsJ7hdTqaE@$p4EMD z$jgCYwQ|5%_#?RVwO-8S=8tNf&2+6!YMmq<>HtwqZ$|-CX2JDVX*-tW>TS##X;655 zNg#s_g*y8vL34-jX;H^<#_W#N}nO_7;|0@(G&tRxs)V-F(tiV86M{aFXE$=<;ekE0Q7CM^D$&-cK3|laO1c3m{ z#d5DUXd8yeUnax>4!!|96wH^v9LRTRTZ9}1ILa=!xw}hMo}t@SCiObKwfV;qX`IP-OCh(yM7tjf7VmZfG7}+#)#Uk*HoH!YF(eiMi=S)uF|Fxu6wZ-r-^GoG5Kg+} zW{T*R**RxNmog)J%wmi-jmTKhhTgk(Yio>W-8-5^AAgVGylr%|yWWuw{-=aTCfp@q zb8_~HK}LCwKlzbYlk!)IR?J4Lq67Fw4m_j8MLoU=GK%itXQRd{cr5dxrS6&Bvpf`LEBl z!z6iQT3D;?OzXI#nsQJ8?4-OE+WjnvYEk zuP+LWsB=WjbpXFEMJjP!CG#%?>xyIQA7aRj`;$p|2k-^fmGP?>v1~qsH$%3?nM`wg zJ?}nEUy_b*e-Yjtt6o=h3}k(X^}Dh8;M-YTGAssm*Ti%@dn|GIHajxzr_aYij=na& zX+bJTY5m{nK)ToYa_6fX4`}qsP3T^;3P3gvlp0RC{L5x&*fmNUlIq z861}`b3c-GeABB4te!CzYbR6RUAAj4TDXyLY2Bc=JA=o+?g`06NRD6+Ge$)w-%fl< zM#1i}?uMZ_C*J_x_(xE7IH$o%%rGNS;JUYvQa*SMy~+@e>VB$W?uCNTTej{{*pvR^H}96Y=@xc* zju>C*I1JJVIN~Ee{ZQ^KV`SUpm>>N61AWRUNPYh48JVcR>YULaq~%0l|7^%# zX_TFVM-sOMTVI3`i>ULZke|rqc5Lor(c@hxJ-2VUnk4aN1V+!nE*V)EQ#^1=Vt&*% z{CkX<#jTpcMa%$q(xJheKLoQ>v&CW3@%KKcP3Wgdu2`29wa@6NKF46pJRf%Veid*; zWvD0lqrGeUkO|r~{F8{(ZJ`ukQkPx?Jl{Ko4OCSp-hHO=(_%$_q0~SCQ-4RkU6t}Q zimJHQzn#845LG8CfY$C~nVWsZ#TxN~+brMw{yXda_eV!}?3np0|5hG-#v*gz1GAaq zj5X^^*K!x9m*wwiq~6~_YHY`^%6_p~t*Z$bgGOIpelY9&@qU*ODIvFFT@v_k7|(k0 zW90=5H%pX&?!d|)H-)x1Ogs-$`}vWZymHO7LA@6|16|$B$c+j%BT3Z8kq;^QM(-`m zE}e~*9VEg#yk}QL8i0*i)QqHU+czBo5c>gZb#T{aQJp53qv$OQg-q3%z~9;kUZuIL zrp`se-O?g+-e^7b_8jIwLNY}b;`<*W3Byx|Ab7_DyyrxTl4-NZX1ZTpuNHK%0$Mpg z4Y|L6d@nzg0RBMHQEyPDkFxXek1_4{v$Zd%^_TWWHEXap+t&!lYse7M)Sh-8}t*}QT{ADQEcnj152sr(Y6%f#jmn+xi}_lX-H3v zX76Xy*C}8`jHhjZ;{GB2!O8YKCG6Z9mIEwZR{kqy#-M|0Vkq>(~_;ognjf1+^mrn8y`-IX*8p~g%A|Q{~ zvS9j8lMn*1x0pwKMb3UJ17|&j5sg#Wuqom4)U&a-qeqnuuDu{UF~S;Y^&Lm#~q!l zu^R%av;kXMEYLopBQ%BE*eg0CO1_qGPoNVM)|VAeIM(|6lR?#P(eK2E25VIU#8e^) z(TP}2AA@>9V}j(SuBA@OE^U)lK-x&ri>%u;z5!s=4u*LGP5x7s##0YvBt8+bx(LAO zoCQ-a-Z{e02FJY+?0yVed$yNN)JL5Of1>ap;QWSy)k)kRND!1O>d2qMY_=SLQIyG>!D2dGqa%v`?c3Kt5VnogbjaW%k02?)GgleS ztnwp+*CUVtUKL8y3*ppNDvg=#4;Wxe>w9y&lm96fJufu01@dB8w4v_TtPa@8-$EzO zTeSWTxhMGp2L$q^ivjTZ6D$Vu)c+nQbvWLOb6Xz&%trg>m`B1f0B$-9ohi zio!1~%}wMfNK9V(n$!dQW_XZVlnG~spFPz`8=rZI{RENC3OvKD$sbi=ztQdlrGgey zwg~MO`5uj}G2Ad|{U1+X84%_6eSIlukd~H~R=P(}L|VET6%YwYC1hX}L`u3OheklU zC5GO$->>uGtiAVId!6$<&zy5`M%4|O>unBQ5!{7ZsL*bS_t%ix zwMX)oTv$0cb9M_PF0{ARY*X#ogaRDA| z2$UZ~dMM$QB8s09BV0k~e5J7=I|Ls16NC9qujJho9#k;vTMI@^olwwkg~qsTlLWMRJ!(P2y4X_;VS_k33+XXk@^EEk$A@GLV5wmC=pe)DO+$^0k-YCt zG;3OgwZ4x5_Pi0i%N!w&nPkgNY0<9E2_#^u)ohmvTdhp-nr1+D@9#CWLreL=SKrT% z#`&%<$IYh7X4euB#B*2rJIP9$OEj4}_T2{pVGiDmMGcR1@R;{GiG&|4jC&roFmc9x z0f3@#zS`_FoGrRAt-&=li&T$Yh`J9ah#cYd{G~NNPxrt^jy|$TtDLR zr$Fj4Q11b`0Vd@b#$J8PB|x)I1Fi3-Cp|IUB5tuEVL!(Dshc_sk}Bwr_K-QIoWebX zofb=<^@oOvZ2e_=Q=q%5{9bIT!PI%0PPSSFh$lIR{)kiG?v_>r(8f$b; z4grWpK>K8=t;GInv1Vh)zUW6}Wy01!Di$NU8Xh@isT0(>u_??Rt>`vBPL|ZD`17jd z2n^@E$@z!6X`edqUES@ki)F^~qkmdeTPE)t2x}1y^4QVycyi9~Ljr#8&Lb9u@RIeBkr8AXjm|W(N2TJ; z$+hBAkULFA+P8?S=xX`$QpPCc<}r&RGN!uhuAJLEJm23uur^_i?P<SpL3%&;kkW5K~e- zEo3zQ5!V;#_Xg*d2UVAEXQT92`n@of0)DxyGS{Hn|rteKo|>PVvda zBEf-UcZ+22`?}G?+D~%OywSn-HM92T;)HVSmvo-;joR1&H;zwkYQwlHG52es8rih9 z*7>JhaiTX3jiA7ajEh9mS~SS7aZ72=zWOFRL$vCi-yB?pz{@)t-&=7C{paQz{XXG#iKxS777(ntNw>M>91W z19yh_y{1|njxsC5F}deloWlb6_$}$l`d_*rcudTD*LEeSfIQuu>M;epYM=XZy0ahk z_pam(l>(BLV8Rl&0kFY@drRS+$0hDP!{7K4G5M1VY5i9^SbEAan%(IZ_FCRns+MmX z5|d=GAu*m< zxYJN4+z_#h)VOd9zy+!W+LX{0yh<3sa3G2Md<^jMt8Ka^-Y$=QI8AA2NRjvcOskYq zX0kL^Jk~`2TqRY!z)K_{gz`((fee$un#082V~oghs9n`~%rALJX>xJpPxMVVU_=?FnTA$A*CZJ3F0yHG)~mL7 z)U(C7yW80^f+s0IPND5LGZ4@%nM>m3~Vg`|xqbrx_(aY&h zYv?+4`VVOHgZavU_7@vB%U)>E2ICuDO?U-XtGuM;oYPsU2Hw4~U4#f!0Okdb&7Gw_ zV2NAaEh_;(2Mw&9M+H;S;tMb_A6{c4$~#>dTdt}jhX{}L;|QN_gl7Ooik%tqiqJP< z5E#e#tG@voN$o#(i8OggKJ2Pn$S9stt^iNr=RUr@AI!P5+cO$ns;kLxUgATuU;Jy^ z(qK&!YMeo_enSLq4Zg{Ul0Z`plv!gpOLYJM1fxUb?|h6;b)7KSB4ucdIx#h4^Lkf@ zW7@JM2%@WvhfabOqeY=TdQZRLf9>v6zmtw}G>F^s;5l!R$jS-d8|`RkmxX?IW!>x=U2S6H&O?d zx5(CEM|tT3J>Xc0U~^&+JacVc91+TI8&$oXiV0rkGh7`RxH!n#6?7EgybxF9-*NAq zwBHRI8~*Np1l4zaER+Wc1`YI|4=bl@{H!94kYr+hdjr)-TN%nLaMCTXh;c`iY#e3a7=>mdq|!mlQ!>gZ5%___({C zld##?$L)jJh|;vDJ(}P9sATC?NoP3t+6NQ4lJ{Tlye>7>0&3n~5@RC*2JHTN&X%r- z$v1e(0_P*26MA!V1P??UmP=(B-upv_W!M)66CJLB2kbbgNXiY6b}MX;Uy|Dv_l2=1 zVSJpDupuHPL956|AJf|TrcZu&m3M+UMYT22Nt;jFQ-Cz>yPF_!LMkzdfeZ0hgPA#D z9LCzAkGx&GeeRRJY9Ig?2A0l+M_wI}W4!6N=c@ktiZ5k)<2l=krg`%h>Yq*ew052h zaxPlO>5~;rax1r&!18AvZDX> z&n{+1a&q_?{ufug&+k-<$i!uT2x?9*SxhV2Lf2U?L+0>j*EYIEqP!*0O6Lki?mvHI zfWtbZwcnwWHi`p9peq41;agh&t_5(wiez52U-3FR{$ZhsdtN0?PP0I~-_yTb>})a_ z6xiYZ)F3EvaZS<}A^g5tsl}nHG_6DHnLSGJL^TTMp-mpZ2lg=${_DXIerkSDzl- zu}Bz0T|XF@k4wtCGJ>pq%X78Isc`6Efn$33k!kI>&yPPn;_@_S*z)mCBEQMF**xPo zGMbq5HX)b?SNA42>^j`AXNqsC?`==O9XoD=p&KqpK6Ap&ib3lq>wDY;I#}65$8Gml zg`OGDi;*fMD{1gs54O7j+Z;OPnzw@EmEP32CUmsTFY$0Kwd*7EWZdD(4r?Ke*$lE( z4qAQW_aq^>NO~?La4e;Ya#4-~ZBhPZd{JonBuD8<;^2(&00i%Z08<3nW~z9-#j#6A z`Z*+uLJWPIcVFB9og`E#sq`h9L;*hTt2@hLFc}mH7ibD=6~iIAO$yt~%t&sX-LpDZ zBK)jOmJFLn;zc7-OJ8eMjz(3Mr%wv0)WM_o3!@8kpdn{Qg$8#u;!(^V+elVSGLStz zJ@{WUOvPLy8WiUA{pa=Y-JgY5BS4JTSKCr12g|-Ixj)b|JHBon|D{;Ogmv+p z0E5)6!|t=NIEqPBU95Fi%Qz*ZNu^f4rEZjT)$gj6GI4ooa4R@+(!!vQw0Q#_M^Ure zXi2Ai6F`z_XNI~yxvg5}1Wh_mgtOxQkGfj5_NPy!oATU5IIIk7oY?YS_&^&o_ek1K zeGi7Ei^m&5QC`ImD>h0Ih1K(DOi|P%p8@fV*~%pz-H7Yuz9M9HLS>N zxGx#q)KS4EjykQgztmN88vND$1GM;L{bczA`#UOi`rNzXd1Y-SMd%rr_*xUKI_})t z5gZgYOmoy+DXl*y6~xx?$o$7x+PC}*E?{Nj`$y{RKCLOGO9$+ScJWU{!}73Ri5H5m z_&yG=)ha05q|;t;p0;oB;3Waycc6hOPu5}FAzE04%UZFc`WK&A<%^N8rnHvyRfE=m zjd|8$Siagy$DpB(ucpG;nr|e2z8O@z`>osb>1`5|Yk$FRLaQn%f!~|{-&f7gSID%n z>3TQPoF{zXV#*76j06q}v(AHC%^$}ry#~_&tmlAMk=Vk2_2V8ct11{{jeF#{Ogwp_rWs}CT zrT=!|_lxR)_XOGAA`T^ES`4O<-FMs;j&V-|H*YI%D1pC9($RsiYxDyJ^T`Xq;Nd|Q zwMmCdN5=Uf|7V6a(zTkq2jA~C=raoIiuOD>#8x4!*>n;Y)$YgGAO^z;3Ic6}u!=i;Y&Ow^!=A!x&23kizf&}Pk< zq%+sGu>;QX!^ zyPyc2my4A96!0VG-j~PXn5Mhr97J@=F4o|99*?vB`c2EH>adH*kAKL*9FIa7cwd?j zs>?lnar;tB6;u)$FpwMvSM{2J6(Ztb=Z0EMsgF5WnxGvgv7>eKzlZr1y2qB%+7{Cm z_1{P+0)2u&jy{aU3tiS}oD{-q*pcO*j;QF}!wn?~g-zsHJbt$srWnPwH1=U3Bcq2; zJ00ep-}}yY3(*eCaGQGfo_id+;R##Qs$4@2nRU|Ac(`&W7l6Z^4?FjT?j2Tik)kC% zHaQgocD28+POZXa!$<9Mn5RonSXS{XA@g|^3Sl5AD6uZ;5?IX{Ap;@S?hilBzXk6Y zRb`bGd%n|gN`y`}G&EAC4rH-AcwNB}!QONwyn!s2HXXCu zCRGrrJg_-^lIs*1qclrT#&7Pm7UJyrHnnZdN(5Ha^K z{brLglBsU9S|0xjI~LpFQ}Gbx98_Y2G0pgiK2m8hL#{UKNR}@9i=Mmt9U?xh+>EZh zbJ z(}e|?R@usXOZ`N_P8otigQUmraMF70^>FyWWr?sZAKac)q5_*o&Yg6Q4BEX>e0v7E zILH;mr=FYW&mHZrw*7cfPH(vx3LtjM!hqP7z{{KJS+)T0y)|mUh*kaZIkunrl36+O z!n?KcI_oA03td+sI+$AGd9^JNRe7#9#sGT%WiVj+dfrA#iCbmqioPSOx^2KWu`jNC zYYDb?`uz;A`7#6h>tVcyXZuv%+UCN3FL zOpwtp@Ns%qbdrhctq}$r%!xn_U0(a`|E@Yu?3YEJQlOt-{~?IQv4e~A z&fY#@n9}W*9r?`h4HmrlqRQ(s;?u=EsqI`5>Uxy((4fjzE)Z8)-t!ZG=3Ue5+xQsS z4<|3eV`(T@Irwnz|LGD2cg`Lnv)506qkodY-CI4xusQd`i$^pbZn%(OM)g^q;~UFM(v;%{)AU~V%tyvri+qnjUkLa8c=ZkQ zO;WvAv$de2$Bgq`FQL8AvW0#rrPuBI@9<|9ZQAo!wk&4FuwVPbz`~6fy3b!ch`xQb zqbs?Omb^$%QI39HFQ1LXx88T_da{(7PuJsLHn;18IYF313grVgjn-)*t34q6+feGD z^%invvN>@aumr%cIK5HV=qksaEA?a2`gq8}V-l)vp4}g=>J}f?R@K|bPl*AIQX|lf z>J0+g0|3^Un?%#3`#i%v)=l<>G$lCvpx%a;9bBvs5jI zZs~QS;gx4H#WzFO8FxJP&fccs3f)CqFb7s(VN=(V^@W?tnGY^WdVEz8wq!|Lf1+^b z_ETM7X=kPy>_+~C7v8n7-?4KRQH2<>n7vsPeIx<-DSmlqpwcvqHh8Wwe*S&yPdGUl z6B7q@Yq6a%-pr|qAaL&96MBLKTC_Revi4B6rA2OsH{M_p^ zPlxoeY$mW-dLN7GbRvRZ?21HsLPWop)PK5~-N1$Jd*D7}x-k4fz;eNH_%F%78YYA z+u~m?zYb5pr)E1%(kp)X)KLGNL$tON^h=8-WDD$pUfIHINpf1}*yyfJ<)D1GeXaMA zB=!qv!7XvPEUzVX^3X$<*f~#OKBgowF*Yi{AvfjY{d z*sm_*0^4(7Qktubw{kMLT#Hqg(zCikzUc;?WOj+x_%;8wQ_bvJzlZ=&8dcE#27`8r z&0R`Vktajq5qHiveP3M{$5D$Uwp!{l{)}{BAmfv>2sJDubd=zGpBwAcaI4=NEPxJ+xN1#I?$??vPke;0Zk zUhz(#Qw09PYpDOxvqyZWQok6J^0a|rFcT)N_@(mC8c-Kn};bEAPDDXBDv((u0oLUN08CUJc76_0UfXY3IAlUuCBUNC^ub-zAfk)i z@F9%_nUeiKtbF9z6vy(x^$T8{wO<6fFSpqbQ#LzjlFQ#+P&Pi39)fI~ZC4IeVo{^T zIR+kYxwnhPZ#s#pWjcxotTCcfA~1^wH)T=^)gR@0bF0EDBlY12^vy2Fc`X%U#BhoW zPBP!SZ@nKB-M9|sX$H*HCXwyokq0qBXzjlqjL5Q}vS-iXC1Vdu+_PtdaMY#fYZ!ra*JhmMWJb^eM;z#b-+<8H1eH zQ`utj<8r}?WhaaGgA?PlMVz?|WuI1l=UwaCb&7VwC66}bo(VmVlKass(+rms+@+7W zUGuhBz~NP@{n`4|C zMR2tV6;g!~-sw-2a<3<<3GN=s(+=VSP%(2bt(I)TWsBe85ICXQZs=X$AWv63ZrM>- zguNdPE^0HIjIxhX_mNy);BL^8a&26P)m1UNwKjK0F(a%>O9OEoW?H{Wj+}q40ug&r zG4^E}_=vMS(Xv994*s^63#QR`ia4z;->{#bmBp1T2Fg{B(dPYPW{t=Cca`dV9th?vT)WME- z9%qDpM3q{QQ@34T?AvUdhI@e~Rsb(ymcI$Sx$#ZNmc9d+5yb=_b z1MUMJ-IUM>b8rU_B}B<% z_G!B6D{u(jZ`Q|&NHi|L{+%%KM5P~LH5rTJLKLu&(@5}(VXE4?*tGiV$8E=^jjwAX zD6z%Md}>ntr~i&GKB<V-*Xz7ltdLyw~Z{D<0kM&X^yiH;+_J38-`ndM>(BWFY-2DZIlMgV6hhM|_29f^0wb05EN zOK!-I=QL`(|H_J?4%p>bGG(}P`sTG!IrY=TlIXknBnsc=%*stV`<|*7-#g({b$6!E z=Lvl=6G77MPy#-rCIa4PQ17Aqz`&F>H*e~hHP&3d{B+lD%<04Q=qT|XFerApwm@LN z6UM=f2$bE$T|Qm8dm+UMT0@U1UmGK^nZ7qpoR^~n#`sP|j!gS@So=-0k$z1@ovPyy zvX{~0kvWT57jCLAj9;-me|u<-cx5e!uMvIaQPbzn3%&SwaG8H4Ci`to4B*EdY^V}; zX;fH7CwwVj-E@joJh_-x`9mf7PhpCeM?B^d0MS8dBAW^73~MANv7YSITfa$ya&lmJ zOFa(c0N&y5-1=hsShx$Lew{U7b#=Qjqt89rce+eI_uM8>y1)?J6-tg>gHMC%Vkzk7 zx`rezyT*x__N}nOd(rLtX|0I&-)YDDZ}&A}&o7lVA*n@gU!QzLX*NuM3}}5F4Sb5b z{-jBCZd@D3vC=f6{G71w;_j0xVf5Rs8#*yuz|*Mu*qaZ0<(qfaZ{`6w-kP6`r6CJN=5(g4nU?!}C!@Q=56Ld#o9y+~u>OGzw|t%VB?_Vq zg1}KI?D{~z$z!9dJ1`5gq%rpAIk{ZR^R*jrBuAlvAMI`x@7R8vgv#0y{x!P?d9Y*H ziJBJ`Zxdkf=oyCsB>m5k$t25(r7q3Nt1AnH68TjfZ`IKpIoT zoCD(Q-6eAo$O-<6ddCdC+K@Q}L#rYGgbqCJiLJbq%%zo%aJeqw^049 z(;BxwDt8P>^+h+=xzT^H4{OeggK2gK>=j-_aOz--+#JU~v&K@a_|tE+_jt0&J^51z zN_g|yEVp@XIiJC?x?gsB9pDllG_$&0bhZp5fAEz;S7hQMq~2O@|KCbQG~POMVxxi$ z3iQ>in#*^3IbA<+X?Hr26&noCUmA|Arg}eoank)bi-YKiawfU{dcypq+uPjwFohnu z5;;68&?oE%SXYB-_)^P?R8R&gdy?dj(`J$7%|5}X?tf&Y`8F)3d>SGU#k~{8rSKu$ zF*;;1x_E+n+yS1U5Z@q~@!qTVHGk@$z1QHkEqe9`xIIc+_8+;tZ+PzKZcpgBK>7*z zh|;8k@B>O>O!s!5t+t@gkZ~Mte4wgw&_B}FHVlxCUgKZ8qY!MT-&7H#geGOe zb?4?0W>KT9ual2YOsWqo02nx5f-ry%f=-9h6^@dldS+G-Dg}IL{At+|{?7)` z8ZFSPM>&6fNe%gqmLzb}1Fig#&4rc$@0#_zw_4KKM)FH?nGJ?W+RhgsUov9s`7OS% zk=<7(9F z4Kk3wv{)Xg=fbf2cl4gLRUb2mm7gIXQGy`Ualh=3Q_G{PL+(-N+Q>JYy$Q+O~_?HbM@eisk(+qSbME!Q(t=7OmyDq z4G8sSP2gS zyRCmjeFLeAEz6b;u!hZpXCEe%4x(+Fx=8ifGKWh6Q@b+Yy9;@$5S8dVg9p)l2XGQ8a;jP zd0`CEO)oUOJ<9gX>qG$1bztRE=g8!QLB9ziYFiA8*HTp%f03aESM&*zVir};k9(-` zIV0|E3E}1Ygo?AvL=7j4Lg(=|&(Lp5!0G`2Z|a9+08UKqC+8WuTeba0Ml|Vfvi=|V zxexi3fj1;lrelp@?K*jrUGC^tN(XHw*yIQpvh*t*9Uw+)M7L!G|2cG1^M$9*<#7>V ztRHeUANJVxi-HLASAvRUEzRD>>6-X=3)y^?6iTTUhiAj9{AS?KoVb+jRyW_B=-^;m ziXH=U@{jn@B!9c5ZyDVfi+4mz&$>;oer)JUtRCOtm;Ir{`HXHxrD73qGP!htz=v5L zYfK;Hk#YnR?kew{_eBl9r{`nuwdPZ5D)5V0y~`Z1;6j~tP#WfByo)(H%kU2@p~hjB zL3jLZrV)o{6{4{FJc<8<9BTnJ#{Pm*{LmsmIj%@NK67|srGqlF9{mMHKfCzOT7R|V zmG!mXS3%h@Dr7@62hYcdNNU*kiwBiEFFT*6nvm+9&W|kG%S%#a5^RF~KCO6IcP;CdIg4k5?U+Bf+m&-H(#x}1sONS!4Z^`c@@ovZvkId?Ty zxhIw?!WZmfg{?sNgWe#^=dx`IIJffs=LEhkTQi_$b zsCM6#o;EqeJjY8$F{Co@p%?8^%Ys?yi+jPCDo3R^LhRk!MmVL=#>F*F#k_9TzrE40d5AX3ny`3)=vM673jC2tbIzK@4j>7`D7sQUJo-oC|p5VD4 z+ch`AUimpo%U5>!%M^xPi-D)4R9sN$5qI|;Gc*Bzrykp|@poO|eWe_v)>1^VeEZI9 z}qYSB*mNB-F7w4f6hwN?b8>p#Rqo;mx-A^D@h;**0~>0 zp5t-GX~a=Dqd;$oZ?o4*wN0>$$h6jPJNw;7n#;~Xzq|k9UXfZ3Dcr>U4>*>S<#ZZ4 zdiO|;2Nfnid;TUYl6&4TVw9&*@b^)AwPvj}E4cx=Zc+Eur=;C9nM&2h-_ zMS}jmM$wt3fpSYA3MwDD857i ztR-w)kzK<~HrRDv8wZ7Se0=cEN z%>AH3G~Y|jE+|)eD^6hnYpfzCmnz_tyuK2H{xAUp^K@!|+U?p;*B<=m+Z&$Hqx`SN zxin)Ldp}L)6({K0W!r);P1=9*+osO`0k$zM_8=G&dIdsGiVWjAc-QF2CM)nrm1;=+ zMlwk9>~k}7%FH!qc8o660s!qj8i9rUp{jw8Qrfw5f^IC|7jils$w#_=1PQR$XfgaBVXFo$u*v9^qS#W3O? zUo-j~qpnj7WcRrKf4bZKNH@;QL9VJNRFvcRc||`R)FnwC+=Sf?x=3zGCnt9@7I? zlyyBY%*Eysw*qNiLLjUqkQxQ+@=RfZZq8gMET5|7_)%iDchjHfB@`)Tl#e^XCk7%W zlA}m@a)vNYOL5<&F%)Q%4AvR_z#!@VV#vLI#|WS-iz+kl;qrBCGj47UWkq=69w~mm zx|1_Qhz)D=rjB=~*lO|&V%GCv>2{KS_FgUTVdRtC7l1~V>%oU4@j8Q-v4cBPj8D>D zB-!_J`-a#ws^5E5@oN4T|Ml=McSJX^eH@;toI-ap()@l#WjtW@p!hn_5mF9s9ar3K zt!09kwl7(IY1Ki|Jc^vck~?EmR)FnM-)@l$-&-f%?}xtk6NgoeD8{X-`rEn^lH!v~ zXkxO~0K1RxY&k{{69V7PBG_K2%Bzc=IJnlRc3}ay%MqqgPG?yksS2jnjscg{1{K!L zUUX}Gowxa){s~(d`pt9dK5&I*J8k47xiaIVmonHNe-gWK^*Ha02VtKj8)$vwVIl#~sKYj2SS5~bx)##ga>jq2e=%0{>Ya4n&zqdT5QG#c1_Mk}TszyyL4%j(>~FrNoMvL2J~45LR$vRcu_uH%Y)3%0a~xVLctdx)j|FKA@&!cE=da#UJ)z z$dnj+qL6w@v!jXcovQJOvuch%|5n16&avNIzCwPhLoX=)`N;xA74q+%em8_U4rrE6 zUeN7Wweso@rtj!SOpkxtxY?IW#Ne{606kFQSPTmFM>u8QH>6F2q8G|oZ_WoA!CTZ7 zp9F%i^O%S6XFJeH<#N4#wNK{9H+a7zQw5x|K8F{6wW;^y@?c=NyF4=Pi^zqlpPxRR;+8)IKVyOgAn zN4Qg#k>}Hm?Fh%)z7sIAPcjyLwgSDj7newB9T=~ZQam0iS``3YtPB?PiOme_eUt{+ z9PN})6xMXB$P)r#{o?u_%8kv=pj53SS;}7Os1`evb>?MFG$G(YVT5Bdb8S zPmkzm$JACT9Xele+g$>ZPi|q&=DJrFj6$%VnND!$?y)BsHnxHH`F^XNU(BAoK>3H+ zuR2$-K#Z1@4x1iu`MITATSLn>55Uy&Eg;!xRLSYi{Na)rBem3jEgH77MY=4|y`{wL z@qNG?4crYhjml!8u3pU#IHNUXb|BOeF9uoW)#bf=j-kU!U?Q?!f?&MtLb+l@!s6(9Na!vZRG?&Vrz(G*_G~qLZm;bpR+5C?* zKK1tO(dDe&o=GT9IX5CISTR5(wY>X(nvLyi)L&5Hx)V{5pv^~)8#y1l1F{}r=4fSF z-Cd4ACzp7Y9Y(RkY7qBdH$GbzP=uw5og?m!hgiY5nmBqA_@AePw5#1)G-kmbK1eYO z5GFb(7;~Tee~JkQ-4Y%dEzD9(QpoApf5U{;gv=hAvms_aMM_o$HlmcDk_9P~@Ob(& zdh2sQWN76Ztrsoonx2a2iZLFa4cuIhi>--7jYALg&qWU4{~PoNNJ;*dp8K_Nh@lwk zzaeY1j+5=GcL|_$VT0RVlR(G1qXy{G+hz3lJR=iC~fb z&8Nv9M5rClkg*&Cw{b@Q8+icrlm5_X0dynvx5)W`lUmznR8a@b$ELMZ_II=?ti!JY z%pF?8XuaIF%sJxq<=@9*DYmBhxy4d}j*p*_wmlq&7Z1u>F#(TW94+isWZy=Zbx-Rh&tUq@^8ayQmR^*q}K zoV&ASzw;L{Rh5V`YW(zcM?Z0mc3G``%i$Dx5V-1a6!`i-8a3AKB9@D*+D3?yMR0|_ zz?_`!yQZwfmg@#wyd0oy-aNXFgndmNKB?zxw0ieb?tysh$jQlMbkKT&J8Wo};vrc@ z@8*ZQ4j3t9|07XYK09t2IeiUbVrsL}{ZHEuK)1X&CR5aEb{@u0-okHBW&LbFTiK`s$F4GUXg9#(6w zT9pEmwJHpc*IZFO+&B9>HS?TROC8evNx*R8;)h`rfATC6WmEhvjeY$@2I$rpC8Nx? z@>O`%&4B7%15JEme9YJ|0Wr_@(77Q&-oc$!y1bECDc$yMbtW5McAHc$EgC#|@^dVV zDZNks^KP%&n6k@ME`5O5;F4tdGoc<{pd`jb!E37SjV_rGbWn|RA$mcsdb z`MHaeh2`(&30#v1TC5jL_mGHEUHe>(G5)b?#%z(G5w+px3=1jN1Eqd?Q_yP4+M8VeRe2*`;*g($j8?0 z!(IwXgoEm8o@t@|D$A>mXefGU{KH!mAGtS!!t;Unu8{$UpkEWEY-SPQccEQ}Y5Zs* zoUQr4S4pV|q!msV#2MximPjQfx-})Z@zRw@V)}=)vl(}abM(i2197j2f*^+w^YzFA(Xey$|Hh*@E_#i-kylN35$EvX=y3}TuR0KGLx;Y8 z_G2+WR)ec@*6{lKhT&t4S^3LBShiSuHQV=(zuaf4{^1!7FK05>XXxoH|KDIDDk*h= zWVtzUG`Q#%u#7<)v2E#HW4Mf@b5`#QCdXM@xX)-uzw`V3xpn3NUeCt3A}{%AHa|ZZ z{c|P#oolk0n46yTon4*IG$!gAtmbF|@b8K(w*PnCp;62h_S4@If>%Z5{4vklw^8q)BG|WsM49IZ|6uZ4_B`^so>M6aMTa2*u2Ev3Vb@03 zS;NBtg=z#e1CUg7N&>%>(m9#B+OrWBE=d97R6-cvIB)WkwEs9iYfjD#B&&bUPm}Ps z5Hr{+0VHS+-#+h@=XZwVyYuc`83P-3g`e@kgvp)=tg3S)H|a0+GuUT7+`ji?`xFyTMvYpPDT&ll>xO>t zR7s)krKTc%g?D1Izb~Y+3(}0l_RuA&j^0+N2Cc*%_CNWkt?|Dw2R(#UZ+Y)`a5Z{e z>mY0&#?#zD&grq=y*{(ub9oE|Q!f2fp1d!=*Lr$4I?~h*?wCc^^?Lnz#P8G4Op$o$ zet6Ub6hw)sm<~yVUpJqpVnEMtS;A=RZX|<^~!QT z_(AMx{9?hHFy8hly*hnqo1fucF3ls30-DiYqdMECYT}_BHz63JAjs}wg?Jh7XIu*oJReR~B|$TaZ;08xKj^&Ke_6)|@BE%J`-3*yNIqGlAa&=k9MbLeuI0m6?7l zlhKR-f|NX&*&}6Ou|EuW>JsdKe3H$<_b_boub z!RSMl)8v&m_dSfAlvtz(qYAtJkE*u-i{ktK#|0Gx1f(TbTBH0=jR`jg56ZYFe@kbB^LIFZ||tj#S~;bH0xx*4#*FNMR{p_jy6 z@tBpfF%io0^h?-vf_EA_&l=xK3`TCWp1;pc9$xdW>D7yK2|d43<{%RZ<)2~E1!d|h z$&#d7V~buL7+rdC(c=ugo`|s;k6s-(eKqLdEQUk-Kcd^GwdxavVl<|)RWnG|O5Vt0 zMRy8xG=uc^KGaR?}!Y)v;SoI@XyUVQQX<5l)=QXim!uEgC0Oc)Ud(-94+q2l( z(bWGb5yBjvQA@Gn%t%HQn&E)}uuiFb8h%zWy^+i#E}LzA3C_j5Uio6zTc)TDh6sYt zloMtX2v2>5`o1cWaU#`NK6Whr`8^9R*3wedYmYSP5yHPb1BL$&tMhUvKO9e42aln; zaw(=qyBqj{$tx?VyNNx?sF-#{sY_IheWO}f3G`M~Z7q5aE=6|~i>H}P%C#CA@>cZ& zyXx}pY17eTrx|%r3;JY1{r||WbSA(p|K8@#vTG%)zA>8KQ~zdmV)z=2a`$T`j%Z7R z7A=HyN-6Pmj%;IO8WVZSeHt2Bi&(7J9dap>B(3%IqVewUF8!Wd-F0SsF*#M$36NN` zk21DK@5mji-}ZR*$G4`lp>UAZeW8uv60r*5j-B5dA)VfMG5tD`_ywxL&{A_|7qGPO zx7_=KBr!eVA4lbMXruExH90}Wx|I<|bysnBb?F1s7}s7>1~mA|{_A!sQ}hF;#^nDw z+;A+_*hJy`Ib|IgI#Q9@%XILIww4+;{`1}izP%@Il(x{wMtlIMcs{5-RA=jAcEA2; z7IeSo`%?|ci?W(*0pXHY4vdBXBABz1h>M=}(1UXN4$g{T-v1+?2+jN@(OL2q-eFdj zijl!)75E}nKQyC&2K5)%*LdHJ9EB@9Lve|dqjRh}<6sMDdBtwvW#-GN%(9IKV=JGc zzSjTV4Fi?Fd^{p(QiVG7AEBy$qOtHSc zEK>}NzHRTr5UR1U!UrU(k=B7W82CxYNf*56`E1szWE0poGXjv898p;|fBOE53#|W|?Q?0JpUe}kU>CLN$u-PKS>Ww+zb}$5@4mQ8O zPDmI|F>AvFlL&NTe9xvHjK)5_vUVZgC3z(24S{>!!bj;B2f5IPZls8j;~K@fxJ^7w zJ&0puXXHOeF8_8EMbmA9Z=B~Xg$*R-ST+T+#3 zWtJ16V2$1ub7>l0Zh_vV<x-gw&##cqf6UNoFCNZ9myo4#3Kpe}QTl;;7pUKu$yftDEb`fY?Q%TZ1 zSeTE~i-WMt_>^y{2~rCCRjl)AK9h(mrrxbnj&TE%n8oBic0%tAtls5>zN-d1*DRPU z5fg2;yU{(oZNEgja4ss}+c_r)>kO8yEn8H?J7kF&&eh+OCi%3C2WyR+5uOyqGUH~H zi! zEA?j&yl|)@QwR7=&3`iaI0sa|3+8^q^ME555xReQ9X!0o-E!M!i!@5$uESm zt78CvMclAf3O$EP2CNVW&?0q}rG^g|lf-((_x^3%y#}5~v2x1+H#)|GY(_AucWcuV4 zW-C0*3g8i5_njo-Yr06P63%{KyU+U9^%6y-l_D;0c;afG@gmZW4XGApEj9&ip#nGO z(#s`6!_4{^W7VV3by8pNuLEzI#xMH(r^4!b8aV4Ve>!WPdv7lUfX|$yrzTNe6GZyJ zd`Eg~dcJ;FVJwj)&AlFb&8@$<#=zlY%+tzM{l=2TRNuPnDvhHP@ z9IgATp|LEh2_bIzm}S>+FNA7WBWx(h%2Y;X0LkA>i}oHo?>dPl2{i2kK7~7GGR1<@ zO9xi(`f_x4vE{Bhc4uM)M*41o92uT6-?~xL&tlajuv7k(_sSh$JI9@3cu;P zr_J-JSC!w}gj%U-)bVWUInKC))T*}fwUwvU&Se%0=kP?2G(73Hd%rKXc!{-z$t};G z{;wN%;&t_rS8nMl!HoAvDGQ*47NFjpju|SK+sXThiJm^Drpt9dsHqP6Y3;!+jTHOK z_=}5P1KTCq^7B0L)$bZN9Q;a;)0X5;PlAJw;kNtD>9v;}w_{;YkC-e8R?jt-he;$D z%CB2`Zj#Yf^yb;M_`AIFW%{6Zh@Cmo==VvI;O#Dw2hS_l+oJ5(x2Z{gMOA-v?8rHl zJJAeo(vp8@f7)Y;NWi!e0w5-<35oO9e#?F9n`VeZOjsANP8PXo%Bj^hj9s1D(PN5M zQNEhU&9cECszGjtE1OuaiCQPO=}&4)=D=dh;+J{t9-E+D-DTat|Cz_vQApf}^vR8h zj)yuMLQr;X4YNA@8mpG_CS_LPoW53Ql<1YGo@AyE_-gc`vNXM^4eERJ>6<+T@by>) zy=7(cqVYf`FJd%#F~5~iDE%txE+qsw3+emFpLZuwfG9;e-KU{*E*TACgV$!ru&ufZ zaA#P?a(P{aK{s`hwE?Z+(sv~j%Oi!(`Us*tH|5~bH7Xq^fj@ z0f~FkkEqyr*>UTiQzi~WU2bh-!v3f&aCK_kIoFurm2 zjx(yndPi9k^zblGcxI>5GAB|2TqKfTWciiMqjrkiGB+*cd35=a_vvb5fqdGBmiqCa z&mMKaI;sc9q(8S(rx#b)4T{ueH7aKbPQ812dwXwA|QN~K1>M(u%cvs~eg8lMDvsnfAWqWyZLnS3%mTa07?_2-EP=>kFml3hh)^dZ| zMdEgk-cC=6HO%JY&aLYc_GYqr=Cc7E>GZ`ZXa5&m_J{3_C!0;R-D>;Gq{jpNIXx+t z36|(bhG#30_z9UkQ$9}E4S`%Lyv5lz3^`9_W4HkgNacs4Eghou?!&?i=N#RihcBGKU0$s}hH5dD9s9 znjYanHs8(uuoykn*@E{`lb^cZKF=x3~QvbC7uAGpCWg7bz93{z6{%r!2k6M&X z*}93l0;uKi5oz$99ypo=_w02!$`tAyWKAH$(f^SB_KH?YBjR%nyDl^%tr>q`NENXN z(yXBAAOV>}w$-2Tzltt?g9TzeAS&Rak~aAERH_GC=)nlF$}%RXJ5-z^Hih)V%-8*nO2`?QV$mm-Bm&sqxhB1xr8I{TK;BNR<;Zl|9DR>oK$ zs;TfMdC}g3N}$&>$Wp4Xf_x$6k>QK6h@nxLsA&qwRnLKsp1`LF3(hN3g1Xxi|wta6_D+R_4 z*B2^<43P-chmF2YPEIF=D;Oi~ruPubR4$y^Qj{8* z*nY7?biINWUUc5f?n!>S6YMr=Tu)x~`TNw#4|j{)u5V||m*q#*!GK?4J9?|VDNGA@ zkcUs@3$Dql;{K4O*KhpAXl6|X{-mUIL1dQyM>fYr2b&&*!G=Rr$<}BIxTIr+b=&+{a*^MkpL_ltL!RgQ1fe4B3LmSN}uwi&ge%==4pXVUaEUxiu-{few9 zSp4*d#=_WS#kUb^Ga z8lhhKU1v*TIymA2h9~yr7Q_rwQm&(JqYyeqrOyBocS1cTRwrvB3e67we3k3f5W1a% zlci8N|E}b(>dR!U7q;%WRgvfjmDw)@We$l#j=PLjWapfSnSNF22H>szfh&o7@S=pL z?_UFnLKQci`@fjy>|S?+6`BvmGi%h#YfUAVW#?S-qNd7fGk;ZW1J}Y0nr;%XtW2G7 zg&05HST1;p6*ydgZd=$*Q)0aYE4-52?F5r~x`0)P+wg}hgU;mD?CNxG(qXlND9A}} zbR%SFHRflc;2+C&V0$B#4AtqKM85HwmE(nZNq>*hQ1%GM#Fp!G*{+}v?&W*e2s;A?;Jw$B;g~jP>77OIzpf7h zUe;Ee+nDj%%&PgGi!S*Nsx;T3aL@O?RxkaBc~`8*0P-@%sn3arjx@DvIHA)lYwY_L zg&CpFXV4C4$pY+3e;e%B0bB>BWh%!pfprk7V5x$m9-=myd9u*GgLo-gvuHd!}uJe-0 zN<@x?!xd+U=AnoYR^(`}wa+t8?MZzg=`b6A+#O9C$eA0w_anb%7F%q7p=pI=L%X8e zB?&C`uuggFGNh%$p@l5xvv&(%=oTwGfd3Y3kSeL@+Oi|_ z%Hj1Ld%x9plh+Av9huoNEod$J>`6&~gZhAV=DW*N$${q|8XdanR@H8utrs^M*H-}| zzw>bEMXX#)G1qxhVK6NbW|d0XVL(f&Ud$av273(8-cDFbq7%l$<-mr-ZJxR5oi-g! zSg?QIFk;oUNsBOz0QI>eZ-G$Wb7@Ls6m(I?Xix0(SOupoQHpez5E0peT9dU4~trgzkx z#A=#^D|;UBZll%@;XlJ*;6eHmYe`AF!SWLL$mu-IjKJa!;~k8)wW|LoukZ)(hWGOA zUN#OgUW9~S`5%@M>eo^p(4RwPNMhb2X~3z(cwBUr#mk3t^QuGlppMU$3Yd@ zZtw@UMc&fh%Q4C6lyhoVRL|$S5T`FEX^u4LG1^j4{(FYWT5Tbr%gCkdJ=EYEOE;U` z?^&BR`NFa7vwF|xT97XL(>2C1sVLGb+N)yEfiM~mW0kR`oouUL@&(OEb?nKbX6L4#YyRV`?Ix$hALIgjV4;A5M>PUD){d; zL!o%h*MXa)sXnKU;%3rbk?kA!R8IuhGUSYB7AzJ%K2?&wg>mJn`CDRrJVGx$wbeOv z0OdqYbHI2!^3BzWFt&`6#>K-SoZ!(wk8AWT-BWmtgHN309C^W!9#d7hN_WY&e&(2~ z{xUYUI(@CeH#+_F5*N`-Wk^M^Kio2d+GS86<*zD}?{WHeiYwu@b$vybth0JyaLv=1 zTH`yJh87Y_RoFIH1!Jv42U-N^tIA{=D=L4D-w??eFXeOtA z1vAjzzeQ?(7#;`Tj>fGZ^Wur^;aN`kWXGflw49Z2Kh)JGsn(yZWl){<-1fV*q>E;m zM5Oa6ur5J1@|*z{jnnh0SS)1UbSqMTi60L)VhiJNnaXbYyYY4r7lhXj%2?HqsdQC+ zBD*L5?jD;h5jKODCezwPGh9>BdnC~A z4|#Ra-y+=hu@0YPH+D*Kd&%aSAUod_ZLCogQ(Ig^kiGx!enSVN%d+kyQw|26X!E`x zd8rDtdZgq$Y& zV8e!`LlJMo??)Cq-#c@3pB;*_2i%E#OxU>_&v$KMjX&%b%Xwt0;XxW|Jo#;7?9Zdj z@8UsU>njRw$?4A}m8mfIwMn5$rCR>ZmW&c{Qx0tdf~lw9v+dKrzxA`R_*vgikccSX zgJ?izvjKAA6dFDkWIQ>srSb;B@K1jed*hGjpb1d;uJDBI@wI@2_n?{l&1^JovizH` z=fkL6sfAJ8*xJ><%Wj`v8OeU1`}&B)wsmXkR_&U#>pL(DTm=S;bz~s9tS#|jggzyA z>_%&?eHBC8tYx$B!DtwrUtWs8^KJ1$UuWGKa3n!Nuc{-o_N?&h-Z*Az^l%r=mgd17 zK`rA~f>VTDI#QF<{1Ne{cb>An*lgmX-eUt!CNxDVGz5#CZp?Salj>de58J;F6??I0 z)(N_wjQ&B|wkk>%ev1(h|e?Ul!02{i0;^Dzpw0?@9{Aeod`RR7&P6r{>>S z1bmOBw$s{1F*eIYwG+U~Gg6w&xb{x&ok*S&^e`Z{H&vO4Aqo&)pvlNt7fpP}qQ-^o zt#e&#o*!uC8$HKgbsrL%*RO(e9JnmDu{-sxFke1U-uXbN){)O-rxB)6OBDC+o%}mo zDt3Dsyh4@_VTIB?7s*pzSFu)w>N5$WiQ)T*xNFVTG|dV)Z-=tAFYZe#ao{eXpke{@ z5}xu5c3+wmTLtwY2o-lqJPC6y_v_w$v zl{Wa^Q4`u6%;bXVas+`NEU9|nd^YfiE!t?V6nokA)Oh#P)DUmc#h{JPgC!+7qGuls z-n#M0j$u7Dj;IhI2wX?}Qj)SQ_8AzBzBk7SeGsE*V4@J%L{+o!;s9SBWoM#Pt=cf;bM$j+~5r$BXN+8$AW zp3EK-U_z}F+l}8`sN(tkda_hZounQU=+gr!zMDYdUt?q6PQ2u5(U@uz|>HAFvU ztp=X}wqyP)2aI_W+Y5efkEtx_phrNpE`bX zwHT~%7ypMfeA$?38#&W&B>D|u#bXIPW|y=63|JA54aB|5Zkoril3l<^^Z%oOL3vxP z4LLKq-F@0f*$ExfCD_3IJ?y|dXTXj~?2wOO7FlQ(&{u00RiK|7n+{#Q_H9_4#om-G z3-$h5DDh7KQ|5;?Q|8Tw;ZT{E&Yo(?dk8MIJ1}_t7WN4v!&aK? z|2X|WRUDOAz~Fw!v0+oW3UI7@*OfS9_}aXqMZHmCoR?$~!wCwa%eeUfl*z#C7iBUq z()or?iCj#(OSNtipVg@w+-<1Kw9J#c%?ZiSqVc0v(q1|qU6RXgPP;n#S4n8pBxqY7@7jyk|Zy}F~a6`=LL#r$w zAAU4o6e7i^)AVgjam9Opg%V<-b$t4O!1rR9s^E!z6h7J|t6;b9Sab00>~wT}W)^1= zaxkhBVo!sG;CzExqDAbMxgm*nA61yXCMp(#R%!*jt}uaDYIW3h^clgd!R2G-f-a}S z0neTuMxYa<>c)!w0*CFNU2@f2#S0=-M=K8x4_-884rTAW>GgNxlmL#>=qYhE0+# zWEeo$be{L7)mw(J(ZNb9s=P&~cAcU1y;!np2gv`v`k=uXo^_xENP_OZgqrDxSKwmm z7&tqtw;7`S-w}K4u}~u$s#m0bz0?p%Jov+8ylf)k`|GFTy*{-q97`Qhq1_dqJlYTK*@FyZ>0O_yUDw z42a90hjnj$F&f*-?+8oF)CyAxg$qH-v2pwE)>+^Q=*wlDe2u^do&Q)2M)Z-FaP zK;IDR&o1%N2Qm`oZR=h3N%)U{gDwVjDPv{D&#J`e+}S-=Z^Me0Y?Q~TQ&!h=oTF`p z6x$tFJ)trWS+uBLI8QV!4IYX>wPNk)I7k0xzLxu)`u#J)6Xaif&JJc}H)bHf0A>Z3 zX7?W;Je_%tqq{fU>7KuVqD01d?VN^k$4iBppi=T_(rd$M%`J;dk^vP!WO0+g=vu*i zPrt<6kS5F_qr=Xrf`lzZvgCP3S)^7+@YFN1^!FuD#0karhI)7Xs-zaPHk-RsvIvoB zp<$Bef z>M_}i@|BCTKQ?XU!x=z+D7!*oN)}K5n@rtx;AsIGkG>NB*mVZ$;4>|NGY(_IqgoO| zPEyVYEz>7&+<7$K+EDm3g(rEPOoy2qOFnwdPADQ|$Ts!!(pB70!vXjUhD_Qh9~8#t z4fwlqe?q7w+?#tbn?m@{3(P8c&q`C@?a~%ZIHSuPD?LYL_XTr|)6(tBW!W@B-tV#B zW0_3VdaRzMWq69mS=r1E(a3u(arhVS=%fcvkt$4rE%_7fIO4EGZd2&a)`ZrpZ*Y#Z zQc_KZU%rFAA>GRdZbv=`vmePiG&6A?y-FQbzuetXdVpXbGBryn5rBp}1-j<#JX{CS z_w$q)X0MBF+wY_aGa|fx?AhH(`y|}$2?4NUr2)67^F@Hx(MXJ~p30Zk0b2G~ondo> zg;CBc{GvEVOKsc&s3$4CX9rvWUhK^iun;?Oc>8-KZ4|50b8%T8W6W#G#HCL6GX9w1 zl-8Bul+OI1K=SC?3>$>TQ&ZWTxKZdt9VI7M#kfreZ%3G(4GA#u=%&{` zY@~%4Kwm3>YCxF3(lN`)uA#}o3^I2Wj{CwMqE&CIGzom(>o>Krh%5RSH+@`^;V1138fs9J+sQV`ek4yEE~h&(F?*pAXq4~~aA|={cxNOd(!E4ljDA-74IL8~wUI|1COz*FlZ0`^QnC1<= zke+eyWm<#8o74Ol-#e= z!1(q0(*x5Nx?6P8e*& zB78Q~ED^N+d^G8_{bAcSg@#fbeQEAyz^^QZv`6r4ss@{$UX3l;!o~dmv;Xs%!qq%sVUHTh@);*fICdpnGhsHM zH>uJ-o{1av(U}u1v@|s$I+N>aE`u_H{>oW>EdI(+KKVH1BOYsd*suY_VW>aNN@Y&Oy7+ZTE8VH{o}g7j zvE-;%6<#*Da4u$6-)bYqMH))@>mY6lNFAkRKQ-P&bX;D~Aab&7qB*v_=>w05M^o+c zOO+VU?BDdV*M-@q;bAVO`~BphwQA-yMg_8y!#JONAAD{*{W-ju>nB~kvADtBRP10- zie;x}axx+ru1QSG1>cvy+RAxJ@Fci=`eM;hIk$`4ztRE^rIpzdDO{b74RzSor0)Kg zxb6^$NGgdb`5EyJsc1jxQAt83mjvtxGRIVVIin*AIvB$t-2 z>bl-cdDHe3;TD z`y3d)MV^|dQi)wjf~#F@__E|t4}LFYs0y954uX-@o&7Jl2ZeoO6~##@6)C7&W4HTj z>-Ef4c=x7!wb6=2`<#DPIbi%(GWPG6Y^fLVIIJA^lb33(-VEz36|1ov6?_b!$x4nN zZpONQfbaESD8I}06lK|%ZB@{)BWr_XLX`g?RnYrRd|BMyy7MEN{@+Em;Uw_|<+@!U z!bcuQJISp|IhL6-)`sKe3%TVH?-n+{#+-XDt;Y=fvzT9^X(A%EJxlL<{9!9~6K^Eg z+huD0lf^ ztyd1NEgTn>C#OLardkRb2}a?63=3q#eWi)$_(RcYZ?OHv3vqqUA3B|E2gc!v$N*86 zE+oRf)HfTmzt?19OCWfy{wXYiY}p|>v9FH~PpUL?G&xNPkMhao<`!|HCZ|?Om_eLt zP{+n!!ZtLl2i_C;7tHGOwbm~L;F5=CYTwcKoPW_AR=9}~8h0`S^?}4uGALT~Gbk%( zNLqP^oW=yZHkLLvc4gpRI7SEIPsEYR(XjM7ZOii1gquBfn->GJZ^(c1wz?(~qMo(Bqj!>B2zX2Jp1 z<95d1^d@LeBWTQ4zRq~DSLueU)xP z9Nv%*&S<}(-FI5NJ^kiAv21HnbOt}+#_2-W=Q=2f7Ga{x-qCJ9=JK~B zC#sI;=%3cnSQ9ik_0mk_0=4bdA6 zseb|#9PV4n5H9&V>E6*QyrdZGakbg?yW_rgFO3EqH>{IAPd4C?9by@kQMi6gCG(u- zN`e>tbJ9R|&Ykfd!qRET@DFlEP;oATNeQWVFG~1}T9iyzD|9$IV*02Dtfw z9hlMa@nbN3QXuA^wmX#e3blh{t{Q!XM)|A?bS8;ley-iI-<>OCWHSz2&0j-Y$0X4I zScLO>+G|kC``a69wTz(e2C{UF!LVQSPm#-r&ehi{ur|dU3-q50xe%df=NWiPfbVkl z3U18)^PX=>6AA21O@p#hFg;LQyi;{e{^}V)PyD>>F-K43i(YKsd)h0{bURwk?={F- zr*Z5WD?yLzL?;1Kr#e?40hx@weS;?;Iu!Pm6`4k26fKar>YeFV|0XAx~NpQD!lln9PAN(4XC zEkK&7u{arZTKOHCz8ML-)|2k(Eu@m)4eY3<@rYOEu^ z8Uh|C&isLmI9hQIXnZ-%W1gpyfe<=5(XHers_dAivOi8LVKE65?xCzK&$L)C$m1X& zT3YRLNH9CuF}|7&aADx>X=I5yb57n7`sERpEJtfP>-Lo%x6UBE$qe~#F4B9D0=9&o zp|^U|`)T)9ZXv}Yp4AL+=BNZdC~Tlt)5LNrB*5kupf^n0gog_9KCC3pX_unU}m?4upN>-P3IFAvN1QpujZ{c9CAqIK7Z zdeKfM8s>TQi(UWZgtjtlPSrnvOX0nSY|^vdq>96~pi}RCktnVxph87=$vfsc;&opl z<1zCV^jpmAvA(R=gD;w^6hNaV`{^8N<3gtATlXf-qyP0B>iJo#_awGcZPw#EI!$0g z0wXxWue$9bK*b-GS{jW>7Z#_-OyFPjX*6P8vr4qulfqR1S!K>?HHHZutGb19KDDjU zrQV*)lrOKQ2*{9A8`a@K> zEr@)?Ob9&tJFCfyrEHQ3{qe@YhcEP*bfrXkW2{QqbL_H?UW)wnUuVoPe*|AKwqMV0 z%Ycgl3H7`r`<@jx!s1?hN1CKgqEv#ZWDdU0azRB8qEKQ4+@iNH+Ti)UrNE9{s<7)Z z3*^)7zFNcCLFO{`ywdUs?5Gqeu~4}j3k#&hl0U+xh1{S7%dRE-!O*_wS8@-FHD?zv z@m0hVw+=~VCvTv}<6jI8Wi3?_bT>a9q0RXsgrlmdwp3@YWn)FISTMm@8(H-TO?cui;A*Uh`iV?e$?-cRcUrfvN?IZUC~r)g)#h7X`QPo zyfj(@?EZHLCmkLYRUb3`MCB+rIax1r4}Efu?Yt6TKC`u>b*UDt%9T_>B_(X>eYo1L zSGf^BsZ60D-wOD}XBE8_vc{IgXhUA;4j27T{auA_n#|ut=bbyjve&^gwM4wU9raD^ zswRrD8WQzkjO^FzC-`$I(K`5lCmrYdkT&2D}U{n$d4(RAU09x zWRGH^0JrP)T#H3yz?Vn#IniG@)*dy#Y(~Udo+b>-YBnKfxXsU=%~2M}>O-tV1l(nw z^y$R~fzjqPbzDG${reTzlb|sE6EBL<4<{1Bn$fWMKS&>E zge~6$WPi7)$KLc(<(Wvc*O*|8_J_Gi7)P9NZv)v4*<AaW1a=BSkha3-^5@t-c*dmV z)bV?#nw!5qs`~oe6lxP+kX*c>Ur}cR%`ak?K4SW-(<&8phuGORMVuW zWaUj?UdZ&wd&EV0vwe=U+90%(YSK4Vkqu^(kgg%oyK`Y*{|C#T%OL|xxA<`?qi!ok z7p-tB^LYXI#Sx>cH6IF_Xx%x;s;P7lC`%eR=NYBKEz#k}q5&+3{Ic)$6xKB|J8cP! zsS=J*g)SxPbdV49!moKHa3OnnmptrULlY`0Hs|c0p!X?8 z{ziIZw4xpph&eE7=K^{t!wnTDIXAreg)ncgfsx7)6!1(r4pI6 zA!MZq!}SHH>lcS?z>>vMe}^Sd^}Kxbx4+DpEahTUODcSqeoO@xo@exFL_cQTObTOXTz* z9Y)im)0;V`RB3T?gw^urW_h=Z(7&mM5Q@-ez}T_4`y@M9@R(;&AIM4Uo|J0*{6<GpENYbu;jc-H9(%J;kwBRt)4~d)_X?&1a5y@ zBw4ThxF&deTj)H9O|UjiX1z+m{#@}UO4C$oc|oW0KHpB9*&*Kd`ybobY~MrXpac#R z7cF3$8jsi7drMo1Gg7(AFY<7Z=|Wy6tB;$#q7I$aBIa$lMZ-EyTwZZJX-hN!)Soc> zbA~Maf)Ur#L>bPmb2w&QAV|z>HL{Yt|K$6!HX*RQ1Z^M250Hm^4v3SyCiUALx%P4KQ5egN* z`Zw4R{6gX}M_fX;6$$ds{VoYS2Vuh`b{xSBUwkz&htkXO<^99xxPPRzp>>6zltJX1 zsCZQt4=TC*Zk3i#Yd>tDXRO*a8}w7U{=F2OqB~c{>$A-&yR^ghrwL|JXzru!tALTc zbOPVUy_7Dhm07k%e>jX6t`RYDLQCc`KFRU6dNPwKKHH75*F$|fdn@j^r4`A9#y%b) ztDRDG1t$+K$X?u6`N}(FX9bi=;tM&e#@VrC<_tg$&elSRzHG^u$*(Gp9^0(z@JsKE zx%N~t>CI~E(X!WnnS4nPwSF|%`wFaQ-o(cjT&-u$O8eRfR9FVDI~SVfT<&YisjqMD#_jHg5!W-*7BJYj!2 z)Mc@eMfn7|ZbIGo&E}PK+Aj2^w3@dp=SaI-EQt(RCdiOJ@Y@5T$oF+%%dy|1OG2Lw z2ZON+B@{ui&;_h2d76^()-FWyv2UlOW<;^25wkMmTOL3I*DhXw%|z1 zP$)j~KB#wuI~Soz8QW60yOAq)%v3Vgv zL{b~yO`L}M&1Cy>CVt6^E}tVVHaJ=adGlFr+ntq7sbfXIWJRB4r+f)tcpYE5uYQ!I z>gtkEFFd4t$?Ku>D>Qow(cZ2Wk;BW^Tt%(cOpS}9xUOj9bm)sph2n?8+ut%b)i^&T-YgkP%1_K2g;L({L&p+*b zK7WQ=ObYz)9lL$kLgdOKy=s-XujoaJN|AiZ_457`f{#wpfp&hJoSQFparFkf%lCcb zm;(|)M;k*F6x$qQ6)+#%{VwI$hZ!_U$d2ENG?R~jiZrU!D8ckc)*!!Db=3Fqn`iHZ zN6wN#*{$KKJulJ}(n5@+A%zhoJ#?>!Kz7OU`^%%g^zs{!6qku3;B( z`pcQFhu$$JsI9I!xHy{Uac%h0+{ul!&|~OzKd==l@CNk{xttChKi=pWt~~zp0bEav zedE8&JpFpNR;7_72B~{ayuy|4#fpG|YtDHl?T0l~r``}5z@VGK22a0IDTU!yaq037 z>H{}D36F0QN(GJTl)7u8a96n$Z~{-xU%H?0)S)7uc|{^&E?HN{AG-HdH=={7cDtW@ zD}lG#&x9|J4!61`wgvXPKZazrTQzlA-+j=UdT4jGf-#!%*~~aKgLqG-!B9J1Z}&W%GdhPl(9^p2}GWQk1p@sM9StzaO>--SaH@PWu; zrh-|T0-NMtk8%d>QnA;!P;{Y(jtsXan)a1Hp{0-SPNN5AmoThv;D16`2fgucuNg+~ zJ>7SfXv2WJ*d7E8%HN^{Hz%be+dSOFl-=ESR=q7}9bLdLfVt6Y$oZy zEj=$LeEZ$S0&SXlE9^|wN4GoL#?d`y8U=~B*XG^6)VAIho=(e9zb%-gCely{Bu149EO$>r7O|HR@^Js&UgmC543Z7KT@}75;o8!R@J`{SNi* zO=wFPmmtUqbE(8g z7YpG=0Ri$?f>d2%ke2Adm*?UB>B`p8(salZHjNR~|ILdqH+&+x1@5rgUn~(T)`IwWBvm*^G z`c(ZGx|i9nVj@l6btCgs2NV$`;us?BZTh&^dELfAznD!GVjs2Td}g6tI%W7j_oN| zZ--*A>riQf;*H0S#wS2+Mz{0u;XpR#-=x@5Oe&0Eu2@0|FieUmu}{=nA@=%|e`25h#;H_C0@}ULE`J;kOVq!n2#xxzp?XRv%qz_k*irI?tc` z+ww%AO|zGA(t?+lyT=coYqiALlN6odf&DXvb465(k`KM4?S)CCu!@FIKKhLw}avktF(HhE-Nf>4*I40B)x*{Ie!DE=ABkU{X{+SPi0R&ku$&P5LM4e#*rbx9=W zLexoppO1UaIud6ADtmCQksb#kx`UKYVn11K)o;2j{ga#u4holA@Ih$Z0loD1sMRFT zV~sOYW^S3R_`2Ntm_!)7zT7CVJtYM7oV(H2hZZ-QK$zN7#O2M87 zS9ro_PtIfBjJ!ZC@{|n^mhu`LDz!E^*U!bl(U}AnsqTiSa3N)H*}P`-dj3RW{rdc% zy=Nf1!Ho81L+5^>ZBwS6oi2jcxz#Wa&AYw?Mfy3^Y{Fa?orC~y<~OT;e9kMwb7R*5 zo#rcwI)B*X^KQ`MV#EBNzFWK@+WY@?be&;MElt=fA}WgXD)rKfAczzRCR_SL$+nNW(9f- zu6*Mkc9Ry}pf)GCY{U8_@y$Ki9q{<-7k@-grMrcrUBb>*)}OR-f&-se*UIU1<% z9yzz&b2dWLIIM^f4+@4Cz9fyUa;~La<*H~DIJdo%L7*W49nN<&i_~&%nK*qfm^jf3 zzNMu);2V9@JiYpajIPIKPxTfRWCvv{!<>Ui$_xOtqV-!A947V&t*%R(!>Zt5Zl$JT zS3efHaj^GFG*I(a|1pn0)H*%+i3-4$qDLJ*MO2q3G+z4Ow z|GG$eVk08+K_~%u-`1?#E+vH@dF{Gcb|t=B!;W*4ew<}}p5TBq-Q|~b`vcm1IZ9zQ zuL7!)gd+cDJX9ZlVrt*2{e5}(Fs`QM7N>ea@-`BYVlB+oBJRolny(uN9^i)kVFhsG zCuvqI_3pa~k5U6~Jb3IYf~J;oZlfs_wc?WY0&KRHK+JpTiFKibtl@h2)J-L33DhFy z)SG@=HdDq!f2EgwiQIchq(xzbn={;MaHp z;Ug>MwbRE+AsIxD>p${ikG#$l(d!!h;l<4VRQZ?`^s5SPk;8gtz56askx87{5ly3+c_P6vZ33{D4ry60OeS-k&tmvkE&O}wpCiQVJ3kR6_y^09V{AY8~ zYRaXQSW;ow=5@XmN$o%4tT5hd!h6Q>-Zznm9l1Z2+aJb!Dn4%KaDBGqsQvnm=O2Sy z$!Nl>eO9nL3YQgWrYxxs`9Ved3Wq>;nz0Q3+0@Fuun8)Wh>SaAZ{7%F&)_J+2==+C z7q}M1z_O>4scu7`$ALfxWUaB^{V;nqos**@cXIkYrGX?~YcnJE9&(4Oo0RgW9FHY* z1olbC6P0}o1jQU~^#x|7+725k=J@ky&riggw#s>y;&5a@r{-Dodg|5RHuLhNPL4>R zR{Eph{30w9IiXsi(Cs`mFwn*!mb#cGrq1&8y+KY{48*)sCsv~tQvm<~_UQriMt+U+ zuhmi$MUMGVW@q^!XGWFx9-rpN@_aMykIJMQN#NzHl5qbpYZ*2ZI&O~|&zmOm1pC?gD*7t3T zD2dt)QWilzFq;u8`R>dCj@n0lln!i|`8(RXtcT$x%j@GFRtrr4C-WLjAp>BIAkI@N zTm+EU*>`Pl^?P7D#0pO%bfjZ?cAr$wLphe=1^b8$M44fOo%J3B|CF+Lz0Ov?AuZkR zFFrbo;Yob1q4L-VKBi~=P?n5u2$oJ55UEt`_qkjaJ0BmrC|Yo+?3jXlXMTk5+E9I~ zow~9`{6xU-p|DR==EV1#^oU4K)~Y6#qMM!IDv&jKq~c?Ow6~s}5o9fWG0jK5RP;B7 z7)!5|wush%=b&AfX<2kN1?z3>T z35T$_1V}jl4BpAPLP)=qn~rU~OmBy*MH5yHo6k);Le$kfMft{^L?$i$7Y3TT?sd3I zcJXie&~_=V1r}}!k|e#Y2c%1`%XR%G1aFg<+K~ZSgr+f#1Q5&hE%Q_xmLZ&gx2w{E zew!h?^H1q1J*dgpEnskJ5kPsDX&|>h1L~q~^Mu(tI)bJU=CIXo*Y`NOMXd7jeShZAdev#NFE~;gB$UYF-o7Y+nU(a)@!a_!T6YF#U&Ld?0-TZ8vW_ z@LDDEdz0Nk=C02-OWu)+gS(?MhaV#6T`YSnf2&AT0)n^k_bg{(;3jvjKFV0~#HB`> z%|$Iw95nWFxN{0^#l5#ZOIoyOY16ox`&7PN(;JC%81_WV{bvr}-!U!N)v{_KGr zG+onmHJBoNHZn@#w9n2jAFjd zvpgwhm-$^O6<*-7ZlC|+wC}VZxHZ_o{QJ0T$m*4SQjZ!xJ}2<`{j||3-?4`(Xr&>c z*XE-GW1a@=0atfw9cTEhZ&Ra8>l56Lym#EsnV*F#w&pON&`a3$Cp%odnJUdJGpFp` z<;^?8u@Q?#jNAy1se#E;BW=!Y`@PHI*85cuqILcu8f2Hc6-P(6VBOnG_%{jK$5sB5 z()nSXHC7RGv8S&6LoTT}Xp#sRYy>shTqvF}v-XUO6T?@nO{IE?y6S3Fq)6p($5$Hc znn0VwzVfcACo1-E@1U-DE$*1i;TNwzoAU7S{JLt6K(LIZ2L#f2OgX|-P4w>OU8r6H z^0NO2SyQgB0jBKNgEZ^slJcnkCaZ?dL=n&KcbkXu@iEtjck{iGgyjA?NpheZ&n|-L zddlmqA}k%3J*z=)6WGedzes(#>04SC$MT_~ptxN_sGx68sNms^)ocEU{E}|x%$pu| zgB&J>jf~Qz0@OpjV+D*>Bhb7Hkv*`9S)j%GP{sv|dRNq`q33poky+2t{b-IFDG~p+OS!Z$sFss?F62L@ z;6u~%kWU9pKeS^=#Qmmk{_kOGCm8sbn$I%-?+6+FhJ8$b?UuNiJJfBOpymi~B)5l? zP16O-sZ-+geI#{(`wHu^Xj%q&y2{){)Xe#)ox14E^byY+ekn5w)W(@w^DR6 zpW|n7HQ{Pm`8SjqRa~R8*XwLvOVs_o5o{5vuvs*umz+|Ie2KBpub*iZUZnnOdSzmU zLqeC%%KoV~tIiRjp`>SV2=S>47H`s380T7dB$pnXz=WS!B~!1+_ZkxyWZv+uv$^9> z*7^Su$YAr3C@H<)ghD|YhMtp^t$Ua>rtNhW1&hj9DC)dkGfnB+Ywg!`UzG+?x-!V+ zy{X3fl*Lh{O{G0UaGete9wl1e9DpGRj`fQLs)t7@iqoc=XI1=5zFkEF6-Xd$x0=d^ z08M6G4>tySU-hLDd(6}>)KK2? z2iVuXD8kRazc*m@_WD^?t7IaLz)!Z-qa;Ai3M8TOCz%CO3K_M_K80W9 zZVoytko3cuzBRFZ6&E%wi;0VzR6UPoy>iq2g)m7-Z)VIV?SyMrdg=$8#&SQZ4c`e* zG{f{rK%%S&#m)=beHA}ujG?#3V(PV4bQ-)&Au5}^)EIZKJn_DotG<=O505k0${Qpa ze#>-A#<{glwq1OLgf@n9UAc}1R8IC9=#p%~b~6;gyU{?Kp1UzhOcd+C1vqr>pjA6! z=*E^W)snK9w?^H;i?Hxso{k>oZOrKZlbpH)eM>8IAI60Phru*F&MQ<-9VPfqgBx~c zujd$jSUFGl_U}*9UFN^f66(124ZHkEXhsGHt-JuCt_RnK3-9N)%o1|FgJ1v*(k-v0@3WOA3u7le#SMh0b_FL$1xP0u?Gj7-0Gg#k>HdBRjv{J=av12x z-iu2c1KtUYk{uDYYl*+IHw=hstM__;S+)Hiaqg6<>Umca7ztg<6tk*B$i@^9$M5>3JjzQ;a_t9(ww$fAcS8k)!65!lZz4{6iw}viy1}cbM zP8&y*E$vuL2_zhU^^iPI$jIsD`_)VEV`(X!CVU+3jh!XjEN*^E>DGJb28Cz*;^4BS zkGx}hx8DbYTei;c^fVv!=cbOAPs~tW|tP8-j7y8StP&n&Ejai7#oEc}e zdXJRF<_?v20_OmO3adtHNw;#+rM z5P4UliQKD21n9o~%M{Zjps*$0Q_A`~nEOt4tqtKu7l20-AEt`a@^!EDgZ(WhcCXS@ z%QDZ&l>=AemF~?PKCc*Ib~>0#+~I%YK-bo&@R>hJF4|Oe_QADJBz_mxo>mz$Fc5JX zTkcGl!=)x(lXE)zHyEp5fvff#W=N){xY*EZK#Rb&Q{S#xe5x?`3t z`w$f@(;KFFk46}O0!9&{hVfj3MO&Rlw#eF{b2M;R77-3H6^y=#8S^m#n^FdWrL~ic z;9xfe9ihC4f_nEbt;E&6*%~}&2^|9~&ohf6WNxH}?b%W5jd0eJex^7{-z&_-?c+NIOyGH&Ic#9(zosAG=_*KT_r7|_)ui=ZS`_r}Ufait!r zMfiNHIi%I!r-Ey+F>>{quRBF!zV>o}-dWh7{g^-Qz*(KYiKA(KfAans`lb0jVW&q9 zRqYho75!2jPp6Q&r)TfhNh%TbyAjXw52ZyRZ#UcWtlnO0i15_$CADf#f0FRc?5|6e zfIkx7eJm*mM?_r%$hIU5LkBQ0)zK8IU=b#7I=3^0E;;r_!!B#lDnY@+WiJ#Z>6J*P z0Nw4;rQ~$y_Zo}YN{XqP|G{oh#bUg&nANI&FcR#?-&&15mF2hgB?ec5`2$W7tBY?# z)=sx%r%wIAXZxp0dnaaHFgLrk%pM8}J9cke=^k#WO`^xBP_&!G2Ph}E0{mT}WJ6E3 z)?pFr$j|uQXnFX#uPV)dTZGlM2V%3%VwfXo^*@#=)?*j=- z^*j#JSbC$9srxYm?fMfjp+4DmPIbr{FZIY^anwA3MyM@nsP^h^4mNvHq*8`_Aoqt)g1aMIyT6eayeA-faekwE7Ag@{i0g0zEJBG&-_sjA}cR@hz~ z{sdr}vy8wOk%L<)(1Y{02HT1WX^*OCNW9R&PNCLR7FlO@?gLe4-(YpeubrQR#DmEwqgCY&2h>19{CB=g5mh z7{J|ZQcvxI_Fe1R>;@P-*driw(X9GJ zsj)$@#|4Ym9*qL(EwywN;QrBOJ(bFqv!&bGP9;YlS!Qb#uTiOrNEUpb{$FBhR~df6 zW``!1NKUL%le&$cKYwn5k8@M&fR;F#&zD{RKs|v+f$SHrX?$Khnq&5V=FM-XH>r)2 zrz&_6moA0LT@ohAS~E%}$HwFB)pS9Xl_ETj@;p?Eg{_&MGeFJ-dsc{NCf`LfuIHEZ Xq5e5^YTqAUqCR@sPk|Mh|Aqb!Zg@Y# literal 0 HcmV?d00001 diff --git a/docs/images/v3-open-issues-and-PRs.png b/docs/images/v3-open-issues-and-PRs.png new file mode 100644 index 0000000000000000000000000000000000000000..fa53ba8a12a6ad0333624bed41c5a50588b6ba39 GIT binary patch literal 78395 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 z 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

uaVOFBr= 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�^nBA7%e7j&h9 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 literal 0 HcmV?d00001 diff --git a/docs/images/vite-3-cold-start.svg b/docs/images/vite-3-cold-start.svg new file mode 100644 index 00000000000000..216c3a878d0c3d --- /dev/null +++ b/docs/images/vite-3-cold-start.svg @@ -0,0 +1,16 @@ + + + + + + + scancrawling of static importsA. The scanner is able to find every dependency optimizeVite 2.9Vite 3.0scancrawling of static importsB. The scanner missed some dependencies optimizesend optimized deps to the browseroptimizecrawling of static importsmissing depscancrawling of static importsoptimizescancrawling of static importsoptimizemissing depoptimizebrowser loadingfinishedbrowser loadingfinishedsend optimized deps to the browsersend optimized deps to the browserbrowser loadingfinishedbrowser loadingfinishedsend optimized deps to the browserA. The scanner is able to find every dependency B. The scanner missed some dependencies \ No newline at end of file diff --git a/docs/images/vite.svg b/docs/images/vite.svg new file mode 100644 index 00000000000000..de4aeddc12bdfe --- /dev/null +++ b/docs/images/vite.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/images/vue.svg b/docs/images/vue.svg new file mode 100644 index 00000000000000..770e9d333ee70e --- /dev/null +++ b/docs/images/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/public/og-image-announcing-vite3.png b/docs/public/og-image-announcing-vite3.png new file mode 100644 index 0000000000000000000000000000000000000000..859f1bcda75fb06f0b11697f19c4d1c869ff59c6 GIT binary patch literal 389821 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

!I@}>_F+JNwK;DdXx zM>pvKs%9BcjGVwC(|c*$odDo)n=H{X&?y!8*FbDlK6pVIxhN$xivGb2#Nsa$?hiAD zfEh2xrci9(f4_9nHSib{^%1nSS~0k!VTp!4>|m|Ji~XY-98QZn)DI*QmeVt`m)YBa zfDVgjZRwih2Nsqm@np&XZP~&hJ?6>;t_WxlEapiv8;F{3bw#Ws9)RNrv0y6HpP^H} z`}AJ!g!Fv0YB)FuHM0p;4`~um-%CcQ(7ElV`pU8&YHS`F!XF_xC<#q$K<+lqN6M%%DF}Ek*Z) zx4A!XN4YtPX4QUkp>Q#o{ojA3?s|J{voUI{#Q4iJ0F27Yq{#`X*y5@i6R05<79T)>y^gv@Hv zY!~#V+ltD{#HLR!{n!gPhQ0$QGMH2lut|8E@e0AE1#kq7S!W2LDQLyk4wca z_M2eqQgBbZBr0C3Gr=>c<_9fk28makUZQxA+gXr|2Wjh@e~);Czw_bxS2|(eYc}6O zkQgdX)GXsUlgGZv5oupQn+cZc>bAnUs~xI@fFzLJS>YI8N5=IM>6YJG!4K0EZ)8n@9y3i52rnQ&cv9fK5KAN$>k^%E zIy+Vuov>}@z_EK4b?RU*)lUaUdpxY0rVEt~X}MA>(jo<4G(DX$a^-tQ&mihOL{N?c zUZU%NHg*~N!0H8=_bFG)19a;z`@RxWETpxwfpPfXFxW2PoOGIH&>pjNhdmmuZ@Hm! z=l1m^~{5Hc%-Jq?+vpKlEqKQ$x{OR!HX4 zT_s4z@1>Kt$K*@-ie#WW1M=_EqwS!(*YiddF%wVCTh?Z8@QXK@M2WFw>B=rkTT

gm&73zh#kx)*X! zq4K$_uI(Ow8W}5#PcQqp^j2~0ksL(&YHIvlG?q5c%EyJ&vwwxG#j_)#R1`@2@6xuGFV@pAq}BvdlzFasUr@R zvxj-+G-KDVC4Cy?Tp=;gazp|9i}=$A3A2nJC(5RnVDKV_$;|d~9LEbZdoe%Z!<%7^ z7*nmgEh#unx7_U~J#D$~^NP}?A;tVgI<9O?z#@mG)yVx*M_$*G!ltG3LKO^@T%V-d z=*&vUi4AUwft zw*>m+D1=GrlHF@2)H0s6f_Ih9KZDVDodPSK6$DN;u6Y}l^lj8>*7gp1o&q9f_${-a z<<j@icwmB+*hpkLJ+x2$*HH`A#Bg?a+ z*tHIax+M16N5q_sF&mDe+|z5Lv9n}DAM8RL-Q;2AOXK6WLwNY0P|YZUR|N2yy6mPZ zES;C(5FF-0#P=o1O%$mdE4(zK5r>}4lC6q-x8yX~(5>s7y&*qe30vR#XMJ?tMQfx|@MH&0K} zt4_7bU)TUllcSRr5tg%{lBLk2K93%v*d|vz-S;E|`Z;@1c@Ly)!5dCD- zQla}8^o0~bejWCEJ2^-8X&*nx>z{b+#wp6z@tu)fYl?0RP4mk@Y$HeLw!su?-s!L5 zqlM)cQ}p%MJ=eieckSPiB{4vkFB1WuprQ*FjLkp&mz|qyD_B3ZBVAQ%#D3wWZ7NYj zi1LqdDZXgFthT!gEwr|-dFipw_ROI~b-{vbZ)jo#Ql=g(ol`2%Vl~OqSEYJl7?G~3 z-4fDrXNv|`9WNns$NsGZ1`j`)Pu|YJazh|0>IQI|4_lSiOqb2F7G#jg+SGUTg%qz0b6Ue#` zPPVlR@A(-*Rd6|cQ!yz}Y=;3EretY}l3R>9QoE-#f3sLraNB~8vnd+<>X+1-+>}F` zryUC(^73Qg$k4Heg`EIk(C?Z5)xoz13B4!mt8cCq_2Y3OFDLBA8`u{Z|G`m++O@FT z78d5Xg_jx&KOEH}Xrr_YXlx%?W1@+@17atr4aFq!Ol^1oSVO`%t#KT2tJY=!>UllWSYNs)JL~r4dp;^gETtt=)lM=&s}AUP zD*C|yd1{!uuV)`WM|ap-MwP$?=Y4+Sd5yGfLd_J7&DsQa7W%~^>!1560@?7cJ#W_w z&qt1K<-FO;%+X-M)Y*fKgn23>f>1|I^kSNSxgu%apSeYLPp*HOg>|B5s7qtRggL&0 znwy2Cx#ecyaohUXriIPg?Vpq8GK%9%o+jj(m z=)J&-1kNkuzJ%1kH${m>Z9S6|^I=#7dQn5|M;&+I-74Urk<+%6F@|P8D7^H{bamTE zTb@lL@_Y!&WGe*d;zrJQeNA-ejZjI33MmMwS_afwn0f)`IbZ<>Ucvf~U7LOg<)<&7 zHb?)uYp;k?5OoWZ`&VI7fLxfkyt}GDNYw2Hg0{M`kFmXY&4Mu73SBTvBIJgZu_oSWlvO$bm>9rd| z*1w*zJLFwYD{*9GiINSg<@DX_I-N=^wL$rpJ`zbGJxt%Do+e zlggd|oRPlBfafjv;Kn7`3W5g_eE`x%Va=B|F_@StD>q}MP z5{9`eK(hd|2oQcM$0_Vh*xvhFAghWtV}Nm%L(2lCV3)pK?{#J#UWCT#OPbAZVpf>|-9cXh^>*QhDU2ro)XMM8l0L z-*Ox&GtZIwCRnGNsp2`2lE?Yy(e@%|Xw=7+#|;TjYZJ2R>Pp*$#W8?W zrh}g+Ndjo)da?+8W7-T8SmL8dlNh=*TI3M`%d5kWMXo6hUAN$|>a*!R+I zB0I)jbHA-SpGz`Bq~f>no#%~ub=%2uKZVn}%`L;-o(RFIuKK>DEN=Tk;SGp~b-qf2 zjM>gTCGv5V?72LS?wIKKKA)8D(sXufk!Em|Oq1vkc~+$yDu;(^ zCy~VxW_v+u!T+^v0XJLOO%1#AoAjjer(8R^#wnjSgIXiQ`Hy~>uFwq1KD2(YkZk%Q zGia-f^x)Y^k_i z%p?mOsprC);U`t&KP0eYA`r~8YfTxE+O;t|P97=^ax+AL?>;90gcy^ox0$EcWOwv0 zJO>HQWGqgM;P76{262DvjW`7EGtoBz#A~#i8R4|2b=)oA#feh?M>)HQQ?9xZUF=G66Vq=l}VPX$}!4Gcf6?z7A z6{$gP4(d^Rb!dL!Mpo34PBJ6Ypu6r)K6G`rs5e0wFiL3v?Qr$9fU+;<`Wn|}|C&Qj zK6iAMYOWcutrab}g9M&<_vSg0D<`;7KxvL)I%iJRT~MroyQvSqb!9b!G~-;yZrrJJ zpcM@Ra>-EVkD<7MR~kTWDTF`7{XLl|E4K5aK?Vas`a5QBysiC0VjsR9uyz?qhQIYG zBX{2?J`H%#Ekundt>+d`vhtsWOa>_zcZ=0mYb_dzBCDRiohwz+nG_vw%WJcMyGiu^ zd6gve-%}NIbx|=XgT|1qPTIRS{XvPBZK5B;=@~F^0&4Hk^EZD&&-@-OhUKBXEx3pJ zt|n&nl;`In?lO}NuV(P(%csK6skrDgTo_$^)MRHrLxyf2ofsj|4ev zjXXa78vZ=ef#+PmWokUODAvY1T&7tv@M&}Mm)~}UpU0k`7xpDA3#qfsqLqLD1N7D2 z#OWdh0vvDW-VxmB;=p~s&`&aI>|i!n*iK=?Xdvq@KvXnLc@>eQ!swv?sqQT zLcTEm+0NY?BX`_6HXSQF%E@i`Cx?mIS*KcGw%^WsmQ+pPBw?Bfks4ksU0CYKU7=pp zVg_Y}&THZo)pmxaD|v8+ySOxl{Dw=fIzhj^YKnNs_~x2~yLbCdInk*EzwZ|1yi-Yi zaSh=37Hve@C)9$^c{+7rBL46vMsB`VJOJB~py>|GMCsaMOd@rG@9jC%PEZ2sR(jU0 zSY6>T4KcmhH>0<8kZX7mEfDPQN_Cw`1X`5z7c83lokRV5N%YlPJ|Yv(x#D|1!rR1= z1Mzusy4Z!w)Z9=RmU-r{-xUG$d|%!tfwj+C%$esCff=gm{OF(fW5$JX^kTRcL$KS5 zGtoURQ{zK3{UH^x-er6P#?TV38(fDO=V$6(zZR&LHgV8wDL(rKpA+9noiUqxl8&zB z&7!3K3US_Pxl!QZ1oxG>w#K6wyy~3u4>!?wfNB;Kyz=YdfTn3AL@MF|X<8ce4 zd?4`LvDWHaLeZ}SeR;fRw{mD!72~Y0M>ul#*{Sf;-(y-IP(ht2!uUNIC;M7iCvEIZ z3bEP8gf6=U){?Jr69VY|Z~s7;El_UqK++qah&OX!0NCwwbgV+?%}f%#oW#=M0nXu_ z=m%8_hFU`aEKko)%azjHkkG76>M4 z+i^(L)QQZo%TL#4O1RK%(0e3>+Ga~?cqfo}m;1S_%_3n$inr6fFY91yFl;vBU$ZXP}#?LS%V3rYy)aK8I#`5+vROoq~=>MF~7d2i}=)4@FTL=Uk=e_xkDo-`vjM7jb?H)NmV5HVYseZoIth?+NlSETB6mqW_IGxQ{RDu z*p34Ich2S=ACi{iX!s=Xb`tn-w{+*MtCYbrjNsU%K|<+I6!uGbOpq$~t=wSe;Gc&c zM;>mp{lOw>aoPDeW9ieoTgz4>pqPxsnNrc(`#kGckJU-RJOR_W| zs^FZ9Abr$vg8vXWvX;*eHKH5G8WjpFhdAwySK=&&o z1}{)zvy~rUPZ>fLCeDNXBXlp0x7FD#g}G3+sr9ic^Q`%jBCq1V_NsjDHhgjOqhg&l zI+uTUMl0%8T^%JVfqlBLYr6e1(W-aD7389>;qKEIsg-)UYuk7aFi3n^^L$9E)40wH zHZZYGyOK@2sj~)i#sgi0rtlp}%sn}*wf*xvcaPiVl`5F#Tni{bZe zPtG=I8yYXEZCzF+xmL`s?~GAStF&Zx1-|3#fJYW6v0&R~`_F#{1oCOMD-tZYPX&o7#Dtn z0p4)`5HBc1Yu>4)?ORskZYNaB8ry(i2C2sS2ru<_baQ4V#z6`1=2!2pS( z5f+%6sZ-rGT<8BQy5I%X#-!1)qk3ZUMw#jZht8h%wD~W@4n+OM0#cCYYbq$J(j5_{gNRUcBCcuGM!>;dn>;&<=}epY_0C*x!X6L}Y9O zR}d`(SwpbGy$HMQr~5vd_0JV;_r}+l0NfGq;@EB^mp}Q=W>Lf+0BrgnwHu;x{auVP z*9)9BzOf&GU(DCVVrx17T?N4dOZ-Z>(8C;uH>lBnsI-+QkvCJb!nKs?nI1t$PKAXvj9B8piiK`&xG)P2XtTKrP76H+_BkM$auL+JE8X zkGBO3q|h!x4s^)DUT8dY^RGgIQ}moT&amXWp{^Sa%d5UXr5CM^H5tJ?| zpU?gMJ%7Tsvvb~YU9YQ4No=1F;3)YL!mM4pE9q4+F=R%7G-)JPP#4tq6*>O%hNL#O z8@GM)HJ6?JJSGx(9WZXprrsDsRXN40n{_lMj00!y$J`4bz!;Wr9-t6<>5+olALd)aJ3fnUL)BbLq1Xw#XsOk|p{^m-nR%qe&uylf zJ&C_8m>|di`g9ju=CRsQRi%x@lc@&rw|QbsK8(y+fw0#}9TaqSoU=mH6OLBsAu(J! zIo;GbVzxYyF2OdjDRJk^(4meAH3UceWd4cP{ou{Sjq`#n zyKe#Wlz)#R)KzYC{EiD_Rli5`$&%OG@IKiwe;Y4+asK9W5{v{ zW9M|6;K^if^vQ3Rk3H03`H@aspyC5fvyXDFt66-zo%YjoSZ?F1Wv06+atsc4 zS}biM>ecp6SQuHCRVLq23K#KOCBNjXHtqBuGzJTiUH8E^ObI(j#X~!lY%SR(#m8_x zm5J2XU*TENm%~UwTXpl*7vY+DiG%CfrqB;MM!*$z?t44U(VzFsPrr~{+OF1-I_yF*b z9!;J!*VI!{L+*46msHfqd|&g?h?f*>RQkqt9IviUTcTGb`3)&R4G-+v7&Y7n&skBNDEeYRr1@t3}1zC(wB&m0ODc4sn=}lHj)nwVO z0wb}gJ=-Y{cnGPh6#rjY@-Jl!P2Flw_jj}Ny6^R=BoSUwkMUI@w63;L<$AoR+wW09^;Fh<}5B5lVrIJ!%RLG4ZTl%ueQ(W zimHqurzrmP3t`s-PWq4K93)d@>PCwJ9wHBo=X2ytw7&2jVp5;%8Y)u&Li;gQa_1$u zp2&Iwq=g*)_~GBf0;hFKq|$14M)^BeR{8j)lXWBHje5Qv6#?;a+un~Lpt1lCsHHyD z^{?v4dNzm++&*cU4ZeV%xB>FyV|L|Wo{YXQfhg_@Zs)t|FHe|KIWD+ij0_=>G?SJ! zSUG$!+zsdkK%RS(}_ayNzA-uI?*;7rBc ziuZ`-O&Sw7z7HU1U2#3fKKH$|8j6=RD6ApX=;qp5UDkbJ)D#z}s6GoZU{CqE4XE+JF|c@=Xd9ZtWfHIzEfGvM9^DAx?C4c zT{ZQkfK4vnGsYq+;f(;1!$f}CiFEZ9W}OdIH0Ca$cVa?Cu1k?xT4Puml|AVEn9`XJ z#Yk2TVv*UtH)0F5im9(LGpd6`j-4r+vRpmf(;Uk6u^`oi{De1lg)qtjdd)0+rv=D@-+cH8_%k_~!vfWRU zbf(Hv7qdrr_BM<8FQbi;>GZrCZ16sa%n4G375YIPY0@8|TaI?n@eSi)W=YZK26{rq zK`Guo#bi>;gAonr>c{oe|H=#jIBco3?+?r0`^k)NU;bo#JbU^6zqqSDM{keigb+D* z-9Oaj`w%sfl|}-c*sLt)O5#HIjM&6xyR#6N$ZD~efJYFk&!rYKjLEb+@pp#cL!#jU;MiZLayE z*EB-593#KI>L9$9!Tjc1Fq~hKg~ zRU?;^a?M@^m~&?#%K*F7htC>60vI4F^rRf)HmNQR^nL`!pGhE)9R-$Bz7+>!=nTVh z!BX>T8YOKaGqA|o2;)cGOq)X87(}($;eR8MJ==#Oh4BMYeh_teQxA#jHiI{R5wm% zsv9g7=hLFy*d$sFfKt7B)y3~%;zTKhZn@#BYJxs>rTVKJXW{>5MgB-jeRSA! z3yXj3zb#Jw5o|_WnR5TppB%;o>NA3g>d4h=&g_*PJxNJL1X0NgYmIaRA+eORv3_9l zOWk~RsZVIbScqmL$zzm1P+IT+V9OrPGgB~c0W`u?t5wJ?OlT+_|G5U0XWM%G_cvZA?zBT-rITOU+VNMJEDENfX@v62sWPh+o zh(dhlv7fst&&E?s{GXE;)+cA^$d&E8W`cRLi?(=XGY8SxqSKs2d?_NhvN0!Hp-|-z z@hF5Sy9y(AS%~u86N10%3`@W#*Bj%%^H4?94V{l8->Vb#!FO@EiVRoItyz)QNaI|u$Li00L(4a5>1u*~1mg%HxNu`%SjqpFiMWwy2bPQj~37>g83>@S4dEVI%(Et=(0e0^?#9;$oIg zylUknu&F0n4Xq5&4~S=H>gD0(Vm7cFeTzYUM=FwBshIo4pnI?;)H5ZHD#(rhdsoa! z`NeDb{_KLyY5FvOR0QES&Ek%m2iqJ@lew5Ro6pw_sI5&1eCY*42%6qC6U`{(KJEPR zv!A0>@I1s>ktZ3T`+e;1Un(-3KwUaXE8poqBCF*VlN{3S=KDCx7v6 z75_(;uAT1r8X9r7vfxkcjT=jzoL>eVKB{pYNvO{j#I6<&W9Mb3BA=K>?T_k~b)r%g#IA1tJF%f_0 zPp=PXOPYj3=@zjK=W98Qkqe|yy6^R(ABu=D2{6gfNTAPu3 zMsq2+6+eWy;nP2!2u`w&hc1@iz=7j0N0`zGGJ9kHU8$vga`@pp@WEG6MR@eWLk>lp zB+Um_(=7>J8&+u97=??!9gUlbi}})cnYfmF&CV9oGo^pmO~bi@34%2w{ohR4{}bET zF{|+RU2zh>G$IH4_L-4~!r9#zoD@Nd)YmIaaElo2ziXZXYz?WQLddS)&bBVBdne=% zZX^C2Tq-~Efg?|Y=~Xunc#!v47)h=8Fr5uL6XpaZ?;PN3N>DP8@?Vg3!VO=1af5Tn z7nJrc9mV95?>|HftZ zM4!u9Yh&=#fJabdR7p&aGMP9yxra-~%!?6kt+Jg0Ca!3mM^T?*95}M62 z3!)+#a?hEb<4H#U$`khA2b9=)yWS*{%GF$}U((9Qx2Sz)6h~DV=9~WrH4!B6CF5h1nVD;4wiLXSfHwd;<4)$=Pu;Nt1 zv=ldwP$!Qf662j!ysjzyNqQ$l`w;IAOW+>RsWEb^^*PsaT0FhIEg05?Q+EEi>e>w! zojO!#^w(z;S0=sih0$zRe7l(-`H_yB2?J(nC_U;Dhupd&`mHmF0rDGvF=Ws(j6*-X z9KscNZ8bAA{EG$x#hGn4)FQPPrAl`@FY#wX(*K5`?Jf@j-~V2_A0lw`q3wR0Ymw4t zyU%;(n~Z1FC=a(8?inLky%18`b4tt&ROLa#{QNQ!Wnh0Ja->7>7(_ulUi!p&c+OZ< z?8u(f6KUWMmBf7YGCtYc-tTPTrxYXoPM z&K=+bxj1Qu6ySo3yFDUc8-f_pSY|%c^Y*Vn`Z*APuIt?JHE^@lolT+xJH-hn8Jx)7 z>29bLYeKq?jPZ9xk~f#{gyT-q{%=}^62mka5}R_>xcZ@_pKah|GMe_Up-`h+U+ zDc+(3XpF9vkadVl;Ied3{P4}hdga+Ge6enuzatu+qh;>!D0(T*(59rCm1S8RvDb0Y zFGOgVDcSe<^OnxeR}MaSFILMJA<;^KegdMJFuASfxmbl{Wp03AIuj z3~zAxKJ9wzc|Hl+Ta{&}onig~vKOPZR=#Jrw06GC|2JMX){YK=@uJNZrH!lH?5Cc7-0IMs=?Ef-d?aHS zQi9e-5N*Y%ROl}}=BoGVAwwsmlz5ZRC`O;gda^GDmMZ z{X5wD_+0D^{2Che^v^T#pR&Y%wV&R=ei|`CQwd+~v!tdKOq{;fp@)ljY_09Uia#~G z!4lFvJiPMIW26kE%BMqXBxkQCk~Ym`2ULv3l{tNS(g$)Kab#c7LZ;yn_I5DBe>sR- z|HGo*)%yI#R{MONPR%T|^wv3jgj>I+Le5z){g}Q3nW2|xbE!r2e&{}j`>Nyy#@rd~ z__c%Dp2$I+eTCtvV3V-JZLM-iWOemDnsv+5j&lgB%U=deV|!MK0Mx-NRHfeh_uU&=(|53hyds%j?w*p^w&&paCbyV{JN zwbhqRVj~8!Ym^=E=uxksJW`D!-@`wAYXfC+KN7Fl3Vb^#JD*OKtqL(VGLy>y z4;3d>9%pV@6%uP>^b6mjE90a1cx^SHO!9y?3^1NW%}2a z=H)x>CzW6OW8>W&S@c(;gsPnuUX>vD+z9uJCe8TqqA{47)asLq{W9^j@Td;u1sDI=zQm0{bsMTtw$U)hPeG(mj>=QpA~M746Utamb+Jb%u&4=GJSmZ z{#9TcLIJtysv~Ni)V+$q4LaqEQ)9Z3xcUnDN11OP=tbMI%sQ=nFn@XY_Y0HWbw+Ru;!g!Vphxw?jWSWYqAMT`coXB~YDCvqlpa6B`No&G@<983$EK5su zTz;im_(6+@qDVc#n4#0uYXZH6O~R)vK%W|Ql`_oFE66Oqw-M|k_hQvoC&q%Yq{7EB zv5vPEbmJwAFR^9s4r?j#K8tVg{Hpz6YxIMl+kp#j0^Zi9x?iP@lQLAw8tWgv`>~Ao zZQN`JMYLUf4~z_M6Hex(*|?d6eT5c$AtI=Zk*ZcB3Idho2IamBXT)vfmU56!)5~!j z^4y56?}W@(R&#JkYzl`MtoxoyABjjCWE6g`ZgAZYP(GdCVJnqHb_aI}OV}Tp00O0* zwyqnYxV>GXx+DG$0$L|-Eib|@@tbe>?gG5bIaUYox$9Vej$x@iP3!{SF|c-AnX-mG z5q$CQ9L{Feb6*%bpp$qPxgNoj3%uCejX_zI>rAB7M)Ba>N5ssLqI zi#<|Lkyu{7>zY;Sh^!*D#Eq^`&Hhi_t&Fb7nJcC2P-hKsDo>Z{tn}k0b8nfCw_hTI z-o|%k&RtnBqG3*S0m`PKIy8RfMF)tvVFP?!dJ3quozZlk+2E4XY)*jMYOB-)Plx1- ziv9Hd>U$SIHkbKevX@>!`xeX7p3Ed2@BreKsk5pH{0Xn=6rVLx<;V8@zOi5UTOQa)jybSk9Cf;Ur6p>;DuRKcH>TMAnNwSnluA2MsS)C z8#&~5z$Dh78jEE%zk^jeMgY!bZh-aQVrN9?SZpkuM%eG9GHOXx-}qw;`Lu*1OXiyB zm@nxaJDQGfvvI?c4@m0+T6Bd4w!JY9#6C7WbmrqnAxc=HORH-6LwEu@-o&Tq-KxWr zl1KN~4J_en4$CC<^Xr~@$mMa*H3zKz^a3cU<3t0C4Kxnd4kOi-6mh{!ppQyDkkN+u z;*e1=G?4D;-&~SDZ@MQtV{4Og+86LuDu_r=g9^Y*SOi;+AIFviluSu!$~*uklZ>e}qsJ$Fh(gIyEk?W^xE| zZwNsQ!stmDLtjcvE6o6}O9Zp&F-XXibW`Nxwg$3{APU&sxZLFiJc*)EDnDcB)c3S( zoP*tmp5ov#&M-$Bp9YZ0stdm`q))`%319h=lQ5ZNpC%IfSN7giy+>WnXn3>*8e}s@ zfB3>*dR{5kzSy{JJYyz`zjJUZszlGG($4(vAM#!x+p54)xuVQR^zoJaT3TCr zBcV5xILi4nJ(R0~#(4qQU4QE3RpeN+{foeyZ5NtCKh=SgHqBhFM=429b#AFHWHM#L zqqsL7;UCUlKdouG99^>vF1-*&?groFQ`Bk_{lpgp_;9G8;kza`26~A`R`6#(FRK=# zH`@#L-yxrNB&euFc56$jlVXK;;g4j$QU{+M=ewF`^=dEQogdrjFwQ*Nxhz-d6fSib z5Buzppc)&!77+lk3)zEaP@QIsEolqu%EgPgm!LpM5@WhXbBmhq61Bh1a}cn z4gj&Z6-@462}fgF*8Xn~;tH~E2hBWzKTCYn-PL4*KV7vD`5o6QUqQIW$= z@8`#mjf{{eG$*mU@W3t3xW@dK8@q<7c-4hkGW4Sjepqjyn2e!N?FZ4qugq8Uuys1F zbdU8n96uqLERlEf+b)N+8N881hyiVb&-ZzVUi#XtgV65XzO4}(Z2IFo`+}Q({&|PsVVEzl?bRd# zd?LxaMct)Q)2woSi@PhiNDKHwYyPCRe&8%Pu!<9t8pWA5C1dW2R(ZLPULg>Bo4ziY zOV$P)!zt=~S(;rP_g%@Yw9KYN)kDN&!UW<#OiU$t3V{AFH5!Q9aH_56{Os0*%J?du zwf4JmIV3rM?+_O_J#5Z-Ebqmb9FSPekhkD7-BBx9ax-2sqTUIupW4!PsY`+&SPt<= z{kV*|Is0Iz{{&G*&`N{clC>EdLaZ+%NNJGlO@3A_Yo}kSB%r%xOo8yQm)%g?4d-+}1McKHxP*BHl2(5H+IE%w{%nH*8l zVHqYa&-x;R%}{i8Uxiba@q(wil)V2@#{811k1kr@@R*LMN7`KZy9`%6uO2z@UxxXS zYvnh5_sXNPJIG;;>k&WQ=f&WPMn1x$h&CGEjUYY)hJi4}!fFX(i1w$`vR(l<0YOI3%+zyYHGWdDrc>-86l8=d%NWaMf}VMw*CGXHFks-UUzw7UE5tmR>y!M!k@^0P_8W z0$(OB$>8l&Dw&|e1D5i8qXR$x$NlArexjaqqA@>YGd5SiCU28_=3mzq6H;>k#>H2n z1Nv4-k1jYbTw<##Jb-b;(^(_h=+ee{Z0)%>O5(uxh__DAUyDe4`!2PE&VMn@dpKoM zbizqwXZhfJx4DWXt!v#aBIy`h)0#}ivMK5G*-sa5r~?9XBQBX^b6A=b-!pOOJ|>iG zXX~%Wur9=hwBrFTyqo`o-$#v~!JBMycd8hD-D`SU=}DAO%Ok)1rJMto`UdJ~jdF;N z#fgEiouXU>uG{C+%N5v{4|zi-j`~2v`+BKUl0F3gD%K2ORlmR+%>KR6B26^1Jba;k zQ+wCs=?2-#b`2=YB01JaKl_!ag#5>bc>sw{6+Wm(KKuFcCNyOA@lnum>J5QjgQoMB z7ribRSE@@ADK%8yVdo}?m^b+BeWoJwMq-J4!#L!+dsy0nTA*L|VmK<~?xf?dfU zH+5Zbe^R$z?l7|~krJEN(Vq!+kYxMuD%9sJ=G5irb@xcsnaF5Ozt5wJD@D};WI63o z^(lL&(Pm6RSAPPeoP&YR&eWGwKE?_yWXqLn)y+5CyBSsv*hTrxS46Ar?zI|X-t_0a zPAN5KI(pe(0X&z#kV_RcBYoK|R@eredtyX!N?#fq?{mTbHC69Ld{mf*O=oJ+eQ(+W zjF@Jp71TCGV*=KlX8}Ty=14uInYZcSF9aH?^a)QVqxQ=KcgPF^zdaq)}M_0mO- z$J0;wX?G6UwiSud!pF6)1kT2X5?y-3v7{5E=4_^QTk+qAw7H*Me!Q}5Lc}VUAAk!$ zsa6YevN~=^l5!1I=(X6@psXR)xD=j+HEemCwhOM5Qc?5JXlPI^%^z^y77-pFl_yO# z1-x~RGx<28=enSw0)+j@Jm6}S(L?Ni7X9df%RYt!5#t$U0Dxn;P~8vuhGgX_KY^tE zhTy{i#NhzZ6zt>2O#5bLH#}E$x7dtV{aCHw*~r$a3(~%f14?7||6{36K2|sMU{^8sn@mkCS^ffR7mMhEQKBsK>fbVW_IColIg!++%X;t^WD9^`kSQe^H z+iUU9L*1iCYDg{wD) zR#S;L)7Uk%v}p$s)MUgsY<(=CE`v|UZX{6q-{OsSsO@b4Dtp zkg5uDq|rmNau4N$=)*rkj3Ll0KSIkT%yq_yQ9Ox}30hCmv|(QVQ+MCxv-aU1X{N#d zV$PK>$U?x!wq;WiV_uQ-i8g&bae6zZT{M;bH97Ee_3TPhis96EX5bZ6Dp{gykRokh zZ{8NO;l|H#`BM8~nN?#Xk0R-T-#*E*HS60#>eALWK0})EV@aF`E0od=jH3ZaXgoCM zjZez5JhV2HWChzNZ!lg5E!>`CO`igmptQUNZ&Uasjctd11fC=lY_vN&a*zUlDk~n; zl!`G-nOcV?S4JU+sLo{1UkHdB^~p_h-Q((U8_Zcl{pA^3vP;4)U*zREx^ILJG~|bW zPqcJbhD0ITSknXuBqOo1RX40I)q@mC?@=w-^%Ou56l2WKg7zJGsd|{F9QeOmgW5{3 z;km|jFpR7Qd--;C?b>rt`V{>W+4IrJB)N}os#)H=WBcuC@g){aARqMS&^xk4(hMNd zvwPE<{{-{~c;oA~`xSQjrKaw>p*qx&YtF)eun5GQGP;wRe)ki=X-PiCc}}emuWh1! zWdqW4-Ir%H6oS^sP~^aB=o*M(<%Vrc4W~(vRHeHb=<;opHCj@o2QO3hDt-lTfc>=z z1iN0nJ=`Xqg(%HM21?O@ZsFlJtY-YnK0;$ZD~D5x@X??&^r>yQGnbBRY2Q4M`3bO& zCe|_=j@K=9YU)LRFMAKY1RNxKI6Zih9a6BfpMGrePIKb>oL5on4vLWr zU3bZd>*>EjpR{hXT-e!Dv}{VLtfYoHG?!fP#)^z5gyzXjX^J@zJM2P;4$cw(`u73y zE6uyGu9_c41DOWrwrA0phaAfNt#Ca?4kNV50zk6e8)6S5 zfbZ-Tr#k@=OxA^2^Xia8Sr1v8{IQ;{w9J?eK}xcnar!^gqS82n~`jvSE#ixd-W#*JRCj zy5PHvR;~$cBBvAWQqgalkc^dm+CDBGpa?L%(|cLMFmgBBVwTf~Z6Ll&?eM=j%p@ui zAwl^EQBS+(tPWZf58})J1^t2Ylg!CnQ<1343?+$Dn})4&>*OK2Tq!Y!xQoWnO%&%G zC$$h{id!%c@CWI9Izcp&BIC2J8QF&NCIMw&BB`oF{C=0PV?Bp$UwMT7YRSf85{GlE z!FVm`apS$J)jL-^ydW~K#7{jco}U`_o_CGz2QZb{9jDrTR7dLFpqrWF>tIData6EO zDtOHL1yh`=Mv<_2=}q&Najn>N<94=qlF9annRkk*_p zSZVtK4fjKo_Ph`3$AD`6(96??1Em1_aScETEZ2V>vkx~%z4R3X`U z8+lWlv;1u7DY9|(_V12VE96xHNz{@f5FPYIam!-xJvaUeFX=>^IAZyBI0SKuyiC>~~zd+1-kRCm}iuAKTbpWT#P) zN_lKN{?Yad9$su8)+ma!z39>_ZCna+I7}2BTtstNmknqaAiHvqp~^;;jvHroY)x{# zq=30ROhB7~5r&S#CLLw$=q;4%4iBsD^Y}qV@1QxZ)Qpbpto^z1$0t5N*w6`3Y+gfS zDNTz&5Y>D3Z2hsK;-SYSBTp<|&gk7Q$hK9lD=EDP@NO~8Py~Wwh>^GEa!p;wnHXsP zQhHrMyGf_A;Z#u(DXEDPW0<)0h)_tk5!`i#Y8IIqAIbv6;2JwEF9Ht*pxPkcM-XJV zl`az5@vw2y5c7;nGqFDW5osBxd!k?T;T})BYsXmz8~;LGi0q!>_SbTzg6aN@-VS2K8wo9nv=Xt`B1UrxKt@iM(D+Jf#TpaG?Qc7&90QW9 zocmlTy&1ORI!a>4_aL)zY@{tscOK<8Dkf)QjfmaYdpJ~O$D#B+ubM>>KMmKRcK z?;9uDA)dWySX+Vh{C2`}>pK25#C&Lv@qz*m{r$F>f2=z7#QVB5TNj|#h-Qf3>4~;{ z0Q;doqq4K;lGXzwcWpO@+#6+8o*lFRY^Lq?1?4And1IdLMTn6QZ4FE z>0rOJ@4+-&Pg0RPrP%arBd+~lm^*pV9A$Y^#Vkh2`ZFp{R2fUhJpWf6VDjCMy8VX#qJUcg5xws0phGc z=%_W)f3a&aqfMqxj1VpVlLrYvI?oILeYWIhX9lJ5U~kkssWmo!7Mqr^ji9GjNFhty zl%h!_yI(&-7#Yj_{bpzhy@6yo&((jjd;B6e^5WwtN9X9bCogtmzkGOoa(1@zHu#Ii zrm(sh(@z3&L_Z579A&{x)BRh-+&(%}ZP` z3gd`8lXL8bTy_3+S?4?AL$@#oht0dpeRdC+y`~pQBmMV@fI^ z2W!HM_G0IJ+X0|J(+SuN8hlZwDWNDzK)cJKyoGZgDos6Z^6}O$--i6cJ7KWG3de~N z^p_?)Ne_Rk(24pu7~V~4!O+=!ti_dqYC%kShb>)qd7L zY|3A2&cx&$KQ!n@&)jgB;oo*r3wH>mOVgV6$!riRtuiuj@Zz|1qp-?Hm!_{D5YVPV z*~IaHto<^Pgb3pI<*6ymMy_!#aD-R>W`%B#OpRz6Ey+O%%iwyvL>CT(v`8h4AW`8D z856aCLHdpp(_Q|63Bu~<&iOue;TQI1#uQktk9KW?ayR0g{(v9g5I52FZGC6A^i{ka z9bt@bW5G9{G|4^fyXb{?VOZ!7RBb!pL|F|~j=*04<$DP=ujbn+fH6R~ZU!dVxh5=) zLW1r%qBIvCAUMW2C5VFW&`Jr#R-6N35p=9C$Uhl#A2+$hyMHsVEZ=?S!@hEuc!Bq3 zIl4Zy;pP1_wB5-^URkP1$FhsHhr@TkOfQM;09|Y2qwMuj`nino3cEz%7*HBR3M8M~ zsa2a_k0nupxPU3>zkYZH&}KMQ3^Jg0Y6$am{Oht|Eix*5;Eh#k-jpQb@cQu2sbo5< zd)@-MFyK#lu|W|dZP^|PNFr(w{~ZqS9mnnj{qAS`-aTsj2@&shV*B#v_1@ot>`NjQ z!k*9t-W(xrmGtc#!%%??xmN{R8GGT8n1X{v$}=1sgkM9*K=G(Q3P|;bFQ|J`ANKXk?js4a_w_CbnGfZv9%de`b&akS zSdNpf)UXV2rQukzWT9SvF6-!KHnO8|w?qS%KWoEC*MO^m=XcV@Y0Xt&r{^?XMPEc} z>pa_BLwGZpAe3icQI-$vA8gQVR1h8^RSkFKKFJ{k`e>gb-_(4m>jEX;ajMWpww$@X z*s|-VDr@Thoj^dvU^~<_%IRcAacz4}n_>1qlo-l!RT<3fz`)&5<@FAYuI8)>wa_W;gA8yd& zK&OpkSZSbQqP|fK?k*)jMskclm>sk($h%;o_cv8xd*}*qG>%@+E6ItxMF$dtQW$UA zD;+v~D2oF7Mx}8aJ!)QbBeJA=! z0`QuU>KVVwAt$?V1&J@qTEz7*neYCv*L5AQwsRp7gx2hNTmyI|s*wx!y5Hz?z`{Zl zTVHZ9aDjY)r?l}g=y>_@!LM~0cNGBM!jCiIb+GE0V<-^ zno--6{&7e1lm5=pKX-M#2qY+qyb6JlB8_!*gms=GW7Z}v+EPhb<^`KvYIG@BoCUh@8z8qk|*9iJwXS@n+k*=j2qSGqTxT=nMP{#&dsx<8JM!$|7%Ew61q z>y?^`fY%*Xyjucco%%z^@y&A(gPL5#P)j0-8F_7sb)%Zl5-;g>+>cN^V!#9^s!y%? zG%)z9aSyMh^_V-KhVa1WX+hBU@+ekU)mNWmSZ%w8d3YJd%A;UJmtW9RveQT*8_Ec8h3vAip&fzk#QxaL z6n;zX%QAs!zT2rQ91t}7wCti)t^4w1?Pvk+zIRR%}Iu(%o#AbqzftBBn#q;>n1S{CI!0#1NY6$hOLFc&LS#VXf zGwue_<*&zQznAH^9AwK6-6Lmh2EC8vZGVM1hdOU*e0Gpccn^LjQQQAorK1ExC#et$ zOEXBk>@#$ROJ%L$Ap53s9j8UZc;ElNTg1oF8?{S zR2F*iR;LcM_+iuAIy5ywi0<0cjf?e6zPyl*%A_9MC_3NX%y02wM}2pK$vUkf%mzi< zjLqBYA3aIYm+*`bnP4wcE2%7=?uYQ;&4o+7g)@aXl1+zT45g@Av>7{;=kl2|Y+QWK}HfA|$W}S7w;_A{PtUIV8>4zYnamshuFm*ayt5W&>zS|HEqRAf>gNV;S0L#~|+{sE)G^qPF>sNehP zaQhe3#@+<~+n&74Eki|u*!&LMV0fAwpKU8WM3VPyNUjeOMnM~`!zmaE_^eSr7jr1E z0FfbR4V{DMfrCWD2RqRDKonJKEfop32@vuxO85B3^3wz*Q2PGMWfNrm%U;{&6#+C8 zTAn<(OmBHem-Tww$MTrm1aIWQPly17!VdYCGFQIe?T`0JA_Fv^ReypB6L zR6sIMYOQxHYK%PoXl40~E4pIz_#~3-{oOxO+1YW&-t4{ZrnZ&s%lje}9h=X_ht>9+ zkeI3hOc%jkpM{UZmd5gZnPV(7Nw%8yBg7BToUy9Bm4FLgO9}l6 zkPc3S2bC7CgyOD5;Bvkply8g2)F-{ZH^>o#6U5IeL8mPKXbWpcO)15AgmGp!5_bL| zK6>`j!j(aZ74BHvYmJJI9edv~BG-$52IfOkbaELZ#Ic!0F8gdt<5wMP>an|%ft{=0 z;B^z3SDbJyl}l7lFFm4#Cf7P$W)kRr+Mw8V)d#eY{F|}3iUT25d2IwN#wH57-4@^4C$aP*sP|EYxboli#!jF04sUgu0<(kXg$y6@AzyHsD`umWu1A;$edHJ>-dirO zIVQ5dvc&ejTLK@;J${&OVlR1a=Zy93E_dE;Ib)-6A&$ncPV6F_+JnLeujQ)ReA^-( zCs4O+GB;2$k4Ti}&NvqfPf> zU(UChZn|Tqo$dW6hI{av`kwkpcmOX6x%dhU%|o82`3EH5CNN|b$Ssd1m#F94YQUam z{eYwwgV`!BkB8zXK{6HY!i{A1UcoWu@b9F6A--jay20sD@Gc@elxhC@R%VmQz?h3g z1M@entHI{FwigVhIy+uBDE_7f?i=e48C%JS;2}zWfO4R|mxz@7@;ynypVwSwmfbXW zX!)A^#J8k&fa648m=tHySW2QLFX0}$oGoi$MF0A*Y5Mnh8#x=h&gT!{+m<8t7>UMe z+KF3N^BNPMKbS2iws;(w9i56U@l|KDIi}l5p58+vrJ$hA3P97=3 z`B1?3gMK)ci%e@Ba9+#@ihQk_rBa(9bE|VL>RMg)xSai6{yv!z!NaF)4G^1OsYksa zI7tqfgST=3?*?D-)v}u(n&0~6>EAXgtUceeP*RN!>^yw!nMcYB<9t|m3}$0&Ac*N! zRxW(-=a~|r2avEYdrB-aTt<^Ip^{<^>>oDA0}E7ot=9#<6yx|Q*F6SkkOKE<(-cmy zlY!Mt&|1H{6x@o-FFESQ8@CjB3>$Z%_Zd_N*7^;n^4djn+6pdjWFxH*$VK7`agPo~ z$MU)`+QVKj3occy65KP5P;_BtCOvrn_n=A~5|z|$1Du(sH~U0S{nrtCc?i#fH;o0R zQ=GO*@2n8A#YR*_(ez%1OdNhL`ef9O&a|@cHvJ1*h6;J)4TviB#heSz(?(+7DI}K*6d<;m(%kMv}v+A*YM>1QC4_+}L)NR?=io_oO@Eql2nF^fj z$j~onE>I!}Ww-y^4&DPZXoEjCJ|=DF@bKP~r`VE#jkJ~^Uh^``LVCO>EU~bnE@qarI)(NqBRd5#!*EeE-noJDAXgZ^+3|TrC&u2~_(#=fZ!ZF8g6* zP#2h`FU{IjeuNmwI3PVW55t!Iz*p4#&V11=S;F^*PP7i!;G$YBY$_P?QNhzCMmJFq zqZ!|=`mF6Z{#!&jfydVNX#s+3f&YOV^ASvyB=3{;$?BCR9??qDpdxc2-F3Vm+SIPIXROC zT9TBU|5UpKMjFA)FgTMRkYoH|3ltY=F(?R@jB-q%|dC2!6UfiFcV zcK=mMrKHha?Q(*s72)X?i*2J0^7`Zq#6WBhHm5X})b<00w?VMsh>=vx$`Rdvw|5aM z*-2|`Tq@RXMO7SDIv~8L53(TSYRCoVVJQM=Jl}tirl@A8V~?TaQT^FUJyzB7(kPpEI(J)uooC_fAyb2}T*?o;C#_4;3q0R}g zol4Z2Ty#HViZ`9QJ(08-o_RU2+xAkxcRtLR7_@!k$x|?iQW#Ks+0;FBkc5Nbp%wUK zT?D6R9EaL&_#tE9+-t5^`YzipDv`ubN8XcGnW_M#ecQS*Vwof$SI`X_c1D_^3cSW)w#PRuDV$*Rk@wGFSm zsiLl^vUAb~3HnP@Q}>R-syq8-2~%V7k9TlYLP{CfCLLSc&oayvqRQO4#P3Uv`3ihZ zh89d|@m&-47@+B-za#&b=&lC3iPpckbI1H!>Zyj)-=3=sF@4jcxQqr!UJII!8Oc9y zB8X=7_-X3u*PIkk7O$Te@Q^Wv-V_9RJpDvB-%$tU-6j0)Dq|7rYYtZxnNJJgRnXYy zf91MBgUE1|yYKa&9k1M@>Y{nnv?0IL3rjA~x!+zKI(?Ftm_$q9^_>`j578W{EaD?k zw7KM@@<)*bhB$40IVL-&{KCV|dqSMw*)MP2F&~%m%7{9;O->#%t-TLMKj3g>Fk6NC z1$l0da^I;*KCR50dtOF(&|ET9oVq#+`O`)zBOGJgluwU}Opta8g6=!O`rTOa-J^i; zi)xr@$%~VuT8z@hfVPw5XVtJj0fzUql~ymcI3KjQ^?GaJWLo??>I-K!cBwh(2wDry1f@K9X!aaA&;FNR`>Qh93fW?(r*}S=0h5}ucR^p8 z?x`~&hvO-f;rHH9vqOf^6PGx%{3vH@9lX(=_!;bPW7|8crMGW(snlUwuW`blWmiP;} zC<5PaF>(q0SS)o#&cZ={KhHxdywv^S*Zb~sLXpYZO`Gmbc$_FmU_N`Ndl9@P6TM&*cWn?u%?e?DHn%hW06 zID)5Y2)@P$Dys@GYUDJJfU%t|AHjb7Ka$SFpUVG#>8$0i zIHj>IS{%75_I%>yN4oIQlVudk@#{M5#j{UVdfglPVDi2^ha9ERwdDqjj2wFq_!JEC zE8{E2H>Nx25xrMGqzH+yaBN|yYIcerkm;*apdU<|L3of%)Fk7FZI*=x|9#USC;Z_@ z-*Qd#H}0IJi!r(CJ29-fj$CJX1XG%*Pa&e{7nmfOl`6!C%n)kow>@Q6Ce_`?0B!B` z=Q>eV+Yp{J(aeeUcYZ?^nkptIzBK!y1d+r4pOW|jvm zRxE`6QN&AHa7a|L7-%9%xDRv4#QO^kh|(T#=-JRhvxT6-Vr(HJ$|=M_-t4Pv7rOOu z^BZ7`r#_Q&t#?11u*()@F$CVRxslFgvy?@-7qk-1s`SR2DGnxOWt}9+4X*xI7hb{w zMZ5E5c%An}@%2?|Os8_0g}A_O))wdn@j4A6z$!CqBiEYSN9!0(&+vYcLZ8?>@L@R_ z6{oKDNDj017gw3MzG`&1`isEz*kGHO@bf}WD=`>$dd*c#&ZeYd;|4p4^Vp~Zq;EGp zE@>UzAAbBf_rZw%J-1s81pdlNX@RS)7gm1${ob}N&HQ^(&yH%{NV^)q`VwOjX^bHE z#6EA<0Pa1_SPIf`qoQ3j=-AjkV39Fjfd5#jZAKTA+2+V+{&ondi?A|4-vmV@^3M-k1I&{vnVc|!c*jBRNJq8ZjllTov zo7ls>R2C3g1P`X#V}9_HkD@p7LGUtIBBu#=BLAhzg5Sdb{C*2x=hZU}773uMOLJyz z2ltVxd38{)_GjA>QnWt{NUM$)&7j`g;!~0O*fLzcKh7r6ec2QKWB-z~{Ow_yg zRGJ?r#|>`mx_~%oz}6z08vBQ8*|B^P7gFxW69=|QBpm{oTb2zbC=03ydiVbo@~eB` zFP9n~{@(SCRl9~O+H(0TzxMqXM;`NdQg!OzF5#2gjsg7WOms;F)|;1+RRUc>RkTwg zg3%eM39-z&O{p~?duRA5O02s37#NQ>rMLu&HP13ZTqCtQ{=u$27EBayY%_VVoHu=1 zy}rVW%LumW=5x(akApp~N1S#e!wMCse!B;LcH}v>zqI^b^!qy==OUqd2V32{J`D)+ z!N*o@}a+C+oYXgtYXsD)pQ~!Yopos`!x#UhUScRxcGr0OzedG&gOK_|nhhZp;hcN#fmjDQJ|glfme*b1Fv8 zw)Kj&)Wvtw-@{r2S|Zc#9wf`wD(&YNsICXqW4rr-Ran0KW8P!Pu?1=@nqNZ3d0p)=ppKk z@c(uuhQZqA*D{BKwI}`L(CVDt8IOJ^xyp223@DkBKy#m@`P{*$MVB*p)$V7D%w++J z9Xm2~w#s>Wd9JeCfqFnM$*t)YEgpv2+r>z6hSUy;UHiy6%<5M#1O7U##BnFSudrrQt4zZ>`Lh66OyJICrcw(*~EN1)L4z?&e1}vy3 zRm!3HB4M^#C*iBk7Y60Vdr>G!`eIg;7Tefod_{$#8(FP}jV?i66I1d)bkCIP8x2Es zC>EQ&zkW6wCIWf$_7)WCAwdL}|G$fTvEU=D#GUtE!Xi*ii*dypY=s0#y5il1+pK zK77qXT1EnUyjQJ(A8oCu+%oHJXIL*EOIZ1Oj4IN&=NUEC5&Cc>Z#5d+;I3q9+65A-lY=Eam;1G%sBxGyziOI;Ex+vYdir% zuCev_hmI2}ahf2i85mv6iyCGhDjp#Vdi{1Nn<&ca`J8qK+!7mi>^0PW*!2kTp;i45 z<%C`24o=_=a6w;TL$p^NWIbsJOR!)jKT>9X>08g3jiQDd;-}TRVMfcKP0=-)L5@i9 zoi84_GufzR?gzTZ9av837~kph+noAX27;h1M+n#n*0O>sE3k58KHABcW+!m4 z!Ea%tNHHb{f&GV+R z!$rOqeZ{lg*szLP)3B7!u zT`V1+u zoj0!=78mgpkS7h9mPD}MmZ_?onivGI=NR|;)sNSlZ7JLu#F^XMrj~pJu|qgOHn!KbVF;%TwwMe>&jygPZ%Y4uV>G z4m&MSiWnzkT$lDMlqEv#`xncZ!6ZEMzr9z`-~w$Z6XIP_rs@{hap(dMcj*Jwjn#fg z8$>S2wWvZUcRc}V;(U*EZtGINC3i*t+l>?!rs1NeoG~1k zr*d)dTR9peYzRe|pqJe#*wyd8f*U`!=_YVlD1!7m>nIrV`7LFuR1|&ddtHkyChgnT z7^am*n9>g+$x1zBoVS-7T99gnGIsQe(!YOpgg2g#(0H0OhfqsQq*?8om{M!V8H5GXM`T%|=#Z*ygDFGrkz_d)K{awg@jMRp5U)Ve~wX3W@nr~l)_ zX;t#>M4`m@3+xkE9XsFnI=Kku{TW!ssWSO9tMjO52w5tMnSp|-t%2A*c_EDhmS=C@F^I~&xyz~V zJRT7gsg(F-=2_mRbV9|)7+!R>TGoxTS)|+N=ISa6BdhY~4GDJ>j+o8h5hZ-&?Nxk= zEy7T71t~>-fN$RpiDi2E&ep3<=~=5%%Ev%Dg{3w0>TB=;C`_q9zW6?@Xg2*?9S6s? zgk7SgoXzPV#Ic;xy@_hW;4_gq$#Bm5T@e@jCM#zXr_Tvnzusi#>eI5R{>r-Ld9NOP zyE1^+Q@_)g*O%+Fqf4q6BM$M=@03S5C41SuTECP5j+tp~P2`Pm8JRl@p@~)t;l@fa zx+{#?bKq<$_jGseMj7SOjD5|%DDH_pUq-Tipd-q?dNUy~wE%k)x z)B++>2G+TaX!ZNP2@^nfAlpEo9Amox$vch{!ON8c2t?apggT-&DcAXr6!bP1%qhDf z0}wJ61+FXgp&V#4kIq9Y`2NSmy`oiM3#sk@t>l9Wm!IbOQmkdqX+KLbp-g4TuJA9H zGdh~HO#Y}aywz}__3jW14YV(dq0sI;mox~|sfYyLGug~=3ij2beX#oV>9sLop}(sO z=N}rUg3#26>)+|HC0H&3O(~y86nmift;b9u)(s||kNl5%4acBP4W&S*kzG7p`Js)0 z;-06beazhBCv9nF8JB2K(McYnb0A3KoWj2#k-pO_)8C%dGJAaGJL)uytsm!&Z&G^H zJpgtV)%#W9W7j{x>V}xhnN{g2=nl0Ek4|RGfAcVF8zwmXbjb)#KqkqDo8erzI3l{; zZa)#|vJJ8&=sI>dVf06+rP!~MoK;@Mi?A{nBbXe)1ALoL$^4?IQTt$80!LbN%|FZY zr1Fr3bRpe9w%aev-A?cPzQ8~8QeKbK@NQ$5#$80aMx*&NV^TLi{C4pnUQ}gjjTu<3 zKzu)ZAT)!}3x2fAFWYG%95GTU>}2ZXwE~7+S_mrY-Q|hYj{$G1V{z~^^am`D$mM@v zVlLfF_WUHh+xN6yXmzd$WtcT|Dcz0m2gAL29CK!R1F=6gz^)Nm+|K#Den6>c=kNvo)+>D|w62v0U=p+* z{tj>Y0U6S@vs2%vUS=DCq)Mh#HaNiWSPe-omeu$HEp59p%L;i5@Iws|u4{NH! z7FLTp%^MN1jE;-H8?#Zqc|AqoY@nKnY}gWSz>wUF2rh*uYH@v)Gy8rs$l);e|1Z@) z-t7;c9RHd{R=i1U$ZB`S3m%Q>j?sOBxlD8a@Wzy^_&SUIm`4ccpoPCILU-x>@ZSSc z#Xw|Bz6UiNnB&#HfzZ#QD>U*NGQ7Rd8aT=y;&U#3-Y2PqBdG;v{o9PB;7`$1Go5?# z@5k7Ae|wB=OM0n>;jhs=e3|)tHgAknZR&S=*%+J+o_(tD`b|@!RL1CxP1}J_^I(*K zf3SO4k4cpNFN5+w3z+bfI$+zfe^Io9XgAKX=IM|n-Sa1B8RX`oW2+mf`DKy)!FZa# zuJl~ASolBQDq<4a`3E$dU(eR}l)d3yG+@i)y!dcwIa2(*+bKpwQ|#J-7k4r{S;vjk z?6WQ~TyVIqkA_zLH`1oQj;?J<^`Y~Kq{I7{^F&i_lzDZ!=ZF?nsD*M{GbNDV2~V)P znUtOZYsYr+%MbCqN^x;v$%>6IbX_q6MwPA10cZOa81d>=z9(5WOC-!5xQ~kqzGo5| zN^7yo*>L~dXzHL_91aj-A7=3%e8RNID2(oNBL{U`2R=oSn%*WkZRMK0LfK0K=s}BU zYvY&R_th9hS_$vYO8AM*&-89xH&<{A{`*R#juA>`0wLuqZai}5@*6-mC=NURm@tDxuLuMU!BKYCQqbd;rb1Z$I$odQdiv z=JnyeNbVN@NV~_MnNGu?6xusTUOlrgX>}OPvXBQxs-@< zWuPj1j_=eYJP@uya1~oV%WD&r=brRt-sib8d41x-;eLG)qMm8}wWsPfnAJ2%!pKQA z({XH!vdo5PwEfgD;vTQVj2^Ji{HbXmn%|b%o&@t#9KQ*C4sw|;Cn*O#zHW(MBV;0d zr^FFd!ZPm+qEip&l0N`K=N>+E;l9n~@xRZ|KMEBsR#V^e$>-wJ6nsZ8Mm_^Zd$w=NbII8w*mUkP_RS%#V{;x~oc0(N>Ehp>N+Vhg(ec59w$2|1Z#g@B zE7Uq9L=SCfDRHC+td9??)PRH-Jk=x1AOid@Ay?7H=k>C9}Z6 z7uU5<>=|7}q2SBhWv1}k!D1>x$q-xI^CseXoCoPYuB43-BRZuxRYNB-6>TA%%`Icft(}pAw2^{VI`iSIvNl99o;(0UB+Qk`8wwpIx={t8o@Q zO|8lL2&iAnh|OOhvcKBY5h(D(-=ANj8DdqC@rv=(hq%=1qFu>NvJHjhaF|WWT?-Fh zJZNlHH$()>?@`A|(R2N(Y@bZpD8>Fbu;2uZc-yHRXn^0+LK9>x#2dRidOOZgB8@-y zW@bgG^%x7)w2Vs)*SejmTOzUf`smZkH%yLKbon{=gvkBZqgLEDen0i4X4-1aa@X9e zc~Zc`e&LZVav84E(=wvce)XR(U$&f0eU}6RZY=~ee3uwk7M=By8W;o2soL>pN;2(= z*z5*6MJn7A!rwb+FJ86ZpEjk^G8vzpHhO2MHd}^lw*|@1A%MmHt5d-;Wak`I+6rkk zEbsCPPiWY{+DGA8)b#0O7~2yHCH&*!5b8=aUEEZYdZS@{KeyMUj@A^5;JJ0m@jhGu z=Zow_`Q1SHN%2}Xfb{Mn`Yk4fP3-yT;t%BwE=|1O!HBkoy%O6DiWq(0_vb+(d9%*E zZQpVx$+@7SbGltpplMK8$O1uK73#KfE;m6dBG=|g+;oBXo?u^CHo%(8_SeWJ3ad^Bm29f#d3OuP#)IH3?*#K14kKcAygkG?L`V0sH;ZOyqFl$U@pqIX*qg?h<*n`@6h5o^z&PX8U zXS=jn5-GYNBDYd6Og8jEP&YO8$QlIn)XglwIh9GFCalQOoX?;-3T{$kgZ}$X@S`qK zZV<1tBO7UFn#adphA)l-p;1ISuqjs$?T*0~yvMevnK?*Z@G(s-I>4vWGY>x|%de%~ z6{5bW+Z5$;)8Y3xWy7pW)LrynyF`ht1HMV6KV&7Y#lqFjUM z3JMbp@Hz~vhg`IHSG6B_fdAeytIqn9rxY6!=2J*{(*?O7V9?bOg8H`+AWLd=d>HL& zm@IqhFB6*`$zZ;Wh{bQSCP=aGV>jLX+~7nTg=@BlBCW@IU~=&VCu#MKccx@+Y?saA zvi-!x%I$7jtg)@^b~7vU7`!PB>Bewhh^mGo@vwc<7`xBgx;gAk1UV<9oyRT1YT0Ue zNK8UqOE7l!##6}~cCqz!G%JkDwuvfvEBcBmTn?SA6>U~1KBYb%-(iZ&hD1Nf;A#hvkA-ZQR=6NTB11!T z%i1?~T-cx|UX7A>Vs1;9E+8dlcdd*4wk z&&q1+8yx9Cz~(d11U%qyn_#Lk*`2$w)mkv~hn3o*f3~h6-bawq5?vd?RR~y+Ntdwu z(gfXe+prE2>TZJObwJ>=ACk6DRNv)Ch>Gb%``}q9*3G?lD(=^kRHkNn*SkBQvT|ox zO-8IZUKBh-$mYut2~ zPP7RQb(c0QDD-<9rpmHi+(+sJp@Ut&^FL%$9|I^=gZ}F?Ym6Sv25P-1izS#hzdOxA zVod~wjpGSU9*`P#>WUz@gA$A?Hh?2}<#ozk zP%;dCZXT8zbqz=QpNCA zPwgX!-UVOpy{G+HTtg>f*aRKG;Gr7Lj6EUn`i0D&gA9q~no`wbgV-!lS0++9Nak#R zJ|EEc_uyFE%baT@Kg8)Z-p!=od2`I2ma0DA#1)o8N#x63l-)pyTCrh+O=lJRZpuq8 zJtJ8mF|(t+zNHg6$=KnI{lD8$tNh6_e^dp4NVpyK>B>c3jREUdQS_xAxJY_}P3&TYVB z#0{e6)n`*b$ptX?LxfVK0G>L^W!+4#UbI;8pLpeExTlQJ8&0WjNt}Pe*^G zra_f%7(ojy;(N%i(K6{qa5$Nq&SoPvbCkQ=Ad+*qBm8e`B|KR%g{uB;!#XEzDF=S*xj`w_W!AQ$eK@SEk|c@bQ2r9GCb!S9NYb zr}zimDdIgZ7O7=>DM^Y?vV2IAvz}g*Htpk5R(|A|3&PKU-~K37e+GldU<1S`v6XNq z%NFtUp5B-2D-wEisvb7(k1p;dO|GEE3aQ)hf`Fj)DrL8d3#!C-dl5*WVW7C|)&7pS zqQ{9W^o#V2Zw@*V&s}Ig99gRlUoyd~}kkCH6BG%mbmT9>ge*;#lxo{n)(rcUKTqEulkL4du(OugP z*M3~p4qkgNe+G8MN>zUd!#>9jR!6QxIVcSSf8%Gdv1`P%6n%eBPtBWu8rzqFFfm5u z$F)ocprDu%{^9U{y%Z?trf`rw7@j&u_k655N_^7b@hHpC4*h8fA_3F}Z6fy| z-eR!?77IjmISS5{YM<>vaB1J~U)&SWyU=ds&ny0t2zypKU-TDBe#mVc%Q~Mbku}6Z z_Tk%el|x%y=SJO`_*K38IJ`U7aTztgR?@y4p_I-CXm3j~9XmUbs;LF@oB+wF_5p)L zJJReZTNb;#8hgH`BqzQrp6o((TCks;<@$-Ov8)(g7IBD~y;onyn@Qe4U+_c$d(dm} zzl8d0`orQ!$L!<{g4bD>Es(@lpRjcv$5LkC=R*knuJx8GS#WVh_@Vo0B!v631_7nt z;fEi8EFoL+y5ve|oa_7a>?$GX-oK}{i=cSfQqls3cl7Yn!TGPD7>MyG@#HUJtXIW? zM-4sk^zYb9Uooc)S<)Xr%a@)x4ZUiuXAGO%!~ck-5tZEHq+7!m4D>;;QM_a+k>4f* zEvy=EfcLR^U!=Py_D)YQD-_Rf1Ca4Kg;!MXbCNzcPPSYFjJedGi>>@X^x<1AJD?++ zN;^}pfJEyDTgnx0gUVxFq7q^sS}~7Z)qr%^-rI2+5Y0`789li^dwcEs>xYQ=nzDvo z$=rlhX;D3{Mvl|IaeQwj&>|fVpf#dgbzPz>Fe>#;1usgP^dJi=B58^1O|B z%?zvl&2vBq<86iGz^S^pV^8Bd*PuLB$DoAxAWghu`wI^;=tYOPo=5`ASm(C_6Nbv^ zPHhS5>%=RI-`fAl(6*X5V3%2UNSSWEQ9N_)p? zIUIP5j-Pg6_%5Wpfh~b4VBZ06uLoR}je+cd7N!nMa5|ZH-U&H}lPOQLd9A3tX3!>! zT^e@H1ZPUD4NH=*PcOr0+mDOWQ8J{0sZ&gO@BAuhZOkOqj}c6!zt=N6tdOCnTJv$w zA2mzS&vjbdi!(3C`3Hv9;PQE|1k5wTXMB1iqNkHsZec@?K@bID1OsgRY6{B_&TJEu zF%b9rE}9;M75&+V;$7sRnmF;*x70b?JG`Ch-L&w3 za$Kxgeh_X^cJlt?Puyc%?)fJ!j8frmv+j`vje8}_Gffk~J>QZyICXaC7H4(C33o;V zS#prMk-J#Y3*MMs*@9_Uhqf3T$NaozkZ|a_-nLi@<^o$H(?a74;>Yp%GZr+Hgl9B8 zM`(q{0q^j0+)@s1?|AQ6J&t~J+wGiU zqvM3r5EiTVzt@4O?7_VIyJQZp@UfxsiZcS zKv4-{elxo|h#D3Z;i-3h5#OJLGRUyu#W^;Kx7*HDY=WKl0xwdp*rS$IxJu3(yNXnK zoZhY~LbvV8;1I+1tooRUe-SG@7pI?jz__E;Z(+EuU-&f3NV@p*B={tY3j@G80z0w- zYpG<%Y4nZhc~4$qY`4nro$brhcZ|&%>(zsj&{v_gH9RoYY#t|OcLAYzB5sS5j`Np8zV_%+i^q{I3yeX|)&1<0?kiv$!L6RoTBoyL?-Wg#-Y#Lz2$9WhN&03;z1{8FN1=JD z>+5!|>UnS-JouXQcQfnKhxFzyqB_}J`!72@KOm>f4 zOmIc&*x}R{xDA#}NH<|W$)I7PL4%|3d_9!Jh-{Y2-B>M71`qQu3VU#mD*WB%K(4!2 zUQiRwfIVF@_>O6b=ap4O4=LIW=;V?BF3|?h4(EL6Xox2)oR3uNF3*qJNv<^TjhvlP{;P ziUHsk#5ogurq@4V_t6N{^-zcBj_si~?r$g3J_>HWqqv(7X%~Yll}<5Vo2>U{Gk1XW zCUuDgs5XuNSfI$6I2dELzZA&XAm7bkXFrlSr<-fQTr7a;A5VMnUYvJ{hoxZNglu%5 zKOR8&31r6*2H26SvsznDrHOqBB`S$H14sOL9z5Xn~`se5YcZ) zPzEwMJ?f0n{eH=;ZMhL^q|LEh7Cqb;?*Y%NaeX){Nhq>qzD4=?{4-`ht+`X08k#(C z9r}Bjn3@gzJ6`Y06K)};o~A$uR%rAJFaN_fSG`oRgj*J0MvKX!joOeLIue6T2wDoy6TK6QH>r`0kvt{) z#|72kXbcCJaiIr$C+;Rq{ki$oRuU^a!OSJdu9(<4mz|(T0vpyF?*E>)Nb{`@V}2rY-zBXgP}RCbin&6L##XM zeTn}8=_-GiCHCj#D|~q{IDV{K4cX$ps%x~dhMm|vnmOAqxxI#M+ZFzxhl^WL)?<`d zgH~)@Ns>x82vTHYaXrY3|65yDsLEdJxfPFK_INkF<*kn@i7_#AdPTK;RLipQs-PVq z_^SKW3nQ9hXun@K8G>IXE{sCA3kA(#wvZ?}4 zo)_x})7L&VK8Zs-B25u){#+O{D51RQiv2Z43C=C12yU-(a-+~}SU&3m)toFkUFtZh4^hW->(I4GlzDM)G3Yz4T-jCrUMyfW1 z0lMJM{#JR5pE#2o@HcWE=#hsPWtcLQiXG>K0tMr6v)x`uRB-B$7&v zzBjIHv*xB2MHjaZ`mXVd@|wbbsiMFe^>oeS)MS~M?wmg|^wnBE&A%ANKptpSKqx9=;bg)bcy79dW2pE^@bRA8nWqRncOiPq68Jd#NyM_6|4Zm%eTJL{xlDCd;_r^D5o2c))jIY$QCgKd(5KLZ5Vi}8? z2PH4<_&A+w1Lc5?6r6X6Cg`&y$S(o(N11Y>1ELF1L}R5W@9oAMoPP|_A0C+S!=BjU zsqCb=Qf$QIc1Qqw^3kgR(DY8^R>0I|k1cUG=5@^rWdHZA%(nG!sEDIieDGWKhnq0W zrQWAcF!G{%pTBTF1PfkzEai(x$Gh!!S=7gMQ6zfu|#t$X6cEjK!t%l)t0 zDNZ#85<&Q?5h!pMG-$Ft=N2U$Hj3 ztgO_H`xh(h0du6d=Pobgin-7)1G2o>2?olUYa_mc?Q-(rqEEIDdbWp2;KH211HXuog-fP3x$$7cplZY)+kJ`68X=Ue)X; z^~Gc>yZIQehF6Qr?rk*>?Y>x;DK(FVH904mK~rM~z5u4zp79WMy; z!LzhcV6iXG>G&vN2vwdK@NJL|l{{TWZ9i61M&mW}J-$SUa*##a4mkE6{8^tF_C8^B zbm08+>gJflxrc0*GrX_blBq&x?N@&0LBHKLVU>g5>7j^y!mNcaUwH(>ncoJHeLffl zVe00sF^KkbtFx^!tGZ+*Je^W?>;CsvQ+aQJ2l3v&N_PqXx%H*J{-Ol>4ONn|?D_4| z$LWG{qTzihvRfE0E^DY8jBGZzd>EOQc9E@zIIi!;7kLTi@Hfj8R?rc+$<_GX=0UPB zC&cSR;l3+=0@4L-(7Do8hyyH?*dO->wk}3WHk-MZ-7LxJ_4Ijl=ZmE>&z(F=?Uc!| z5Yj*`gx%w(hid2In(j49xA3Jlkj77i3k0si`L6+LRyGsjoYHK)Qss$IYWsCetCUN3 z%+#ey>XzD*<4AT6r%$gS$OyBZh<+njUSxI8F&Iq(ii>0_WZ}{82VDpO87Hg&MVxp4 zq|pKqcEC#UI&&h|`s#Rh%7Q!c{)gFQzO^E4HPKd@64RO;dE<#b&BVNQ%Y7%$-uWs| z=-9{wP}GPRpj5(`Z%W4khI83oKBXr_4V*lF zw%+;ze%~mBIoQHyYX%Gr{weZFN8F%MzHz5jkb0YP!rIDB_|-a* zTTR8~k&f!1&|~78@e@{MwDx^}4x9PECs%$}?p^gA*0ITgQlcZ-!<+v!M3)r8yt$F> z0+W}JdxlUg>ul;f(BIvnhtSEr*JlFbNF=Rf=qCdG-?KdJrtW1lw>OW5y&WP~jtsJ) zj7E}yqYpwz>jRwi>XH4`L2MC^n-zp#Dcn!%ssd%ZksU5~oFlAq(=yO;7b|?Y31=*j zy5V{aWSpq86dX)hUe+DN_DpY@3??a~Y^dI6Ug_>~>zO=ydH}w8ZEJu>8}+vzm%|2n zr&vP3uP`9TiF!FkAYNCue~!lUiW3r_mSSOs)HF18N??uoDQY_HF(#{~x9k0wz%|ab zZm2%u2Qwkw0?CX0Aaksn`}E^oi;K}Zt0p5_D_amGk!1hvR03TuXo&7NS<2I7csJ6Y+gr6{Mm2D{x|^T zkpbPxi;OEY5x<1kI8ruKDS+3}zM?)gj=9H&_gI&}3Wn%lduH!8;Uxbm4;~v}OCm>7s(G8j9BJ*?UK;>u#LL zKcE*}^-noUiI%|f^LLKmTTbs8qA!u;yKTazl3y{IRs=oZcUPHRVFR<~D~g!LS|8D7hwx{W2c z;@b^#9{ivqqKrbM0t{w0RMB?)R|N~-%%}tyXqg_k2MZKp!yxv~Aq=JMJ$dbLZg%$dXv%2fv;eWC(85A9lRIXv5=o(%(aBqx=jE-s+M&&=h_VWIS2eV z%!{>U$gMVdM*N)*^DueW_PAMJ%%#xa$_O>Kv^$Dox0HrP@Mq6@wpr;o(52Mn98|Nq zb)BUw5Pt;y*V6f{ocGf-^GFcu4kr*tsFb)W+>KnaK#Wg>_%Fc6@Wu!lv7c=^4HXkG zA^zI1lu?M!42F&&37wozJ#Rz;{BaTXnvJ(BYlWSm?& z6?&PystA1lAi2h9gHb5kkwNCnBJU-`u}9Y<4EQ&uVQi8d%RB)3Sw@ue^`f66Q19l< zQKy&$&=l>I*EGkJlv7`!pMH?81s6aFg_Y;SSk_CSK`FPPOyXh8dM-b_2#X|TkEPOO zl*_6f4cXjlv=1r__!}yOUKrv;ZXP*Vi5y%FBlPdL9SaZKnFrb!Qcu=XsY+gPe9AW@ zXQL&AU`N#!OCJ>icZ#yw`elau@#DoK5gKGbff_(qB-9{4F#fcZuBP@w0`&#{&z36? zeq)SJhO;HS*_~qwN$^2;fS7(j;MeGg3mvq#j2y}VQt5P*%J1w=IWkbe`uj!7kJPW+ zAYm-vu*ER#>3i1tNF;Sz*EFhd03KIznb#$!~!t zrNoK~QfkU#;3$MO)l&bJO$Os}3f zfwZ1OPV)d3&cr2fZ$LRN|XzYI0wYG}+{ zb*2u!;Z0gjjY9}yvhvH8Shg;e$*Z8xh+$y=@DbJu^$Zj4p^KSyhB0#hO<$k2#WUM8 z-fya|#bTb$o<6IjC>>5>s%JF6p4MO zym;U){F;=pz(wN>Ht5`lbgg9u|8`%99VJW|F=ZPQBcE`6^>!KV-%QEsXqB(=khBR~ zALNjkYE5FW@==`qck2sgx?NBRK%>Ak&_&Q_BslL11%s>J5ra3>5hn^jXzwm2qzyj< zt>dmp!*z*pxG7rq4Rw>|s)CGuw{}A({tF1B=Rnh7gOO|5z9L`vujlajQMX%JVLp$y z=v!?duZw?a-EDCaEupX2`7-MGFN)G&Wtiyz@ECYEuD?DGMskToB zhEtScRDZ-EMD?(+o8P#M$o`R9q1~0-I1j!9DfP1hTUq8<7okU!>*3RDg9yF?fJYA! z`RkBP?Fx}3UW_t}i-oFx@Fg!JgJ0-yn_Dyy-;Y86guhYEFU9U(WNDkY*y$W3W3~}c zh}L;DvEqulmEja>E%vk)lpQl^-G1;!{!FbmD{C#OqTK#2^Nm4NS!oh0a1rl;RhlM+ zNq=DNQtH-JmAUiexy!eOs>QzaH^~iRdHY$CP!@IUQTr*1XajQmOP|z=FeDd=WxW4w zBE6!|67O@&L4F$GFnkJ?Q-Z%BbRy(frEP~06i*=V2t4{^>2ZDHWAm* zcnjfQ2fdO)1%Y5VTbmF{HxTh9m>s#oJ9?E+cM8^pV6r7FeCH=m4PW$Z7REX?6D$PK z(<0Nfx>AP6CEU2RcN${PIJtGigszBeoxY{_xz?lfmGVC07%<&DU4k_Tr64Z`Fn`XZ z50+5W{*rt%wigh4`psV&m9!Gsf}{HJ$zsQ3OctNA%+6B_2_M_`7kZ<~Qe16eW&X@L zD4pgpfhIxejl=5I&5j3_w;X*78moG1(gfCQ+Vz|f9Z8bL<+=^ry-B*eY|wg^VEOvT zt#5?ME}w9_BQIKJrT`2qrBT2H`N9S32z{W8So^vpsCvw4$uhajKGk6<3W z{OQ)FR=s@OHO+n|W^rSW)xZ4``)KXxOV!yr-Pzo7@CZ<|go8P0dkOFoA00vU0=N`w zCa;a2(T>ATL|-7)zf#1x??q2`l_P=UM-H#LrbPN`bmG47?B(<89>>4?HUEA(YHM4a z`TOkoNsGsA!=D{kR-wHm)ivhB*tEL>Xze^-=@bBh`I-n|^bU4qx~0NF4P6K~G7vuy zgCK%f6z^Z<^|SJD>(a8KdR<{x4QFP}(q)=zGwGK6I}Ni_a6hEnEAP-?FnVN6nh+*@ zyv!uzr6XV|hgo{J%V#Y0COkYTpJ(E(;|TFW7&A#vO6^xZ2(mRBq^*x}W9nXBn)jRV6V1IXYsNF4fB<6Ur?HJ>#t=^`%8jig~s zb+^Cv*Zq9zP1SZFMeb|(1Dg-9>1qCjL7w zD@7t?dz`_9^Ag2JW}_NH8pS)d9XR?!E7&S3e1K@(hgntt8ab3@3ZIMt-_~(B=8u@y z{K?MH97i1j=M62R1gW61a;95#0!A9oJVrhtUW;T=-M=`DJ*Pv=^0KKuY1i7q6&+?* z*-axFL{CRZboQ?beNIQpJkF0GzAq5GqZw*`KT7ayVwu(5r@L43xPO@Ynpytd$acEW z0aP}N-9H997RTv$Vi1qID?FHL{>7&$R5X*yy;j;h;Yu~9J2R0NJh!b%!+K1 zJ-@Hd_aAuuaKFxZ-S_>xuIq83o@(Q6lkfRW8nZwtDM2?{D|9d40_HYBx?nELGhmlv zx5+l8k2z^{d$yS2AAY)5>$l&RGaUc@3z-Y)96CLs96c%TZiXIdxU_iNiZC%FL+U}a zdYOkLC84Wmf#H?Y) zhhBuOwS=3Q$hh;rt${5}jDP#?!YNGhFPQOh<@KL8(65KyyJh>!c=)H%wAp_k<~tt_ zy~DhjPN<4~6Q_B)A<0?#-D&aNr@ZBYEvW+pkCL>^SR)=U;aqt5?8mN!+uX8=2! z=)BkVQyovtHx*vo{$=<8^N0$2jqg!f(m;HPV~o(T7)lRNn1?fzLm29mnSb8g!%3%- zenU-Ifc^!5C*ZXMKKpxx78&^_x*3{7?YJ7!FZ%Ui@s;#pf$G*o1_4HKFM&axwkSWl znUK)-2_=~4d|vm|lknot`ATCR^+D?3<8G={I03b(^_W|q!+o~PaY7WZld;S?u_B*l zDVPYyzb(hFONvaU%pF4BsQ{bh^Ky4+j@^ybeZqfJX~apLQQ#Zd=VGThA@0s9s@5wIyfV-fu3gL` zuThP8vAPy%+e#8&^v=Ty{BT*x1L^zpjyHa}dYv)U=OnCepri@z0tGXH^|K-B}w zRUVXt_3q(M=*ZuF>oDA$?K*PdAWCJq?dR75o6>F;999sy% zdLq*YOCe)>{7DEmm55m4z^Scrohn)^U&Fr0Fmn>BZ-mBYS)+Q$Egh( zF%1Ts_U}wUay8hdd}@_)f=cSe$$*HY!ud^#M-8^7T~q*9m7D7eMnyiouwG+*M^&6U zc0)S#CGc4i1&C@gCE;Mu033z{?*xi$yDkboS?Ry%;o*(zO2!iAz zDzIbcj}a2;xHcvuTM#egE8HCU1H%S4X5Nb9K@zc^TNiYUKb>t$`fhOBOz*&3J6J=Q z))%Yofk#TLvai)Cv__xUiHMw!mph;FVJ^%}J@NL={+#6W$XRRTnaG$JsK!+B#}p^O zy7Y>L{*RmPZ`|8E^M>x*y|PXE^Jod;4CFa9??kN27JxZy*xuou+(*2Ip}!Imuq{MX z1R2b1NSWP_30NY2A~onbfk+%na5@K&%yFj3lwziEw|plH^D;+jgG=>XO94gE$u}Sr zEJ^ZE<{$Y>dvlc7_X@=7YDOBEXOmXF%XhWqcesDJi7lKkID}v_s)?qPu?-GQH(i4) zXa%#dufH3_A}Z_pw@i6i2F(RKF?o|6<51AaKO+z_SR0tEVm!1Hr!>%?*Gw*+{>|Z6 zYGJnw1QiF*mr!v)ERaKpcO6l4IKy&*R_VewFsbGNk@IFYdQw0O|LWBw+RXl4ivOxe zc!xI*p!%|7B|ks!yvaX4!Qe#l!5Y6U<3H^i@oYGP&?hqR^NSk}epffDdV+sa3V8dB zJ?b?@kJX$(C(CcZ?za$0U647|(+J?cOebd-vT=SaEFR9*^0VolI~VVD(r4_og#aN) z5iDGx#5Ty#aX|*>L6CEW8pF`dpF;J@V2T@@r>mKdFd$MNnBQhoW*xX>%6*;3lbz7D z@kB7SmCn~V^CE>tUlI&rJ=npN{T@2-K#aCJ9ijkvgJ}rmM(!sun(5p zx#JAS-kiv$rYiP4N=x*78{JagxEkb(kN*gfsR{g9D7KB1wSTSI$9S+$T`OSbfMJAaT3c;>*XafUiW*Cw5&NkLtBS2TnAmG>Jb~LJKwc zx5w>93w#=B7>uol$&;+eAzoPqo#b~H`Gx!@cLZS(*n)V0{aRE*6R{v|Fte(Wk%4R4EwN@NN>%J zSMxWx=_hrH0>GlkhAj^4>?Pltv{GS`(`Eh06ho`_1I@`pnmlmWwXZrf_@*68TzaPN zEN1fGvr@7mF(pQIe6sY(S-k;>=pSw>7gSwW&D;)Y4E=3jknzUB;dK1k+2BLQ@4ZleWJu1L_Fi3t>lZ3rd9V7EF-OL zW&pL)&H)sEp~%oLrV?Cs{f|vM{Ic5Who(=|0Gv!|&dXK#MQ+W}^)KNt?gvjqD-=2e zEE){XcM}J6Y`7bARXbjPJVcC~(X;v~QEnd`DZjebHikOBI;UzpPHB<1iEt2@?|C|*WYVrE=lJv1IOFgpKMk0AShiTQ?gfB@Iu`+(G`Rx$ z=@8#*TTplSS5!?)UD(RTIVhm+C6vF7rL{M@6JT?zMOO|b+6FxK7mU zzN;CbVrF5A{0d|UC1?XXd4haS7touJ#hp%JqeS!FrnhhB_+*7OKy(b*OMQ*G#&_ZD)w<`t?DR=olTEj;`H;IC_lXV|=iB^8iGv~MO%%hd zK5#K%v-*)-TQF3j&+CFCaBD1f$-|vn%oNv^T&LsiY^FQSZ+%~oU;3;NI01gI^z!k* zEoIK=3h;}5K!I4_8IT&)7+1K2O9!H&B#jL@@ZMwJn(tu>C{kKyta2C?_{!h^#sUg1 zmTg~H?eE(q3O7J_4joi+Jjj1M{7DVrJdca6-QR^zE1~_pUO~Y+4ke?OIL4S~{Zd&d z%FEu*mUW<}&l@BdC7%aO=m`o4g87Q@krbvY8J;=&A#3wT2dOWv2$`5WEVGR<$vyia%;$OT8Hn^Vf(KCvsVfwt6db{Skvk|KAl@Kt=DWJOz0UE(Q8C_jdH;ZPX*eo06$$km(ZI$j--*v-#>{?Z!o z*Unb%`1R(>v54jaH;_Zr_$Krc{odWPVM*Uuxy|O5Ll8pF?^H}&R^>SOCsI(k4qDi2 z>+Gq1E4y*|n>HH4$|cdtGZ*0X0Cn(Io$k(ar^ghLlq+bC5+^}(3Z);p%Z@!y%{0b1 zv+#ccM!+rMxYusX$aE;BLH)jtDxk1f{mKrHi%IVqg?s%*n2sIH^wgs03_bnzH96FL zP;DU-Q1iI+6>sTWLBw6mmO*jTx6%g2)TWgI5#&ixUSk^5mRFkU718b|l(H*;Z#pEU z<*>XM?o?3|)JwHt(n$}?L|n8dSgE-vF^oES*Vo~+m)VmMbSq3t1p8PLh3x=61Q+4o zR>>`Ct+NFZ3kOSia2HtKRMmBZ+3Pl ztEnGCn%PE-{Tj(+y&e5ey5#PfwlO~?8@=BMB_*^_&Q8zT$zW^ar9VG58?UP-VNaLk zh&H)IEoXRMZoc`QXHuogfq1G%%+(8k7}AvK3;Bb-`B0icF73J#Hxp|z>R$jDRfc!wG4$XTXDx|pKU{i zX$L`4ybO%@jO^CyC^b2{HD*7}009&_D48{rF>2R$^FJmVt9>K-?sn(|w_(JavxgA5 z$&oD5v$v^mKX&*l_Q&u{Iwx|`!>XStmCT}F37O5bb7h;~g}z=!q5NNB@t1fcv+s?? zRp{DsAg`x;icje-ZpLRv>eF>YQ#;|L-fCUo>R-pen%=~tJp24Sh0+34nv$mpmU>LZ z8iI*Sl2>~&Ce&jbzEC~XHlxZ59~t1Tz>1ci1kmf%ENc2a zwHGQbTWLpHMk3TF|3eLMvgBrZI0~~yI_RRgop|lW7JeS#e1_|sR_XLtvD^t<<+l)*0+fixIn0= zvStBQ?s={EMl&NY$gGiCd+)@nd~{_ zHg#w`$!z&pXfq#0%b1G%}E6}DMp&Z>_Y%E!~oGf8%TtA0w-4esD(derSzI4$eZz7e@Z%fQO4{xy5 z0&Ks61z;8|&3>XZ+rG}NIdxX~Gv#$Puaq79il7K{P-2Z2;BTRadrZ^FUv>_?e*DJk zlg@tU^&x%BQLTIaW}EzT;}?k)|6E@Fl|UZ4Km|b`k`Hh*PiVJ;> zv5j30+W<}2+;HJkwp%i z(xw==?MAoaDUXr4Kw92RGBr>a-q)6QsN^OsbH%O8GYpcI|2+S^?rDMsZGBF%7``a? zLrnVkpCg6e_{W*IQHVgrYrFsLfxO<2Kr)Px9!nR z&aC`p+sG0jxgrml5k1_nRMwjs^79L505zO!!G0L?V+eXlazvw-t~ttML^9tavUh=e zeSneQCwQnt%Kj4pnkzsV%Taf%cH;Ri%`Xzl_vPQ3S^(%^7alzsuS;2>-Rr?fRQA9<#7`O>^^jtJ@swy7a~FVWzRn*%%e0fP?m@P=vJ^B zf=G|^LZST3SbS8|;h$d26}hx|xEboRMr-|tW=i@9gi@GUbj> zi6z1p+v<{j)JL=$dd2+XmLpA6C-}3#BY<;s4tW9iIm*ff=25s%DIB>_%J31=79`GX zl|Hf6aP8MTBBS)xF25wx!Sg;T;20>&sr8MzeG}yd4^y$0HwcZE0-nDv(uU~FG_E>w zd8E+;0VcQg;p&<})fM=uwyfBk52FE!1153d%^hc#<=o$JeFr0Bi4{~YrUBHzIP+(Z z$RQ{7M`H%u4!x%ea^#nW6K|)#WMLW; zM6S1mhi2le?aGR@mC$ThtPL&iMvUHrqmEvT-W!ENa?TQv*eU%gaHLL)RuKz*^OS6A zMa4u$+Q$6T^o>RMSdLAyHd|vvKcouYC!H;`rMj5;^;_A|6-bLT_7;8)tZIbAH#q3W zWtX)c7C1L9vUN9n=J0Yk?wp2PEdw_@F|j)C;ai_eWg#gGhLn~Xy^*(gYuy-MZ_rUP zlRS23T>^W|k~@`rp{6FeB~FV4?yL0n=Z>o0bl?yntZ*+Ip0F@QO~H zcuy{Mce}jJ#E$OFgX=Sp%V&LkVNP1{UpX>BLli5p?Q3CgQWEX~P8tLc2X~(S#URKM zWE;0P(d@p}bIw}&->hZ0@1Zz#=+>THQmv8hz=-qyGV4`~*V}DgOHbpLaM{(r#NA3>0T`ZVl+&tNI{> z)A>nl7r86W_jRyCjL6wb%P44O1Hi-uD&!?q5FRsA5|rVJDF)4;f`9MdH&OgXuwH8t zbp#wjHPvtW=P~M3#Tnj7%xv+0YQ_3)?y%|rh=?litTazZF`it|(o3=QcaJCgeGi?Q zj~}0tW?2S5U6_ZXkd|_pBB9on+I|>uGqb9|!A}#{uz>n_?f}f+Y0r{sD3|yVLCz6p zuZ@_whr9iP8wk1r`fK_XPx4M)5}c%iLe=?EW~<)`f<^4s907clstjU<=L<6q1#Q52 z)7kVJXg*{1h{;H=Q7lqQzodU-cKS07%3{1gA%dsel3@%^K`l2Ks19%N$5dO!y3%mT z2RDh~>G9dkgMc5DXthJPH-n0>wi(^VH;IuVYAG~rz*ZuszrT1wEGV$q5Q4$hvJaEE z-gHc#yM_*;K~||QAJJ*%-0+W8ufs)NygB#oOF!Y!Oh$6aKSQd?$~OKhMDLzw_B4^)13LnFg9V{+>Mw8|onV zOMR2}L$D6K=vO;E!Hngo+}DZYWFFUBODH5SJ7+}nJ&LMrI0X8MhjDdHreE~E{!% z88&w0i)ev}S!u-Rx}8AtC-V}ok^|dBX~zTFXMPF~d9E%dXPq}N5fWR%laf)g)zYOg z$tWrTQ(!IS4b3wsJB*Mi3w%@GB>g-83uLkDkI$1tf81FjaBP+p<`zsX8`t2#6i4c{ z3Jk=1nwkX(&Cyjl}S)YEz+AR9htbrDNMWJ#J_(zqv z(8K#zxt>=dmWeI3jv*6i)u@F0*H#Br=SAkUUP1EXQkIAt3>Ot0Kv*L)ZKy~93PiO2 zn=qaU|4v%EM2oy_`B+~Ko3YYS<9ekbRk_E_2#&@{WPwl|~Fn{xx)VR#pGMF_we1WEvm zoqbHC`XITZFO>;j>S3&h;usPAl03YVv}>941LomS~Y; z5>KwMepz0d0ZF}LhjJN$H=Za-UIXa@3iPk54;)|DeiImf9<+N8~|9&!l8J1==hFwwnL%F3(r zL?seYfSE{q+^D?`3WH>gL@q@#4Yzvr6R2;JswlX5Jg7Ey7oyM=KsjgNAv0awVt+k43&t z?ae|x-&Y2EV9%eZrl)*v z_HlL+zKn4L6?`2#T$QhDpf4z0FgbucO#hzg!|di;A8u5g_Qj=MFZbYofxP)c z7A%jnOn7+H(GWgMt$UM z!cKr$wJXcUU+Ue+(d-tA==Yg6d>2n7J{@(L@tfN>{ z-?)(r`}~mNm0Z6{*;JyiNFpEV6_0c&xqnmT^Sv12?UA-2kCgh4LnUvWyD$GbiZF>- z6ExZf4|gRAP|Ab7?{vZ6wYZ3Lr#2`C;rrYr+FVxS(tUzovJj&R8rSUjkUUDL;_{or z9W}`mL%Fp^gLetl43C2y6dVxuoX51R=wjiO%q%HK*SOG?UmLIeUi`e0*p8NnGuSG$ zlNt=x`XQbj9pEL{Oi%eqex}ZFiKX;JZV9mniF0`dC(e0Ut#>S{_}8w#D1DKA_9WQP zHtogt7wgB5+haF)xlvW82CTy2bhjkQhfz_~xG2{o^9t}as+gH+WFc@KSab1{5OMk{ zN?%E&Ycl!Cvjqrva4cQ1+)bPlNe(;ow%(`K*8k<*;nxeLkG`*Z2uP;CxD{2bAC}KH zot)9k^dd22a_^T!uE$VM^SK*!O)%%kvneU_C6;LXisy1rS^n^RiQjzdTEVC7K^SU7 zG+5_^0R&~#=|Z@z zJO*?>^o@;;!oQ!>r?H02N0|CeVEyQjR0C&33H1z)e&Lr~+VMBQp~Tnk>zg{r^`d75 z@b_4b<>feyf}`X|k7Fz4{cYpNmHr*##d4A@{xzJ{13ik4{%_RVVlg@41l7kMtt=zt@Tvd?N9kA;$EN2qMM^=c1hryW(N=SdyP@Gwt89b%}BfQu}kDOwbyNQ9My7PvDj z@il}-e#%4Zu>mA=D+}m06gyZ7j=8c#s8hSAJ}EEVtYFLztdu#`Wqcx{B|_!*_tK~w zUBf4jr~t~WrlAemx!Na{HQF0|X;Cpg33urf_UK=a$6qK(3~M?2J|l#ow3?GS%m77s z-gx*BNjd!DQ|@mf(uB&R4OfDR6)F<N zx9znP%Sc_%$dhb#cKgHwz=Rc&qY>ka#dr2LODfAbq_1-Myehcz@q{4q8gme%?v!@x z35M0mB*Ns!I@}rf|Hw7K@G@D^&W)GZX-pqf#f0dAlTl{!TYM{8%=%6`?|RfKD^FcZ zS1P6mzQZ_x)mKw=L4N=y;hCOk?7P({uoli<9wS+hPo!aI1@|s`#*E6EuNjc8O2&kK z34ivXz6({86iG6*7`-r<7X>Kae>7?3;tG%1YI}SBj&6=oFOq~gvJT)19jG}@uo_*_ z+yt&GaJ7FM|D>t27c9!k2?J^p_T5*V7WcU9l7Z@kKziba zQ>dYpBnbngUfpzZSBMH^Td34MtI8#~m6o}+QOy0Xp1U!EMTby>_>L>``*lqsq#TYJ z4+8W8LDnQ+^~&ch>5D^%_x?`R^*6WKx#?ZcshphZ_?5YAKgyAR7QJ~Z30jul=fo|B zffx$Rp`*E+^@bqF`S}K9NkYst^XYVV@7fVH8O7_XE1L<={r-Xi_ zS||v6=ZA0IN79`|I1J5bEbR0IT_{;%U?n42q6#$B5HZ$bQ4Qg=r)iMk9-+ga7XHeF z(&wsA7RW6cKJyaMKyZAvnXG#`tY9dwl;lF53^BvxTEZ}0Asa_F%~7^Iy|* zD9!N5y)A@0w+_g*f7A7_t68!qAUmT4<~^j2L+5_09uUBR&TtAPy7lCnrTmhVBIM8y z#5n}?O9ZJ@deBNedv$Y?O?7{5o=tye@dI~V6)pcWkG;ZE8YG$KzZao*2GSy>`*PXp$tICIW(>8Y)ousAYwkx2D&iF5T3l4~5EOcDl^Kq@uH>36cW`B0BhS^& zSY3HaukBx6>$uNq!mRqxEK`H?6O|nCA8a>UvyR%V>ZgC!(td1^Y_w%cLjg8k+T38V zeVq>o%SG=>X?<^%;RoT-IQ=p;E`2ynzB|2rn>9T47Y{BuHc)TG5*Ki=zU#L4CNak{ z99(qsR%D@`CApveZ(8+y9@?my*TbEQ$J4D@>IF%Vo%V-Z+=URfd6Uu(7wq0V*S{QA z^+WXRfDMTgZky%SwLkdOH{OS$7LLM5s~o3og@s=Zg}6{oB&#Tu`UBOhv$qJCdGtgu-^grlazSyYF%VWC*3 zaNTN7^H+q5P597w1h$6KM)n4~ep}=ox==ySfB&up$XS=+;y!z?>g6ovr3LNBvcmkb z%(_|y>HWcvzAt!Sf4biu*o0y|MDJElrd()|ejVf%K!BsASPgyeqh@%J5#63I-GViO zKSGAf4K^*<#P4+oKTB+MsEW!Ji@hEvvVrHhW@u5*5k@&=%@NRMWSDfjnNSVACVq*Ml{k` zZ-a?B;LCDtL%C}N5oP4e;;6lm?sO%=s(O6#@s)9p`5saS;*{8YgIP2nMC0E^%T7~+ zDEb8Ay(8|%4M{dncP8}(nD&iIl2j!|rTL{_M|N4>G(;4Tb8M;zX6S>)Pb9^mhZ07% z|LGhh{u%#M^vuBe6-)dTbT_A_)Y~dWwu=)H^^|Z00=iCynaR*oYTFfj;l7QhC5TA9 zH?h}!uzyiKEk7DEz)1jGnDHFVeks=jVr= zFA~(g9q1d5qYQ5rLsX~e<4QhxY~*>XCu_V-5sax=WN#U(rg6byCDEVdzxbW1Z*~@! z{(D;wZg%d1xt*CH*OaKq=KW9eDWL-oCt33K?v}y0(92|S1pP2vGLN3h#hm;_ z3iGMV@`FP5T=c6QrG*=Sl^(`w0dk;llakRv?*fAE3nJeEnNx0{+0CMrbB8GY4)?h? zGb$saHSlYrN%0Js>-xq^=g7)-fI7H4`e!F2gqaInT;dW`&q|_&d=3W;XvdA=jn%i; zdZ>$d%Lt$M|Bf6lkUeDO)ai6)#`fHH5W~frsVwywl&!yTcIbTBVL!Xz3r_);y z@n_V`Y)?+!) zg%FNs;fOH+{IqH6ymy@h>L4&X_6^auZBj+*Kve4x8r6DzveX=KJD_>dF$9a!Pusd= zBW;Ma%S=9AYhHn_{Pz9Z(VH-AQ1Jo0MIvCjgNFAHllj;+DA%U-)IcSo@@n>_+?N!3 zR$7aRb)=_0M;(x)cFvH|#mywC_ap^qF|0FgqSV-}LLSSqdOZ%OuRu*Z-8Jj1h`Sm7j(XpphA< z+z!|pOVyPqdthsEV35%ynUxCcPeT&k1%Pr+wbPH77S+MNzjJr|hXM>E%8Bpk0(}&& zORh1%R;m?V9MAP@+3aam%h35_wOe8i?cDB&con)rSek`q<;5vY1QZknW7_{75`SIE z(c52U{%m^h70BRDR-IN-+plrshn+>zD4QJ{RwC>~)dgL5zT-A8F02cI&OT*B#0{Zv zZWS7xWsvW&=X4E1m*B?(>fEO1WTAXXbrAU^|9DCr?l?iN<$_#n!J|EhOj!jV+_6k} zk(24s|4%tc7>Bzl6mOOx$%eqH3~FZWgL$I(8>+`j59y2cV-^*Ee4nbj8ie4XsUz^uVk7H=#)!5km0!2%3?#D9pOxqb+UCE2cVMbV+%Xt&bBEf;Lw2}`ioF^4;*)q|;6m5|ZhxKy=$gyu>B zPJa1k03-NnlDBtz?W+ab@RiEruB7GVW*cf|t2ds$V`{H4Pci#y&mj;vgDhV+8nIrJefwU?f^coO?F*B6+ilj`g{g&HLyk(-Q+IKq-@beCM+V$UuMQ zASLG3j?c`nGD~zN5!p;r3u_|K3Cp|vbP70gNt*t^F)NazK(L;1fEHtda>?LA%*m~g z$4svUV*T;m=5KG)hj7xd8_Fhm(wm}h-zUj$XJ7<>yiF4)S`RU3-?mGsABzzB^k>|4 z9hMQpJ_wD0vdak?8G(jE)!*@~Kgd4bYyd%#t8VO|- zuw#VR;X)6GmiQ?CEb;HW2vI8Pm0-uF?Z1gI4q#{wvXXb&{JkdZ>l>4&6Vq$8zck;Ph>|Yk| zf{K7I>Yh{bX|HPR`DPlZFDUO<0z1*?P>oaP8nEJ3WZZ<}Vp z%~>Aqn}>M$7Q#65%qOxbc78~;@&uBkE%^3fNhs+1=;3GW0Fz}xLr6x+U|EE%dU~w% zaN8+d+~d;ChM3BSZRhA+`Dwxtl<;`jhOh0=>$2rvRg=!F5LYz*FU;3cGKvtyRm_PCS?P+uoO}V{04hOPY1_Y(T^mE)eKbZ{kdm zA`jrgUPDeb*De{~1SHPFPn|C&U8XiDF@$z1mIBmYcKiQ7NXL?aaWLsmxR zh~B&lk6k9dRJ#0B4rJYOFx1P9Z zFbt;E7}{TH5du)-`%wzM$|8S>KX2_pQmy}rJm*E9zxc64Li@&C40U0DNQm213lCFN zVUav4SMU&$Ax#aUlTLQy)O}3uX7jPhamb7RmX=Xh{w4MamdZH%;Wz=QJfDG--eKMFnE~TBerct2GF~72IS4Dn<3Q zY#TS9%q+7P;SfxKq?+SQdd79}QM1l7pmv9O9ieWndywf)bgrB%+4QKqW0wu4qF;;j!OPI(xofN}hUG-$(wTO9_~m zALdO+(iEZ2o&&0cNqVY54-=y%-1H&<(zh$O%e{yu$y+)X&{&^uFPfuF=)2uJ|I+g_ zIzf>vtQJt4S38U|Z2l0b>BnDK79>$B4{X;~1ze&TTg*S#Yh zxmPNhIN}#1wCv{zeTmClcj;WKMt^fO4R4%NxVt<;*Ok1prG!cK1zSJz_Kutx*-|>= zxBAe!X44GuTHX1;hvvEOpZrjT^)KX=*y=2yl1YtQ_&T1_|48BWkS8JNb_^X)2UGK_ z0j1%5Xst6mfeFh6*r@h6Sz@oxK37^#dWdmudq1bUesW$1j?uRoO=Pm|qu^NN==1?& zO}M-hm=ys6yHzwk^ImPZj>A9Ji`7mDBOlKW;s^w1wUmuar^n9tp;fZde zrRY-_M~eax9H^x@)lv+0na}(V=0weV-jJ{zQ%L7<=R*kU>IidKTe%0%$d?Mm^NqfZ z`CRulpod3y?ts!+pC!BztNMYt2UPCv@;>WdHWo20Tb)W~mA>R9w>YkY$lO{%X3{|8L!7~hf)lLBPm1=Gk&6(+0s)HT?2S><6e{Vf^Eb~$2;ePzp zdbO7B2K)8+1z_F8pEW?L`LR)n2ySzNjo!`I2ZaJy?5j`n2n(^+KvR@Qhqx2x)sM1r zgZNy|nz>;8#HSPmEX(7$Cfmdsaqhw@<+eUX{^1)5kO=5H3|k2TrcU~Qw09;YQc$wx zKa8^y7)_j$VCW$kM%;_5`#lv1f6o%Zp3Qqc)i0#WFes!!KcZTA>NUd*p4SRvR83#_ zINYYVtL+0Luk%MpDl{)g^Q+29Q!g_^Yd=c$Td zXriKs>0%2pQX9Sk@qtQ^R_13>A@!qvC!8bPOxela0g@c~H> ziI*VRhduDnM%Up>`WwxPzUT0mS$Ka5n7GG_26j8A*m_N=EX(jn;61#fDF#K3QXfA3odN^NMS zON5Zr_d?fYOBDd|*z8_&zfdc+jV;ygoezMy0U7DX0!2~^6Tt-6?dzit@v&W zxu_E$zfvw6VMMtBIKx2MZ+B2@ygHb%E*RSFFEpR@(FMhQp-o0@RI=^spqRNn5jW&! z@)POrcaGCsmi3VyOT1P;94$dWVL6|i8)i%8L)Kk?Ek&jnszkLX9VKUa$+r=rK01>1 zK8DThbl>jzFGxE*<>gclsdej^hkW3ZR}62+N6gM=gm9LMPpXfU3G8124Ogc9+U&dc zA$ULcq_;0xywR)mvw*Gozcg$jaCPiL#XZfw7e%%xfaiW1Q+i3lmv?e3{6l5oD5-bH z2R?ab4kC_XC=2897ZrTpQNyjRji&A_F2f>lLl~L{n|K0-`b%;(O=Fx3IW?QTwG0-g zZb1R>Zu3Izn<_`fj*o<>HSIQN1mJ68uu;3q)`I1-fRR)qUjQ*6?*W9L&>)liX5TWr zc1qJ}lgK=C6Us=$jA{r`Ga8R3w-tRJ&pU7Y?ZT){ATs2?CEvKV!08t$F})EaQ$#=b zCOLI}PV0%b9qt?L}Z?|tBQR3t$a}nUu&RC8}u;#(jqg=5O2I$T^%KT{y z=J8z5Rj(7#0#TCXklL4TB}rGy4Q%M_jO-$TTC`9y*o~10Lx1iCt>d9e$(fiu+2!f;$EE9JGe0jlkV$HK%t zlzOy)6-q6?RKi#|yYnTTE76O7)Po{=AG`A@?21>lTi&kCtwW`H2+w#nD8n}XiF{b9 z!hS$~X6@tpOtoSmbB@DzyG>~gv%ESct*Cty2j>GQ$HTKzwvlVFNB9J7#l`2`QmiPz z?_G0|EPZ=BhL37Ixy)d}g-Zc^Inj{mr2PYgv)ij;wD2&+zIFbf%}L zdZ2mRdl?moNwgS~R7MQ_hQ9rCNlx(}^X5Wljt5ULk7mob62q-vk*}Og7uc>>KZ$DG zI;J0w64K1bC_w)%M&*}?9L$peZpL2r&3^)RiJi%*Z73=^tm)Pe{_>S>RO0-?;tmW- zOg@&zMM{@S(D<&eU(qH%J^AkHbzfEVm*mSI5^b3c;lUs`7XC|em53;&N^k)g@PUt}JO3#!3aq zTYmyRY$4>O%QCpqRQ?j&lMSdS4}v2|r)C|Ep79u;(yXl$y?nBbZ;h2a zI~l^e7E%zC*3$#)u{ckbE+^goD)}gS^C5r`P#yWei)PLTCXK#9?e_H-DiK_sNLIOG z;u|Dg%8;X+h;g9*w(T&JUwxu7A8SG_ zm-*Nlko`DX!TLwyql6jwt@F71mnxwD$vK!4pZsT1NMPR()X=_5QP=`&*L%rGnnWwe zTA663qD%CPmWb3qb=-{Gi~6qx2$>ld?(2ir0FEt@W%rlOi|xCahVtj%DYtg#*R5*U zY!nnQ-B4O-v`a1~>?(N+v0L{p@#>WDzefk_J@qEeZ1l=hp!<@X0)!=uF9s`NoBEE2 z*a6tATV<&vm)Sa1WyZKal+q;)j6V2Pa4oaoYLq=Yz#+Fu`*=}utP6!Lb9;H+mHWHg zZM8r|;Z&?QwTDCtvV=kC-aWq*O4AK7z~q+Xq(8@_m9bCt!n*C6tx~f{EcXLD13% z4r<>Iztw}UNh4I3A)k4Wop7CwK(q|)PV{E4^_?QI+#fs8>p*XVMz6}WF-!awp1qdS zS6LwxS}2UuMo`C+23AnO$Q}^kc~H`V*;Zd;iC3ygmdNK$VDspt7aWc&&Y+Yd1F`$J%ByZLPdt-7wT#{Zld zPk&rW0jZRH=PgCLT$+p9%40h5Ym> z)W)TG*vLlqBt=w*5!h0NCDI!*OECpCw7}1cIsQ8gbQ|pJ^Rqy%n%zCSA;#269q=AE zNzJ?^xy@9v8-_+}gkm0tslYI`4a)-DhcWdS*SjiV4$ECnCyH&ttooCb)-RHC+HL~Z z6T}XL{`@Rj-gbru2+peN5sAbkM7Y6^Ur}TJP)^(x2I}uW`R%oG?{JpgCd@I=kQd-? zRuo5x`z61>E|zvwXCye_zlf9XQ!w9Vap>xj3C~|N8OmugwNca?jhprj1m!qY!-g4)?NF36MU zJ@^K@RN?P{!V|XMZ^ziM$Qsk=AD&i8P+tR zC?*J;2|||SQBJUxEW27WU9-{rtXn7>vn7>kB{saHIOt3q>At8c$Q^ zAfLpI{nLjULkzz)w4r&wyB78e;z>dyIsxRCGFk5ei2cZBaCXZW@&bAeq=slE*wgL` zmU7Gpch~}cd5C8su6rG1ZRsSEy3)i@| zx>jUFaqrbIifkoZWZq%lYn7Fiy}8#cNiLEvD#E>&d&wS`dy&#GLW8V`$jr+8o!?*J z;XFR~oX_X|dA**`b2rCLF$(Za0FFpge@)a?th79po$8-Z{U{U2B&mNo>q$Ee-0olL8a!Vm%%lTpR)O4@TNT5h zSbgBL$`L|1W~jZy>4C{R9DdxW&uC*9Bdn>s-hwmut<$o;8H57l%XYK&Z$}KE%178K zYbAV7&>~h%GbN?htG_g9e&7+dJei@jX{$(1l>@AKRvu`6sFS5z{R;M`)TTP5 zHMwMy9DKT4*BI4aeQSIt26s*JC7&2a-%l{|;HEPBC$t zh;z$NNo84SKvO~x1RQ@9?5rF~@!iSfb=>P5?H%0_ms33-eU44E6Hl)dC@I zk_p_>M?BVtGvn-Z9M!O?`$vae^?Al3Hm#$^XxBHCqb76weU@YHuID>lMVe^40WJaX zjG0(Hx34f%$6BJF(6bwAHy|uN>l@wNEH?{ochV$PGA zfUT!0p`4mH4hk*Ahhs6nZRj&mf(1EdG$5T!PIM zRtY#Ev!7H+l@-uf6nymw%>4pSs1=e=W%D&qgmGq+$InRDNq4U34 zqJ@ij6{9)YaMyS6Bjc)}hDGB~0B*Er7xu&AX#3Xl>}hT31jh^wiIzUgJG<$YGA~Qa zU&gU$KFS!+%e~ab@xJi^Sf09eGS2f&%zt%>o5<{X&h|w4w7D+=Gk)(CK$K96+h`2H zGekU8i`Gv~aDNDRvM%e&e&E`c7SgjGGxXsQ&U}F=w-YTExOF2-tCu>XI1GthY23Rf za6#^p*4V{fX&+v3)kr||In=vd;uu`bRUCeZ@HR;kA(qzVu!h@v%sG59*_te#xFDBU zpa@M(^i#UqvLR>V(09zE1K4nxp%cR0C0MKq=ID6-DpT;^sxa*y^=9$u(7oFahn3U7tacib0|!3-T) zm!%_n+@}jV<}SFXf2=?EYKZsCkzE3@&%4@*SeGu)bWa$QI1Bl;0p)oRMO7a3jgp>m zb-t4e7mY&VVNvbO{}uy-m8uiMv7Ogy>08hEAxvGM$V)0}0H#jiA& z<0a1znlxdFHUK?z0}pJ<@oW~w0q_5Eo(X>xU!ADDuw6LzBny3?>s0-H)!wnLx3-;$ zoMKY%PQo=d`aEg1y7{&@Fwd*kN{pj{>HYBp4{D3EtZFajW&ZS7#~eq;Qe573b$+o$ zu<$Rw=?9HpVJ&OB$mH%~FTuTCNFR7c72`7?H~IpGNr`=2Tn?u-R=*m%^AJfO8{?nl z9kkM=rh$|x2a>NJ^vTF-(^RZZ=+YI90P>681@;eC=0$$@|$}QyDl#wH2$XZV;dyY z7y`Eraz`R*wJNF80*i|*3d+D_NTGD}j9>|iy!9IA?uNGrj{+%i7l8Y-_Neuoc};C!sH&&p`M)0f{}#BNG1kT2*4|wVYy#_Ko9dXjHDF3I z{nIzf-k*1dF9)e!_f=*mN>%5nRg^kzKeV*DH!A9W{uGy$Oo1w zVa@;#bNo8qs?%NthOug9@#~iKIb;MF#2NtHMn%f^*^BrJATn6Rz#6-7vS09?Nzd{s zVl$*n>p#ay}^*yd~~w;R>wmSvUnD^Y~&JT3l4)Y#USN!7bhtl(JTzEO+Z zofAT&e(Z>p=ar=*)f~w8#a;mjMd~>L)9kCNg}H%oa-Wmk(V08j8(<_{6a24*%xcJ8E(ZDdk$YjxH#$-UyReT;rmzQYhT7S zQO=6MXrIJA$AkC0i2}B9v$YbbwAd%;3Z+fR3d?)7+$Eq}=6wK8if`l)L?1z>+t^KK z5E(SpsoRDAk)!dNdd^Sjz{UM%uku6DXhKxhtFgbycMzBoB|53l=>4;5MMVyd6KKev_~Kcjz4s7P6^gZFS{A?3q?RqjLW@ z2%go5yXCO*>ZTLp6Z=>IZx{MHrAPl1=I1ViE%{jYOyoK^YhGSsx407L@evUx5D~&5 z<0{<)Nl9($BdkOqoNzZY5f}lX3~(+#ZbW%!LFiXu)WtKrDWz5TA)`^lC{24w6O@5*0J)Jde_!Xinz zHSV&Sun_l6S?Q`Ex2UW>v_v-d<@4jg?A)e)gmoj4J6y1ePX?Bcq*X@9GZCU4i5q&N zM=8l;!L|R%on!M=aQgzJDy{V&E7Udb@Mv`@xA)(;H8i=y73#xf|G3XSk!uNhz4TLe za*r_W%}I*-fQ2KS*3@?smmg4E1~K7t2YmGXw{X(6*=SDE*b_Obw-u{;&zI&D3UjOh zC=foc89)IXxB5@*-WZA(=k=5lCEjCXLP%BYJhJYSdk!W_>8Ll>=gSQKaew&V)l-UR~VXjWTTNwiPKVeJl=ro##qnu1O^Q#Mv zOor-;_H2bUxE}kWY+i&8@tiqUjM-u^H@roe1)~qHCLq83)FWO`R^ko(1Va!1!4K88Jn1E)6o(T5lyLg{hCN;~%;YzwlD8ufGIBKj~Jj+(5S=Rdqd|acQ zdVG`8f$$u+Pr{e1;%z$#?PC47?*~+qC zfc$J5Yc9#$th`|y0M7%8qsbXX`$blnE>F%qR&&aEZD5Z5_QGnKrVjVA1aT)2&>6HJ z8$50~RP|~qQ?#q#Vni9H75an|;c+dAvHHep z=8Ky`gU(5YJaL3tT6rGlk@qto+qb1%G(rB~?2@5A?3N%PiF$r?c6+A~*Kz%+bC`Kq z-e2PTK8RM>femoun2ug+dv5tYI8j}6x8hy|{bb74S7|kZ4=1eS{DFz92QMs}!@on) z3Pb=Azudt;wOwC)Y@_^hRzUbc8~Eqx>RZlp0=YW!JbqObk8Kle#}_piJ#nz3<-V_g@`5WlLTcaf&x@bU9`d_%Qm0>KbeZAw4;RXWn~ooMRc*FY~$KAQf(vt~uH!z9Ifjf^l=K=N>aT8hH$<&i;zp-nYCeLFkUK;?iJDDLD zXw@onfoJmwYXUosv@c^y=6vsFyNKnWfp!Tc98}n{`z<`ydIkY&3ICxKfz(R}4o3=6T142_e28o0htA10P=IYB+L@TbSRIyyQikEhDSYIzuu< zFyF`crgYEKiXPMLOEeeq8yd>HnZU!2d=cxChDmt`)i!pD@Xs0!Jjl+lPm~|M;Snh` z9SW)IfLW7t*Hzj?UO)Yx?f_^N%kJe9{8u7 zBqrpWR1uRoy(r)rq-l_0k75I38ciMMuJ2&Q@ymFNPid2^j6M`x88psn#^ zlS;*5nPnC5xrIc93N|`fV0$w*N2`KK)+zLN9xkV zx8ot_^XtHX9_A1Kk?R|6-hkb+Wj<^`Trh&Sp>ZY^9XL8<(e@_Y+gW0c$(3w-M6zsqHgqx3ZlMoLc zt_E`7Z0eZO+nR`q?GB8oAk#V=Y;bzdV+_>&h36^~%kJ)hS+dbBa`XQU+h$`>4Sj#I zt823%iq4gW`Q0V0!Yv{Q^t9i!0y~n6+f9O;i!*WkeVy6;4arDcO`h<>W!^lu61kGvT!#C5 zt~N^TBz@+^|3&umdBKj;vxdJXiRwUTQ(m2tr+zsE`I@sTg#QCOuaV~YmIOvQh5Nw# zr|jbde70ap3@~{Q!Y)%IfE2y^46q8;Wj+UOLcDUTm^SVVX>N2pMeB6G-y7xvI73IaRpgr6vYTY5Rhzm=OU^F)wk@Pd+&LxWyGL5>d6Cdu$Ir!kQHL_p zkbX2cG+~?HO)akI0&M^(0Y8-(CYoLUukVe!A{J>Xz@l`a`Q{@hcbRgM&F;_BsALZR zBRf|^Uf8AB%s*%Ocn$i{CZZdNaJja0v_RorUkR17o}0|uJTH*DR$PUZB=ZwY(p$T; z14ErW0(Cd6khFLNTCSR=-l(*G&6c)tqF2!91BBwW?Y+R0%-hI!iLcR@U5<&gz%Qw7>Zefv9Xp$Dht&8#!QP*0>Bu*M*#2l@I_%J zs#7S|7R6Sw{KC>TFTIfBpno|c9VUwA;{J4m4OfJ1fotyP>&P@^pP#NE?^Pw`&qDZ= zN~@xG!DlawSKU{G`|CEDP*$DyX=oZ&?;Z#iR)En=>^Z%9g zBMkOau)w^deLhWQ=0L_EBc00_r} zm%@O2vT98qt27{6c!%ofG@V&Z8PaSx{9|E~XYtEre38esTi+2>Kriq?S5l9n^9DFZ ziMz|{dp2G#Yh|yLcaYVKWnJS-L^_zGW0yj?b8{eUv0)!8KKRQzN`a;Jl3p^s>&fZu z@dR=_WOxvm0hv2LjH11W55atF+AkP95|pXXJA}SniP+}DL1CQz)1loEZ*bR>ItNt` zQ(-FD-LP|B51WqE6~352U_mv|EuQ+4fbXRtv4@x1!FEvNLzvO z+_Ie-PuaWBiqvm%&bvotS*AE)gwTO{r_co<{m7TozIjV<|nm8*z4oNSAT61ufY|3!n!KR50hOe{GBuvHGrg z3o0>@I(Ej+l~w!<6DL=-5Q4=XxPPrDJHw7J;*nEy5EG>~fvxz`ez8nlDotJeb#m2F zAwAON)Jk_vqCDo1qL^ui$S!j?CC+ zP6~KGY*o$up7eN25Y8rSw4-r@Vb_$%`Az15(L^crU$Iur`q49{NMffyjjzmf(q!%<(k&@suwW zQE6lwtmCAh=b9773|I33@P7ABl_)X6$5j6y{y+X5ix+ERK`Ty2OX0R#zr|8v`N40* z!Yrth}^b~MPl8^ssd$^|9s{# znH6(+I9)2>VmDa9#yuF^=ZwSm8 z2z3Q_Xt6ffZ$fY{H~@7bG+@ndV8j_rZw_H)ZbHZl2#utVQ3ht2i!bJV^`yF;}b!8)sb+R#N~a56>6Ishb<*KUrpMd{;(Pn1mUtVCvbq`?Mp z3-FT7giuhei2ztV7()3%?pPggN&Dp!sNOyK1icAT$vzA}d;DaEv`U%z=8?C0H}7|u zi-Ga0JJj3%)_Zu;dGExm-QmV0lF2U!y3!xw1*`D&I;!xyS#Jw=nz$R-xdqzdL2ouj z96Pc*nFB~`w4XU^xzpw!Q*k{Q)+?oTyYVOJ$D<^QkbRdx1o9b8&xhxH-hlNSc=XAy zaglp`o>QkiSRCyX=WBc!^~-b;18d6h8G)^*vcmAl>YV^Xv+A_1f9*w^I+aBFEAGJ5 zI4X_Fd$G~cmmw9qJOVQa6xVr2hB{0m0Goi4Iq|u&W9l_L6#j4>;W+WMk-hjoa zmBy$o@Gn(My7iMRu^rrhQCB$vEw{+2BeEZsijFyynDS@IF5x!lExejmYpT>vz~Mbs zA?<>?^wR?}2N^7|o)LrBXj|$LzB9Wi=)-p~)5)Ri@TnN3T%;+Cc5Qur8upF^`kn-Q zYdF~(Fa6RqD2{dsH_wexT{yRDV>%!|N)FKSBSh({)=&p&G9{ML85 z8q(wBIK9?C$WWfrh12-{(@Z+ZeRby^23>whc&h=+&X;?-X_0!nIXK>{6tU_2l-H%X zddTFAL&A&6)(i6sx|P%ksczzLc#6L`!OV3e+3Ge!ZggB`Q*dWOE~k?z(sY4CB-X`g zPByHbv(mZp21eU}_HYSsE&~cnovE{fV2oJ&FDmp2vkw*&M7;as0V`;8u%z?cFen#+ zX*eLosT;@t3Q-SuM+(pbPfPCIy_`0XiKcS)5Ckw#=gOnu(5S^tNtDv+sy;|t!LP>j z%0V&HJ6ue9^MVOf=&L4v4?mzQd+@S#%*O3uoaE8MNSJ|oAn9ID<;_KKAf#KS`H)>s zxE@{{_~jb@S_--tKq|?UkAE8}!R-_Tr?8C3o23yvw!j7s`rZQG7OeNpWK>Ea91EsQ zAdhMNXrL6ro(N&oXEYsJ&Uha^08}(-ND<%>r%+3nA#oLnA(p?%ST7h5+<}yq@m!?L zlpY2q)b|-ZX(83TGjSjWn>m}mUe-t;T!`DepevtaUwi$uZ+7ZJ+~VY^nJkm@;VXif zd4gav&z|=idutT&YYIO9@*hSbFr3@N3p@k1M*68#tr1!&)ia`AX4C z4x{Y{VJKCSc*-aHY_Ul?t{+eQaeMdy6ewm!sTbNR7+onAICVeL;a|? zOl0kZW#>lge}~(Qh=|sEQr+>cPT4kZyqBC*+aAs@Vzmy*i zt%j{{HjYY8kHSn3kO^g%I3#r|$pL@(8#!Z?SWl|URY{Dc9|JpwCj{WnNE@KqhdA&h zOxhthgKgh5X+@_C_?{hEn0g2XVE9ec;Y*7?j)NtvNC8w#9LoBy@DBUg!xo881{)+T z8r|tu)4|44mwLd#a~9!6ut+qAaNQawik*!8XWp+d%@=LLy4MHBFfAEif&2Qm5oAun zA3g(|x8RIjJNW&XKBWzlDKw5exuomB`0nE@OX(xl_H1z$`;o;Q?d$iD$qq*^ zIuQ|SF!+7qWo|f<8acf<-xLs*RnqI+fw+Y`)KA#@WZNzqKPo|~`}N%fd&1&7i7sij z(zMyH0AFRj`om+!$A0!=g#2IB^IA)UR@a09d`NKg+2+UtHR11Z4M4 zXs{o$cX|#6wD4v)uO`ZW72koVw@KJ7Rl)M># zoZopp^%T3Ai`ads+nyyaLO4vZO0J#2T;N-LNR1qifTQ!)H<*asQqk7Du3Y!8e(scz zQdfWB#EZ|RwP%ClT&{emL*agUF%}+F#rmg2^)wr%mRbkIAWyBhzp8$NT%o^Ye0i{a zR>sp*+{}d$`bFhCc$I~`N!)JYcc8tJ$7t4TzZ{k7-V+YH?Yt&2YKtOLTiyl*fz$-d+kRz|CPbWOBmmAjt7NA@32PP5#E>!~G^Fl(FE5Gc9 zF^D@Hw4}%5LDaEGm{W*R1IRU7(5jc$lLYdqoh^a3?cRoDRsE!8uM!~s{T{I(X+Ublv-58}?j*M#C^GDFTKsytamw0! zHCDaDbCJ7-#hBtCPn{{DCd$>E#ivTlBCnrMBQO!b*-UfyNm&asziXz#B%e&%3(+_p z6r(gFDaQZZ`_jlg`SDP#O}C)^dL`3Dv|_WS14=t8(MU~-;G(oEy5NrHu=!or6O*CN zAnZX#$Mtw*cKXj}Vg=20LDDr@sC?XFHM>J|rasvG-apIef;bt@XnZ>*li!uMs59Ha zl3tK%-tRmxWh!pW`%`!tdc#kx?YG9)wWu$%C(Z;~oCT)m)zQ4drGjB*fXr`;+yd{V z%fJ&nZma-0lMWfc!e9bZg!_q)#IhTjzymjrWYbRR-PNDw)sk{{5o!=ZL8_xyk-vUU zZ!1^PWhKEd!N*T3E6FH2Am2oo1LeyM%g9T^QBv+-ZVc)osn+|Syir*b`>!llMHb75 zRePZn;FB$n{EN;9ZaNm8)M9%31}+r0r6+rvGaarRc2}Oht0b%f42GG&1~iFwLSJY} z&NQ6)gwFEW+mT_W*&nF6eAY{IoriC3na2#>k@QCar*4^78L01oHUx<&XZH#<}> z`NxrW%0NOjGlMk%#}I>JGK=dVxp$md-ixR_XjJjd7EXP;zJV-ysPdmRqvg+|OQC0D zwJP3V4_@z&Tqu5kYPg|DU8Bi$vD=tp+>9?it<8Stm+P}>wBML?wXE#4gDZc7i}{;H zRFiVf+uAG*c#`h?12vEUwC?j^6OQw9Qi;5QXGI}rC~ z2In#M{oRgV-v&D*K1h)EIi5SWd4FCmIZrDImrnf8*jTds*m8u#Gm9Ni#q3p!cU=I>SM#!>HvX`lJ?X#au?vTXjWvW;^&r_UqHJP%~2P-*3w zi~t(5A26`;y(B&)aJ0PTMPEMK=FKL{Lxyo}0m%Et4UHxjlTXdT-p`_*G5Z22xy?3j zUL=>Dgd04g%YGCB280}H1bI9YvA@bqNeShv@Ffb`254#QpaTYsU5F#mtx!AahmUaD z!ID1CnZ;+wb#RdnJSuV18J7T9XcH{{NPX=L@M|4a#=1Dg91r>&y|5b9+GCW{gVG2^ z%3gEf-WvkBYR4t`4)o#;%+}Xiqsu%}`^BaAYhGueKL?H`@`<3uLd^Mmf9O9=gHa$g zzCz?K$SC4!JW_Orrs5E?pCY3_&gr6LBSrVil?q`Sv{3h`bI6Or#^nd9yBWwvhUVY%>!{4Du zYBrDB*R!ft*dN~Qj1s1$vsLTfpB4FE5~kzrNM zZWQayt6HM7)Q#mKhlS4!uib#On%WI9cyYiESh(Tx`MX@gD}bqELRMlmFoo?2dZ6uM zk7b;OrH9zF?380p}Y%dcP(>qKIye91d1TLU+E zpM;+B1!vflj!s*PZCG{=9Y7H2IjLou!>5KXr#LbC?UtVO+tv?NMCGC4c@RcOqK6Vp zk^r%NXds8I1X}p=l$JaJ(+b15Q@G@YF zdJUm02sTKD?WMH65UC6++~?j6(u#l-PMt&?Y-N;90&$stpGOr|tG+9)-8_kNMP8@mno>Lv^mtJqkez;he+f@c#QUaGIM@=dx_jWfSv1JGG;qZDEPkJJ2IVO?2HmI&cAb@E~{ zy>6;xP;yr023nCC`km_{(5`=5xu%DtP5tdy+JZT{p}$%>ZG|L>c8i%(A}gqzys(GGSYsD)4m>2XN%c?-4&b`wZyl0T>@l8 zs(gUmJe1~TqNDr}rO#;cHwwvHdJhkBNz9XVhc-2&d=qMUHl91mn{5*r?{v@Y1~{>>=5_N3bz1W%07H&*ZiRGRd!F{zIA9hsj8dCw#}mb2*$rUs6sgmhA44#`&ZQw#JO6ImJ;{f%rBk>e`TU)d*`;Vc z@(Ug&@tgN{E_Bl4aU57`LVa=tORU8|enXPv4gZ4vxq)1S-PKAY{!wC10$z-DPE^XH zCN~8blD2rt02tEk%wA3$0ilw>nE0$USkMd`_o6^<-wR{H8)hrh0O`f%Q=Vm~9}Xr{ zup_J*>Jq)ipN^{+(c(TLytMx=hFnw#-i=8TUHMv0iP2i{p-mi!j?At-yLW3}L@Jpo4DN3Yl9jEkz$LVf zo!{BZTC zGsDJIfG~fD?c9u=N6a-O_mTlL{AsO6eA5Vt$sy^lsZpJtwCuw(Oj_ol8lEtR!~;57 zVcaFGmkDdR-(B^7h%kiW&5v46=b3k$U!qQB+n**+mC^zhHf+(4vpj>;(*ky5te8V1 zpGvE19GyKV&qFhPX-=m%N3nb1C&-GhQy3IJQC%k)IdGd2XLegqk{-p_f!Edl$-U!! z19SLSKkI{=NH`#0tbkTHu9;t7V!xGE&I=LSPNubbO>q=vJQI^qPdA*t2HaBYCs9MWL3r)x>F-6j&B&bis;6(2dNahY0} zxHi{jch6+)^?dpX7A^$~tKQ|^^R}`U!H|&Cl93HN$CQSkE3?+`>uvpy?f3u?;zd)A zr+blMv9qU`&h+dqzN$8a)Wcx+gW1y*8FjPVaHs}P4Go8sFzC=aQu6q4lek$q-!I(x{{}=r% zb2H8{cy+|aMu-3F6f7MR_f^;|1gVbmeq>phI<;`v;Z9DmE2k;KvU}qEkZSBt=+kT3~mN!#72a#&Ao-5{YMO+3{&M8n85TbvJ+}2&yg!&>g!<;by+z8XUz$R)X+Z2)nuWotIonv zahDY`bj3b0GIUB2Uw-T?r~vXK()_nNrx+(~tikHKuwRG{QGSXxX%PVQlo3 zpUV=Kc3o-rIq#gt6!@mJwlMils5Ed6+In@?tp8zIT6ezJFb!Lso4jttkW9!DAFfs& zW{hgO7J=Z3G8%ICSimZvUoL`+Pk&zHL%1%_EP99fwruGcDPfsV3#?;j-}18G)7JP` zLu&nefH%&SOT5P$sClr#%tU>IdfRVsMsox2iEPxs<3E9o;M_ba(4X2%0w`9hv2%0e z9CQQP_7vtWi8F6iZZ=C(?7qhR+im>MLo_T>q42|vXsv@3$M1Y@5svm-_rD6V{p2oM z*PDGQ2zT5dF+jQ36X|3p#mz<-`SKUxx6GcM*AUCHlM5imXVrTWF+~n6;59nZ3trU<>KJB>Uj=9hzzk2rvi+hP3_2W+iqr0eUF1lbMB~7ve7P zxTEUH!OWz<;nOWp2_-_`URfd}$4*Ed{t?TSxxD5olxp1BJClyh5HoWaso|Tp#Qu8$ zT9ESR_I@z#gX+7YAoluKajXdIvyNH=;ZZj$_5or$*7}h^yp0M&APXE`Eyvv(2$RSXi5eP<^`ixdV(MqeK zLgGP{3%)E%ckBQ98U5$9#N%}JnxxTzev$zDA^LEUQkLWFRM^O^`@Fe-=1;LY_ zpBwIm{e0PSws*?gM@IAIM2T`Hf77Ea$cmJpc*~ohm^la><^o{seA?bV-q3t4)CIdd;S-4U7@(D69Rh==jipi}E>c z7xfw)@m3;6GbyG`dkDq2Y5k5o7#_7zJd;Gi0^qbbTbqZ|??=|b@92+Y>~t2yJcT7_ z2BUIUXm@zdmCCoKU11$*ga^?cr5#zMUg67VJd2JB3)z07Ws1!c8$03(fv_+`j$Tq zbYtSTnd?4Pnv9JBN-CaUS_rtRiIyoaSv!jP46F#8U!{pnEe;-VqnxlnctB7)n zYWer_^s$%6`2_C@u!z|FEPfiC*M|rpRL{tWC)M-9Hb)3{^|IYwdKh`YfW30=1G~(X zl>bX|M&D44Z-X>aL$2Ld7^C?@P=3rk3#wQCGtID)>hDQ8!aB>s&*bfYfL|)A=hG3b zp+HXfA%hXU|A)ntL*QUk{}Tm5QTi!mSrX^!NlzgD^4{iOEzxpSCBJ_C&}XN#_62HfuP7Rc>nsjR(tp|mqG z(Tktm+UX>cnp#Nfa{Hv6B@25uuqxMeTzVzd4f5{Im+L<*U!ABnf&0ruuSGaW?mfa) zMjRY_)UU6v z2FLMRQZA|m+6I>|V#^Yk8NoJd`4@XD7m?@BS7%#jt(U&^6v8-n28GC*9j9A@D2(=` zZ1kD_t4UiE_J^jYjX&tV6hc2H-zCfWPtp82s-=XZg11xwl;KNtHz(nxn_o3`D0*-iRg!C*!ujxt+p0((hnx0JXu> zfmYBa9>N*(MzZcZMhLDnEL-iCRt^GutJNoc` z*e9eNb0|F-=VEz{ejX=h;zoqvAD2Dk#sITgon0kyPD&h~js=LTF9s~x;LoGtHS_+q z(B1Epi94Op#h66A#4mSy5T#Ax0!G%SZNIN$Z+jVCRvW~OksUtw;N@*x_~o;D*s_)v z$s^B_0+t!F0#(rjLIv||_l71@z>cfx%*Rh9ix?oH{$q!tPx(yCLF*r{i@_uDvDa?w z-zTs_qcyLAsC6|kJ-oSVpzM%LVOioF03Y8PnRo)jH0R+Is+dDH-=G-NIzK4rI5O+h z?#+*_l}%q?jn(gy+zz)!$FM6FQ=k9fZ%bgiFi-d933H)K*y7-MU=90pof5{J@B*1< zVM2rty3{axg_j+j44`O%v+<7h8onk;R57O-w+O(L$~1F%xYNYiy7*KQgU>=Yu#+#- ze>IEHpzNx#L?;7cHJd8()^U86HoB68)k6iNh0vF?!7&7VWE;u-!qw*ByCM@iN;4#1 z3}b`*-}L%dpJqI=zz3MC-fvwFzl8;r#ECnHFZRos>kva8BUjHv3&S{j5g}VUSrey> z7u_>KkJZXX^{{x#i*(2p-E$NV3<>v-(0`YF%*fgw$G!YcEJ);<`(pO3 zu19weNOQ7zI63QIDBAtt%VJ6vi{9(I;)L}g{U}Jn*)<~yY7)07IvbMJp3-SNnvv{^ z<>zrQr;}YZe<$PSUZV`RXMGF<1H&k9KTUp%B7rV+giUEx<3cjLH=yvr zdy%)WmH3hSsARbF+;%7%q*@pUC1LUC^GL=FXffUVCHfFflXd$Pqd@r{ve)j}^CZYY zJGH!w-@jL}e;t-20#vRK+l9byYJ>?#nirD1N{)J;vioc)6o*|n_!njASaWs=$?Rjv zl@r#AFFl>sO@vT4+>1bzoyZ99^a)w;0;~@5iA`9#N)~m)d6x$_OBXP`v2q$A6Pw}F6g1Lykjc2?A?;NBWhx=r_5oL0#kTAz_QguXmKWd|A!?6^c- z%WU5{f+;bpDbaMv14#(QVzGFTmhi^FzK2m%@a!Zyr-`H>%J(nWN{Jg&?|r`?t9?Ft zFsiwc-6PHiwDj`EsNLFyh@O*~pj$#2D#bDsomqOii=q0otN|69FmZO46SxRmvB69y z?GabSMiQ;q$GOaLCN2aZMHI#v^DwHoBN2dX7C@8S%1bGZ^46~U?`~$F3`Jxzk&5u| z_>|(~A5zW_lAdgSzTEOv%$k*fR@vQ#Nhqv?g)_$Q4B7UbmN=S#*)(tu!!Q?nhb`oC z3YgDzBdPzOHL?sL9T@~AbT#8Zn596$13E8meF{fNK3hhG%CmF+;2 z#-q|;p^p&Gf;h7*I-t%5oCtIJ&N8p}Bv3h2lKI=`(S{&$3m%xaICmllTa#4m$M&mj zcDB#ZmoK*)?XFOTGYo!LSF4)<2aGCgGkr$=6*nc%N0asB7hfQts-ACxmF&`eA>lt& zUe7muA?o9H`-}w%OsXNjNZxwh{!8OmwOOR`+K$fJ3itTZ;gkx~WkbbN1nqFCq0>S^ zP_0ro{|Zm%F7_zB;s~3+30VXOMSz++z0a+PMR#l8J>Z>QT?v#Lp_(}>k-5U87~nHi zfgBU(>HvdFp#R-5F^W+>lDsI$B6I^uHXaJl%T_X|jznc#mP7fTDKk-Li$wfHGfVXI zUk&R>NjzveW9CeJTVR5HxJvsyXoxCO{fyMpjW25GKLNYHmGh`;$J_>IvgefWk|lRk z`5+LWnci%b>YeullC2N7P7{>!&^?P_&u(kCD@lZTa}C8h18VbR-QWQ@$r%UhKdpFMm}<5}@rgp>SPb1Z`ijrkNaE_<3yiotS~ zKy1^Rm{MY9PLg14Xqq*StLBaN9OP;~Lugp$rUTbJfe!vE*)Kbb3_7t=B9(vg=8!E? ztcV2Vyr-OTgzFF0cKey1Bcu0{>WfLWdq0o=V@=zkw%|45*F zq{a+uuI~lM+eW65%v3CHVai%s=s8H=dz{u!Xi7epC7!Wl*laB7Q$o0IID7Dtg&)3Z zdtsA*A?#rTSQyN`FJ(*nMc@A+l*{kJ<=-F2eKQ@#BYVaeUI%%X=5qw>t4?59xI;h_ zdl@%Ym~S9gLOAXSV_bNT^n1D%<#e7t6O^*1Geh=E-jQdw9_1ewS$%QjG6apCP2X{L zEfU@=@f{VOHY%%9a0q-wqz-XOB)zAU4(1Lb&FtpH#{Z7{U?ybP{Mcc@X4siw;HdFk zD6FB$hn?H`RaI$5Z+LZ#?609D5uqJBo9Tl~h)CMA^qV_OY_c%+5Z?UX_E7 zWJSg~IA-=ZAst18B$6#;m6`FozrX+d<>7JM=YGH5*Xz2T*V|^+0gS?B+qBoMLHa{{ zFuyeXfF|ZFPEd>C>h))0BF4@44xDV5s_yfDn&ad!GsVN-*;th&XPr@LfRo# zJ7~9i4iWVmoiJ3tM+-U(MtzU{dezym0*fnV2bLZ`TSmxg0;X(h058ki22(W_fpW_f z)v{S3$jbYsZCGM}Y#*293-rlzHpF2e58C+Lv%db7>1vc##?CAUP+b=A7}sXd%rZ}; z-iVg_YAK*k?KPd*j;h6oXUo0rvG#8{tBU`wq&R>6b0+on4LmYh{E8$J^b9ol@_miz z$LnWKvOmQgwzs0lN0`2Ew384o%l+g9=(VKJMZ));imRV%4)`$)y=`&+PkB90pw@mq zh}BU~7--zePIH*=d7Bz9QCdGPMhjruG%f{wYLN95HjuqH%X<5(z5coI> zC%PZrhPleG6cou;G;rqsnqQT}O_brqY|RL&!gOEwTprjdwoo`qYlycbLlrL|**BO( zUW)bVEP5P0HItzZTl$R=jqA+03%NGh@Ps>lL+w5CTlw6$OZeSb(S5FaA`Byqve4fb z0YpQ8@fusFGVT4;;xg|pxv0TCC>4Q*%_`{;+t`gIC#{KE3jmd_VUHU$hyW?94(Eo` zKoL+3);0u?>;b9-(J7nNq0my5y zRFCmTDGKP=b<1e|n}BK=9ya>wN@bg7}SFE0fZME>zwGMSreHu{vg7e0GuSSTTYg09X9)w+Qx@E^AFtmZLqpV!)VDId@~~M{xC*=`_Cmf{xCNaYnNr2VWS~;9j|30nrw&A#f-pUdI8f zhwH|nF?!$?9mzo5pU*DoWB%on`jBiBgu%#f@i=%^oAU8jZ8Tc1i9U`ra}$z&wp=e@ zsb~Ty$0eh1Z7VygeRz75F0X(ni98c^`7ii^b=s|I-J@q60SspV;pS*$I6e!3)z2D= zAG}+VDbDdB9$TV6SglWv)oGpMmT4``d{ml+Zrv0&^rA%E<6c<=5H~_2bN|jC-By@W z_;Xs2GfQv=7&mu1zwyXJdDTa3gE7I`x# zc1ZM6(kJi582Kng3hMKAvG4Kvb5lS2=P%5p>|ct4R4G>9B%U;v)q=Zk2hZu*c3nR} z`*4uqB~`vA!Ssld~(GoSu4-?p?cOPIkd+W&*=`CLO)D&>9(+jz509+N{ z!vXUkGPS6O_!|=aX-p>=NCVf0-?-}{7JhA-nRl<8hh&;BtdH!&Q6x{uhMpmT%{t(% zWJmp+)h{+w9aYK~IxddTFOd-9t0C!EkHFTen8gSk7SR;zf-Z>eo4LJ+)*^ub5pK>? zG5&aJKhho1EYfvc$3l+@fp{eIL4xSSvI1qMm9Vs35)`lT^+0Tj%5S|wUoWe!7YS;A zO&Euj=Hl(h9oG|N!ASD+O6>{-PxMDe{NTyN6t=%6-u~7)w__0a5PngMBHi@)cTsp_ zj^#Ax`|a*`M*l*LS*`HPaEYSb9}h26Z)hdvX0}bIK_l4A4B$;m;-I_{7N%hbB~PT*OUXoy=F#2T>?|W4G{X-3$S^i zc}!S8w40byn3uP|!<+h3yZZkZ% z6lA9P14Pug|JKdfH}oHLoO8=9^wJP@a(=2lyP<4ph5pqx8_AXjYe=-yXII2jX7ir) zA%mR`dQC|5s$|!jcK=cU`J`z*UZnVXI#&NyNGy;0p;7nw(=iyE4+(`hn6q_pgbK->c&^k2)KLk%k~%-L>B$ zUUH6=`Jk!mCo;}eYHPoCN0i@?ul!RD(6C%m!GxcHUv|0V9SE}Rkb-yr74veCYnNQokB>b9Px4oMt=R z>=Er-pEk7vlz4nNmOM#2$!Y3nZ-!cD+qxrT7V!Bt|8~fYAN(6Vf+*7M-vU?O+BbcQ zqARGK_jvHV3--QcZJ;yw4Y8E)vjPL^c&7$fL!qc}EH|3lGQIA7r^$!(hcoid)w&gs z>|hK~jeTt<H8B|m{*&jHhT)r@k;$s6ii>%%gK!)b>R{$R_RnwVzX4WqU9KS7 ze=dqac))YbEqw)3SeY8IuA#V9?|6n_y8aXbpUC|>4U;}?#}8rp&P}?xDEi@*!kLk~ zYuA{JrEeM{RXK3D!+_t^*=-D$b*skhOo^1jJSoib`N1Pr3Txf9lVRrjF${;do*8yG z(-rFJ|LPH&iFs{iNgz7S>=_^&B~-N+tg~skU6!r~Yin=)7>gcwULO`(Lxz3f%C@l7 zd67^HzV%WsoGM%MPLcnU@55o(kxzzxdroc|Q)ev2pzLL&C!xoq z{j1oMUy!+i9*P8WmrZdQGITNa6ZZ~!vPNfC1dIJQ*$-vntBckY&4lysDK@grip|J$ zsqV+Bool|3gP@1Couxh^x55uZCN-nVNIeE1#>cppDg`;cnLj0~k{G~RI`Xohx8v7; z^FgYzlwQc_l_wy^ZSGWmJqFjl%4z z(HE3d6|QVUb`5pt%lkX~B3zH5BD{5tCJ*?b^b;q)SWUS#g$ zC2mG^1dsNprphMUifubD+~VfW$;04Xt3kq1nD3zt)*C2y?5&0nBb@$vGC45V$2Ku{ z1X+~yBL)B4Sr{HdUEz%!{Xq*p6Ct0PBOZRv@cZ^B+i%EmgLBK7aWagG@wp-kzap_^ z-HMTPJE@a8^h-dhV_LX>Zf~qwEQs3>{YOY^R%c3uA7g+v?V&EN4FeAu^4HV@4GZhW z=IE#i5n4-hsEU!sUUJAyK3hfj4Q|UH%Y+6(EHXXQvlyvuRo$@8wbiK|uvKF()i`OU zm3V;3u7i9w01?)G^#D=QkaS&{uFRy*j4X z?M{Z^olpNc{-mDV`-`{1*4S5n#8Bac3(7f2uH`TrXIEmCHlS*b0g14rno@c{<A(=gUj7U8!urQ zseSYl@Woj@OeRy`vAT0T#1QAO> z>0H+w8NC|~4Oi1&bZb8>Wfj2VQ1Qf+@t(HXGqMaZ0E^V4!v zGYZWtrShQl0q!fDWc&&8kY01LjwNx(j|qa#s-!TEycm>joKbjkH>-%+NNy>MyG5OD zw`fJ=;C<89@^s<^#{3;YzdE-^%QD-WBe*W+ubOE+I`S9)THyq=;-|ocfCh*yBku~1iPf?&r#znLIx_lYG z!-sHQ8gxLt-TNu$&S>aA=zX1TVOHM3$6M(O!}o8ZNX;^JGCz*F5y5n*H#5b4$l(HR zYZZqZ$t{qj?9n85wgEltYh7MWG|fpODPe}SUt_oh2rh4+DhT$mfyhBZ{MS@#w|n+d zAw7aEVS%!+lnRSin#$N%TFVrovUI(SDTv^LhoA#LTa?6(8AkF?5U!gx(mS`m<&$x9nLw%4|i0U60?dNya{+rCyDMuj;h3`R`obE2E6deHPT*r^7p|PV~x`<;%xN@cbQj-ZG)$*LWye zTO)jHIjd{$day)P>yRA}2Q@8s4*PmrzBd<3Qa_kG<^<}DetDsM;J51uP}w#yP0I;U zqBSlp?hCV@xUI2~u6`@@ z-7w;Ab$c-6VgG_g?~ue9VoBNzfMyE;tSRNLmcVi-f((9DIgPRa24{pm!S5Tg zb@!yr(=cMrR(c;ejNKSTR@Rfby)RhqM!_eIQYzeg=!P`}U(XIm#J&$0~h zG5ZWhs8tsEhT z;ASmflVKv&CusXwM)5`&(Z-Ikc0*r5w7T!lf`G%Ri8de%Z6g-^wl+!)EcFtK5Q)Lx zq9tS9=cQ33MEGsA=F%5FrcZ}fW#sPGC7{cKV=n2MPQ_T+;%+az-&6swMLOD zYli-(-$Xp<#WFp`INJk{rkqcjoP3@n@B&e5bjCgB`Dma^`RMZH8i(TA8rcNf-ms>x zE$`fk%7cUwtrSE$Ki1Wgh5L0~vbDWy#?FN(>A;@1ysxgK^sG%SXk7H;CzK2ZBy`S0 z%iRX^;|Jaz2;kdNS=ZxjL1NkHE*H2g!?fA?4I;xo2FSxni^V*_PevOG{eR;_DRSfx z^+?d9*)X(k7dj7|gv=_oOWvnVQ_lld6qOnx@$1RC5U*<}_Uwx~Jzj8xqBkXGMijwe z+q?dExU+&|r zaW?akH1adEXLE_p!?1s0m9J>kiRZn2d$idJ)Av5;#3(7NG;dTy<1)1{^J`_k{C`wY}A9rf!QUgz>Y43DDAJKNUfCinA z^S>t-8YSTUUMZTl#Y5%D$pQ${Y1v5GHlFhp$3DwZbGtXx{qMuQA8CL`lR2g-5Er<= z4nd&j*w?Ww$`wZ<(tOfFm_uL@z=*cR_3$sE_GT9Cy+ixu>tp|Sxu_bgB&8=RqR*3k zZSkDzFc=_qP*TgNC*uTkpx3^(c!mCR*atWLt;#4igC=ohPu{q}PGNkt{@)qrhm@bq`1NC5(;r@L?E`(<8+4P`XvyZAtLIl`ppXe1i+UB|*D zQS#ttns+7PZYnr+(fcBmT(&J@;Nx8kmE^vJQg>$XRoSCqQ!cmnu`c@Lfh^IR17g=D zoL6xA@rfK-6t=p|>xNFnl9mV;3C0h3AWC7hI7Q24K2qSTpI}$*e3O6IVL^D|;j!cX z(61l=X13o6Z)o>&TL8?@&zJqL>j0!Y)ICC2Rx|aiG{O~GoOnGu_y*Tgt910$q%uun zsIVwU3bm!66r5!lZsIqL`Q`qA2Dl}=6M)m5t&ii3Mp_1K-Aa~7|T zXD1LVT^ZUt(~d*b8yV^VSmoRlG=yS}C;D4>92c^-cHjJ}fVQjl#e9pQ&zALVseN*j z>61MJzPzt0E~44Ww%45J!&#SL5OrXxD~hF+GOIp-!hU~W7k=6anOvj4d5~bqxs}2f zEcq9|jKBRA^Wm};Fc?p2+2a|y){j3A{VNa%VFK>ImI`S5(Mz9%iic22vHcvuC0;0F zsR~)}Ct3Oj+9;(zoD&Fqg=#`S=N6r)ac(ktJHjUv_s+n~hJE)=YrbYnU*EmbMza!C zpj-(=q{_+H(eh^Qmk+(e{-GyC_~m4EU47lPjBoo{sH@#07g>WxdLTsKc&>K_@at)< zi0-#@0Q%~Clecsm#UE+5md>oHOm!hN(3KOun2y0)wHMkk`+JX=+nV!B4Ct&Jsud^AoQ@YYA63EstODs| z(P975aLda3N&>QPOU3fCFc*O1E5D`Ku;o}xYoaELuH&QHGex59Ql!v{XVZJZ)M@-e zhZKE4obMBGooH>FZekz##^N0Sw8&jtEB04c2}py!taNPZ;+H1-6W~7XJ?QT;nfm~Y zOm7$RstknI$|C9TDxh@Tud)1$(aZl*YRA0qCWINDt%Av=SVDH{pW-yJqx`n4EsXf1 zdr+e60PO_PQE92~WE`_7>@{*Y`5?K$3C{u9y28P_wp^0h|3w|EE=pTjYlf2gR9%ue zpU@_ra3J!$s)9od152@>6DMTtz!8u80cn({Ed(i|kH){Nu8ywvx~&S4gj=yXzLE@G zwqwpTK%XSCabzNa{z=y?k{q;dT#RY6>8l;;Or3U;W&7?irQvtl@lM}KR9$F8LoC}~ zl`>Z45%PcXiWI3wod*qoOf6A6zz+^*{=tBTLa0ZAq~I-IxGbHFs34AtH{T|-#maql zc8KY}-LCjTE4`0XC#;M!?|%2uZ;>e7BjH6dzJ*#owrOfi&a$-~+fQZs&f42U&dlMr z!o!(co4sVGXYDaH6yPE>aAuv+(jE&%sWEnz6w^+wv9IKrB7!ict>maqA^M&lv5Kgc zb`#eJpg=SFUl!wPWUF3s3fw89(htqE;=V^|?&%PvXX6auo=jZ*F~wqKA2@ky`KhC8 z)>r16JiV{CuWbd3%*AotuguQ+XICCsIOxMfzc6<(0xT$h5xWJkPasBiJ+Mk~JKXN2 z569oSV=Zi`!we*d266&^y1%Phei%4u=6*Iun;1JzP;IddOC5IY{1@Fu?T+|bn|xzg zCZ}(m9WaUbeN$MCQiyAM$JuRzs3Nu9eKI>54mhI4zDFB3Um@AH$7SXRg$cNu;yZpU5Rugcg-Qk6H16S3I zB9{NKJ|s0)lT@*;OJHt`=mX(Bieq^f{MuxT^D+DUxTP{^P+F@lQ<$CQqwbbet*><) z0CIL`pX?nFJ8VhzZ7rL>?FsO5`Xy>yx+Ka!QV)GyiVj!FSA2=hMvs#+jjejAQ9}~1 zVAA@Iemb;0aoS%==n1(h6qOh38t$nsHLa$1Rf4MwWp*?#}j zZCg6n>DZ$2jM%k8Gg->^0=YL;vY#<;4CdTohW+|D_4dj=@Aw0(O5QK$)Ws^KSB)vz zUs6KXBtE8GNxCj_!gdUe2)vc+x0;y6tA^D*qj-@hnP}&i;V4q7P!GpeAL9)MkTo`{ zk#XbV3MuI5&S5hR?+9y5_nadxGw?Sa~T0*M;4POR&iHr+8)bioKHxgF%Q$V?*y*6t!ngMhaX}b z&p%a^ze!=4_BniY*z$7=uC5-$2-!Fi0tm*uheDclPlc78u*$KyBQ z{%^?SKQ*gEx;Z=s0AAX}N(K`;vPPA{BB~8^T?sToi{&>^#{Ie@dA?DUb&A*BUu+9i zHXfG@tCBUuIZZ57DeP$4%8KM{bT?mH{ZiQdZnYhnJ&Mpe1sIQ=5Z~ikalUF(HE~qe zv@xw%#py7G=C-}P{ZHEsdDwrWqsAf0l6u`a@59S&dY=J;-12X>5?Gzjk0DlA@@2*O zJ15cB(G$;y9GDM?6YrCY>eE|fVkWQQ#;jeRfIlSV^}@~{zwkv|epSe^&PX;x{fO0F zVFf#`6)P>T6Ot$!i-eJoJ+C-W;6W-y8|j znlB8oVF5xB@ zY47Ih)$}X0`Br)#{)})${H1(jd*uJ)VlN>z+(>o(PZWV9WQQV6UY-dgiS@qHZ21UI zYC48%WnlPH1Yft70U(WrSXWyXi*Am)R2yunaP+mybuJe6W$;(0@t;A&0^jbpXbo$R zHnpN@{QUdp7Ifq)a0}~TL*XU})l`LTs=|a;R#XT`-WCShjw1MhcY;_Lwc%(Y#FA*z zgJ`AgKKgUWtzl`zay0ljKi}3^4KI6U|I6}OA)5iJmo|}vmaV!169yr!lAe~97b#bH z{^GkCRwL-oKGZ~D(MO0W60a|M@YLm!VS3hl`iQ$E)i?=vLmF(~y4`DY;FJmLG(;Db zB9%Tr9%(R~(nen-5d3>0{0#qjW^!Ek?)wDnd%g=AeR&&q?d?_4jNr$9lua!rw8f5N z=x9}%eEAS$hzrELk9Gf(6L&RpAI^S9#BZ7QS>VFTc~QxHxrQZ43(m0k*go@x&E->( zchwCAYP${9TkrNl+MlOQ-H5@JwZW!Ipbb^rQF5jjw`u~(pBBCyc91>F>woxWbe&DC zHtg%#l)UwdD1wLNWT>44f3)SN{;}d*M38LSqh&8zqZ(Nz#(mbi;LTFtVB0H!(16(X z#wr1=YKRAlsS0;z7=^RC_q3TD%G$)DGts8qo@q_&92RUMxA|>#k8t$mPE(z>H%qj; zWHY2UU6SuyXOY**^$-i>HvV2~Bgh9L+RCg?io_c`N*quLB1k`U3_5MY7|xHB;%AOQ zjv!*Q&a6&WORUP5{B}Uj?1QZbqFwQ#)wCXnmK?`@@Z|5ziHRf`fCK-L)sZy~uq&p9 z8)K4A6v&eHnq{POS!t~>tmi%)+m%eH>9PV=$a&2i1{k~Ue#m71&{mP(-yonq+xDKt zuhVw!dFI81DqSD8|8z5J#j~-{)P$DUj$>F8bUd|hx{;#xHI`#~pUt(3-NmYIui=5C z9^W-%ZPo$7Yo{-jC*6iz(K1f#tNe!ro%NKxHE5gX7k-30vS(f48A{FgH1ZN$h9bXE zA}|RY$f-0nf(mHojPOXEDN@&1^XNafGgvtG37teuftEd$khOJdGOmL|%a-9eQpbaE z{T`fAs?Hgd1P2u;u6CKBx_I0cSL1whYO_(S6lh5_o_a`G>e{3q;)hM_2c{pn0>reR z7FKr~FI?jLFSD-vzM?L=Ss9c<#JYWdzZ~algefN8#%n$|1tCd^RO4LnhcEcC&}0*o z%ifP$)*7y%+(1b6M5J0rhzv6aZRi-cDqunTxhjbpVEKWWed*%2spkTGWP@k@SBV#f zDZUA;vS%q@ZGZXrjE25c#=bpZuUD&BhhnY2C-iW z+!-S< z#PS`IFpe(p&H37Fx-vuWzwWuX9u&;Q#b%w-iXOM{ql!)ALd)D;wgd^{p85p7C_K}= z{c!JP?%i9AqtfCThZlV5z=Ru(6#2*s{_{oCN?7D3dQ>EEe|JdY&1Y2SMb*^Nl=)VA zS*eKHUa1(jvY|ht9S&%T9UPlgS{^WT8fkyqL4JmE1{?A-hS0(Rjrlrxi~S&v?kBaS z?mhUfJ?P|q!?*<|B#3J_ zsq><>uWi-XjpV|(>7e()ot<9^ClQJRIbBL&Cw>z>oz07X5I(b!s)&Ah(BkzhoUcao zP=1l6v830R%FAARjo@$51>-@F%JE|Zw_JN(Z52JIP~2G;YA~Z*rAqpwp6f>D^N?#^ z_+>g#UOpuu<&>+AJypp9DG*C4kM~?GwXjKp^NviAKA!8Btcp6S?XAf#dEk`~u+yFfYH$>#rox3wnBJa0e7z0!F z+@D)~x%A#%>)mhd0u5Au)#IHOt_m{cH%Q0e1Adz%6Y9ypJS~IyApi3y12pMn+5-ty z)S1+B!xNut7S}wLGu?cA_(yiH%J;y){=tA=^lN?m%lcD9s*rR3?&nE2@xC6R!iz6g z=W8mfS75=s!hk6)f_4KYVbv3B=J43ltLhRGua!8KL021s(%qKib0K~_&O(nmKkE=KRVi3GWKhydpq&q_3myXfV zLc7nOMa@LcJx_O{XzkBFR7OMh`eK4Zc83$$Kzv_kOKxmcphuuDcIO9HS4;e8*sT$| zHI2lzz*i+cwG^(&GIUY|*~Uc$phRlK%m?|Jg{3^YbyWE8eV|ZF_`FLqmt&(j=-YoP z;258QQ@mC)y~dlrqE_qvuK7Cgw2Tp*6lVmO4>wAgh1of%Yi!x| z06Oj?50h};KSIICT3_eM+7c}O)-rGB>)u3J@PB?6v;4$wS8P9FfZgyizWlrMfZ9Wn zk?3phKp!Oy*GhHpjf7=x(Fa;jkPD6V%KU9wuE2M$i(1?1mGCr$H7~&Ufv!pHGlXo= z3KLGZc@rK&6y$j@135eD&$q7qTtnMnM16M2t-<)}*e@ocI9I{8Xvn|8dZ_3%l7EwX zTxuqd3Mafp@%9ImyX~?2{>QSwx>JBg=k~rOYx{^Rvu=JiT7WMQ@d`K*ks$enng`5U zJ_6DapaEV>0-|`e787-MZ5y02E4q1t{2A3m@0B1}GuM(E)8o-WqS4P^g!^&8Z2Vwa zKYu@FBr4>Y+2Tz*PxPR~VE?z0(Y-;mlV763WLby|h>$@-Cc4C()!M14(erJyr)-?H zOE1}!F?3m6s6iZb%wE{~%^N;q40_P99W3VK1>W2rNk$iLHw*MqC)E{FQCHU;WTRDQQ6;2Ii)GrM60dWT4`E-~vM*!vd~>?0z!>LS`DFY` z4NO~0v<@SZzK&dQT_d+WHvy+jR8B}p;y$|iF`y)c58bp$9b6Ra;C~jm0y>U z4}a&|VN;m1m33gs&cz?-{MZ;usL(>dWIkDA=}Cs1Z{a~QotcN?%@Z$>rM-%K#4_Ey zun&6}Nf2KaeWpmgaSrfW2#UWPYB zbGE*w+E7FbT#=;|W6MCy_Hltvqcp)6mk5MWu}wZ=(vYEf+DmZf1tb(#=fo8_F$Kg0 z#OqFf6|L0n_-PM&+mTB=_w8f^XgH)A?1O$m7INS-;sS*%VbmL6gA@iOY7?nV1)MJn zfS7IpQBb=KB>TV-7uRnk%riweI`hT2MKWKadFk=lT#B?Vqq=Bg6~II(z+n$lwBmPv zrE!sR-DMbt(QzF)95q{ZZa{-z~4S#l~@#0w? ze=n7z(A5a8{|Gl&^#ea|2M=wI?F~KMJ5jc-N+$>aNaR0BaYR^xVty$cuv*A`OX|=^7;>YwC4yaO`gV1KnT-u zcn+M2RT6+{(QX{ryUqP$57u?{?{$EP^xNGXHz7e3t4M(OkKmgOWX@OlKaj$p1*HH{&OK(|bm_M%Ntj zTew&k;)TC*@rYrFV~9er`q;8K_1S_O<;fA>6>ElhkcLm0`AT`PMN>?oi;Q6AR@nOa z?_A^~KT)}wR1yh2Sx?{#PDV@DnE@6g*O;b;E)lLUTE@(Shof~D23?n#KBM+6&NNH$ zU==#f!PE^cvrlf8ihZ7R!uRiy3;o@~GjIHh+cQYvB4PhRrM2uHe}NK?4t$c!tnxV6 zm9R7Kwzw#Vs;7cTg0#ZW;kVnHwt9tZZEA_F-q10K*TBs#VKg4sR`qdMquUs>QytqAL z4F39F%MNrSte;&&iGdD#Zm-iEUh%_gc5fhM(5hF;FNtWTa(zYZyLU_uh;U zSApHh&<;?wMrBYDG@-n~3IU1?No^;FHrT@Wdh&o4ol`R0O}d^mAZhzcp1#%>LH9kX zp@-s+T$fsntj**%Y|YGBI%2{pmI2+!Q{b5cy%o~UBw;&#pZEu?Zbp-wVBlb3IQ_d3p z^FBd2VjII}M-Dyy>0MU4^qy3ySuP}9lbBM9=iGxok(jqYan&q%uOjTrDAYy)trfi) zS{imZpRSNwwe{?{djA?4C&PDrvOLX*FXuAo8&*cWF_px;I@Yec7{$B6Y=$2hg751; zLUV2%MwJ%;4@Rvyd8~4-$cnVUZZNZ@L&ejL7N|C0GwW4X4s1Z#?Q!y+ic1!% z8nksKer5Wk57+Ey15uG0}^XlIh;G#YQeZ zP^ttDk5-Srp9^6K05T7(e6msUi!wOmmf{v~q|(jHShVfmr-nJCWTm>kS5%1RRI;B6 zOV?#K;Van{9P@I13tCLH=n3B)+o#LtMNV9`0ws|+=8DRq*X5D-^Q8gRh4cd!16tvy zv(f`J*AR4fJru#17XBY-ayZ+>jkfR_EJxWIRQBB>7$ z-xZ^l#kgIG7bC7CvsY4;8}%*I`D)bog3qnP*s=z4yInowRVBEk{_ zI)}t8H=*iUJHI?)C4=01ymUX%j3Lt(|MYU98N9?>2iZ%Hl0Bqv2cpZ<1wd->6{$ZP zps6U_T*jZ0SP-+zS(Pwd<0~pUGqhD#Eau9@L`Sk*KXebGhmtC7iPcPP9bq`!hH{s| z|GP^%fs>yjwVnL-s#fX#@s-5lz3w*XuASgzMH_qkso)aaV^zJW;j7hE@dE~$%MSKJ z56FyCj)JLFxjpQOm37ncr3R&+$*C4719r5m2i*qh>eOn6s+$^xtNXkft?Gtz7A0d| z9XCXdNNjPV3|v~Rxe|D0yLTO-BzrvvWOVmeR9`l-BSWURsN7c36AwaOU6au|q#v^D z^c1P7sc$QZ#dVBPZLxEUync(BudAS{h*oUFUgE9_(gh|rancqAVz~h*c%+YJKfgKr z_|C#%EOUmZCS>k;{-sM(pBAH?M2ps(wEs|-Bzfnr8*B{})mPYCS$&xAm~1tsqD*2g zOrq~aX7o@@5$`vdhuutVlfJY{>wRZ1Sn*O1=j5INBmU9nVO4ZNDKwZ&F~e!k$=b>4 z1^}OjxY=4xrf|<&=g(R9Q1}j|YPFoHX0zhpA~kz&^7q!*+H@Eeq&n0n^qibV5t>y$*TgSYZnZ#^ydVb^_}SYixD>`k-nYav-xk z96O2bd{bOb3R+_i&KJqA{a3Jh^RVUj@x_Fgt@W*Q_N%*-ZGGCihiHijq+aIjRF-)M z9M4gh++X~C(%{LJl)KeLipGK-^FQ^DH;(BJ>`JZwiAq?uJNlKmxD$AN-%ddg9O%k7 zJ8LZQe<`kLD>j9v!2$WXSfAK`v(&a1ZsEYpUT1@?tkE&EGJO|&JAQr|`BZmp8ef7* zYQiv2o+gqI6L_F5nFD=BCAvib-GCBoEFpLiWCiLTp(t3=`cx#?vV(&d?B&zeZwc``29X}#&b!>#`!ct``t;V^`OpKjk%ml)>VLqhb# z9>X(TEtXI0!7pOxR704{FX?+nk!ITYYaV;x7-Z~`1-I@5Xr#c8X7)_U&pTrGn%zEf zcmakxnL{@8#p|Jh?sq8xPtB4fxE&WJj%-vTf-oN&%X_R3YKa(TSLo1prKp-%#hO5) zmgLj-pvm9IzcKboxf&=b7dJN8yA(6Kq*+l~xdOCm98U8#eQxp8R>40Ve46lz^8xky z1G)><7Y^?&yB!=KbA4TMC)ZOEZRO|s$-ZbITif5mg!Y|rLrJ!sVlB}~`Y&{ch7#2Pj~sE7uf*7I+BF0n@I#;=x;e&+;BGgbIk z*3%m>wCc~UqtH|rW*rb=wU)$zdXAFgXWU>XUhiclSJwGP>7%1(#8OWt_!nig?p!&I zVj!x#zkv7ewVlqDWHe~!PQZ5<7pee+Pd8J>MSe@()FMzmc8}oyZYQDhNSGUqil`-) zR`w}{D0cH@-OBIp9L_{Mtj$7Jxz+atr932kOqS}{j4Z_0I3PTh8v7zo(hr7zJ<>`-o-$raSHJ^Gdb_RGT4 zk;H2uiSWA1SU>aho!3-|M3&+w$hvE!#v#Em@FcJQwpYRXWICE>WfHGD|5X*I{e~6^ zkJvuIEyE^pFlR??yIB-Z|hTD3zTpu7Qd2z{G2uaw;GSgbsRR*H1 zWLpTEozF+3)F?mN6t|iD6h58&WZg*F6;7?W&6&YbLb`HnLuA2RG%D`11EbUOLaf=( z5y%9$cqK8vQU9vNbRoMKp+?t!Ijfx~P3w=c7CZ0}66Fy~Nat%4q@b}Hx(v)b(Crsu zOvCas8_oLzgxKlk_jj<~5*V>RTLQ+p8j=ax*zLeo5@)G=Z<#wvEZ3`=-c^ zBWK#ruffr*8MD9D?L&S9C|zs~uah`x}B}?as3K1ghZc z257(z;<33P%{<`oIvVL+RDIiy{58`cV-#(}69iFGSgR|NXuwn{p%5qV;_(aqLA z+I}Gd7xIr<>E{ozhXp++=ifEcCEMd_Y?HL@bi++@mRivLevnhJ(5Aox&@N;AI7b@_ zJZFEM(309HiM0H0E8>o5aJtj`wC@GT-m$mXLAa0SXWWQ?B|H$!7(h+9jQybiu^{u$ zv7dK8B#mF${06^tt0cBR^s&dnWCQc!Y8iBOJR|409fk(O{?j~ngQIWXoY%U3>P9>H zS_Y$uXK~p#NP4DWd$xd!yG_5)+fT@}{0;=jRMtXFtp->d-o4({ZdL<34 zE;rGqSU-1k|IRvEG_@kiJuF<|iiT$z`o~ zu^U=*S?20L*DAR!A`o?V9~+vZiJltz#dR77^vJjV>-ES#I;Y#Rkzqk`}@W52Fz={B(Ev^$<#kZO)^Tex&BY*2A@8%4$V z$t8p>MPQ+oiK=Y1{=G#X>_uO!>aLN@i>|8sY2->$A8#ZX`Bov^_1XTS^i~T6RZX(! zfe8`#Yq-M)1W#QI-;w_nJVWCyP#`a8nsG9sjzj%aJA8Sp=e>NSL?~dN+(V958%9ak z=f?d;zt2KN*<<+5ubCflQg6g|P4Zl0R+s zC~xqHbN^-S0lhh87}=(Qmgnb1QI>olAF|AW|7TION*pADbXP_m(b1i;frRX*Dz4bm zm8_#A;RU7j)+lJiMJhoLJvnrjs#0PS={zg>`7e}eOOzN8{?U$RYwuMis$33>Bn>QJ z$aK?RF5RVKJP<-?_@?Z{UQ7rP$$!rHc4|}L@*&QryKw2+l1Mx=nHo4i^)OaeNt`x5 zXYK!g0etEjs(T82+NA{@v2ufn{UvF+J|nUW@1MtC;vX`cx!B30Yj~0Qphe!oV%Tn; z_VWAfSH1Z}k8j-b&*!8`LA-mOqXnj*4g{$L&z-2Y704Z-+j2AgY&tRgn+7njuvw*L zTh7rJi3U5`zj&d5ZuQ{8O@!Zl&rdY%E%A1pA;-t>WutQJtJd+QQ2UMVDF%+3*{C)) zJ({hq7~fb9?gXCY=`X&HIpuvP{km{|oGQnS)$^I0#i0Cg%N99WWEDZPy4LqOb~+A> z=xEuU)Fbc}XP=U(E-pLPahg#?4bA+!&Go;z{?@%DHwIbzdi{>*W+xK~d>KeH<+2TZ zZ%_m5$8_RF3)eQ~ubZvROmJDG_@=gUGW-RX)g=Of(?KV)=qjP|3VvIZV@_tgAf1%XMXUAUpO4{GCnuujO`! z3zH5pc_(#k0^CuPDn*0JYfzFs6<@Tsr1CSz$paB#e8fvO?1wXVzPJ!+I#rr)3e2>W zL^vhEo>ie0vCEpoMV+2-Qm*gz9Z@mB#$C&wHUef;$->uDq=MO)wfYr@V5f6kV#JH9 zyBUu{g6N<5?Twp;8>a*-f zvw6))Ed#Ojl^P=|+n~5QfBrbMxWYlV)1aFNek8cnz`J_p9n+;iTK_jtXY zuX4aN*$GC-P@Qv)`<8coCL_lse|DSj=tA^8;25aRj#aym4<*aRe&L+@>?;{^Hp;VBnXg z7kaJJQU<_>pjeM@dNK2FE?@_Lb1mr)*M&BOuV^u^ygW3!lekTMU#t%AdfhQ;YBpy6 zTR4X!ycWWI>K(neFNY!LxjZAY3n%)3i*GiR=|~0F{=7tChF_PYZ0@nDUzFdwj4FptVt8uPce|v>bvQC^3A_=T=a8F4?E?A z*K`gPzQyjfor;;r_3q*nWh;8(8O_nFb-ncTs$!VAy%v$N-S% zE=bSKONMer1eQXBr>-Daki!H)9a~Ol-1S(|0$HX$B)qeoPV1BNJ-vG3A-2Sl341j? z$dd$A^qCjH6hOdeb{!@A(wmjsf*q|+$x@S)i$94WA^h!PB&w5vo(J+h0vx;-o^D!p z^&nnu09ePmPTNs*u{4vBXa9p#ZKjPsk)8o9*x0N0FMKMH*6L6@pdT@CdGVl*3N^*E}N7RD` zWpqhyzfo%S*?T5x)(a8FQ{;=3RgU6*_@O#aEt3qX#`e(z?<=3rXFSiU6f4a|y=R1y zvXgwDzb)Euv6uf9Veqk$*|tTjs?t2or0l`OD+2>IDu#*cLkv`y;nd{Ax&=tG=)4q_ zd=q)mdU_>u_)lk-uAuK*CHz%A zA%I}dcgkb9>#v_rY!CXZsMF7PZ~9fg#C**5{?!N?H?a)I68Wr>`a;UT&$eIoL;eommch1PflXwH zavOA9QFOLh?@;IsB;;l+ZrzA<fB8%&iZR~>`X=dRAH8AAfbODwe9uzcsK;M>7Bzi|M`@YJ5Qou}!1mK2$|}&6 zqdEKhKV9q`i*Ar`oqsuLmXV#qQ329?S0Kh~#Y@sxXc?)!t_hSjW>kxZoJ*YEOCLFl zAIVrr;5Y(K*R#niAWKwQQsB{Xy;(y%PP}Mfa26VJ*+gT{ngO;*-!fzG>%wT%57C+i zRu_Ye28BDeM=9I%<Hb`p zd;VnymDACif8roE!*#lZ3=jJF%W6TKqAp6l9)qHkvtg|l{);DPVC#J$7@A8yMXW3g zfJ?Y&HO9#Il6*HV#L?{-`5R@X3UC{U)U6a6rjHbm0kJ03!C<@G(FK}#QnbmY`!}-P zXH|QbBXYkE6T@uo*r?Yp zsTRYE&O$|@9Z$r}Kof*MkrntJ8=|NJE}p60H7-#@HJ>vgwiXvhmFT^*+q^}DS=BHb zJNb1qh6@*ZVnHUjp67sGepNnJ*%|)!D8~6Rl z3=@@%O)+aKX22Xg5pkKwaA9{+7K z^`0GZg^PGzWIFDB*es_rB-#eN9QKcB_qX#iM&j-J3Swn}2V_RIU64`oxe?ZH)H?Bs z!iiX%%MX-7`B~WPEo^)@Ph%d<@qh>Yk`gk?Z%p*UGW3OCsbXy{EgYq18)Ki8ZbM#? z$W?i=aRWzK(3YS|&+7NslK z4{T@%t~$N=YuAqf`ttP)uu|*zP}CurcIpbwv9ltY?>OTs9%T>EmDjZyRkt8#mkJrNFjt(z|#w0kA4WD-~Ulwd&n zeNOXolP`*RcmO75-;EeLXk0AkNN%jSJfuK0<9mC4e9Oxu=(@Imx9FoQVj^l26*|?x zhkL+W>s+I6u18@xUpXm$jD4uWnpC9FZFyp8|K4>v1p)U&1ndpE6jwS5mX1%+F5q&= zMo#X-ubCWQNWkXqt~9G6hP*SpC(toJge12eK3Rndz}HS1BYEF??FhMQ zSsw#i^8KDAf?w`ok36~t;^Pa8En|EqU+Lu<2hCT)t#CGlKRG&05&LbM!`C*4Gw%G zLf#{MfdqtpwifJx8R(Y!n(qaPh8wh-?ep3Fx-L*5w`eG@MoOtft}=AMC*3}n4hGKK z!GMWKV_LEBJzB2S`{rXI3xzgbI{z;qDcVBl;j^v2dGz_8=P3{xY&1XjR!E3^!m@(T6&2AE_S0*SCtL!ilPhY^kkabAI6R4wQ({Cv)gM-EDomLZZ3AJ-!~CZo z66y+u!{Au6>#w?V7hW>m5vxyS^6%CpU@f3PZ8S)1h;i<=8#B`Bm*Ge$Z5i7Z3v}2^ z?d9KBB6j7+6LDt1vjn5J_)s9@y3=zToxm}+?pqsi4O4FKPHk113~&Q5C-lZlKaZ0$ z_HiVyscMA(3+?zo@Ga}VIswQ51gq6}Rpl?9$!PUqjvF(2cEKb!F|FUSiv1k3kbe^n zMdd{N4qdmsY1+d~?k#A6pA%Jj@jzro<6Jx6piP*r>U73=6%Aw4OkT$u9!S1~^z62V z_bxfc=;yXQh>Hss-j*Cc)XeE0`$l9YBwb~bZVnv#eUgELQcZ8M$xtU7?vi8x8k8jdDXaow1P8ydmUAD7pN7(}9hNyjaiZJf z0u2wp3{+p-~{EG5sFeBb68;rpm}J}5?fc^T!ri_0EZQ0qGL+vCSQ+b`;iXL0AySchO#dm;-FMI z=1_{lCO}9lWCtaokx+F4)AL(Tq|E5JKB&YSJuOm!cl>QrY)^kDvdM6)ad`M$2kW9jAN!69u(v?@ zU#_kmB0IQcOIu8-l}u#PGCBPE`WDC9rIN6R@#eb)l#uW}l0OxMF2 zEW9+^;wy>h`Mbec=pA~)K6u0pP*|=YD2iqnfj}^G5{)&tT}Y!yFwD80YhYN_+{EW(hOaOf(bgF{mXtEfPde^==x?t#%H_ks|bGS+1b8_$nlK6Oe5Ix%Eb#7jTnn`Bdr>g4%NvG+vb z9zdmc;M+WJc5)(;mZu=Q%ZGMQ`*__3kCAEtyt_1PBC)gfCSUVJunvuj3E1pWiyY;K;N%Y8#uKB8&hGfL z@EDKa}Sl8R!9|o;S9Oc^R49Myn@D}^vGDZbjHd1i{DArV zEkxYN>PRsBTPzGi5@US&Tj(H;T*Y0zjZ%eHV-cUqj!1b4(^PEeh2O*y^DIAcFoB^E-AK6iW$AV z3fuCZ;zY{0nSutt8?>HdTiX<2LRP)4SX40GPBu)+DbPtAH}^NNd;a{BCk?+-#YO6P(zaExli@i&nBH+3yA zr;$rbH*|XtVn4I;ihpda>Fc341WHC@L!y+TK{;z|6#w@!NfrK9gNQ^6X?`|TT+J8~ z7T*%{NVKp`yc^Y4&JaDL1b>0zH^$Ji`{L9l1OeT;-;WQh*tMn@EF-}QGP!mE$coj5HYg<5gcI5L5V~=II6IQ$z-bvHUb7I3Li0I{ks}Ryh2+a2_^XTg z#{7U6QIwqext1AmkZSGxw`p0SU@Ygca(06U)~+!I>dD{BI{Du3{M>%STPPGcZA>=B z4&kca>EsYRxU;Id?Y<<@A-`O@AsD&?XT>~^$-eNS1bRn4D2q&SSdSMKOJN2g0<&4} zL2kvNyffq2=m-d~#Py-=z0waPhyKuW(Zz=-abRl7|lz0H??u2W^!_=8(^eu;5Um1*{3DL)N3_&eb?#ii3EYlh0B9OX%D2V6n+ z@GdLSF1!RPP@q^AMTLh&{Q0gI>1!J3J9cwO;8uH0x-t4MDq1niUAMHp7G zlK+SHQY*VO`FG^!@R1pR<^SF-QH})`w!aVAEInADe?I+Dr)aGG_>wMpYa|)-RFW8{ z{s(@bor;qg6Q!Ys8$$2u-NZu+xmCEGo}dOJB8|J|v(VMTRLnxYSqOec>FCd8$1sC0 zir9u4s6vVlSnfbmt&2VPHUk#!;Led-8L}A)CjEI7Dyc!sVv_OhYl?w>-Y{C45CsVN zKM>(nFMuwe;X_2v!{IvTT$IcQU8?~ZlDol+8oujd+YJ zD4RS*ML$EB`paQh{iB#Y?XTs%)2&QvrJBXlHxdOcZqp5lV}Aknt+v$P2`G-+II|Z2 z6OU|cYl)-&MCE+bvYG8C@ngA4_kx?MX5Q#Mct#2zPaILfz2}F^H7G#{Hk2tE z`b_%KPwj3kIkGo@bF4Ix>`(5D#|)nk$Wg^}V(3%Z$<9RMp-3x=xz-sWyFTfjg{s`m z=~BNFIlxzcgA-Swi?;nr?zJ;SlaQ4>dI^wwDH%eA+$qz}+%V?jUK2IDj#UD_s)(V%j8{UBq-N$Pg8A_+-=7SP=J<_T_G7%YDLi| zSC$=j)~ZTmAp$J8Cls-m~o`~(+^n>I&^K82R2bIlSe83fs>eaayPVSg)XRf^MVt_b1$LyN?2cxdR zX>%i-e5X`?bV>fnm>8p?l4AJD;ZboJo$ z6ElaLhrKXI?nL@rUPpH}SYf-^z24V^`~`&W17>~L1c5p(LSzYC#mG7unxmxb;=0Q% z&^LWwnT{n}^4;&#hD&pDEA^Ge^&@TxcD;OTfyt&OgdDORM0~euso3@AS5f8X~bK_l}X-0k>LkIAm0h_PJ+6dA!F1~0} zv|b>DA#nIa@OMTi-8EfjfTH}Ae(*=go&8mOVef=L!rz+aZGDyjG^uPq#c@Qt>zXt)_C^+G{3ZVdDrs;%vXkRVh2B%`o zDtByLS-+&*>rvNCGYI?nO2<)>SYi7i3)IrsdVDZ>;bokPmWg1_AfM_dm0cTS0+-gw zE>Vpnd7()MocY8{ zC%qb2HxVnbflVcakfbHS9kee{=Y}^%jfS@!sPDO5=#dV96ah|JP+xJwbcrN-Fr-c>y?8}BL?#}uyr zg3f+Fk^AN|Tk)(l;)Tf)p}q)bP~Pq1B3gc&xYh8R-Gnk}xyd%{dAG~@!R$-F-XD_0 zfmh(1TlRbrwo0SM{K+4};#APn&6n_29SXTz`YZ(Q9gi=IGvb??i?WyCSgoH!j{V`- z*oiO6^sv}X0H-l^4loeHut#{Z5^Sd&z`62>Ra4)RAM4s(UF7U;q-TS7Kq~(}{!gU) zQjV^G)fDN0TvMU}rza;c!YA#EbW3Y9=sML($G6dYC~43BIGo!Ws_FX}J**CY)^J4b zo|u{q5ALU97Whq@atK$wP}#2mo)J^un=$v4QlV9RWV{m5ogjubQs@UdCOszz`i_N@ zv}Y}<3_K;N)|#v1YeOCyVM+&xGdf%ia10|CE=R@g$zbKDXZS>TS^X1Tb1Q2+$l4Kz z9L|q-9+y~bi0WZSClMPE33tIMY#!WAVW?P!`CQRQeq*= zwv9E|V1t!6|Bd1)EE*N1?X;l|Cfc}G;;fwi&bD{2!*}v$e&m1DY2J1%CFdUD*xn=D z^j9hlxMqXfz3OZN8+*_*Zn^`85+!w%sLl3kamvbgg9P7PWe&oVBX};b_RRexjGr%sIvl?>sv}~F_HLnS(8p0D#?iCk2Q*pc<0!qy zf3udHd5Jg*R`00w03teJCMDi@7Io+NxryP=#DC{00%bC>xYybbTp`)+^n;i9rY~8l zml2tBbUU76qiOQ(8=-JXA#P#l&+IIE1MaOCl`UWYg4Z@#zLHdd&{U5JuATj zgY+mfRYn3z3IGdxvu64j0?sv-@S5c zJebG_$ND|hebce=@WcFDzyagC=b=|tH8A~#qGkiImc1olvYmUU*CMr@<0h%!-~4HH z81cVU*h{`XJsgeG%-~Pbgypk%J`vRYwBE?G4fgY_g_ zz&0WJ#5YArR5xy*bEbGhU}sWfa|bW$Qc1KYBCT{f;OoQAP=49^Zg@=xeC#pPPakmY zxwSq!;1bMXb0fNlfZ5=PKq2EK`TI!vPDKvQcv?C*Qe=K`_7{P1i0-C-ytr8D~qim28_)K?V6m!t{^#Td~|X^ORH+|I@XuO%Ek0 z1(%$Q?K*ov=V^TIl5{0rc?mdLX1~{s;a2DT&qB?;dAnLbY?|4Vv4+oSl91o(azSCI z()Csa#T1=E#So5-K%UhGV1If7yFO@;fAE{p1%^#OOj^4b;~2UJYGhYP8qTJSy)*lW zDpNn~b+8GXqL!V!+?x!92p~31dy@|&M4{hg z&k9T+n=m(MfCFbH?Q~-JUhH)g>phjHp|*=zXZ7^T^8Kf8dMkg5 z@?du8w+BgDk3xt2-`2>Ob?j4Gm?H<8X2>=wWJifzR4@UKv?-@C7hTX#Aj2S+5 zI@@-_ea$#eGpzAd<-myyjO+sJ@BBU7m~w}tXa52>22T5a-vX3E3-z&$ujtskP&)EL zZ~kd$g9uY~&Z0!$LBdxA7KXVfBC+}U72g#f$d^$a*1^N44>$jLM>oWnyNXuG8w3?g z`+;J|(b84gn?ZeFZz-oxl0EZH9!BmlA<2KR9We~jRp3TuPqTypWsctN%LlqOV7pHG zD$w9)MyL`PAwU!_!)viKHd(<@ptAOA^Q;vg@)CVV8f~1p3yP&28x1cW87+N%JVh!B zn(&)9ek+ih)3Nh5C*T5mX9S5^=UX{>kS;-l%rkp+#XG=&vGA2S+gt>njqcnr!?_oZ zEG~H2*brtkyZyks%UZpk9!o0N0@`jxxASxtneT{i!C}KIQSbZ(Q!0w>JrNHK2qj_xTe3w{`cJE zcT0P_Yh_{=H&6YCbDo#O$h#sWASfz7sfI<*PUfiji1jWq>B(xjlcx7ZpI2vKHo2~4gF@BB8@RJ(+xKUB6_L*4!UQzN5G*OjhR`)Qau0X0?@U}}2 z-6H4~&Y;V8R%HBzNalprCD95YeD;%XtnKX;?IPoknzM6_Fnbnv8;zX?lossglU+7} zgMsLQ^IMVxDcQ)$tP}1Npgf&p!ThUkS;uMbomp9-GL{k<{K;*u?n7#!^7DDt%8Xis z)%=gfb{3yw@4a#^AS>>5U6T)n_j0eunST23{W5z)6iT4VKrJY8vaznq#u~-$2<7)2 zguY|L>JHl(AU^p#V&bmbB4)W-8DAenWS5+?UgM(4ms>-5Gdtc+bLYS%^;IB-d zkF7KBH`#n*i6!`1+s=^}p+bo=96$T`(V%`|?vRnPeVp>NSat&i)fMxW!|yo9^7%D9n4hXpmAjLw7rLcpo&U~3ZCX;ZHI^nF~ddo{cB}< zp|0WQ1S<5U=Cni}D;>*Pc387?ndG_qm3)CBZ>#P0e3BvFcul)Vfg7Mp-&MtbLpSf`o&c}621p;ac=%&{m&&#v{x_cTEph)R zQC05#^cC5`q*I*8q|&+Y8>*tS@hx{`mHF*DX>`&8PiKu)3qcQ zsgzw1ZjQ+&#_vEc^Gi(1N|Hkcy5z0%bFQq3zPYhHZsbKgkzv|y&h_pIC82DtRijFA^IchFg=<+&L!C02F~u)X&;!$k=;NhjA5@#&f)bf# zArvhy3WcK^O5{5@P0jdXqHCAC04ww!^aHJF{e#X;Pk*;ZP0I`-dr=h=kbhGwE-m`h|KM&m`HlcO1yJJl%~R)2tR~5%=t@@Pb$$9C#QMn#bn{ck ztAD()X*!D^*79WzYzSA#mo@OlUV48$?#rl95n)b-u{pJZ`Ql=$wdsLLTz$vPVHiZ%-V1l|Wpve~*`weU|WK{~fY2&NnW-XiNMM@S` z?EN3TP;%MD;F1wA2{9^ik2^OMU-0PvCx@8z^PDLLnv25>`s=x(Klv_i*L`xDesg}6 zDp2=i$*ozBy?(i8xDlhIock8l+$kG3XQU(cUd$Kcd$?84^gZS19t(jHyZ49(X&k#&;ny4yZ2 zme(9~7zl+pk=)>jJ_z8aLr(I!DZxJ z4q$QGhY>BVasZ0MfWHlH9d?0m$ySr*m@^@|mDKPl%8 zV^L+8h$-D?E(!l#7$C?={`@s=e#(DXaEe>~a!b8t1`ncuXVPbOgPp^!Gb#X8hJa&d z!;`1o>*KPdrT;EfRv8Jv|K$wqt22s%Cix!rYKf3rUehJG3i>-xci`W4MJuR(r@ZzD zPbxivb3S9N+Rcw~Rl&pcK6yKESCX}zj$hTIeuC5uj`F01gD>Fr12~b-@36`EJ>KPf zs^sIxmv-c=VkFOAA3@)mUSB0V?|dnRqXpn+K4)NPSo^s~=0QPSU1vW|H-Ys*f6m@k zcgxUeM_8k=gWs?~{Pajp?~YL5IP|Bi?uI|}vxD4t|9zbMk&*HAoXsvsv>*mW&-SF` z@8cGB+fqR8dJmdbO>aM3aL(@PWcBrtP5ma;%aW8~_~SR^B1@>2jdPXPqdc!Z&2O?9 z5-pf~bgcJr*u3c4sV1lzDhrMntiyMCs(85h{X ztUA{#!g={Vi4($Gq<470g50$%L%7AW!VXtvZ_U+{%3>s{{%d-?l=4*T@bBaJ3m7rm z8%;fafB3qsmly^JQ4&ygZipEEy$`rg2QJQBksVVQAEzSM{QFH;?j<>66FD|4?!DyW zN829g2eCxfB$Sf!;wB0FkPS`8S>@;bqSg-LfV!699tt!9sFa!WAy>37pTFv&)9$J-eiilX- z)LxC*i?#`WS7oPa3om=?C5leD(xY{*UAG~>g7aFtRkny~bUgiJmp9Yuz+AvCrud=j z9f(za^J>i>>Nk8F{HF0G?~1pj(>f_Y9^YzSnmCD7MU>?Gr14Uyk&R}r8uNM*@D-Co z&ZAQhBeP!XE4WwBY`%m&>Ub0QypE%tO{TCIghQV1nVzwu@cjdL3vI0!oyk_ z^B!+yb-@2x&3C?8`UY@*?yLO>UfwyVJQ3XJOyXrW*(sVCBXDFeC+P1p z^|haizG!@8!wB1h|Ev>X*}cLzdF9X6vj(^IYbU%1uTP#Pep&y95W2owY;yOXj3hBV zr2ZEPMpo^fL|+`RT9Y%Bm<;oo8$*b(+@=3&XuOmuNf>}`NhDKW9o>DG?dyI*l~2-pE&15mAtpawM+70Qu%h6-^g)aC6&w6v7>KPQCSblh ziz$hqAjc0{g;cv)LIEtU?6)cewoB|_=5tg7+$T7IL4{TpGQk66=>CK|7 z+Z5Ct94%+~@U|y}dA|E*!n>CtnpqlGHP)k&DHR{&LEsPFJO>aMwR{gc&q`X5)I^49N%lJg-vcG=W_@)=modp zrrP{4cj`I-zSC(B{!}(c4=bI*1v458>QXV`ymL!I?KjFqfmuUV5Gadn^XH7PvE5m9 zaEjH0h}VQBB@6RI>}?F7FY|IM^DWoFcbTYp1*O+KZP1fq2w~Ez(V?k#Xqg3?s;@n< zpTPOW&E-8{r@)=Lf3vtND=M%}{H+9}zlod&J^uG2A`@D~qKey(aY#EywQQk1WY`6V zVGf~F_#sSJ4hFq!Ir&adg4FG&lO{K?%|x`Ce(~n8r}G0jE&cJTOYw7B&bD4;Mloxy zJ`gHmZU0`Y?8#;m{H7(GAUWxLQ$7-9rbz)#hH-W-fJ7l0#boUijmFq@={j$7&P9fB zq30+_#n4K@#3z+<>8c@N473f&Xuz~;h(?M0^|Z!weVoZ3t@x{B2dbNS^f@&0yDZWY z`rkQ86#GCwb6(B1S<3zIfuUNYUcN^;x?J|b-Qk8fZ`Kqk&w9KVW)l&Ta_j{n22{1I2WMjyp+p7WBG>6B_Md+8pmmPQTR5SB zzz+fNLOrRiNFOTSK5h>TOW1zgl1dNc1@ir35*@O^YoWeKV3-3b(fi?X=jyH*O;`118R`AQl4d!GL#& zD86HHMQ_h2eHBtvK8mrQjB?goNYflT-M`8AP)^TgPshseUH~0Im*ijHd*t{`L)%HT z+O|{urW{XnXK(mfK_HXaVdNu z1Nct>PP;I8E;72K=|Kj@OgHyw$ce2RFrLqo^l><^lIQCo)C zftvwPu3Jd8FNgI5gs>RD&cD6^ch=;}7TN|+LOYd52&rR6%&*KbY35eju);kQFwA&! z!B*iUDqp?Q&(9#_h1?85-L$^x!S}eFS_&M%L&;XR!EO2VHi_<1;S)eE2QG)VF$N`N zoJ3*$nU7(BNh(}E;sHWBa(@C|u0d@W%d9P9Gu4+?x z_598=hj;iAAlvD~uN|H231ly(&9FKGb^X|@A?A%AWXGtzy;$wn5p)!V_iHv8vQwiQ z?hxbK@AE6@B6qjmv42vGBn6-|nmls*fH(kFHD#5D2DuDaSMFi+vDM@`gkPq9?qbfJ zg8S3bjw_YR54dxocjTH`GUK{;qBL-vgR4fs46_T!y&!hF$}D{*n>N}WoHLmz0^Q}Qw z11hy{%|g+)6w+8yP(^%p)#1)z!_xFkoq(Yt!fQ6h2iCSUdo!Gifx-#K*}by+lj?J! z_M>QzkO;Q}mn`8q{MZ! zsxk*)=vgt@T;=9J*;tISjZhXP$uE4Bj1->{*vkpD*Xb1oQbdp$XuFyi^1u$%)iWu_ zs)cuqm6uMMXw~B2eYN(_bZhLS)qin05q)kNW{VP~(;v~!kApUVr~Ks*^A_rQ$BCt} zR1`>tbQoAt$G6-lbHR#|fA-1&L^Xb1tYb-wy4f=tQ7S2}#i`fMlfQrm`$f(M|E!4Y z#vStMSIHP!GqwbdJ^=r#bH&40jR`lJ%@R9ygoq&tWPyO5zjRtt*y)|yuSUP~!84Nj>qMD-aw^G`Kl5mUmgrQaEBB&Z}5 zq3Rf4>x|jC{vE-3d=im}=0?XpX^7(v^p+qN#}x-4N!RBiEaG%Y?oz>$O^oM-{#3^6 z%DMZdkU1H!Qpk7Y8xN{_3MzjK_mYxNBU9u<@K+MwwHJ=Aug?B>c5FiKsIH-0CY!wm z;5|aa?W@N%!FQ_U6~jSOI=Vv($4L_#0s2v29J^)jK+t(BJ5bI*S5u}7bq)#)gc95D zoOD<8r*8`g%tSOsUYP;1x#Bq;JD^04h(@>Z9o9jEVvrO!!=^d57fYGfPZ|BKfp2wH z3dLuWsE#55C9;kL1V=-tSyxF7v)>4g?r!6=rd3unZUlnD{_+YmJ{p0ijYnm_4R)Af~_pE1j->re1?#bPwL6RhksD~ zm0`NUYLWZf+l*Tjpk1%I-3x^HU~LOa7|jJVw12<+B+%x+%kZBPeN{U@Gxf5AD4tje zD|!{v5g7+_>ie~35<8@;s(dRrcTb$}eJFm++CP;sq-Gr0-##97A=(V?!A0T5GL&+s z9=j1YK=NPaBlb3trpytVi?U=P$g=}$&r$RPkFqjY;WK61;Uw7H8HRT8t_usBTndJ{ z@B&6*A*#I=Fji$X!5=%zS8?y&WSsn}D4y}QHC)y-0P$(^&}SO$hhD$`yI4PmK6i&z zTpEH;qpNWFExpD*<7jWERyFtcp{v)zhs46FNY|&n&zwtHv7_s`pA^J3;{Nz>-v%oW$mtuh6AJMYj zm`V?eZ-B?ejq2J3GXa#{=zRZ!bLgDPEx*j5{*=m5eh5X)Z9S$ORUPY5e8oa%hu&|Is$de9gD zFMmRWII6d)i3hQ%;o~}X_=#shAkTqivsS7Nb7#!QN8;CPb^_;3fcUe|^T`aSQ5_+w zM}GuG=WA-ja-kjPjpBIK?b>!- zuj~1IJnr}DtkVQ0@_-)jUPE^q!wuF6>$~r$J->4K6yP~ojM(G6%X_rg;G0KzA}3kJil=A^aSe>S!{Q@pCb4+p<%;kQPGy zPy)ja;O#V_l#{<~;~B1)CPZNej}-2NB&lh&RXhJ_|2wi8?iIOX0J_Vq_SY=#1;se8 zaL{rHZ`y@?Ejnt}D<7s_9J z#tHEa;_t`_Oo74~nOG{NoQH(-{qmj_AbeIAFn$r50Dc{6phy@%2TQ;kvU|!Aag#&m z`BM1gS2Wl?c(6yMd-#1xT?ue7n$slGsrk;~F zKwDv1SzlZY?s2@m==B%_%MKpI&bN>}!Yx!DNS+bSW&+Q&K+ql@Nk%{GVpN@Lv(i02 zjs=TDW5}~txvh2m_<9{uPA`Z(Ue}+l;2L!389p!Xx1M?T5HcjG#(*n~#{$M#a|^>~ zNLN(wXrF)7Pfamd{eUI4Z~e;$Gj_+U4^doJ(?rN6BK;1#T%|zTTn5f1rcR#ug=7Lc z+UGME9k_o<9$Xb*Vp|W=6a?gcX^vL#2qY5O9Fm^~KIolEyc+ibFCE)CCQ^!zOsmpJ z+xrX8p*tsAL=b0exf}f4ID_5QH6!i11jZi)P*dlob89f&O^=^867Hq$I8H?vIFG=kJQRq*pU`gPE4vjb}r7YPt8Zs%B{eWBetr#i|l%&^5>VHNL z@!(9o1zZjcwH@9W08Go=!Awa~d82SpdpHlz<9QHVtPYGHweeubaT!1lS!w2JK_yvp zQQ!e{r&}4x{Q3|J`4HGL{DP|@JRcOT*QT&O3}!-l;!OEDW`C}W#!umV|8$MIsmnjf z`XbZ`j)tn|@wp3%3&(pK)>MMh+iAlDG($gz{Ojz!qr`=C9hbzWMGu!hyRqsQ^#a;MGv)1&nd+ zvyQ0a^w!|OzsCuzTw*OjgQ{?WC58PmRd*SDr+!ExlC8Rt5R&fZ=klZoVBw>aL!%YB z7qIuf)EQcS7j5Y<&J^0&Xi!>enoGV0@|-?oNF`vTEP@;S-rAQlOH8=?i}@RoJ1w`yxARH(7Rr8 zUXtR*X^-kQx9Vjr2OUZy@6K@MQfyoLSXCLvfiiNkLd$WWI#*Kp@fE@4+c{c2QjRA0 zpw`!_kWaQceG~KN8exE17~LFx`;j*_cfdt1%u>HF5yO(l3g|OYp;H&C>j?S%1Q}cS z#fr<(F;rSZRA<#N!J5d`!yV88-$ANC)!?o6J;*zbehi+t4PTH}#wy>>uT6(Nfs7x9 zGkNxAoRg@?{Y&7Jy0({|=hyOgWz$gOjVm);Er6>Q#?=>_)$1z0y=q^I4a!z;N8 zu{MN0F{SHpKKX^qH{VtWSC^W%!dw3}2f1?8{|Cc8Am~=37fhSmTYh3_dkPmU!DaU+ z`yDogX2jc5F*GGMBw5};t~t@CEP+h0ZHyvtl0XD#bK)l3r@D)jP5UpiVgYrF7^@98 znbLWTPABrVjlgH{=v<1ULo%~|b#GyO1E5cEbnS!E_*!N^R| zf~RqP|8>HXqk{Eb!n$%FGo@VBJb}AlnAnfn>OcBQ*+diE=CO~trrOS?g15M|S%>*5 zL%FJN3+4O)hu&UHJbCqDI09;|5=`-r};Fu)oBphR{iZj^IH9@=*}KW1`xm+vf$+|b72qf-gC4$t!(Y@ z@u{x13lT|wMX`>(hu3%ar`R?- z?lKqdbNJe8{5?&diVnoTJ?swv*z|R@;_TZDlqG$FV#Zf93D?2Xm+BojZ z(N4*? z%=7B2MAEM^pH{P5}X;gIkA>z&k`KEvugxeJ}2agycMPIl#(_35aX zfTNWYv4FW_$X5=~ypd)E7ci0Ew~1`E2IT+)P>NQ>t8wM6qPD|hvpO2%5BdEy)wjH$ zvFB4>S!@q~x+F@$sbnA_i^M#+^u!SHDw5l&DMZ>CIGV|$#vbEW$S>r8b{FDbPz}53 zoe89vV@*ujT|cb}Rd_+d21n6~kdQ=Ie5MINCMGd#;^dOSPZ=5B2rzG@`VZx|zX&e2uXz)>vN{BToLi{dThy z2LD5Iz0GKJM^^=!^u#IycNIP?PN5(HSWer-*^3^1c5sTL$?4R_k!1C^l@M{y&@`VE zbHM(K>5^91cV)ouv9ewtnSwfrc>C<|Q{WdNT6QxnD+1)?q|T#t9d4=|bsA-<%qL2= zoW80+v9-D@dwvn5pPIS&Qd^UoU(To+QVo2@W01!2l<Q#!>T8Do;N?`voIk zZXo8KX#)Z33-&kE7N(Vf%03~>y14} z2zK4a^)#PUoOB)mB#W8ixFk_Zj4z}sB`SkqtFJO~b!SFt$GL_$)Az#xoyKx;!e8xW zFG)#VpZ6CeBX5RGo+z3tqa~8G@-HH_A8#ugs8b8yH8u(vmRx}Ls(v~BftPA(W-SBb z{4o)CCtu<@4_cO5ZuOJX>|-gj@P01OHU|BO@4harK(gXMg~q_ zaY?f-+lxPPI?%xsw(LrWF|C__th| zE!>9igH(6Eept65UU&=Y!H(VVQD|TN%S0ozXhXAJ@O&58j%Eeo5t^v?4dT4c=2jK| zWrK6$=*>}V;IDh}2V+rV`RxQV8C;UCS{O#>?AkZcO8*!7vB|>_#P4vU5B1DO1)wifYakHI7X(CCV zbd9L-U+RUXK|921_bX_Kk=|>26>C(2-_uvocS}(2NWmaUb=P#9>LX>DAj~}9;ZhJy9?E`?X+$H2SlDm#}69$OJULJI4M?&7SZI&r>XpeGQVOQqO{z; zo$5(g^_XsuB;mVFj=`Gqt3=TD+{$VKztmEJuG)9VpCOGBJ&Yf{Kk^f4tVf5%U} zRBeCg)ny*+Yll~~mm6G(f8=TCkVy@qUmItK5pg;?OAna-a%zkXTMMn-b{UEXm3L;g zSqpaxmfl67e;ay&x-iW0ZY~T+-*kqot~-2ydVe(b=5h)%N!_j6i0hdbr6`V3e9oJV z@sQ^p6-UwEiq|25J86x!qs}0%-Y^K1QTjI6F}KH90@rRla7}NfnLF1s@~{Okojn>6 zZS#rSBy*l@Ve|)RitRhuy+pxT=bwf>R(5_FhsmBn9O-Z#J=kCl8L16he1~qH) zqLHVd;dvus{VL0?9e+2xn4IlHGI&FR+ZI{q(+ zy~qw)riu_yBNbZ}9(CB}I_kt^xPiC4IftS16;B4LO*4sw(2e7@A+Q6CO% z7IA&|f{`z-xO z4mr>z!SCH7d{aCis(}~*8)w)0099LH!?J=Lhwd{q&=4AE^dc!|Tep4X0%Mn^_jSBI zX0>5|vwNZzU$<2TZ9j3k3Way1h3EADI5%hOdILtud5|`afB($k(+LM|E)fu%NNj&O zTyea7KeEuQv&xXL*rKPy|6RGV} zD0WkoTmygW#62`6Ohn)q4K3$NDDyC;1ss}a<2wzyxlniTHDcht&dN$hj{!tBIqd#= z27LkuPVEfbCn~X00+T+6+%P##bJ%S>)2MpsvC7G(#q)3E_J2Hqqi&)2MGws)U9vaU zWCHP?@9CIQO31TAO|O5`gHN?B+wv&jcNl^pdmTkq{uX)OoY-wUCr@(`5104$-!+*w z`g`2_vKbbZ^-6#*9x2(UXQhL1xWDPS!97?DeIHeHJPR%pzl%4vdI}JpgrqslSyE&9 zDe{ha<(H!{*!Hys*|)CL12CxMCNm!Y5u`HYkx$9dn#hTeZ%VMd3JJKQms}_&Or4 zk5OL zA8##f=Yvgv9x??F+7ay}Dd!*JxXHP)0jwxq?0Q>%;+XRK$-da0q>=qKop>9aKjS(X zH$u5*?6&sAA*6=r*oWXPC${^_>&TF(zU2EIf9Xby4=)(#;d*^4Rrqq~;Op@7`5xXI zcPbA=xN-Bgkt(61Vy<;BwdF&AlQ#k#6U|*eFs&=pz6v;X*4^ziU#0PSoAtEggFDfc zruZNeJs8E}$~GHmjuCqk9G5#hb*^sBHv!wyuROn(tm1meZ|+g$(ROpwUpBw6k=DiU z8i4xX1|q_aA<98a--bo93}*es)D&WL08{+Wp81YTf{P!WZ_b;)iIAxiFTcm~#C(N2 zc)V$w_dg!e(&W)#?)jJ6;}z!4IwY)Yg_OL=XpO3(RPs5_d;1>Jx&w7X%f;WrrCx@n zQ-(IvIGjMJ+l~pMAVPA$K4k&-EdI0pZXMqbr)ppFRkvnm|6Z1`LhSv8a zJ&G{<1uZ8nox4^IgmE%@NvcBCxQu${?S{|}b06+qwN#Qd$2GHQ58)htn{|=af6r{} zb?{&|?_NO4yfS(6Arl!@NnmsAv>{$3FnI>XaVcmH>j6PC%5YRI3kZL29pOW1M{{L? zheHkGm@)v4(n)4SOi@w!;E$DV4L~)yYRi)dzWxgSC#O4Jx2HiA6vbdxN+YRJtd*?& z{rdg4isuru*s4B=H!}QdtKiP3BqL=V=}eS&zx_*+-_H^Re=iP8T2p8Qq&%!M6 zc)JecA*Z>rPtJ!Ca8w^doR@papD*$MFwtENbTbc}-ve2N>aL8bj$s$IYjTx}S6OWC zrNBWp*$-mak3T{)?*s0YiKOZ9*5197q4K@z?oh@rn-6!{U63C$?RMp?6w+BGpP6S| zFtm@f&67Eo8G!%9GdB_{xDY5fbmFP7qdqk7V*lTSUiZNDKZ2=^2n9Yv`=e^FQGq12 zfHQm$%2>YHTy!8Wvzr5qwCVTsgbFTp5)a@^Rk1bgGd#emeWhjF$ay{xj+dty;7ltFJj#aSbIOcf)id#B!$9s9xv(7MWeX|*(;@mk_Qg}TBs zs&yJ+dK zbRNsL?9$sqqwbDAROfjnG}%<0D)ock_9J3b&t7<7Engf4wEy^YrIx|DP(vb%7cP3S z+M*5-_}8$Ik+l3E!-+f4@+)(Hp9WEq29vDVR9e7hM_c`G12rGvTwOf(mYbpr5g@vR z#c`QK`oFs$XW5YR{HncwS;gBywx4<-=IAPGWguPS=ah# z`tHYU?W5A=ibLPMmb<1nstxgJf3(`f`oHMsRorn8{yZBUDKZW#+^(f5suQ1;fm{UFY>T?*QeuqAk3@vM zqku0M5Se>PXz{SUTnZzJ^v%8d|1(%_l%4o5?tn7)2(b8pt#jx^^4!7K8IUBx;Sp|OM*KtW1`!5K^Guc9gTCf{2yB#K)4rYJcQ@)*qqY-`^T9TIk z-4dEVz#j)R-fuXSbbzUcko?T>f77Ga@@jMmvU_oY4FV4#4q~>Y4o}kS)$1mUK3`OO zEb5vG2tK)V$Sa8|F2}peJ5_=<@c(9RabYuXn2)96e7)WXz(t1aw8l?oQw9~r=fH>| zM)ks<=OM4_ZUm}|CxI~9{*cL{O6^qquuunxXkX_ZyrRs-_>^>{w|e+5P(8;lmQj6K zlzPl$|H|v0OuS;c5*a=o7XFhnG%g8fR=>$4Ng?YyRXp&HO*Y~H=p>>Yf?d{^XdW7Uva?fr~(a)>0nQ9-iS0n4sdqmg8Bv`-&=(EqrCk zx(c+?x6mSL;vt9QYwqBSaTjeK^S!;J1XCDiI6QUJhi7~2)lpQcNXTw!>;sO(v-SAP zJ6Ui1a@cG2w7s^&yDXgd?+a?5@533MQeJ=ePU6wMDP8IMS;S)jgiZDpsIUj{{N(R+ zq{`Hw=vMHs*r#D+h)G@A4w7S^x?wmfddJq8)~AtJw4Tdj8vyl7{s=#iqq&BR$ryhx zz04;%#)Ty#dkzpt0O7ckKMYQ%GAkZ6JTCf5=##N$v1;>3!7zIIC2@t$hRYR{W}g_( zf2W)%TmyULM-m*Vk(O3aN=xLqa03Uw4uN&fm0!~Gw*S5!w=N0KR+0k;>!0#kE$GIk zn$9k?9HoV6-c&`rJr>(_Nx76{578elKgsH7Sd8^MSBiUAIWF81)xSxc79W7|T?tB3 z+{JfV5Ph71FP|Cvwe9Ch9r-U2(ffVg+%QVpMA`pDp{du1W#y&8MPhraW`F>V#__ak zB>tb{2yV-_$IgTf*s|-bLs7;<^|f_~r*$6YnbqPklnP@ak8nK?*$IOGiJ)lBg$~z! zJOhU%WimfX1S`DXktkmwCKmm6G;+w{(*_6P^5EGM;|oy*P=x-G;Q|ictb^w_>+BQh z0QN#JF)oWp^K+!2MH06AX=0iV4K?^!Q!_?FGiJ;^r1wLLd>G_$f>n5|)-677J4 z0n>{WkAlZvAFfwMp}kEF4#20ki{K)ro~aU5(IH5xzgXU7w|BzAD-h`Ex0hQ zyln{nTRz8|DBqaZ#pKB)i*;5NO196Cz<7im)%Q+&N(uSGi&jJu$RXrMJGQNJU3q^x zsWvAm7B)Uao;0!@likiSQ(J*O1>d*#w%)#xf7*(;4_W4%Z|bxYqABG$h+nU4gk#Tv z8#`-k?{Uu`Rkcs43@j)%#G~4D?IbRQBSwXy>%yhwhG~~8b(AD@9W}_B;vU-8jW0w$ zrLzfIUDuF72F2jwHlJ2*JPSrNciRjct3Ce2XV}ik;R9y5W|nZ!fPn20B*&%74Ih(9 zq=0CejS53lAon`^OU0fG0@w6x68h~u{m`4KOcWbpDc*4zv7eOhKEUbIkjPdK)Up-_Fv`MNMf8I2qGmwY=d$n@m ztKM4TDQOui+4))N<7I`DCqo+Vu3kPBC|=G)%2 zPIg>+>mJ-#hJNxSe;ch;!E@5ciN#vo+>scfPA1if6{`kE z-Gv8YnSZSXx#|35pobOjP*OZ|A?7v zR094SlmQsr$jTA*$lGtsdA;0zACz2qcW-lv`KzV3(zZ=GeB!_(%kk%XOlK=C7)2kJ zI$+#8uUcswNNpvSi^iZNS1w>#JjZLY1K^W*eC`!)B6Alb22u7r;df zRkJpg&~q%j82b0pk3`=9uC)HBgNFYCa&geJB?w8?UyS3Se(JrZtx=YZ9;+4+B;Pw8 zln1O%gFYI&p#hcM)JIQE7x~1F+TwVzK+fo|FWuF=Ubl8*(cqK|Dxg{34tbSq@_@LX=x7`Uv>#3^wwu6i%T z4*Bnmkbl~K3~)#ZoZmRi+tZqJ##9u4(lLl4ys}s{Ih-|i`(Tpr>l!-;);HMPFS>g|=863$U&VPfe zCqJfxrc$h_TTme0awFQ+_Z_R|Hh|{rhxrtVv%_X+o z7m^DweTpR(;mnF!5su8`x9_ERqFKZ$2F_qF+vdU7<=*O3QIYe8zHkN208_@S)0a#% zegJWu8nlT7m2v^ONOWui&92it+|(JAM~c;^2#jEV1F0esi^5{%D_MJ&sVuBdTq29a zP`u-%Q7)nT2KGV&IyY@k3LYL@JAq7(|AI4_TPG++v>yBmq$|$|{Zh<#txzrKYS`I0 z${W)7C^=61o5hN|Z#p|I^mU&(J>Voe!X1(n;aina#O4I+ZwE}WI~;nolG0MAqgTKh zXCzdvj9*Sk%7ya!QHqawyLjw}sA5?EJnSySNLU%5sYXDe&l8w!92)(!vMlCdj0+ZO zf>Yw#7HYiIUBSKNY5z=l?gM_> z3$h@eRaEEYG5S_U6h+h<#>^d8;)9=>a#%F4SOmVdD9L4hNMfS$@zsX-g-i=}#3XGB z{^6oO9=_q4vnSL3F=D6vZKYQmoosg1@o075lg*{=7|ik+x9I6dJ6y4vZ~mCp^`pOS zd#)`n6r%Z&QAMSiDWNd^z1raO+fFaC;FD6nIK(1#`Izs!Fcy_ALXwafC3s)s%}n(+ z@?<9hZ`aQ+BGJM6KZIH9s~aED@o93pZs6`CaOvxO;`xPi)7kXt%&j+%pxl7(eIF1n zoU|#@D)eUUhY;--#|m#xg3m%mi`+d912EEUZl~6%dMO-oRa4XTBz*fn{GhYi;v@AJ zdf3K8vf9SR()s~sxiH*q=;vMkW;lYaaCUk?!uYCU^{(y)N8NWsIB>A>h zzD<9b6`os&orr$fw$h!mx_Ac63{XuFWdGNOm5D+EIW$_$Yn|QyOtjKX2XxKdf6FK( zy)gwG20d}v`tsi0x!<>tsC8LK+42T;=v;JTRmX}{-WiggG4{DWP0@`0aun>M{5S4@ z0__es8876*R-3j8V3lM(b>-%3_wD~GP!2xq)6hAIm*jCJ)(M<0>@nLfrA@($Dldol zvB%anj|63|VEFf-{hxsmT)M$z%*A^UaJ(b-MtoF*7WIIK?|N(uO(29=4aLDJzqog4 znN_X7gdiM$y{{3Ws2ym6Rm*%j6iNw)4TWb;7#@^f%=!CQ%vf3iOuyqtEj{ zgKGILah|(#m)9zkdAc-0mi1kc!%IDEA$#+qR#zNUuJjbYW|(ky;SC4`rQkmF&ObC& zS(Qk_Wa*Wa4n{;&XW0;^BrJcz3NmA8rEiiH7vYw)Ql*GSM1#O}Cd>+)J)67sxa#ek zmn{s`JKdwADirhm>&c-zXQS7-H2FQLkIk*XlWP}l<=eu;pse?6DHp%)E3~qaxVB2| z6iQCo8CfSEgVgWK)SH9i94uFt?HZV? zm|My@hy4ZzejJG&Z+~&o&U#&LD~xa%UGgo(SGyqyt#4yPwR?(-{ zgRFsuAB{hJk<-V}pm|;o=&tQyoQ?+XQkEd_Iw0!CB)Y63u@Z|7LqMd#4zsMa2{+G( zZCQDbXTWH#Ds76!XbI^t2k;SazMok$<$vxpc zpl$tHX77w#ede6fO=IevmObe8U*GmA5iWiho$ITdxz*@EfJJakokK9N*Rft$S7ER1 zm7oG&L~|?ItchVs)EV*6Rys0X9NUj{M=20+ru&AR8YjPa!0}OUr0?raIQz@@QFq1L z(|bH_m}1OtCuUXAzH3@Lrtpm0+6G03sP}O1jbih?Zv3U|u%)?MUt-GAn+ZR-AbAD} z?~FCgPhGVW7gToKw{ue~3N5)SOTWzuG^>^ryy5w+8OMkexcmTpz2NPS`+4s~wPV%n zPm}#Iq3plz7w}=v^done=RRUuM*pm= zUSBgn=5i_wkgJ$4TN+~1ne;7r%uxjr;&YtSC2 zZ~+dt@H=v}s4FSL)!=*PsQBHECIf1sk*#lVLzBVeJ4g4gB}ibXvY0^+ROv#j9d>Mn zWGMZfOsijCQA5MiMZ+*~WQ)G)7p!8!Z6BwOPTiCb&va%XjAP^+|BB4$i30>2th9A% zYiY_D1xflz%3LDU$Taj>{c5HqT@Q!gH`f3!fv&=MMNzWyR+-r9gM*2-;AD{N&;!0tVu9Rkcxv;!;zGH=_)6sx z{8(wQ>4?ShKxj7MU(WZ?*C!mWyz5uhm~FR)4Mf5x4@$MSes_!55e6^)@Y=69>;)`j zPf7otBK4tGZJwWYD(!Ld;&N5hc76RYACr01#@s0A37WS$HeoHM!peqHe8J!TT- zz~#>hT<6OLMcZ~5J4onK3p?V!j}0VW8-U~-E$*<*IAIZ$qX^ZQz`>U;>QJH&j1$B zhUaT{mZ-B`jPA5`=e z>e2�FbX0sjV9Ha)!MUd{&wXHyG5Dq}bUwSvi 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

fol%rpd<^Q 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

- + diff --git a/packages/create-vite/template-lit/src/my-element.js b/packages/create-vite/template-lit/src/my-element.js index 74fde11f608122..411701454b89de 100644 --- a/packages/create-vite/template-lit/src/my-element.js +++ b/packages/create-vite/template-lit/src/my-element.js @@ -1,5 +1,4 @@ import { html, css, LitElement } from 'lit' -import viteLogo from '/vite.svg' import litLogo from './assets/lit.svg' /** @@ -33,7 +32,7 @@ export class MyElement extends LitElement { return html`
- + diff --git a/packages/create-vite/template-preact-ts/src/app.tsx b/packages/create-vite/template-preact-ts/src/app.tsx index 13cf0b1b01f2fc..ccde5b9f39b1d0 100644 --- a/packages/create-vite/template-preact-ts/src/app.tsx +++ b/packages/create-vite/template-preact-ts/src/app.tsx @@ -1,5 +1,4 @@ import { useState } from 'preact/hooks' -import viteLogo from '/vite.svg' import preactLogo from './assets/preact.svg' import './app.css' @@ -10,7 +9,7 @@ export function App() { <>
- + diff --git a/packages/create-vite/template-preact/src/app.jsx b/packages/create-vite/template-preact/src/app.jsx index 717cc480198df8..2679f488673db1 100644 --- a/packages/create-vite/template-preact/src/app.jsx +++ b/packages/create-vite/template-preact/src/app.jsx @@ -1,5 +1,4 @@ import { useState } from 'preact/hooks' -import viteLogo from '/vite.svg' import preactLogo from './assets/preact.svg' import './app.css' @@ -10,7 +9,7 @@ export function App() { <>
- + diff --git a/packages/create-vite/template-react-ts/src/App.tsx b/packages/create-vite/template-react-ts/src/App.tsx index dfe8ceddf40982..cd201360b421e4 100644 --- a/packages/create-vite/template-react-ts/src/App.tsx +++ b/packages/create-vite/template-react-ts/src/App.tsx @@ -1,5 +1,4 @@ import { useState } from 'react' -import viteLogo from '/vite.svg' import reactLogo from './assets/react.svg' import './App.css' @@ -10,7 +9,7 @@ function App() {
- Vite logo + Vite logo React logo diff --git a/packages/create-vite/template-react/src/App.jsx b/packages/create-vite/template-react/src/App.jsx index 14be1971f75675..ef0adc0d53eba9 100644 --- a/packages/create-vite/template-react/src/App.jsx +++ b/packages/create-vite/template-react/src/App.jsx @@ -1,5 +1,4 @@ import { useState } from 'react' -import viteLogo from '/vite.svg' import reactLogo from './assets/react.svg' import './App.css' @@ -10,7 +9,7 @@ function App() {
- Vite logo + Vite logo React logo diff --git a/packages/create-vite/template-svelte-ts/src/App.svelte b/packages/create-vite/template-svelte-ts/src/App.svelte index 480e1d072d5a2e..d657a537e4829a 100644 --- a/packages/create-vite/template-svelte-ts/src/App.svelte +++ b/packages/create-vite/template-svelte-ts/src/App.svelte @@ -1,5 +1,4 @@ @@ -7,7 +6,7 @@
- + diff --git a/packages/create-vite/template-svelte/src/App.svelte b/packages/create-vite/template-svelte/src/App.svelte index b2eb01b52ac2de..704ad09e9ea536 100644 --- a/packages/create-vite/template-svelte/src/App.svelte +++ b/packages/create-vite/template-svelte/src/App.svelte @@ -1,5 +1,4 @@ @@ -7,7 +6,7 @@
- + diff --git a/packages/create-vite/template-vanilla-ts/src/main.ts b/packages/create-vite/template-vanilla-ts/src/main.ts index b4a91405cdee25..df7c82c3cae37d 100644 --- a/packages/create-vite/template-vanilla-ts/src/main.ts +++ b/packages/create-vite/template-vanilla-ts/src/main.ts @@ -1,12 +1,11 @@ import './style.css' -import viteLogo from '/vite.svg' import typescriptLogo from './typescript.svg' import { setupCounter } from './counter' document.querySelector('#app')!.innerHTML = `
- + diff --git a/packages/create-vite/template-vanilla/main.js b/packages/create-vite/template-vanilla/main.js index bbdb9004d5f3d8..727b4ea209e978 100644 --- a/packages/create-vite/template-vanilla/main.js +++ b/packages/create-vite/template-vanilla/main.js @@ -1,12 +1,11 @@ import './style.css' -import viteLogo from '/vite.svg' import javascriptLogo from './javascript.svg' import { setupCounter } from './counter.js' document.querySelector('#app').innerHTML = `
- + From 45b3f8f94470dbc9be53d94e42e992dff41da324 Mon Sep 17 00:00:00 2001 From: patak Date: Wed, 13 Jul 2022 15:12:05 +0200 Subject: [PATCH 052/716] chore: fix create-vite release script (#9075) --- scripts/releaseUtils.ts | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/scripts/releaseUtils.ts b/scripts/releaseUtils.ts index a4394c01381e1e..f4426bef834b69 100644 --- a/scripts/releaseUtils.ts +++ b/scripts/releaseUtils.ts @@ -226,8 +226,9 @@ export async function logRecentCommits(pkgName: string): Promise { } export async function updateTemplateVersions(): Promise { - const viteVersion = (await fs.readJSON('../packages/vite/package.json')) - .version + const viteVersion = ( + await fs.readJSON(path.resolve(__dirname, '../packages/vite/package.json')) + ).version if (/beta|alpha|rc/.test(viteVersion)) return const dir = path.resolve(__dirname, '../packages/create-vite') @@ -241,7 +242,21 @@ export async function updateTemplateVersions(): Promise { pkg.devDependencies.vite = `^` + viteVersion if (template.startsWith('template-vue')) { pkg.devDependencies['@vitejs/plugin-vue'] = - `^` + (await fs.readJSON('../packages/plugin-vue/package.json')).version + `^` + + ( + await fs.readJSON( + path.resolve(__dirname, '../packages/plugin-vue/package.json') + ) + ).version + } + if (template.startsWith('template-react')) { + pkg.devDependencies['@vitejs/plugin-react'] = + `^` + + ( + await fs.readJSON( + path.resolve(__dirname, '../packages/plugin-react/package.json') + ) + ).version } writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n') } From acaf9e04cee054ec82b5236696e6c749a44745d6 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Wed, 13 Jul 2022 21:33:38 +0800 Subject: [PATCH 053/716] chore(create-vite): upgrade vite-plugin-svelte (#9076) --- packages/create-vite/template-svelte-ts/package.json | 2 +- packages/create-vite/template-svelte/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/create-vite/template-svelte-ts/package.json b/packages/create-vite/template-svelte-ts/package.json index 6fc0b0c7c609e0..38cdb946e6286b 100644 --- a/packages/create-vite/template-svelte-ts/package.json +++ b/packages/create-vite/template-svelte-ts/package.json @@ -10,7 +10,7 @@ "check": "svelte-check --tsconfig ./tsconfig.json" }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^1.0.0-next.49", + "@sveltejs/vite-plugin-svelte": "^1.0.1", "@tsconfig/svelte": "^3.0.0", "svelte": "^3.49.0", "svelte-check": "^2.8.0", diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index 80eb5ee0467ddd..fca83db9c715f7 100644 --- a/packages/create-vite/template-svelte/package.json +++ b/packages/create-vite/template-svelte/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^1.0.0-next.49", + "@sveltejs/vite-plugin-svelte": "^1.0.1", "svelte": "^3.49.0", "vite": "^2.9.14" } From 7065005b057e1f97d31576903e65eda5b82a3fd2 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 13 Jul 2022 15:37:21 +0200 Subject: [PATCH 054/716] release: create-vite@3.0.0 --- packages/create-vite/CHANGELOG.md | 39 +++++++++++++++++++ packages/create-vite/package.json | 2 +- .../create-vite/template-lit-ts/package.json | 2 +- .../create-vite/template-lit/package.json | 2 +- .../template-preact-ts/package.json | 2 +- .../create-vite/template-preact/package.json | 2 +- .../template-react-ts/package.json | 4 +- .../create-vite/template-react/package.json | 4 +- .../template-svelte-ts/package.json | 2 +- .../create-vite/template-svelte/package.json | 2 +- .../template-vanilla-ts/package.json | 2 +- .../create-vite/template-vanilla/package.json | 2 +- .../create-vite/template-vue-ts/package.json | 4 +- .../create-vite/template-vue/package.json | 4 +- 14 files changed, 56 insertions(+), 17 deletions(-) diff --git a/packages/create-vite/CHANGELOG.md b/packages/create-vite/CHANGELOG.md index d8759a4e269c97..be26f7b3cce15a 100644 --- a/packages/create-vite/CHANGELOG.md +++ b/packages/create-vite/CHANGELOG.md @@ -1,3 +1,42 @@ +## 3.0.0 (2022-07-13) + +* chore: bump minors and rebuild lock (#8074) ([aeb5b74](https://github.com/vitejs/vite/commit/aeb5b74)), closes [#8074](https://github.com/vitejs/vite/issues/8074) +* chore: cleanup now that we've dropped Node 12 (#8239) ([29659a0](https://github.com/vitejs/vite/commit/29659a0)), closes [#8239](https://github.com/vitejs/vite/issues/8239) +* chore: enable ESLint for `__tests__` dir (#8370) ([cd21abf](https://github.com/vitejs/vite/commit/cd21abf)), closes [#8370](https://github.com/vitejs/vite/issues/8370) +* chore: update major deps (#8572) ([0e20949](https://github.com/vitejs/vite/commit/0e20949)), closes [#8572](https://github.com/vitejs/vite/issues/8572) +* chore: use node prefix (#8309) ([60721ac](https://github.com/vitejs/vite/commit/60721ac)), closes [#8309](https://github.com/vitejs/vite/issues/8309) +* chore: use vite-env.d.ts convention (#8988) ([cf23963](https://github.com/vitejs/vite/commit/cf23963)), closes [#8988](https://github.com/vitejs/vite/issues/8988) +* chore(create-vite): add current directory description (#8501) ([8d08220](https://github.com/vitejs/vite/commit/8d08220)), closes [#8501](https://github.com/vitejs/vite/issues/8501) +* chore(create-vite): react-ts non-null-assertion (#7881) ([771312b](https://github.com/vitejs/vite/commit/771312b)), closes [#7881](https://github.com/vitejs/vite/issues/7881) +* chore(create-vite): update logo and header styles (#8502) ([1f1ca5e](https://github.com/vitejs/vite/commit/1f1ca5e)), closes [#8502](https://github.com/vitejs/vite/issues/8502) +* chore(create-vite): upgrade vite-plugin-svelte (#9076) ([acaf9e0](https://github.com/vitejs/vite/commit/acaf9e0)), closes [#9076](https://github.com/vitejs/vite/issues/9076) +* chore(create-vite): use Type assertion in preact-ts (#8579) ([d1ba059](https://github.com/vitejs/vite/commit/d1ba059)), closes [#8579](https://github.com/vitejs/vite/issues/8579) +* chore(deps): update all non-major dependencies (#8474) ([6d0ede7](https://github.com/vitejs/vite/commit/6d0ede7)), closes [#8474](https://github.com/vitejs/vite/issues/8474) +* chore(deps): update all non-major dependencies (#8669) ([628863d](https://github.com/vitejs/vite/commit/628863d)), closes [#8669](https://github.com/vitejs/vite/issues/8669) +* chore(deps): update all non-major dependencies (#8905) ([4a24c17](https://github.com/vitejs/vite/commit/4a24c17)), closes [#8905](https://github.com/vitejs/vite/issues/8905) +* chore(deps): update all non-major dependencies (#9022) ([6342140](https://github.com/vitejs/vite/commit/6342140)), closes [#9022](https://github.com/vitejs/vite/issues/9022) +* chore(deps): update dependency @tsconfig/svelte to v3 (#8282) ([015ebed](https://github.com/vitejs/vite/commit/015ebed)), closes [#8282](https://github.com/vitejs/vite/issues/8282) +* fix: template-react-ts warning when importing path in vite.config.ts (#8924) ([0e6b82e](https://github.com/vitejs/vite/commit/0e6b82e)), closes [#8924](https://github.com/vitejs/vite/issues/8924) +* fix: use Vitest for unit testing, clean regex bug (#8040) ([63cd53d](https://github.com/vitejs/vite/commit/63cd53d)), closes [#8040](https://github.com/vitejs/vite/issues/8040) +* fix(create-vite): allow slash at the end of project path (#6897) ([8167db3](https://github.com/vitejs/vite/commit/8167db3)), closes [#6897](https://github.com/vitejs/vite/issues/6897) +* fix(create-vite): remove import from public (#9074) ([880f560](https://github.com/vitejs/vite/commit/880f560)), closes [#9074](https://github.com/vitejs/vite/issues/9074) +* fix(deps): update all non-major dependencies (#8281) ([c68db4d](https://github.com/vitejs/vite/commit/c68db4d)), closes [#8281](https://github.com/vitejs/vite/issues/8281) +* fix(deps): update all non-major dependencies (#8391) ([842f995](https://github.com/vitejs/vite/commit/842f995)), closes [#8391](https://github.com/vitejs/vite/issues/8391) +* fix(deps): update all non-major dependencies (#8558) ([9a1fd4c](https://github.com/vitejs/vite/commit/9a1fd4c)), closes [#8558](https://github.com/vitejs/vite/issues/8558) +* fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) +* fix(lib): use proper extension (#6827) ([34df307](https://github.com/vitejs/vite/commit/34df307)), closes [#6827](https://github.com/vitejs/vite/issues/6827) +* docs: correct pnpm command (#8763) ([8108b1b](https://github.com/vitejs/vite/commit/8108b1b)), closes [#8763](https://github.com/vitejs/vite/issues/8763) +* feat: bump minimum node version to 14.18.0 (#8662) ([8a05432](https://github.com/vitejs/vite/commit/8a05432)), closes [#8662](https://github.com/vitejs/vite/issues/8662) +* feat(create-vite): add `type: module` to all templates (#8251) ([c3ec60c](https://github.com/vitejs/vite/commit/c3ec60c)), closes [#8251](https://github.com/vitejs/vite/issues/8251) +* feat(create-vite): align template styles with docs (#8478) ([d72b3dd](https://github.com/vitejs/vite/commit/d72b3dd)), closes [#8478](https://github.com/vitejs/vite/issues/8478) +* feat(create-vite): migrate to ESM (#8253) ([49478ae](https://github.com/vitejs/vite/commit/49478ae)), closes [#8253](https://github.com/vitejs/vite/issues/8253) +* feat(create-vite): supports nested directory (closes #6638) (#6739) ([6ccf9aa](https://github.com/vitejs/vite/commit/6ccf9aa)), closes [#6638](https://github.com/vitejs/vite/issues/6638) [#6739](https://github.com/vitejs/vite/issues/6739) +* feat(create-vite): use framework brand glow color (#8539) ([3a21a5e](https://github.com/vitejs/vite/commit/3a21a5e)), closes [#8539](https://github.com/vitejs/vite/issues/8539) +* build!: bump targets (#8045) ([66efd69](https://github.com/vitejs/vite/commit/66efd69)), closes [#8045](https://github.com/vitejs/vite/issues/8045) +* build!: remove node v12 support (#7833) ([eeac2d2](https://github.com/vitejs/vite/commit/eeac2d2)), closes [#7833](https://github.com/vitejs/vite/issues/7833) + + + ## 2.9.3 (2022-05-02) * chore(create-vite): update reference to volar vscode extension (#7994) ([2b6d8fe](https://github.com/vitejs/vite/commit/2b6d8fe)), closes [#7994](https://github.com/vitejs/vite/issues/7994) diff --git a/packages/create-vite/package.json b/packages/create-vite/package.json index 87ff4af835b962..d89821f2405ee6 100644 --- a/packages/create-vite/package.json +++ b/packages/create-vite/package.json @@ -1,6 +1,6 @@ { "name": "create-vite", - "version": "2.9.3", + "version": "3.0.0", "type": "module", "license": "MIT", "author": "Evan You", diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index 879eb314424d9d..9ac74b11ea8f67 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": "^2.9.14" + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index 00a4b00871a6f4..bc4f15d8277c38 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -18,6 +18,6 @@ "lit": "^2.2.7" }, "devDependencies": { - "vite": "^2.9.14" + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 4f842e21784cdf..3b2a0782034603 100644 --- a/packages/create-vite/template-preact-ts/package.json +++ b/packages/create-vite/template-preact-ts/package.json @@ -14,6 +14,6 @@ "devDependencies": { "@preact/preset-vite": "^2.3.0", "typescript": "^4.6.4", - "vite": "^2.9.14" + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index bf03982ec213d4..c23859f67f7259 100644 --- a/packages/create-vite/template-preact/package.json +++ b/packages/create-vite/template-preact/package.json @@ -13,6 +13,6 @@ }, "devDependencies": { "@preact/preset-vite": "^2.3.0", - "vite": "^2.9.14" + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index 7aeee67e57f3f8..a50daeb100cd80 100644 --- a/packages/create-vite/template-react-ts/package.json +++ b/packages/create-vite/template-react-ts/package.json @@ -15,8 +15,8 @@ "devDependencies": { "@types/react": "^18.0.15", "@types/react-dom": "^18.0.6", - "@vitejs/plugin-react": "^1.3.2", + "@vitejs/plugin-react": "^2.0.0", "typescript": "^4.6.4", - "vite": "^2.9.14" + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index 3ecf8e3261091c..8da24a1e6f37a5 100644 --- a/packages/create-vite/template-react/package.json +++ b/packages/create-vite/template-react/package.json @@ -15,7 +15,7 @@ "devDependencies": { "@types/react": "^18.0.15", "@types/react-dom": "^18.0.6", - "@vitejs/plugin-react": "^1.3.2", - "vite": "^2.9.14" + "@vitejs/plugin-react": "^2.0.0", + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-svelte-ts/package.json b/packages/create-vite/template-svelte-ts/package.json index 38cdb946e6286b..840e12ccf4f727 100644 --- a/packages/create-vite/template-svelte-ts/package.json +++ b/packages/create-vite/template-svelte-ts/package.json @@ -17,6 +17,6 @@ "svelte-preprocess": "^4.10.7", "tslib": "^2.4.0", "typescript": "^4.6.4", - "vite": "^2.9.14" + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index fca83db9c715f7..a013a8d12ab2bd 100644 --- a/packages/create-vite/template-svelte/package.json +++ b/packages/create-vite/template-svelte/package.json @@ -11,6 +11,6 @@ "devDependencies": { "@sveltejs/vite-plugin-svelte": "^1.0.1", "svelte": "^3.49.0", - "vite": "^2.9.14" + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index 66e5d01782a4ba..d01e7542d12f7f 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": "^2.9.14" + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 26efffdf6e4d12..7a2186365da8eb 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": "^2.9.14" + "vite": "^3.0.0" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 47d46309b2e03f..65f699266a576c 100644 --- a/packages/create-vite/template-vue-ts/package.json +++ b/packages/create-vite/template-vue-ts/package.json @@ -12,9 +12,9 @@ "vue": "^3.2.37" }, "devDependencies": { - "@vitejs/plugin-vue": "^2.3.3", + "@vitejs/plugin-vue": "^3.0.0", "typescript": "^4.6.4", - "vite": "^2.9.14", + "vite": "^3.0.0", "vue-tsc": "^0.38.4" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index 5a6803d87e9b3f..17fa3246866674 100644 --- a/packages/create-vite/template-vue/package.json +++ b/packages/create-vite/template-vue/package.json @@ -12,7 +12,7 @@ "vue": "^3.2.37" }, "devDependencies": { - "@vitejs/plugin-vue": "^2.3.3", - "vite": "^2.9.14" + "@vitejs/plugin-vue": "^3.0.0", + "vite": "^3.0.0" } } From 24f4f62c5807f40ec45ec5834328d4b5cec47753 Mon Sep 17 00:00:00 2001 From: patak Date: Wed, 13 Jul 2022 15:40:22 +0200 Subject: [PATCH 055/716] docs: add cover image to v3 announcement post (#9077) --- docs/blog/announcing-vite3.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/blog/announcing-vite3.md b/docs/blog/announcing-vite3.md index d15d624822a671..b04ceac479f72b 100644 --- a/docs/blog/announcing-vite3.md +++ b/docs/blog/announcing-vite3.md @@ -34,6 +34,8 @@ head: In February last year, [Evan You](https://twitter.com/youyuxi) released Vite 2. Since then, its adoption has grown non-stop, reaching more than 1 million npm downloads per week. A sprawling ecosystem rapidly formed after the release. Vite is powering a renewed innovation race in Web frameworks. [Nuxt 3](https://v3.nuxtjs.org/) uses Vite by default. [SvelteKit](https://kit.svelte.dev/), [Astro](https://astro.build/), [Hydrogen](https://hydrogen.shopify.dev/), and [SolidStart](https://docs.solidjs.com/start) are all built with Vite. [Laravel has now decided to use Vite by default](https://laravel.com/docs/9.x/vite). [Vite Ruby](https://vite-ruby.netlify.app/) shows how Vite can improve Rails DX. [Vitest](https://vitest.dev) is making strides as a Vite-native alternative to Jest. Vite is behind [Cypress](https://docs.cypress.io/guides/component-testing/writing-your-first-component-test) and [Playwright](https://playwright.dev/docs/test-components)'s new Component Testing features, Storybook has [Vite as an official builder](https://github.com/storybookjs/builder-vite). And [the list goes on](https://patak.dev/vite/ecosystem.html). Maintainers from most of these projects got involved in improving the Vite core itself, working closely with the Vite [team](https://vitejs.dev/team) and other contributors. +![Vite 3 Announcement Cover Image](/og-image-announcing-vite3.png) + Today, 16 months from the v2 launch we are happy to announce the release of Vite 3. We decided to release a new Vite major at least every year to align with [Node.js's EOL](https://nodejs.org/en/about/releases/), and take the opportunity to review Vite's API regularly with a short migration path for projects in the ecosystem. Quick links: From 9eafb0e64b3ef55567bb95b8acb0f2718116fd25 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Wed, 13 Jul 2022 09:24:35 -0700 Subject: [PATCH 056/716] docs: fix broken link in v3 blog post (#9085) --- docs/blog/announcing-vite3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/blog/announcing-vite3.md b/docs/blog/announcing-vite3.md index b04ceac479f72b..e63deed2bba614 100644 --- a/docs/blog/announcing-vite3.md +++ b/docs/blog/announcing-vite3.md @@ -44,7 +44,7 @@ Quick links: - [Migration Guide](/guide/migration) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#300-2022-07-13) -If you are new to Vite, we recommend reading the [Why Vite Guide](https://vitejs.dev/guide/why.html). Then check out [the Getting Started](https://vitejs.dev/guide/getting-started) and [Features guide](https://vitejs.dev/guide/features) to see what Vite provides out of the box. As usual, contributions are welcome at [GitHub](https://github.com/vitejs/vite). More than [600 collaborators](https://github.com/vitejs/vite/graphs/contributors) have helped improve Vite so far. Follow the updates on [Twitter](https://twitter.com/vite_js), or join discussions with other Vite users on our [Discord chat server](http://chat.vitejs.dev/). +If you are new to Vite, we recommend reading the [Why Vite Guide](https://vitejs.dev/guide/why.html). Then check out [the Getting Started](https://vitejs.dev/guide/) and [Features guide](https://vitejs.dev/guide/features) to see what Vite provides out of the box. As usual, contributions are welcome at [GitHub](https://github.com/vitejs/vite). More than [600 collaborators](https://github.com/vitejs/vite/graphs/contributors) have helped improve Vite so far. Follow the updates on [Twitter](https://twitter.com/vite_js), or join discussions with other Vite users on our [Discord chat server](http://chat.vitejs.dev/). ## New Documentation From abbb5cc65f37e071f2cad26b75a1d754cd88ffef Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Wed, 13 Jul 2022 09:25:33 -0700 Subject: [PATCH 057/716] docs: clarify sentence in blog post (#9083) Co-authored-by: Bjorn Lu --- docs/blog/announcing-vite3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/blog/announcing-vite3.md b/docs/blog/announcing-vite3.md index e63deed2bba614..1a856b007e4605 100644 --- a/docs/blog/announcing-vite3.md +++ b/docs/blog/announcing-vite3.md @@ -220,7 +220,7 @@ Vite cares about its publish and install footprint; a fast installation of a new | Vite 3.0.0 | 3.05MB | 17.8MB | | Reduction | -30% | -7% | -In part, this reduction was possible by making some dependencies that most users weren't needing optional. First, [Terser](https://github.com/terser/terser) is no longer installed by default. This dependency was no longer needed since we already made esbuild the default minifier for both JS and CSS in Vite 2. If you use `build.minify: 'terser'`, you'll need to install it (`npm add -D terser`). We also moved [node-forge](https://github.com/digitalbazaar/forge) out of the monorepo, implementing support for automatic https certificate generation as a new plugins: [`@vitejs/plugin-basic-ssl`](/guide/migration.html#automatic-https-certificate-generation). It is recommended creating secure certificates, so this feature didn't justify the added size of this dependency. +In part, this reduction was possible by making some dependencies that most users weren't needing optional. First, [Terser](https://github.com/terser/terser) is no longer installed by default. This dependency was no longer needed since we already made esbuild the default minifier for both JS and CSS in Vite 2. If you use `build.minify: 'terser'`, you'll need to install it (`npm add -D terser`). We also moved [node-forge](https://github.com/digitalbazaar/forge) out of the monorepo, implementing support for automatic https certificate generation as a new plugin: [`@vitejs/plugin-basic-ssl`](/guide/migration.html#automatic-https-certificate-generation). Since this feature only creates untrusted certificates that are not added to the local store, it didn't justify the added size. ## Bug Fixing From e8e1e62e96b172c89af188cf17783857611b5fb4 Mon Sep 17 00:00:00 2001 From: davidbielik Date: Wed, 13 Jul 2022 12:25:55 -0400 Subject: [PATCH 058/716] docs: fix tree-shaking typo (#9080) --- docs/blog/announcing-vite3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/blog/announcing-vite3.md b/docs/blog/announcing-vite3.md index 1a856b007e4605..534676ac034672 100644 --- a/docs/blog/announcing-vite3.md +++ b/docs/blog/announcing-vite3.md @@ -152,7 +152,7 @@ import.meta.glob(['./dir/*.js', './another/*.js']) import.meta.glob(['./dir/*.js', '!**/bar.js']) ``` -[Named Imports](/guide/features.html#named-imports) can be specified to improve tree-shacking +[Named Imports](/guide/features.html#named-imports) can be specified to improve tree-shaking ```js import.meta.glob('./dir/*.js', { import: 'setup' }) From 4fbf9a8c55e6453aba0c6dc5d9b16956b33c2227 Mon Sep 17 00:00:00 2001 From: Ian VanSchooten Date: Wed, 13 Jul 2022 12:26:16 -0400 Subject: [PATCH 059/716] docs: update default for optimizeDeps.disabled (#9078) --- packages/vite/src/node/optimizer/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 4cbd13f8d965a7..97ce7706ba6e5e 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -122,8 +122,8 @@ export interface DepOptimizationConfig { /** * Disables dependencies optimizations, true disables the optimizer during * build and dev. Pass 'build' or 'dev' to only disable the optimizer in - * one of the modes. Deps optimization is enabled by default in both - * @default false + * one of the modes. Deps optimization is enabled by default in dev only. + * @default 'build' * @experimental */ disabled?: boolean | 'build' | 'dev' From 0ef8303806ed2b4961c9010cda0fe06cca43a2be Mon Sep 17 00:00:00 2001 From: Andrew <1881266+iamandrewluca@users.noreply.github.com> Date: Wed, 13 Jul 2022 20:36:48 +0300 Subject: [PATCH 060/716] docs: fix library mode example import (#9084) --- docs/guide/build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/build.md b/docs/guide/build.md index e5a4af31c865d2..a6bd0a5106587a 100644 --- a/docs/guide/build.md +++ b/docs/guide/build.md @@ -128,7 +128,7 @@ import { defineConfig } from 'vite' export default defineConfig({ build: { lib: { - entry: path.resolve(__dirname, 'lib/main.js'), + entry: resolve(__dirname, 'lib/main.js'), name: 'MyLib', // the proper extensions will be added fileName: 'my-lib' From cda5442fc5eae9a571536fb2fcea9d9f16c28365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 14 Jul 2022 02:37:47 +0900 Subject: [PATCH 061/716] docs: tweak ogp tags (#9079) --- docs/.vitepress/config.ts | 8 +++----- docs/blog/announcing-vite3.md | 19 +++++-------------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 1ab27cb3ad754d..0d7cf03dc9c47e 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -15,11 +15,9 @@ export default defineConfig({ ['meta', { property: 'og:title', content: ogTitle }], ['meta', { property: 'og:image', content: ogImage }], ['meta', { property: 'og:url', content: ogUrl }], - ['meta', { property: 'twitter:description', content: ogDescription }], - ['meta', { property: 'twitter:title', content: ogTitle }], - ['meta', { property: 'twitter:card', content: 'summary_large_image' }], - ['meta', { property: 'twitter:image', content: ogImage }], - ['meta', { property: 'twitter:url', content: ogUrl }] + ['meta', { property: 'og:description', content: ogDescription }], + ['meta', { name: 'twitter:card', content: 'summary_large_image' }], + ['meta', { name: 'twitter:site', content: '@vite_js' }] ], vue: { diff --git a/docs/blog/announcing-vite3.md b/docs/blog/announcing-vite3.md index 534676ac034672..4ac3cc4b680004 100644 --- a/docs/blog/announcing-vite3.md +++ b/docs/blog/announcing-vite3.md @@ -2,32 +2,23 @@ sidebar: false head: - - meta - - name: og:type + - property: og:type content: website - - meta - - name: og:title + - property: og:title content: Announcing Vite 3 - - meta - - name: og:image + - property: og:image content: https://vitejs.dev/og-image-announcing-vite3.png - - meta - - name: og:url + - property: og:url content: https://vitejs.dev/blog/announcing-vite3 - - meta - - name: twitter:description + - property: og:description content: Vite 3 Release Announcement - - - meta - - name: twitter:title - content: Announcing Vite 3 - - meta - name: twitter:card content: summary_large_image - - - meta - - name: twitter:image - content: https://vitejs.dev/og-image-announcing-vite3.png - - - meta - - name: twitter:url - content: https://vitejs.dev/blog/announcing-vite3 --- # Vite 3.0 is out! From 61fa3ecd479b111c356ff20bc27221228a00aea6 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Thu, 14 Jul 2022 15:04:28 +0800 Subject: [PATCH 062/716] docs: mention overview of vite issues (#9101) --- docs/blog/announcing-vite3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/blog/announcing-vite3.md b/docs/blog/announcing-vite3.md index 4ac3cc4b680004..ae7768966b2c32 100644 --- a/docs/blog/announcing-vite3.md +++ b/docs/blog/announcing-vite3.md @@ -215,7 +215,7 @@ In part, this reduction was possible by making some dependencies that most users ## Bug Fixing -A triaging marathon was spearheaded by [@bluwyoo](https://twitter.com/bluwyoo), [@sapphi_red](https://twitter.com/sapphi_red), that recently joined the Vite team. During the past three months, the Vite open issues were reduced from 770 to 400. And this dive was achieved while the newly open PRs were at an all-time high. +A triaging marathon was spearheaded by [@bluwyoo](https://twitter.com/bluwyoo), [@sapphi_red](https://twitter.com/sapphi_red), that recently joined the Vite team. During the past three months, the Vite open issues were reduced from 770 to 400. And this dive was achieved while the newly open PRs were at an all-time high. At the same time, [@haoqunjiang](https://twitter.com/haoqunjiang) had also curated a comprehensive [overview of Vite issues](https://github.com/vitejs/vite/discussions/8232). [![Graph of open issues and pull requests in Vite](../images/v3-open-issues-and-PRs.png)](https://www.repotrends.com/vitejs/vite) From ec030fd08429322d93883dcb6a10364779c3f89f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 14 Jul 2022 16:04:54 +0900 Subject: [PATCH 063/716] chore: remove note about v3 (#9090) --- README.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/README.md b/README.md index 9799c10e49598f..546014a12c7116 100644 --- a/README.md +++ b/README.md @@ -33,17 +33,6 @@ In addition, Vite is highly extensible via its [Plugin API](https://vitejs.dev/g [Read the Docs to Learn More](https://vitejs.dev). -## v3.0 - -Current Status: **Beta** (for internal testing, not recommended for production) - -The `main` branch is now for v3.0, if you are looking for current stable releases, check the [`v2` branch](https://github.com/vitejs/vite/tree/v2) branch instead. - -We will start drafting release notes and migration guide for v3.0 when we enter the beta stage. Before that you can check: - -- [v3.0 Milestone](https://github.com/vitejs/vite/milestone/5) -- [Breaking Change List](https://github.com/vitejs/vite/issues?q=label%3A%22breaking+change%22+is%3Aclosed+milestone%3A3.0) - ## Packages | Package | Version (click for changelogs) | From 8e0308bee847e5a1a126a86585ff102583e81c3c Mon Sep 17 00:00:00 2001 From: "Jeff Yang (Nay Thu Ya Aung)" <32727188+ydcjeff@users.noreply.github.com> Date: Thu, 14 Jul 2022 14:26:12 +0630 Subject: [PATCH 064/716] docs: add `appId` in vitepress config (#9099) --- docs/.vitepress/config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 0d7cf03dc9c47e..a4e721571b1811 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -39,6 +39,7 @@ export default defineConfig({ ], algolia: { + appId: 'BH4D9OD16A', apiKey: 'b573aa848fd57fb47d693b531297403c', indexName: 'vitejs', searchParameters: { From 60fa6ba082c50d57ec4abecb196573f4100636d2 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Thu, 14 Jul 2022 16:41:54 +0800 Subject: [PATCH 065/716] docs: update library mode info (#9102) --- docs/guide/build.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/guide/build.md b/docs/guide/build.md index a6bd0a5106587a..5fe3c2a78e25f8 100644 --- a/docs/guide/build.md +++ b/docs/guide/build.md @@ -163,8 +163,8 @@ Running `vite build` with this config uses a Rollup preset that is oriented towa ``` $ vite build building for production... -[write] my-lib.mjs 0.08kb, brotli: 0.07kb -[write] my-lib.umd.js 0.30kb, brotli: 0.16kb +dist/my-lib.js 0.08 KiB / gzip: 0.07 KiB +dist/my-lib.umd.cjs 0.30 KiB / gzip: 0.16 KiB ``` Recommended `package.json` for your lib: @@ -172,18 +172,23 @@ Recommended `package.json` for your lib: ```json { "name": "my-lib", + "type": "module", "files": ["dist"], - "main": "./dist/my-lib.umd.js", - "module": "./dist/my-lib.mjs", + "main": "./dist/my-lib.umd.cjs", + "module": "./dist/my-lib.js", "exports": { ".": { - "import": "./dist/my-lib.mjs", - "require": "./dist/my-lib.umd.js" + "import": "./dist/my-lib.js", + "require": "./dist/my-lib.umd.cjs" } } } ``` +::: tip Note +If the `package.json` does not contain `"type": "module"`, Vite will generate different file extensions for Node.js compatibility. `.js` will become `.mjs` and `.cjs` will become `.js`. +::: + ## Advanced Base Options ::: warning From b3934516431659b36ccfbfe1a87a3e73595982a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 14 Jul 2022 18:26:40 +0900 Subject: [PATCH 066/716] fix: resolve drive relative path (#9097) --- packages/vite/src/node/plugins/resolve.ts | 12 ++++++ playground/resolve/__tests__/resolve.spec.ts | 10 ++++- playground/resolve/absolute.js | 1 + playground/resolve/drive-relative.js | 1 + playground/resolve/index.html | 7 ++++ playground/resolve/vite.config.js | 43 ++++++++++++++++++++ 6 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 playground/resolve/absolute.js create mode 100644 playground/resolve/drive-relative.js diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index 1ebe847359384c..af86ef76193c92 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -28,6 +28,7 @@ import { isObject, isPossibleTsOutput, isTsRequest, + isWindows, nestedResolveFrom, normalizePath, resolveFrom, @@ -243,6 +244,17 @@ export function resolvePlugin(resolveOptions: InternalResolveOptions): Plugin { } } + // drive relative fs paths (only windows) + if (isWindows && id.startsWith('/')) { + const basedir = importer ? path.dirname(importer) : process.cwd() + const fsPath = path.resolve(basedir, id) + if ((res = tryFsResolve(fsPath, options))) { + isDebug && + debug(`[drive-relative] ${colors.cyan(id)} -> ${colors.dim(res)}`) + return res + } + } + // absolute fs paths if ( isNonDriveRelativeAbsolutePath(id) && diff --git a/playground/resolve/__tests__/resolve.spec.ts b/playground/resolve/__tests__/resolve.spec.ts index 79ab9dce6409c3..e95e6d78c409c5 100644 --- a/playground/resolve/__tests__/resolve.spec.ts +++ b/playground/resolve/__tests__/resolve.spec.ts @@ -1,4 +1,4 @@ -import { isBuild, page } from '~utils' +import { isBuild, isWindows, page } from '~utils' test('bom import', async () => { expect(await page.textContent('.utf8-bom')).toMatch('[success]') @@ -75,6 +75,14 @@ test('filename with dot', async () => { expect(await page.textContent('.dot')).toMatch('[success]') }) +test.runIf(isWindows)('drive-relative path', async () => { + expect(await page.textContent('.drive-relative')).toMatch('[success]') +}) + +test('absolute path', async () => { + expect(await page.textContent('.absolute')).toMatch('[success]') +}) + test('browser field', async () => { expect(await page.textContent('.browser')).toMatch('[success]') }) diff --git a/playground/resolve/absolute.js b/playground/resolve/absolute.js new file mode 100644 index 00000000000000..c0581888ebb90b --- /dev/null +++ b/playground/resolve/absolute.js @@ -0,0 +1 @@ +export default '[success] absolute' diff --git a/playground/resolve/drive-relative.js b/playground/resolve/drive-relative.js new file mode 100644 index 00000000000000..188ac36e661b35 --- /dev/null +++ b/playground/resolve/drive-relative.js @@ -0,0 +1 @@ +export default '[success] drive relative' diff --git a/playground/resolve/index.html b/playground/resolve/index.html index 1920ebb675d24c..a1befcc2757348 100644 --- a/playground/resolve/index.html +++ b/playground/resolve/index.html @@ -55,6 +55,12 @@

Resolve file name containing dot

fail

+

Resolve drive-relative path (Windows only)

+

fail

+ +

Resolve absolute path

+

fail

+

Browser Field

fail

@@ -89,6 +95,7 @@

resolve package that contains # in path

diff --git a/playground/build-old/package.json b/playground/build-old/package.json new file mode 100644 index 00000000000000..bb7f1b9b861538 --- /dev/null +++ b/playground/build-old/package.json @@ -0,0 +1,11 @@ +{ + "name": "test-build-old", + "private": true, + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "vite build", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", + "preview": "vite preview" + } +} diff --git a/playground/build-old/vite.config.js b/playground/build-old/vite.config.js new file mode 100644 index 00000000000000..aa85af55972eb1 --- /dev/null +++ b/playground/build-old/vite.config.js @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite' + +export default defineConfig({ + build: { + // old browsers only + target: ['chrome60'] + } +}) From a52b45ea3d1b0f37effa100a571a7bf267e7c2d6 Mon Sep 17 00:00:00 2001 From: Lucas Garron Date: Fri, 15 Jul 2022 06:42:50 -0700 Subject: [PATCH 076/716] fix: avoid errors when loading the overlay code in workers (#9064) --- packages/vite/src/client/overlay.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/vite/src/client/overlay.ts b/packages/vite/src/client/overlay.ts index 150c570fbc8aaf..6a43434b7f320c 100644 --- a/packages/vite/src/client/overlay.ts +++ b/packages/vite/src/client/overlay.ts @@ -115,6 +115,9 @@ code { const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d+/g const codeframeRE = /^(?:>?\s+\d+\s+\|.*|\s+\|\s*\^.*)\r?\n/gm +// Allow `ErrorOverlay` to extend `HTMLElement` even in environments where +// `HTMLElement` was not originally defined. +const { HTMLElement = class {} } = globalThis export class ErrorOverlay extends HTMLElement { root: ShadowRoot @@ -184,6 +187,7 @@ export class ErrorOverlay extends HTMLElement { } export const overlayId = 'vite-error-overlay' +const { customElements } = globalThis // Ensure `customElements` is defined before the next line. if (customElements && !customElements.get(overlayId)) { customElements.define(overlayId, ErrorOverlay) } From 5a8a3ab5af24ef924958df36d9a41a8c5c009b76 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 15 Jul 2022 23:56:36 +0800 Subject: [PATCH 077/716] fix: externalize workspace relative import when bundle config (#9140) --- packages/vite/src/node/config.ts | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 28fe2cdebb8e58..6b9195f17927ed 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -900,13 +900,40 @@ async function bundleConfigFile( { name: 'externalize-deps', setup(build) { - build.onResolve({ filter: /.*/ }, (args) => { - const id = args.path + build.onResolve({ filter: /.*/ }, ({ path: id, importer }) => { + // externalize bare imports if (id[0] !== '.' && !path.isAbsolute(id)) { return { external: true } } + // bundle the rest and make sure that the we can also access + // it's third-party dependencies. externalize if not. + // monorepo/ + // ├─ package.json + // ├─ utils.js -----------> bundle (share same node_modules) + // ├─ vite-project/ + // │ ├─ vite.config.js --> entry + // │ ├─ package.json + // ├─ foo-project/ + // │ ├─ utils.js --------> external (has own node_modules) + // │ ├─ package.json + const idFsPath = path.resolve(path.dirname(importer), id) + const idPkgPath = lookupFile(idFsPath, [`package.json`], { + pathOnly: true + }) + if (idPkgPath) { + const idPkgDir = path.dirname(idPkgPath) + // if this file needs to go up one or more directory to reach the vite config, + // that means it has it's own node_modules (e.g. foo-project) + if (path.relative(idPkgDir, fileName).startsWith('..')) { + return { + // normalize actual import after bundled as a single vite config + path: idFsPath, + external: true + } + } + } }) } }, From 5ea70b3c3cd5f208471338c5832a3eba1aafb01d Mon Sep 17 00:00:00 2001 From: Manu MA Date: Fri, 15 Jul 2022 18:35:22 +0200 Subject: [PATCH 078/716] fix: respect .mjs .cjs extension in all modes (#9141) --- packages/vite/src/node/build.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 973dcef199d8ee..64c32e616813ca 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -466,10 +466,10 @@ async function doBuild( ? `[name].${jsExt}` : libOptions ? resolveLibFilename(libOptions, format, config.root, jsExt) - : path.posix.join(options.assetsDir, `[name].[hash].js`), + : path.posix.join(options.assetsDir, `[name].[hash].${jsExt}`), chunkFileNames: libOptions ? `[name].[hash].${jsExt}` - : path.posix.join(options.assetsDir, `[name].[hash].js`), + : path.posix.join(options.assetsDir, `[name].[hash].${jsExt}`), assetFileNames: libOptions ? `[name].[ext]` : path.posix.join(options.assetsDir, `[name].[hash].[ext]`), From 5844d8e3480e7713acfa7655666bf0076dcb8879 Mon Sep 17 00:00:00 2001 From: patak Date: Fri, 15 Jul 2022 23:40:24 +0200 Subject: [PATCH 079/716] fix: ssr.external/noExternal should apply to packageName (#9146) --- packages/vite/src/node/ssr/ssrExternal.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/ssr/ssrExternal.ts b/packages/vite/src/node/ssr/ssrExternal.ts index c69c117ebde843..6c21c06ca8833b 100644 --- a/packages/vite/src/node/ssr/ssrExternal.ts +++ b/packages/vite/src/node/ssr/ssrExternal.ts @@ -120,13 +120,17 @@ export function createIsConfiguredAsSsrExternal( return (id: string) => { const { ssr } = config if (ssr) { - if (ssr.external?.includes(id)) { + const pkgName = getNpmPackageName(id) + if (!pkgName) { + return undefined + } + if (ssr.external?.includes(pkgName)) { return true } if (typeof noExternal === 'boolean') { return !noExternal } - if (noExternalFilter && !noExternalFilter(id)) { + if (noExternalFilter && !noExternalFilter(pkgName)) { return false } } From 1e078ad1902ae980741d6920fc3a72d182fcf179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Sat, 16 Jul 2022 17:26:23 +0900 Subject: [PATCH 080/716] feat: allow declaring dirname (#9154) --- docs/config/index.md | 13 ------------- packages/vite/src/node/config.ts | 10 ++++++++-- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/docs/config/index.md b/docs/config/index.md index 34675192fe6484..0ffd9f05967fbd 100644 --- a/docs/config/index.md +++ b/docs/config/index.md @@ -23,19 +23,6 @@ You can also explicitly specify a config file to use with the `--config` CLI opt vite --config my-config.js ``` -::: tip NOTE -Vite will inject `__filename`, `__dirname` in config files and its deps. Declaring these variables at top level will result in an error: - -```js -const __filename = 'value' // SyntaxError: Identifier '__filename' has already been declared - -const func = () => { - const __filename = 'value' // no error -} -``` - -::: - ## Config Intellisense Since Vite ships with TypeScript typings, you can leverage your IDE's intellisense with jsdoc type hints: diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 6b9195f17927ed..ef1fdbe522c133 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -882,6 +882,8 @@ async function bundleConfigFile( fileName: string, isESM: boolean ): Promise<{ code: string; dependencies: string[] }> { + const dirnameVarName = '__vite_injected_original_dirname' + const filenameVarName = '__vite_injected_original_filename' const importMetaUrlVarName = '__vite_injected_original_import_meta_url' const result = await build({ absWorkingDir: process.cwd(), @@ -894,6 +896,8 @@ async function bundleConfigFile( sourcemap: 'inline', metafile: true, define: { + __dirname: dirnameVarName, + __filename: filenameVarName, 'import.meta.url': importMetaUrlVarName }, plugins: [ @@ -943,8 +947,10 @@ async function bundleConfigFile( build.onLoad({ filter: /\.[cm]?[jt]s$/ }, async (args) => { const contents = await fs.promises.readFile(args.path, 'utf8') const injectValues = - `const __dirname = ${JSON.stringify(path.dirname(args.path))};` + - `const __filename = ${JSON.stringify(args.path)};` + + `const ${dirnameVarName} = ${JSON.stringify( + path.dirname(args.path) + )};` + + `const ${filenameVarName} = ${JSON.stringify(args.path)};` + `const ${importMetaUrlVarName} = ${JSON.stringify( pathToFileURL(args.path).href )};` From 344642ad630d8658308dbf707ed805cb04b49d58 Mon Sep 17 00:00:00 2001 From: Peter Mekhaeil <4616064+petermekhaeil@users.noreply.github.com> Date: Sun, 17 Jul 2022 05:43:56 +0800 Subject: [PATCH 081/716] docs: fix broken link to envPrefix config option (#9161) --- docs/guide/env-and-mode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/env-and-mode.md b/docs/guide/env-and-mode.md index 43da3c3b8ace38..c91a53dc6f1a2b 100644 --- a/docs/guide/env-and-mode.md +++ b/docs/guide/env-and-mode.md @@ -60,7 +60,7 @@ console.log(import.meta.env.VITE_SOME_KEY) // 123 console.log(import.meta.env.DB_PASSWORD) // undefined ``` -If you want to customize env variables prefix, see [envPrefix](/config/index#envprefix) option. +If you want to customize env variables prefix, see [envPrefix](/config/shared-options.html#envprefix) option. :::warning SECURITY NOTES From cc980b09444f67bdcd07481edf9e0c0de6b9b5bd Mon Sep 17 00:00:00 2001 From: "li.li" Date: Sun, 17 Jul 2022 13:02:25 +0800 Subject: [PATCH 082/716] docs: __dirname is not available in ES modules (#9151) --- docs/guide/ssr.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/guide/ssr.md b/docs/guide/ssr.md index 747572d1b0b66b..6defcd69dec1a6 100644 --- a/docs/guide/ssr.md +++ b/docs/guide/ssr.md @@ -64,8 +64,11 @@ When building an SSR app, you likely want to have full control over your main se ```js{17-19} import fs from 'fs' import path from 'path' +import { fileURLToPath } from 'url' import express from 'express' -import {createServer as createViteServer} from 'vite' +import { createServer as createViteServer } from 'vite' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) async function createServer() { const app = express() From e6f3b026bd1e281cfad6b19386195b6c2dc94165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Sun, 17 Jul 2022 21:24:30 +0900 Subject: [PATCH 083/716] fix: disable keepNames in `vite:esbuild` (fixes #9164) (#9166) --- packages/vite/src/node/plugins/esbuild.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/plugins/esbuild.ts b/packages/vite/src/node/plugins/esbuild.ts index 9fd20151de8365..6ed963a5d5981c 100644 --- a/packages/vite/src/node/plugins/esbuild.ts +++ b/packages/vite/src/node/plugins/esbuild.ts @@ -182,7 +182,11 @@ export function esbuildPlugin(options: ESBuildOptions = {}): Plugin { minifyIdentifiers: false, minifySyntax: false, minifyWhitespace: false, - treeShaking: false + treeShaking: false, + // keepNames is not needed when minify is disabled. + // Also transforming multiple times with keepNames enabled breaks + // tree-shaking. (#9164) + keepNames: false } return { From d2f02a848bb2b4f8da0102f00988954d193de59d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Mon, 18 Jul 2022 03:45:27 +0900 Subject: [PATCH 084/716] fix: return 500 on proxy error only if possible (fixes #9172) (#9175) --- packages/vite/src/node/server/middlewares/proxy.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/vite/src/node/server/middlewares/proxy.ts b/packages/vite/src/node/server/middlewares/proxy.ts index 78095080157b4e..0f83ecb723fa19 100644 --- a/packages/vite/src/node/server/middlewares/proxy.ts +++ b/packages/vite/src/node/server/middlewares/proxy.ts @@ -55,11 +55,13 @@ export function proxyMiddleware( error: err } ) - res - .writeHead(500, { - 'Content-Type': 'text/plain' - }) - .end() + if (!res.writableEnded) { + res + .writeHead(500, { + 'Content-Type': 'text/plain' + }) + .end() + } } else { config.logger.error(`${colors.red(`ws proxy error:`)}\n${err.stack}`, { timestamp: true, From 33b5b0d0231f4ce0f40c799965f9352ae062eff3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=89=E9=9E=8B=E6=B2=A1=E5=8F=B7?= <308487730@qq.com> Date: Mon, 18 Jul 2022 12:20:51 +0800 Subject: [PATCH 085/716] chore: remove unused `favicon.svg` (#9181) --- .../create-vite/template-vanilla-ts/favicon.svg | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 packages/create-vite/template-vanilla-ts/favicon.svg diff --git a/packages/create-vite/template-vanilla-ts/favicon.svg b/packages/create-vite/template-vanilla-ts/favicon.svg deleted file mode 100644 index de4aeddc12bdfe..00000000000000 --- a/packages/create-vite/template-vanilla-ts/favicon.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - From 8db00d86032ef52c3774f7fe6debf9d50b633316 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Mon, 18 Jul 2022 07:36:36 +0200 Subject: [PATCH 086/716] release: v3.0.1 --- packages/vite/CHANGELOG.md | 21 +++++++++++++++++++++ packages/vite/package.json | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index acc3b4194113ce..b96232e12f9fe9 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,24 @@ +## 3.0.1 (2022-07-18) + +* fix: avoid errors when loading the overlay code in workers (#9064) ([a52b45e](https://github.com/vitejs/vite/commit/a52b45e)), closes [#9064](https://github.com/vitejs/vite/issues/9064) +* fix: check server after tsconfig reload (#9106) ([d12d469](https://github.com/vitejs/vite/commit/d12d469)), closes [#9106](https://github.com/vitejs/vite/issues/9106) +* fix: disable keepNames in `vite:esbuild` (fixes #9164) (#9166) ([e6f3b02](https://github.com/vitejs/vite/commit/e6f3b02)), closes [#9164](https://github.com/vitejs/vite/issues/9164) [#9166](https://github.com/vitejs/vite/issues/9166) +* fix: externalize workspace relative import when bundle config (#9140) ([5a8a3ab](https://github.com/vitejs/vite/commit/5a8a3ab)), closes [#9140](https://github.com/vitejs/vite/issues/9140) +* fix: mention that Node.js 13/15 support is dropped (fixes #9113) (#9116) ([2826303](https://github.com/vitejs/vite/commit/2826303)), closes [#9113](https://github.com/vitejs/vite/issues/9113) [#9116](https://github.com/vitejs/vite/issues/9116) +* fix: resolve drive relative path (#9097) ([b393451](https://github.com/vitejs/vite/commit/b393451)), closes [#9097](https://github.com/vitejs/vite/issues/9097) +* fix: respect .mjs .cjs extension in all modes (#9141) ([5ea70b3](https://github.com/vitejs/vite/commit/5ea70b3)), closes [#9141](https://github.com/vitejs/vite/issues/9141) +* fix: return 500 on proxy error only if possible (fixes #9172) (#9175) ([d2f02a8](https://github.com/vitejs/vite/commit/d2f02a8)), closes [#9172](https://github.com/vitejs/vite/issues/9172) [#9175](https://github.com/vitejs/vite/issues/9175) +* fix: server.proxy ws error causes crash (#9123) ([c2426d1](https://github.com/vitejs/vite/commit/c2426d1)), closes [#9123](https://github.com/vitejs/vite/issues/9123) +* fix: ssr.external/noExternal should apply to packageName (#9146) ([5844d8e](https://github.com/vitejs/vite/commit/5844d8e)), closes [#9146](https://github.com/vitejs/vite/issues/9146) +* fix: use correct require extension to load config (#9118) ([ebf682e](https://github.com/vitejs/vite/commit/ebf682e)), closes [#9118](https://github.com/vitejs/vite/issues/9118) +* fix(esbuild): always support dynamic import and import meta (#9105) ([57a7936](https://github.com/vitejs/vite/commit/57a7936)), closes [#9105](https://github.com/vitejs/vite/issues/9105) +* feat: allow declaring dirname (#9154) ([1e078ad](https://github.com/vitejs/vite/commit/1e078ad)), closes [#9154](https://github.com/vitejs/vite/issues/9154) +* refactor: always load config with esbuild bundled code (#9121) ([a2b3131](https://github.com/vitejs/vite/commit/a2b3131)), closes [#9121](https://github.com/vitejs/vite/issues/9121) +* docs: update default for optimizeDeps.disabled (#9078) ([4fbf9a8](https://github.com/vitejs/vite/commit/4fbf9a8)), closes [#9078](https://github.com/vitejs/vite/issues/9078) +* chore: 3.0 release notes and bump peer deps (#9072) ([427ba26](https://github.com/vitejs/vite/commit/427ba26)), closes [#9072](https://github.com/vitejs/vite/issues/9072) + + + ## 3.0.0 (2022-07-13) ### Main Changes diff --git a/packages/vite/package.json b/packages/vite/package.json index 6dceeab2c83bca..33da66cf55aa8d 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "vite", - "version": "3.0.0", + "version": "3.0.1", "type": "module", "license": "MIT", "author": "Evan You", From 9d12a6d3d07dc7e4aa9fd074e69cfa66cc2ca065 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Mon, 18 Jul 2022 07:37:33 +0200 Subject: [PATCH 087/716] release: plugin-vue@3.0.1 --- packages/plugin-vue/CHANGELOG.md | 8 ++++++++ packages/plugin-vue/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/plugin-vue/CHANGELOG.md b/packages/plugin-vue/CHANGELOG.md index b71b477954bd1c..2bc0752d6fc351 100644 --- a/packages/plugin-vue/CHANGELOG.md +++ b/packages/plugin-vue/CHANGELOG.md @@ -1,3 +1,11 @@ +## 3.0.1 (2022-07-18) + +* fix: mention that Node.js 13/15 support is dropped (fixes #9113) (#9116) ([2826303](https://github.com/vitejs/vite/commit/2826303)), closes [#9113](https://github.com/vitejs/vite/issues/9113) [#9116](https://github.com/vitejs/vite/issues/9116) +* fix(vue): remove ssr.external config (#9128) ([ec91f98](https://github.com/vitejs/vite/commit/ec91f98)), closes [#9128](https://github.com/vitejs/vite/issues/9128) +* refactor(vue): limit passable compilerOptions (#8994) ([b7b3e65](https://github.com/vitejs/vite/commit/b7b3e65)), closes [#8994](https://github.com/vitejs/vite/issues/8994) + + + ## 3.0.0 (2022-07-13) * chore: 3.0 release notes and bump peer deps (#9072) ([427ba26](https://github.com/vitejs/vite/commit/427ba26)), closes [#9072](https://github.com/vitejs/vite/issues/9072) diff --git a/packages/plugin-vue/package.json b/packages/plugin-vue/package.json index 53a4b924d9ca5d..255e1936174e30 100644 --- a/packages/plugin-vue/package.json +++ b/packages/plugin-vue/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-vue", - "version": "3.0.0", + "version": "3.0.1", "license": "MIT", "author": "Evan You", "files": [ From 2139ac14eb1e75d5c2b4a7609fb0bd7ff13be58e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Jul 2022 10:38:00 +0200 Subject: [PATCH 088/716] chore(deps): update dependency @types/estree to v1 (#9177) --- package.json | 2 +- pnpm-lock.yaml | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d601f4f4b4f35b..f830961f650b2c 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@types/convert-source-map": "^1.5.2", "@types/cross-spawn": "^6.0.2", "@types/debug": "^4.1.7", - "@types/estree": "^0.0.52", + "@types/estree": "^1.0.0", "@types/etag": "^1.8.1", "@types/fs-extra": "^9.0.13", "@types/hash-sum": "^1.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c3511025f8704..01eeff331cab94 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,7 +18,7 @@ importers: '@types/convert-source-map': ^1.5.2 '@types/cross-spawn': ^6.0.2 '@types/debug': ^4.1.7 - '@types/estree': ^0.0.52 + '@types/estree': ^1.0.0 '@types/etag': ^1.8.1 '@types/fs-extra': ^9.0.13 '@types/hash-sum': ^1.0.0 @@ -76,7 +76,7 @@ importers: '@types/convert-source-map': 1.5.2 '@types/cross-spawn': 6.0.2 '@types/debug': 4.1.7 - '@types/estree': 0.0.52 + '@types/estree': 1.0.0 '@types/etag': 1.8.1 '@types/fs-extra': 9.0.13 '@types/hash-sum': 1.0.0 @@ -370,6 +370,9 @@ importers: sass: 1.53.0 tailwindcss: 3.1.5 + playground/build-old: + specifiers: {} + playground/cli: specifiers: {} @@ -2561,8 +2564,8 @@ packages: resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} dev: true - /@types/estree/0.0.52: - resolution: {integrity: sha512-BZWrtCU0bMVAIliIV+HJO1f1PR41M7NKjfxrFJwwhKI1KwhwOxYw1SXg9ao+CIMt774nFuGiG6eU+udtbEI9oQ==} + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} dev: true /@types/etag/1.8.1: From 28cffc94d2cc7dc4932121d8ef835f97f6b0c25e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Mon, 18 Jul 2022 20:18:34 +0900 Subject: [PATCH 089/716] fix: fs serve only edit pathname (fixes #9148) (#9173) --- .../src/node/server/middlewares/static.ts | 42 +++++++++++-------- .../fs-serve/__tests__/fs-serve.spec.ts | 10 +++++ playground/fs-serve/root/src/index.html | 25 +++++++++++ 3 files changed, 59 insertions(+), 18 deletions(-) diff --git a/packages/vite/src/node/server/middlewares/static.ts b/packages/vite/src/node/server/middlewares/static.ts index 3b482068bd6138..ed0d162b59c936 100644 --- a/packages/vite/src/node/server/middlewares/static.ts +++ b/packages/vite/src/node/server/middlewares/static.ts @@ -80,36 +80,40 @@ export function serveStaticMiddleware( return next() } - const url = decodeURIComponent(req.url!) + const url = new URL(req.url!, 'http://example.com') + const pathname = decodeURIComponent(url.pathname) // apply aliases to static requests as well - let redirected: string | undefined + let redirectedPathname: string | undefined for (const { find, replacement } of server.config.resolve.alias) { const matches = - typeof find === 'string' ? url.startsWith(find) : find.test(url) + typeof find === 'string' + ? pathname.startsWith(find) + : find.test(pathname) if (matches) { - redirected = url.replace(find, replacement) + redirectedPathname = pathname.replace(find, replacement) break } } - if (redirected) { + if (redirectedPathname) { // dir is pre-normalized to posix style - if (redirected.startsWith(dir)) { - redirected = redirected.slice(dir.length) + if (redirectedPathname.startsWith(dir)) { + redirectedPathname = redirectedPathname.slice(dir.length) } } - const resolvedUrl = redirected || url - let fileUrl = path.resolve(dir, resolvedUrl.replace(/^\//, '')) - if (resolvedUrl.endsWith('/') && !fileUrl.endsWith('/')) { + const resolvedPathname = redirectedPathname || pathname + let fileUrl = path.resolve(dir, resolvedPathname.replace(/^\//, '')) + if (resolvedPathname.endsWith('/') && !fileUrl.endsWith('/')) { fileUrl = fileUrl + '/' } if (!ensureServingAccess(fileUrl, server, res, next)) { return } - if (redirected) { - req.url = encodeURIComponent(redirected) + if (redirectedPathname) { + url.pathname = encodeURIComponent(redirectedPathname) + req.url = url.href.slice(url.origin.length) } serve(req, res, next) @@ -123,16 +127,17 @@ export function serveRawFsMiddleware( // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...` return function viteServeRawFsMiddleware(req, res, next) { - let url = decodeURIComponent(req.url!) + const url = new URL(req.url!, 'http://example.com') // In some cases (e.g. linked monorepos) files outside of root will // reference assets that are also out of served root. In such cases // the paths are rewritten to `/@fs/` prefixed paths and must be served by // searching based from fs root. - if (url.startsWith(FS_PREFIX)) { + if (url.pathname.startsWith(FS_PREFIX)) { + const pathname = decodeURIComponent(url.pathname) // restrict files outside of `fs.allow` if ( !ensureServingAccess( - slash(path.resolve(fsPathFromId(url))), + slash(path.resolve(fsPathFromId(pathname))), server, res, next @@ -141,10 +146,11 @@ export function serveRawFsMiddleware( return } - url = url.slice(FS_PREFIX.length) - if (isWindows) url = url.replace(/^[A-Z]:/i, '') + let newPathname = pathname.slice(FS_PREFIX.length) + if (isWindows) newPathname = newPathname.replace(/^[A-Z]:/i, '') - req.url = encodeURIComponent(url) + url.pathname = encodeURIComponent(newPathname) + req.url = url.href.slice(url.origin.length) serveFromRoot(req, res, next) } else { next() diff --git a/playground/fs-serve/__tests__/fs-serve.spec.ts b/playground/fs-serve/__tests__/fs-serve.spec.ts index d65ccdea7368cf..142b4ac9ca3131 100644 --- a/playground/fs-serve/__tests__/fs-serve.spec.ts +++ b/playground/fs-serve/__tests__/fs-serve.spec.ts @@ -21,6 +21,11 @@ describe.runIf(isServe)('main', () => { expect(await page.textContent('.safe-fetch-status')).toBe('200') }) + test('safe fetch with query', async () => { + expect(await page.textContent('.safe-fetch-query')).toMatch('KEY=safe') + expect(await page.textContent('.safe-fetch-query-status')).toBe('200') + }) + test('safe fetch with special characters', async () => { expect( await page.textContent('.safe-fetch-subdir-special-characters') @@ -52,6 +57,11 @@ describe.runIf(isServe)('main', () => { expect(await page.textContent('.safe-fs-fetch-status')).toBe('200') }) + test('safe fs fetch', async () => { + expect(await page.textContent('.safe-fs-fetch-query')).toBe(stringified) + expect(await page.textContent('.safe-fs-fetch-query-status')).toBe('200') + }) + test('safe fs fetch with special characters', async () => { expect(await page.textContent('.safe-fs-fetch-special-characters')).toBe( stringified diff --git a/playground/fs-serve/root/src/index.html b/playground/fs-serve/root/src/index.html index 68eed69810c7d4..95b31e73d72ea6 100644 --- a/playground/fs-serve/root/src/index.html +++ b/playground/fs-serve/root/src/index.html @@ -7,6 +7,8 @@

Normal Import

Safe Fetch


 

+

+

 
 

Safe Fetch Subdirectory


@@ -25,6 +27,8 @@ 

Unsafe Fetch

Safe /@fs/ Fetch


 

+

+

 

 

 
@@ -58,6 +62,17 @@ 

Denied

.then((data) => { text('.safe-fetch', JSON.stringify(data)) }) + + // inside allowed dir with query, safe fetch + fetch('/src/safe.txt?query') + .then((r) => { + text('.safe-fetch-query-status', r.status) + return r.text() + }) + .then((data) => { + text('.safe-fetch-query', JSON.stringify(data)) + }) + // inside allowed dir, safe fetch fetch('/src/subdir/safe.txt') .then((r) => { @@ -127,6 +142,16 @@

Denied

text('.safe-fs-fetch', JSON.stringify(data)) }) + // imported before with query, should be treated as safe + fetch('/@fs/' + ROOT + '/safe.json?query') + .then((r) => { + text('.safe-fs-fetch-query-status', r.status) + return r.json() + }) + .then((data) => { + text('.safe-fs-fetch-query', JSON.stringify(data)) + }) + // not imported before, outside of root, treated as unsafe fetch('/@fs/' + ROOT + '/unsafe.json') .then((r) => { From 31d3b70672ea8759a8d7ff1993d64bb4f0e30fab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Jul 2022 14:44:00 +0200 Subject: [PATCH 090/716] fix(deps): update all non-major dependencies (#9176) --- package.json | 20 +- .../create-vite/template-lit-ts/package.json | 2 +- .../create-vite/template-lit/package.json | 2 +- .../template-preact-ts/package.json | 4 +- .../create-vite/template-preact/package.json | 4 +- .../template-react-ts/package.json | 2 +- .../create-vite/template-react/package.json | 2 +- .../template-svelte-ts/package.json | 2 +- .../create-vite/template-svelte/package.json | 2 +- .../template-vanilla-ts/package.json | 2 +- .../create-vite/template-vanilla/package.json | 2 +- .../create-vite/template-vue-ts/package.json | 6 +- .../create-vite/template-vue/package.json | 4 +- packages/plugin-legacy/package.json | 6 +- packages/plugin-react/package.json | 2 +- packages/plugin-vue-jsx/package.json | 2 +- packages/vite/package.json | 6 +- playground/backend-integration/package.json | 2 +- playground/legacy/package.json | 2 +- playground/optimize-deps/package.json | 2 +- playground/preload/package.json | 4 +- playground/react-emotion/package.json | 2 +- playground/resolve/package.json | 2 +- playground/ssr-vue/package.json | 2 +- playground/tailwind-sourcemap/package.json | 2 +- playground/tailwind/package.json | 6 +- pnpm-lock.yaml | 588 ++++++++++-------- 27 files changed, 376 insertions(+), 306 deletions(-) diff --git a/package.json b/package.json index f830961f650b2c..c30278e0f326c7 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "ci-docs": "run-s build docs-build" }, "devDependencies": { - "@babel/types": "^7.18.8", + "@babel/types": "^7.18.9", "@microsoft/api-extractor": "^7.28.4", "@rollup/plugin-typescript": "^8.3.3", "@types/babel__core": "^7.1.19", @@ -59,12 +59,12 @@ "@types/semver": "^7.3.10", "@types/stylus": "^0.48.38", "@types/ws": "^8.5.3", - "@typescript-eslint/eslint-plugin": "^5.30.5", - "@typescript-eslint/parser": "^5.30.5", + "@typescript-eslint/eslint-plugin": "^5.30.6", + "@typescript-eslint/parser": "^5.30.6", "conventional-changelog-cli": "^2.2.2", "cross-env": "^7.0.3", "esbuild": "^0.14.47", - "eslint": "^8.19.0", + "eslint": "^8.20.0", "eslint-define-config": "^1.5.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-node": "^11.1.0", @@ -73,11 +73,11 @@ "kill-port": "^1.6.1", "lint-staged": "^13.0.3", "minimist": "^1.2.6", - "node-fetch": "^3.2.6", + "node-fetch": "^3.2.8", "npm-run-all": "^4.1.5", "picocolors": "^1.0.0", - "playwright-chromium": "^1.23.2", - "pnpm": "^7.5.0", + "playwright-chromium": "^1.23.4", + "pnpm": "^7.5.2", "prettier": "2.7.1", "prompts": "^2.4.2", "rimraf": "^3.0.2", @@ -86,12 +86,12 @@ "simple-git-hooks": "^2.8.0", "sirv": "^2.0.2", "tslib": "^2.4.0", - "tsx": "^3.7.1", + "tsx": "^3.8.0", "typescript": "^4.6.4", "unbuild": "^0.7.4", "vite": "workspace:*", "vitepress": "^1.0.0-alpha.4", - "vitest": "^0.18.0", + "vitest": "^0.18.1", "vue": "^3.2.37" }, "simple-git-hooks": { @@ -112,7 +112,7 @@ "eslint --cache --fix" ] }, - "packageManager": "pnpm@7.5.0", + "packageManager": "pnpm@7.5.2", "pnpm": { "overrides": { "vite": "workspace:*", diff --git a/packages/create-vite/template-lit-ts/package.json b/packages/create-vite/template-lit-ts/package.json index 9ac74b11ea8f67..ec8cee932013e0 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.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-lit/package.json b/packages/create-vite/template-lit/package.json index bc4f15d8277c38..9720d03e13f027 100644 --- a/packages/create-vite/template-lit/package.json +++ b/packages/create-vite/template-lit/package.json @@ -18,6 +18,6 @@ "lit": "^2.2.7" }, "devDependencies": { - "vite": "^3.0.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-preact-ts/package.json b/packages/create-vite/template-preact-ts/package.json index 3b2a0782034603..42d5fdd956c56e 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.9.0" + "preact": "^10.10.0" }, "devDependencies": { "@preact/preset-vite": "^2.3.0", "typescript": "^4.6.4", - "vite": "^3.0.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-preact/package.json b/packages/create-vite/template-preact/package.json index c23859f67f7259..3d8182eec28b1a 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.9.0" + "preact": "^10.10.0" }, "devDependencies": { "@preact/preset-vite": "^2.3.0", - "vite": "^3.0.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-react-ts/package.json b/packages/create-vite/template-react-ts/package.json index a50daeb100cd80..4ef22bf97a465a 100644 --- a/packages/create-vite/template-react-ts/package.json +++ b/packages/create-vite/template-react-ts/package.json @@ -17,6 +17,6 @@ "@types/react-dom": "^18.0.6", "@vitejs/plugin-react": "^2.0.0", "typescript": "^4.6.4", - "vite": "^3.0.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-react/package.json b/packages/create-vite/template-react/package.json index 8da24a1e6f37a5..67817c291b4ebb 100644 --- a/packages/create-vite/template-react/package.json +++ b/packages/create-vite/template-react/package.json @@ -16,6 +16,6 @@ "@types/react": "^18.0.15", "@types/react-dom": "^18.0.6", "@vitejs/plugin-react": "^2.0.0", - "vite": "^3.0.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-svelte-ts/package.json b/packages/create-vite/template-svelte-ts/package.json index 840e12ccf4f727..f58708b1344cdc 100644 --- a/packages/create-vite/template-svelte-ts/package.json +++ b/packages/create-vite/template-svelte-ts/package.json @@ -17,6 +17,6 @@ "svelte-preprocess": "^4.10.7", "tslib": "^2.4.0", "typescript": "^4.6.4", - "vite": "^3.0.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-svelte/package.json b/packages/create-vite/template-svelte/package.json index a013a8d12ab2bd..e325de545b7cfd 100644 --- a/packages/create-vite/template-svelte/package.json +++ b/packages/create-vite/template-svelte/package.json @@ -11,6 +11,6 @@ "devDependencies": { "@sveltejs/vite-plugin-svelte": "^1.0.1", "svelte": "^3.49.0", - "vite": "^3.0.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-vanilla-ts/package.json b/packages/create-vite/template-vanilla-ts/package.json index d01e7542d12f7f..c224ecbe25c8aa 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.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-vanilla/package.json b/packages/create-vite/template-vanilla/package.json index 7a2186365da8eb..39732f1b2dd1c2 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.0" + "vite": "^3.0.1" } } diff --git a/packages/create-vite/template-vue-ts/package.json b/packages/create-vite/template-vue-ts/package.json index 65f699266a576c..0d237f20f25826 100644 --- a/packages/create-vite/template-vue-ts/package.json +++ b/packages/create-vite/template-vue-ts/package.json @@ -12,9 +12,9 @@ "vue": "^3.2.37" }, "devDependencies": { - "@vitejs/plugin-vue": "^3.0.0", + "@vitejs/plugin-vue": "^3.0.1", "typescript": "^4.6.4", - "vite": "^3.0.0", - "vue-tsc": "^0.38.4" + "vite": "^3.0.1", + "vue-tsc": "^0.38.8" } } diff --git a/packages/create-vite/template-vue/package.json b/packages/create-vite/template-vue/package.json index 17fa3246866674..3b9d219d114708 100644 --- a/packages/create-vite/template-vue/package.json +++ b/packages/create-vite/template-vue/package.json @@ -12,7 +12,7 @@ "vue": "^3.2.37" }, "devDependencies": { - "@vitejs/plugin-vue": "^3.0.0", - "vite": "^3.0.0" + "@vitejs/plugin-vue": "^3.0.1", + "vite": "^3.0.1" } } diff --git a/packages/plugin-legacy/package.json b/packages/plugin-legacy/package.json index 929cd4bb4c8b9f..ecbc5088db6cc4 100644 --- a/packages/plugin-legacy/package.json +++ b/packages/plugin-legacy/package.json @@ -35,8 +35,8 @@ }, "homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-legacy#readme", "dependencies": { - "@babel/standalone": "^7.18.8", - "core-js": "^3.23.4", + "@babel/standalone": "^7.18.9", + "core-js": "^3.23.5", "magic-string": "^0.26.2", "regenerator-runtime": "^0.13.9", "systemjs": "^6.12.1" @@ -46,7 +46,7 @@ "vite": "^3.0.0" }, "devDependencies": { - "@babel/core": "^7.18.6", + "@babel/core": "^7.18.9", "vite": "workspace:*" } } diff --git a/packages/plugin-react/package.json b/packages/plugin-react/package.json index 34e33bad0b1eb4..47a97b5ef612a9 100644 --- a/packages/plugin-react/package.json +++ b/packages/plugin-react/package.json @@ -39,7 +39,7 @@ }, "homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-react#readme", "dependencies": { - "@babel/core": "^7.18.6", + "@babel/core": "^7.18.9", "@babel/plugin-transform-react-jsx": "^7.18.6", "@babel/plugin-transform-react-jsx-development": "^7.18.6", "@babel/plugin-transform-react-jsx-self": "^7.18.6", diff --git a/packages/plugin-vue-jsx/package.json b/packages/plugin-vue-jsx/package.json index 76484203410f1e..aadc2f5aa25e7c 100644 --- a/packages/plugin-vue-jsx/package.json +++ b/packages/plugin-vue-jsx/package.json @@ -35,7 +35,7 @@ }, "homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx#readme", "dependencies": { - "@babel/core": "^7.18.6", + "@babel/core": "^7.18.9", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-transform-typescript": "^7.18.8", "@vue/babel-plugin-jsx": "^1.1.1" diff --git a/packages/vite/package.json b/packages/vite/package.json index 33da66cf55aa8d..f2d8cbf38afcce 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -68,8 +68,8 @@ }, "devDependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/parser": "^7.18.8", - "@babel/types": "^7.18.8", + "@babel/parser": "^7.18.9", + "@babel/types": "^7.18.9", "@jridgewell/trace-mapping": "^0.3.14", "@rollup/plugin-alias": "^3.1.9", "@rollup/plugin-commonjs": "^22.0.1", @@ -119,7 +119,7 @@ "tslib": "^2.4.0", "types": "link:./types", "ufo": "^0.8.5", - "ws": "^8.8.0" + "ws": "^8.8.1" }, "peerDependencies": { "less": "*", diff --git a/playground/backend-integration/package.json b/playground/backend-integration/package.json index c33391a3ce6df9..cd01caa7cf1a90 100644 --- a/playground/backend-integration/package.json +++ b/playground/backend-integration/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "sass": "^1.53.0", - "tailwindcss": "^3.1.5", + "tailwindcss": "^3.1.6", "fast-glob": "^3.2.11" } } diff --git a/playground/legacy/package.json b/playground/legacy/package.json index 4d6549302951df..678d47745696b4 100644 --- a/playground/legacy/package.json +++ b/playground/legacy/package.json @@ -13,6 +13,6 @@ "devDependencies": { "@vitejs/plugin-legacy": "workspace:*", "express": "^4.18.1", - "terser": "^5.14.1" + "terser": "^5.14.2" } } diff --git a/playground/optimize-deps/package.json b/playground/optimize-deps/package.json index 7fbb2b6577d69f..19184eb8af8c77 100644 --- a/playground/optimize-deps/package.json +++ b/playground/optimize-deps/package.json @@ -26,7 +26,7 @@ "added-in-entries": "file:./added-in-entries", "lodash-es": "^4.17.21", "nested-exclude": "file:./nested-exclude", - "phoenix": "^1.6.10", + "phoenix": "^1.6.11", "react": "^18.2.0", "react-dom": "^18.2.0", "resolve-linked": "workspace:0.0.0", diff --git a/playground/preload/package.json b/playground/preload/package.json index a40b86c977d8cb..a42f414575cd22 100644 --- a/playground/preload/package.json +++ b/playground/preload/package.json @@ -10,11 +10,11 @@ }, "dependencies": { "vue": "^3.2.37", - "vue-router": "^4.1.1" + "vue-router": "^4.1.2" }, "devDependencies": { "@vitejs/plugin-vue": "workspace:*", - "terser": "^5.14.1", + "terser": "^5.14.2", "dep-a": "file:./dep-a", "dep-including-a": "file:./dep-including-a" } diff --git a/playground/react-emotion/package.json b/playground/react-emotion/package.json index 7ef711da793e2c..c9b77a7374df8d 100644 --- a/playground/react-emotion/package.json +++ b/playground/react-emotion/package.json @@ -15,7 +15,7 @@ "react-switch": "^7.0.0" }, "devDependencies": { - "@babel/plugin-proposal-pipeline-operator": "^7.18.6", + "@babel/plugin-proposal-pipeline-operator": "^7.18.9", "@emotion/babel-plugin": "^11.9.2", "@vitejs/plugin-react": "workspace:*" }, diff --git a/playground/resolve/package.json b/playground/resolve/package.json index c62b53c3ec5113..7e23450bf63ee8 100644 --- a/playground/resolve/package.json +++ b/playground/resolve/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@babel/runtime": "^7.18.6", + "@babel/runtime": "^7.18.9", "es5-ext": "0.10.61", "normalize.css": "^8.0.1", "require-pkg-with-module-field": "link:./require-pkg-with-module-field", diff --git a/playground/ssr-vue/package.json b/playground/ssr-vue/package.json index f567ae24e846fb..6565324fc37fe5 100644 --- a/playground/ssr-vue/package.json +++ b/playground/ssr-vue/package.json @@ -17,7 +17,7 @@ "dependencies": { "example-external-component": "file:example-external-component", "vue": "^3.2.37", - "vue-router": "^4.1.1", + "vue-router": "^4.1.2", "vuex": "^4.0.2" }, "devDependencies": { diff --git a/playground/tailwind-sourcemap/package.json b/playground/tailwind-sourcemap/package.json index 019255d63fb6b1..747bd8acecd76d 100644 --- a/playground/tailwind-sourcemap/package.json +++ b/playground/tailwind-sourcemap/package.json @@ -9,6 +9,6 @@ "preview": "vite preview" }, "dependencies": { - "tailwindcss": "^3.1.5" + "tailwindcss": "^3.1.6" } } diff --git a/playground/tailwind/package.json b/playground/tailwind/package.json index b5f9e1f22ff404..42b6c098e5e106 100644 --- a/playground/tailwind/package.json +++ b/playground/tailwind/package.json @@ -10,12 +10,12 @@ }, "dependencies": { "autoprefixer": "^10.4.7", - "tailwindcss": "^3.1.5", + "tailwindcss": "^3.1.6", "vue": "^3.2.37", - "vue-router": "^4.1.1" + "vue-router": "^4.1.2" }, "devDependencies": { "@vitejs/plugin-vue": "workspace:*", - "ts-node": "^10.8.2" + "ts-node": "^10.9.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01eeff331cab94..e44a3b5c9ce24a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: .: specifiers: - '@babel/types': ^7.18.8 + '@babel/types': ^7.18.9 '@microsoft/api-extractor': ^7.28.4 '@rollup/plugin-typescript': ^8.3.3 '@types/babel__core': ^7.1.19 @@ -33,12 +33,12 @@ importers: '@types/semver': ^7.3.10 '@types/stylus': ^0.48.38 '@types/ws': ^8.5.3 - '@typescript-eslint/eslint-plugin': ^5.30.5 - '@typescript-eslint/parser': ^5.30.5 + '@typescript-eslint/eslint-plugin': ^5.30.6 + '@typescript-eslint/parser': ^5.30.6 conventional-changelog-cli: ^2.2.2 cross-env: ^7.0.3 esbuild: ^0.14.47 - eslint: ^8.19.0 + eslint: ^8.20.0 eslint-define-config: ^1.5.1 eslint-plugin-import: ^2.26.0 eslint-plugin-node: ^11.1.0 @@ -47,11 +47,11 @@ importers: kill-port: ^1.6.1 lint-staged: ^13.0.3 minimist: ^1.2.6 - node-fetch: ^3.2.6 + node-fetch: ^3.2.8 npm-run-all: ^4.1.5 picocolors: ^1.0.0 - playwright-chromium: ^1.23.2 - pnpm: ^7.5.0 + playwright-chromium: ^1.23.4 + pnpm: ^7.5.2 prettier: 2.7.1 prompts: ^2.4.2 rimraf: ^3.0.2 @@ -60,15 +60,15 @@ importers: simple-git-hooks: ^2.8.0 sirv: ^2.0.2 tslib: ^2.4.0 - tsx: ^3.7.1 + tsx: ^3.8.0 typescript: ^4.6.4 unbuild: ^0.7.4 vite: workspace:* vitepress: ^1.0.0-alpha.4 - vitest: ^0.18.0 + vitest: ^0.18.1 vue: ^3.2.37 devDependencies: - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 '@microsoft/api-extractor': 7.28.4 '@rollup/plugin-typescript': 8.3.3_uct5nfewsakxkk4livyn3qaf3e '@types/babel__core': 7.1.19 @@ -91,25 +91,25 @@ importers: '@types/semver': 7.3.10 '@types/stylus': 0.48.38 '@types/ws': 8.5.3 - '@typescript-eslint/eslint-plugin': 5.30.5_v2rueh5ttlnebqgd37frxlfko4 - '@typescript-eslint/parser': 5.30.5_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/eslint-plugin': 5.30.6_m6yr5nzxxaufp5er7e5dqljbi4 + '@typescript-eslint/parser': 5.30.6_sxmbcirybhoxa24uzkr344oiiy conventional-changelog-cli: 2.2.2 cross-env: 7.0.3 esbuild: 0.14.47 - eslint: 8.19.0 + eslint: 8.20.0 eslint-define-config: 1.5.1 - eslint-plugin-import: 2.26.0_iom7pm3yknyiblqpw2vvqvxs5i - eslint-plugin-node: 11.1.0_eslint@8.19.0 + eslint-plugin-import: 2.26.0_y5cwkwncsnk6w3wfynadgn7abe + eslint-plugin-node: 11.1.0_eslint@8.20.0 execa: 6.1.0 fs-extra: 10.1.0 kill-port: 1.6.1 lint-staged: 13.0.3 minimist: 1.2.6 - node-fetch: 3.2.6 + node-fetch: 3.2.8 npm-run-all: 4.1.5 picocolors: 1.0.0 - playwright-chromium: 1.23.2 - pnpm: 7.5.0 + playwright-chromium: 1.23.4 + pnpm: 7.5.2 prettier: 2.7.1 prompts: 2.4.2 rimraf: 3.0.2 @@ -118,12 +118,12 @@ importers: simple-git-hooks: 2.8.0 sirv: 2.0.2 tslib: 2.4.0 - tsx: 3.7.1 + tsx: 3.8.0 typescript: 4.6.4 unbuild: 0.7.4 vite: link:packages/vite vitepress: 1.0.0-alpha.4 - vitest: 0.18.0 + vitest: 0.18.1 vue: 3.2.37 packages/create-vite: @@ -138,26 +138,26 @@ importers: packages/plugin-legacy: specifiers: - '@babel/core': ^7.18.6 - '@babel/standalone': ^7.18.8 - core-js: ^3.23.4 + '@babel/core': ^7.18.9 + '@babel/standalone': ^7.18.9 + core-js: ^3.23.5 magic-string: ^0.26.2 regenerator-runtime: ^0.13.9 systemjs: ^6.12.1 vite: workspace:* dependencies: - '@babel/standalone': 7.18.8 - core-js: 3.23.4 + '@babel/standalone': 7.18.9 + core-js: 3.23.5 magic-string: 0.26.2 regenerator-runtime: 0.13.9 systemjs: 6.12.1 devDependencies: - '@babel/core': 7.18.6 + '@babel/core': 7.18.9 vite: link:../vite packages/plugin-react: specifiers: - '@babel/core': ^7.18.6 + '@babel/core': ^7.18.9 '@babel/plugin-transform-react-jsx': ^7.18.6 '@babel/plugin-transform-react-jsx-development': ^7.18.6 '@babel/plugin-transform-react-jsx-self': ^7.18.6 @@ -166,11 +166,11 @@ importers: react-refresh: ^0.14.0 vite: workspace:* dependencies: - '@babel/core': 7.18.6 - '@babel/plugin-transform-react-jsx': 7.18.6_@babel+core@7.18.6 - '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.18.6 - '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.18.6 - '@babel/plugin-transform-react-jsx-source': 7.18.6_@babel+core@7.18.6 + '@babel/core': 7.18.9 + '@babel/plugin-transform-react-jsx': 7.18.6_@babel+core@7.18.9 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.18.9 + '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.18.9 + '@babel/plugin-transform-react-jsx-source': 7.18.6_@babel+core@7.18.9 magic-string: 0.26.2 react-refresh: 0.14.0 devDependencies: @@ -198,24 +198,24 @@ importers: packages/plugin-vue-jsx: specifiers: - '@babel/core': ^7.18.6 + '@babel/core': ^7.18.9 '@babel/plugin-syntax-import-meta': ^7.10.4 '@babel/plugin-transform-typescript': ^7.18.8 '@vue/babel-plugin-jsx': ^1.1.1 vite: workspace:* dependencies: - '@babel/core': 7.18.6 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.18.6 - '@babel/plugin-transform-typescript': 7.18.8_@babel+core@7.18.6 - '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.18.6 + '@babel/core': 7.18.9 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.18.9 + '@babel/plugin-transform-typescript': 7.18.8_@babel+core@7.18.9 + '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.18.9 devDependencies: vite: link:../vite packages/vite: specifiers: '@ampproject/remapping': ^2.2.0 - '@babel/parser': ^7.18.8 - '@babel/types': ^7.18.8 + '@babel/parser': ^7.18.9 + '@babel/types': ^7.18.9 '@jridgewell/trace-mapping': ^0.3.14 '@rollup/plugin-alias': ^3.1.9 '@rollup/plugin-commonjs': ^22.0.1 @@ -270,7 +270,7 @@ importers: tslib: ^2.4.0 types: link:./types ufo: ^0.8.5 - ws: ^8.8.0 + ws: ^8.8.1 dependencies: esbuild: 0.14.47 postcss: 8.4.14 @@ -280,8 +280,8 @@ importers: fsevents: 2.3.2 devDependencies: '@ampproject/remapping': 2.2.0 - '@babel/parser': 7.18.8 - '@babel/types': 7.18.8 + '@babel/parser': 7.18.9 + '@babel/types': 7.18.9 '@jridgewell/trace-mapping': 0.3.14 '@rollup/plugin-alias': 3.1.9_rollup@2.75.6 '@rollup/plugin-commonjs': 22.0.1_rollup@2.75.6 @@ -331,7 +331,7 @@ importers: tslib: 2.4.0 types: link:types ufo: 0.8.5 - ws: 8.8.0 + ws: 8.8.1 playground: specifiers: @@ -364,11 +364,11 @@ importers: specifiers: fast-glob: ^3.2.11 sass: ^1.53.0 - tailwindcss: ^3.1.5 + tailwindcss: ^3.1.6 devDependencies: fast-glob: 3.2.11 sass: 1.53.0 - tailwindcss: 3.1.5 + tailwindcss: 3.1.6 playground/build-old: specifiers: {} @@ -545,11 +545,11 @@ importers: specifiers: '@vitejs/plugin-legacy': workspace:* express: ^4.18.1 - terser: ^5.14.1 + terser: ^5.14.2 devDependencies: '@vitejs/plugin-legacy': link:../../packages/plugin-legacy express: 4.18.1 - terser: 5.14.1 + terser: 5.14.2 playground/lib: specifiers: {} @@ -636,7 +636,7 @@ importers: lodash-es: ^4.17.21 lodash.clonedeep: ^4.5.0 nested-exclude: file:./nested-exclude - phoenix: ^1.6.10 + phoenix: ^1.6.11 react: ^18.2.0 react-dom: ^18.2.0 resolve-linked: workspace:0.0.0 @@ -663,7 +663,7 @@ importers: lodash-es: 4.17.21 lodash.clonedeep: 4.5.0 nested-exclude: file:playground/optimize-deps/nested-exclude - phoenix: 1.6.10 + phoenix: 1.6.11 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 resolve-linked: link:../resolve-linked @@ -753,17 +753,17 @@ importers: '@vitejs/plugin-vue': workspace:* dep-a: file:./dep-a dep-including-a: file:./dep-including-a - terser: ^5.14.1 + terser: ^5.14.2 vue: ^3.2.37 - vue-router: ^4.1.1 + vue-router: ^4.1.2 dependencies: vue: 3.2.37 - vue-router: 4.1.1_vue@3.2.37 + vue-router: 4.1.2_vue@3.2.37 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue dep-a: file:playground/preload/dep-a dep-including-a: file:playground/preload/dep-including-a - terser: 5.14.1 + terser: 5.14.2 playground/preload/dep-a: specifiers: {} @@ -809,7 +809,7 @@ importers: playground/react-emotion: specifiers: - '@babel/plugin-proposal-pipeline-operator': ^7.18.6 + '@babel/plugin-proposal-pipeline-operator': ^7.18.9 '@emotion/babel-plugin': ^11.9.2 '@emotion/react': ^11.9.3 '@vitejs/plugin-react': workspace:* @@ -822,7 +822,7 @@ importers: react-dom: 18.2.0_react@18.2.0 react-switch: 7.0.0_biqbaboplfbrettd7655fr4n2y devDependencies: - '@babel/plugin-proposal-pipeline-operator': 7.18.6 + '@babel/plugin-proposal-pipeline-operator': 7.18.9 '@emotion/babel-plugin': 11.9.2 '@vitejs/plugin-react': link:../../packages/plugin-react @@ -844,7 +844,7 @@ importers: playground/resolve: specifiers: - '@babel/runtime': ^7.18.6 + '@babel/runtime': ^7.18.9 es5-ext: 0.10.61 normalize.css: ^8.0.1 require-pkg-with-module-field: link:./require-pkg-with-module-field @@ -855,7 +855,7 @@ importers: resolve-exports-path: link:./exports-path resolve-linked: workspace:* dependencies: - '@babel/runtime': 7.18.6 + '@babel/runtime': 7.18.9 es5-ext: 0.10.61 normalize.css: 8.0.1 require-pkg-with-module-field: link:require-pkg-with-module-field @@ -1047,12 +1047,12 @@ importers: express: ^4.18.1 serve-static: ^1.15.0 vue: ^3.2.37 - vue-router: ^4.1.1 + vue-router: ^4.1.2 vuex: ^4.0.2 dependencies: example-external-component: file:playground/ssr-vue/example-external-component vue: 3.2.37 - vue-router: 4.1.1_vue@3.2.37 + vue-router: 4.1.2_vue@3.2.37 vuex: 4.0.2_vue@3.2.37 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue @@ -1084,24 +1084,24 @@ importers: specifiers: '@vitejs/plugin-vue': workspace:* autoprefixer: ^10.4.7 - tailwindcss: ^3.1.5 - ts-node: ^10.8.2 + tailwindcss: ^3.1.6 + ts-node: ^10.9.1 vue: ^3.2.37 - vue-router: ^4.1.1 + vue-router: ^4.1.2 dependencies: autoprefixer: 10.4.7 - tailwindcss: 3.1.5_ts-node@10.8.2 + tailwindcss: 3.1.6_ts-node@10.9.1 vue: 3.2.37 - vue-router: 4.1.1_vue@3.2.37 + vue-router: 4.1.2_vue@3.2.37 devDependencies: '@vitejs/plugin-vue': link:../../packages/plugin-vue - ts-node: 10.8.2 + ts-node: 10.9.1 playground/tailwind-sourcemap: specifiers: - tailwindcss: ^3.1.5 + tailwindcss: ^3.1.6 dependencies: - tailwindcss: 3.1.5 + tailwindcss: 3.1.6 playground/tsconfig-json: specifiers: {} @@ -1315,8 +1315,8 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/compat-data/7.18.6: - resolution: {integrity: sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==} + /@babel/compat-data/7.18.8: + resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==} engines: {node: '>=6.9.0'} /@babel/core/7.18.5: @@ -1332,7 +1332,7 @@ packages: '@babel/parser': 7.18.5 '@babel/template': 7.16.7 '@babel/traverse': 7.18.5 - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1342,20 +1342,20 @@ packages: - supports-color dev: true - /@babel/core/7.18.6: - resolution: {integrity: sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==} + /@babel/core/7.18.9: + resolution: {integrity: sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.18.7 - '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.18.6 - '@babel/helper-module-transforms': 7.18.6 - '@babel/helpers': 7.18.6 - '@babel/parser': 7.18.6 + '@babel/generator': 7.18.9 + '@babel/helper-compilation-targets': 7.18.9_@babel+core@7.18.9 + '@babel/helper-module-transforms': 7.18.9 + '@babel/helpers': 7.18.9 + '@babel/parser': 7.18.9 '@babel/template': 7.18.6 - '@babel/traverse': 7.18.6 - '@babel/types': 7.18.7 + '@babel/traverse': 7.18.9 + '@babel/types': 7.18.9 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1377,7 +1377,7 @@ packages: resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 '@jridgewell/gen-mapping': 0.3.1 jsesc: 2.5.2 dev: true @@ -1389,6 +1389,15 @@ packages: '@babel/types': 7.18.7 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 + dev: false + + /@babel/generator/7.18.9: + resolution: {integrity: sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.9 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} @@ -1410,25 +1419,25 @@ packages: semver: 6.3.0 dev: true - /@babel/helper-compilation-targets/7.18.6_@babel+core@7.18.6: - resolution: {integrity: sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==} + /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.9: + resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.18.6 - '@babel/core': 7.18.6 + '@babel/compat-data': 7.18.8 + '@babel/core': 7.18.9 '@babel/helper-validator-option': 7.18.6 browserslist: 4.20.3 semver: 6.3.0 - /@babel/helper-create-class-features-plugin/7.18.6_@babel+core@7.18.6: + /@babel/helper-create-class-features-plugin/7.18.6_@babel+core@7.18.9: resolution: {integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.18.6 + '@babel/core': 7.18.9 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.6 '@babel/helper-function-name': 7.18.6 @@ -1444,7 +1453,7 @@ packages: resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 dev: true /@babel/helper-environment-visitor/7.18.2: @@ -1455,13 +1464,18 @@ packages: /@babel/helper-environment-visitor/7.18.6: resolution: {integrity: sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==} engines: {node: '>=6.9.0'} + dev: false + + /@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.8 + '@babel/types': 7.18.9 dev: true /@babel/helper-function-name/7.18.6: @@ -1470,6 +1484,14 @@ packages: dependencies: '@babel/template': 7.18.6 '@babel/types': 7.18.8 + dev: false + + /@babel/helper-function-name/7.18.9: + resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.6 + '@babel/types': 7.18.9 /@babel/helper-hoist-variables/7.16.7: resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} @@ -1481,7 +1503,7 @@ packages: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 /@babel/helper-member-expression-to-functions/7.18.6: resolution: {integrity: sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==} @@ -1513,23 +1535,23 @@ packages: '@babel/helper-validator-identifier': 7.16.7 '@babel/template': 7.16.7 '@babel/traverse': 7.18.5 - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-module-transforms/7.18.6: - resolution: {integrity: sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==} + /@babel/helper-module-transforms/7.18.9: + resolution: {integrity: sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-module-imports': 7.18.6 '@babel/helper-simple-access': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.18.6 '@babel/template': 7.18.6 - '@babel/traverse': 7.18.6 - '@babel/types': 7.18.7 + '@babel/traverse': 7.18.9 + '@babel/types': 7.18.9 transitivePeerDependencies: - supports-color @@ -1549,6 +1571,11 @@ packages: resolution: {integrity: sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==} engines: {node: '>=6.9.0'} + /@babel/helper-plugin-utils/7.18.9: + resolution: {integrity: sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-replace-supers/7.18.6: resolution: {integrity: sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==} engines: {node: '>=6.9.0'} @@ -1566,27 +1593,27 @@ packages: resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 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.7 + '@babel/types': 7.18.9 /@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.8 + '@babel/types': 7.18.9 dev: true /@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.8 + '@babel/types': 7.18.9 /@babel/helper-validator-identifier/7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} @@ -1611,18 +1638,18 @@ packages: dependencies: '@babel/template': 7.16.7 '@babel/traverse': 7.18.5 - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 transitivePeerDependencies: - supports-color dev: true - /@babel/helpers/7.18.6: - resolution: {integrity: sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==} + /@babel/helpers/7.18.9: + resolution: {integrity: sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.6 - '@babel/traverse': 7.18.6 - '@babel/types': 7.18.7 + '@babel/traverse': 7.18.9 + '@babel/types': 7.18.9 transitivePeerDependencies: - supports-color @@ -1655,31 +1682,31 @@ packages: hasBin: true dependencies: '@babel/types': 7.18.7 + dev: false - /@babel/parser/7.18.8: - resolution: {integrity: sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==} + /@babel/parser/7.18.9: + resolution: {integrity: sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.18.8 - dev: true + '@babel/types': 7.18.9 - /@babel/plugin-proposal-pipeline-operator/7.18.6: - resolution: {integrity: sha512-TtmOg+ew8KKLTNfOzEM/KCkwp3JKjA8E5E95rnrqnBZWs9KuXS+2yXq/x10uy+Sq9Ys6TscfRVCN2UFOhZ4bZw==} + /@babel/plugin-proposal-pipeline-operator/7.18.9: + resolution: {integrity: sha512-Pc33e6m8f4MJhRXVCUwiKZNtEm+W2CUPHIL0lyJNtkp+w6d75CLw3gsBKQ81VAMUgT9jVPIEU8gwJ5nJgmJ1Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-plugin-utils': 7.18.9 '@babel/plugin-syntax-pipeline-operator': 7.18.6 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.18.6: + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.18.9: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.6 + '@babel/core': 7.18.9 '@babel/helper-plugin-utils': 7.16.7 dev: false @@ -1691,23 +1718,23 @@ packages: dependencies: '@babel/helper-plugin-utils': 7.18.6 - /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.18.6: + /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.18.9: resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.6 + '@babel/core': 7.18.9 '@babel/helper-plugin-utils': 7.18.6 dev: false - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.18.6: + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.18.9: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.6 + '@babel/core': 7.18.9 '@babel/helper-plugin-utils': 7.18.6 dev: false @@ -1717,73 +1744,73 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-plugin-utils': 7.18.9 dev: true - /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.18.6: + /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.18.9: resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.6 + '@babel/core': 7.18.9 '@babel/helper-plugin-utils': 7.18.6 dev: false - /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.18.6: + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.18.9: 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.6 - '@babel/plugin-transform-react-jsx': 7.18.6_@babel+core@7.18.6 + '@babel/core': 7.18.9 + '@babel/plugin-transform-react-jsx': 7.18.6_@babel+core@7.18.9 dev: false - /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.18.6: + /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.18.9: 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.6 + '@babel/core': 7.18.9 '@babel/helper-plugin-utils': 7.18.6 dev: false - /@babel/plugin-transform-react-jsx-source/7.18.6_@babel+core@7.18.6: + /@babel/plugin-transform-react-jsx-source/7.18.6_@babel+core@7.18.9: resolution: {integrity: sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.6 + '@babel/core': 7.18.9 '@babel/helper-plugin-utils': 7.18.6 dev: false - /@babel/plugin-transform-react-jsx/7.18.6_@babel+core@7.18.6: + /@babel/plugin-transform-react-jsx/7.18.6_@babel+core@7.18.9: resolution: {integrity: sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.6 + '@babel/core': 7.18.9 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-module-imports': 7.18.6 '@babel/helper-plugin-utils': 7.18.6 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.6 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.9 '@babel/types': 7.18.7 dev: false - /@babel/plugin-transform-typescript/7.18.8_@babel+core@7.18.6: + /@babel/plugin-transform-typescript/7.18.8_@babel+core@7.18.9: resolution: {integrity: sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.18.6_@babel+core@7.18.6 + '@babel/core': 7.18.9 + '@babel/helper-create-class-features-plugin': 7.18.6_@babel+core@7.18.9 '@babel/helper-plugin-utils': 7.18.6 - '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.18.6 + '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.18.9 transitivePeerDependencies: - supports-color dev: false @@ -1801,8 +1828,8 @@ packages: regenerator-runtime: 0.13.9 dev: false - /@babel/runtime/7.18.6: - resolution: {integrity: sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==} + /@babel/runtime/7.18.9: + resolution: {integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.9 @@ -1813,8 +1840,8 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/standalone/7.18.8: - resolution: {integrity: sha512-cDayR7x6IAp7k1947fYeo7OxD7QwT9/UZ+BT05Zq2pfsOzkhOJZdY19X0NvL6fYaszwnzO0zVHgp04OspPh3SA==} + /@babel/standalone/7.18.9: + resolution: {integrity: sha512-6E+p5azHMHcMkHzGFnA7Pqhtgfwx1cClwjMqomMHhdFupCLZDDpVQUctRGYE7p7nn7cXJZSI/L9en+tt30AP3w==} engines: {node: '>=6.9.0'} dev: false @@ -1831,8 +1858,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/parser': 7.18.6 - '@babel/types': 7.18.7 + '@babel/parser': 7.18.9 + '@babel/types': 7.18.9 /@babel/traverse/7.17.10: resolution: {integrity: sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==} @@ -1863,7 +1890,7 @@ packages: '@babel/helper-hoist-variables': 7.16.7 '@babel/helper-split-export-declaration': 7.16.7 '@babel/parser': 7.18.5 - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -1886,6 +1913,24 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: false + + /@babel/traverse/7.18.9: + resolution: {integrity: sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.9 + '@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.9 + '@babel/types': 7.18.9 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color /@babel/types/7.17.10: resolution: {integrity: sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==} @@ -1915,6 +1960,13 @@ packages: '@babel/helper-validator-identifier': 7.18.6 to-fast-properties: 2.0.0 + /@babel/types/7.18.9: + resolution: {integrity: sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + to-fast-properties: 2.0.0 + /@cloudflare/workers-types/2.2.2: resolution: {integrity: sha512-kaMn2rueJ0PL1TYVGknTCh0X0x0d9G+FNXAFep7/4uqecEZoQb/63o6rOmMuiqI09zLuHV6xhKRXinokV/MY9A==} dev: true @@ -2041,24 +2093,24 @@ packages: resolution: {integrity: sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==} dev: false - /@esbuild-kit/cjs-loader/2.3.0: - resolution: {integrity: sha512-KInrVt8wlKLhWy7+y4a+E+0uBJoWgdx6Xupy+rrF4MFHA/dEt22ACvvChOZSyiqtQieYPtbPkVYSjbC7mOrFVw==} + /@esbuild-kit/cjs-loader/2.3.1: + resolution: {integrity: sha512-ov6ALYD9xZSPoo5mmGOQtEC/b0xXeUlPy65p8aHMHLF4DfBEe8Y+iquH2lTDsy6Iskc1uMTadF+SVADTSTNJMA==} dependencies: - '@esbuild-kit/core-utils': 2.0.2 + '@esbuild-kit/core-utils': 2.1.0 get-tsconfig: 4.1.0 dev: true - /@esbuild-kit/core-utils/2.0.2: - resolution: {integrity: sha512-clNYQUsqtc36pzW5EufMsahcbLG45EaW3YDyf0DlaS0eCMkDXpxIlHwPC0rndUwG6Ytk9sMSD5k1qHbwYEC/OQ==} + /@esbuild-kit/core-utils/2.1.0: + resolution: {integrity: sha512-fZirrc2KjeTumVjE4bpleWOk2gD83b7WuGeQqOceKFQL+heNKKkNB5G5pekOUTLzfSBc0hP7hCSBoD9TuR0hLw==} dependencies: esbuild: 0.14.47 source-map-support: 0.5.21 dev: true - /@esbuild-kit/esm-loader/2.4.0: - resolution: {integrity: sha512-zS720jXh06nfg5yAzm6oob4sWN9VTP2E1SonhFgEb6zCBswa4S8fOQ/4Bksz1flDgn56NPqoTTDn2XmWRyMG9Q==} + /@esbuild-kit/esm-loader/2.4.1: + resolution: {integrity: sha512-6x44rygVfNODm27v0RW3wX5y61mqSrXDvB39G0nomgWWqxG3mjiKtPSwrFppdkrA39QIqDgVlD4gJmPOxnleSw==} dependencies: - '@esbuild-kit/core-utils': 2.0.2 + '@esbuild-kit/core-utils': 2.1.0 get-tsconfig: 4.1.0 dev: true @@ -2138,8 +2190,8 @@ packages: /@jridgewell/source-map/0.3.2: resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} dependencies: - '@jridgewell/gen-mapping': 0.3.1 - '@jridgewell/trace-mapping': 0.3.13 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.14 dev: true /@jridgewell/sourcemap-codec/1.4.13: @@ -2493,7 +2545,7 @@ packages: resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: '@babel/parser': 7.18.5 - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.17.1 @@ -2502,7 +2554,7 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 dev: true /@types/babel__standalone/7.1.4: @@ -2517,13 +2569,13 @@ packages: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: '@babel/parser': 7.18.5 - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 dev: true /@types/babel__traverse/7.17.1: resolution: {integrity: sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==} dependencies: - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 dev: true /@types/braces/3.0.1: @@ -2673,8 +2725,8 @@ packages: '@types/node': 17.0.42 dev: true - /@typescript-eslint/eslint-plugin/5.30.5_v2rueh5ttlnebqgd37frxlfko4: - resolution: {integrity: sha512-lftkqRoBvc28VFXEoRgyZuztyVUQ04JvUnATSPtIRFAccbXTWL6DEtXGYMcbg998kXw1NLUJm7rTQ9eUt+q6Ig==} + /@typescript-eslint/eslint-plugin/5.30.6_m6yr5nzxxaufp5er7e5dqljbi4: + resolution: {integrity: sha512-J4zYMIhgrx4MgnZrSDD7sEnQp7FmhKNOaqaOpaoQ/SfdMfRB/0yvK74hTnvH+VQxndZynqs5/Hn4t+2/j9bADg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2684,12 +2736,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.30.5_g4cxuhevh5o54harssx6h7xjim - '@typescript-eslint/scope-manager': 5.30.5 - '@typescript-eslint/type-utils': 5.30.5_g4cxuhevh5o54harssx6h7xjim - '@typescript-eslint/utils': 5.30.5_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/parser': 5.30.6_sxmbcirybhoxa24uzkr344oiiy + '@typescript-eslint/scope-manager': 5.30.6 + '@typescript-eslint/type-utils': 5.30.6_sxmbcirybhoxa24uzkr344oiiy + '@typescript-eslint/utils': 5.30.6_sxmbcirybhoxa24uzkr344oiiy debug: 4.3.4 - eslint: 8.19.0 + eslint: 8.20.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -2700,8 +2752,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.30.5_g4cxuhevh5o54harssx6h7xjim: - resolution: {integrity: sha512-zj251pcPXI8GO9NDKWWmygP6+UjwWmrdf9qMW/L/uQJBM/0XbU2inxe5io/234y/RCvwpKEYjZ6c1YrXERkK4Q==} + /@typescript-eslint/parser/5.30.6_sxmbcirybhoxa24uzkr344oiiy: + resolution: {integrity: sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2710,26 +2762,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.30.5 - '@typescript-eslint/types': 5.30.5 - '@typescript-eslint/typescript-estree': 5.30.5_typescript@4.6.4 + '@typescript-eslint/scope-manager': 5.30.6 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.6.4 debug: 4.3.4 - eslint: 8.19.0 + eslint: 8.20.0 typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.30.5: - resolution: {integrity: sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg==} + /@typescript-eslint/scope-manager/5.30.6: + resolution: {integrity: sha512-Hkq5PhLgtVoW1obkqYH0i4iELctEKixkhWLPTYs55doGUKCASvkjOXOd/pisVeLdO24ZX9D6yymJ/twqpJiG3g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.30.5 - '@typescript-eslint/visitor-keys': 5.30.5 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/visitor-keys': 5.30.6 dev: true - /@typescript-eslint/type-utils/5.30.5_g4cxuhevh5o54harssx6h7xjim: - resolution: {integrity: sha512-k9+ejlv1GgwN1nN7XjVtyCgE0BTzhzT1YsQF0rv4Vfj2U9xnslBgMYYvcEYAFVdvhuEscELJsB7lDkN7WusErw==} + /@typescript-eslint/type-utils/5.30.6_sxmbcirybhoxa24uzkr344oiiy: + resolution: {integrity: sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2738,22 +2790,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.30.5_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/utils': 5.30.6_sxmbcirybhoxa24uzkr344oiiy debug: 4.3.4 - eslint: 8.19.0 + eslint: 8.20.0 tsutils: 3.21.0_typescript@4.6.4 typescript: 4.6.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.30.5: - resolution: {integrity: sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==} + /@typescript-eslint/types/5.30.6: + resolution: {integrity: sha512-HdnP8HioL1F7CwVmT4RaaMX57RrfqsOMclZc08wGMiDYJBsLGBM7JwXM4cZJmbWLzIR/pXg1kkrBBVpxTOwfUg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.30.5_typescript@4.6.4: - resolution: {integrity: sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ==} + /@typescript-eslint/typescript-estree/5.30.6_typescript@4.6.4: + resolution: {integrity: sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -2761,8 +2813,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.30.5 - '@typescript-eslint/visitor-keys': 5.30.5 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/visitor-keys': 5.30.6 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2773,29 +2825,29 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.30.5_g4cxuhevh5o54harssx6h7xjim: - resolution: {integrity: sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA==} + /@typescript-eslint/utils/5.30.6_sxmbcirybhoxa24uzkr344oiiy: + resolution: {integrity: sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==} 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.30.5 - '@typescript-eslint/types': 5.30.5 - '@typescript-eslint/typescript-estree': 5.30.5_typescript@4.6.4 - eslint: 8.19.0 + '@typescript-eslint/scope-manager': 5.30.6 + '@typescript-eslint/types': 5.30.6 + '@typescript-eslint/typescript-estree': 5.30.6_typescript@4.6.4 + eslint: 8.20.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.19.0 + eslint-utils: 3.0.0_eslint@8.20.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.30.5: - resolution: {integrity: sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA==} + /@typescript-eslint/visitor-keys/5.30.6: + resolution: {integrity: sha512-41OiCjdL2mCaSDi2SvYbzFLlqqlm5v1ZW9Ym55wXKL/Rx6OOB1IbuFGo71Fj6Xy90gJDFTlgOS+vbmtGHPTQQA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/types': 5.30.6 eslint-visitor-keys: 3.3.0 dev: true @@ -2803,11 +2855,11 @@ packages: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} dev: false - /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.18.6: + /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.18.9: 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.6 + '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.18.9 '@babel/template': 7.16.7 '@babel/traverse': 7.17.10 '@babel/types': 7.17.10 @@ -3829,8 +3881,8 @@ packages: is-what: 3.14.1 dev: true - /core-js/3.23.4: - resolution: {integrity: sha512-vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjzQ==} + /core-js/3.23.5: + resolution: {integrity: sha512-7Vh11tujtAZy82da4duVreQysIoO2EvVrur7y6IzZkH1IHPSekuDi8Vuw1+YKjkbfWLRD7Nc9ICQ/sIUDutcyg==} requiresBuild: true dev: false @@ -4630,7 +4682,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.3_ea34krk32wbcqzxapvwr7rsjs4: + /eslint-module-utils/2.7.3_bsugbhruclroeiaqnd7gqoy7ya: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} peerDependencies: @@ -4648,7 +4700,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.30.5_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/parser': 5.30.6_sxmbcirybhoxa24uzkr344oiiy debug: 3.2.7 eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 @@ -4656,18 +4708,18 @@ packages: - supports-color dev: true - /eslint-plugin-es/3.0.1_eslint@8.19.0: + /eslint-plugin-es/3.0.1_eslint@8.20.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.19.0 + eslint: 8.20.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_iom7pm3yknyiblqpw2vvqvxs5i: + /eslint-plugin-import/2.26.0_y5cwkwncsnk6w3wfynadgn7abe: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -4677,14 +4729,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.30.5_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/parser': 5.30.6_sxmbcirybhoxa24uzkr344oiiy array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.19.0 + eslint: 8.20.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_ea34krk32wbcqzxapvwr7rsjs4 + eslint-module-utils: 2.7.3_bsugbhruclroeiaqnd7gqoy7ya has: 1.0.3 is-core-module: 2.9.0 is-glob: 4.0.3 @@ -4698,14 +4750,14 @@ packages: - supports-color dev: true - /eslint-plugin-node/11.1.0_eslint@8.19.0: + /eslint-plugin-node/11.1.0_eslint@8.20.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.19.0 - eslint-plugin-es: 3.0.1_eslint@8.19.0 + eslint: 8.20.0 + eslint-plugin-es: 3.0.1_eslint@8.20.0 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.1.2 @@ -4736,13 +4788,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.19.0: + /eslint-utils/3.0.0_eslint@8.20.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.19.0 + eslint: 8.20.0 eslint-visitor-keys: 2.1.0 dev: true @@ -4761,8 +4813,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.19.0: - resolution: {integrity: sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==} + /eslint/8.20.0: + resolution: {integrity: sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -4775,7 +4827,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.19.0 + eslint-utils: 3.0.0_eslint@8.20.0 eslint-visitor-keys: 3.3.0 espree: 9.3.2 esquery: 1.4.0 @@ -5971,8 +6023,8 @@ packages: engines: {node: '>= 12.13.0'} dev: true - /local-pkg/0.4.1: - resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==} + /local-pkg/0.4.2: + resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} engines: {node: '>=14'} dev: true @@ -6422,8 +6474,8 @@ packages: whatwg-url: 5.0.0 dev: false - /node-fetch/3.2.6: - resolution: {integrity: sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==} + /node-fetch/3.2.8: + resolution: {integrity: sha512-KtpD1YhGszhntMpBDyp5lyagk8KIMopC1LEb7cQUAh7zcosaX5uK8HnbNb2i3NTQK3sIawCItS0uFC3QzcLHdg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: data-uri-to-buffer: 4.0.0 @@ -6770,8 +6822,8 @@ packages: is-reference: 3.0.0 dev: true - /phoenix/1.6.10: - resolution: {integrity: sha512-KfYAJrrw95JGaOlvmZ+lFJZhSfQmo4SVOj6s175/V8YxqhYGO5EGacdrJxQmJ6uhaK4H3S6b0wkC1T33qU/d8Q==} + /phoenix/1.6.11: + resolution: {integrity: sha512-z/MSg9yY20JhTSj6tKmOYE9p+PuU+FVstYtgBfIZPGNLKhSuV9Zcs9LLLKWeiJ9EUzaXS/QeO8Po4+jJnyNfMw==} dev: false /picocolors/1.0.0: @@ -6824,23 +6876,23 @@ packages: pathe: 0.3.2 dev: true - /playwright-chromium/1.23.2: - resolution: {integrity: sha512-kQ34dgOyum93X7Q0G8CS85jloZL0xVsDnqu8ElPcEIz0YyKvJRaptq1dnq7Wx8p7llHCIDg6d30Pm5+jAwtdJw==} + /playwright-chromium/1.23.4: + resolution: {integrity: sha512-aqiOpX76107knxZqydyd0snNHiU6wgGwmQUFA8MEbG6sVjvjF8fS8Uy6n39z9U52pSpRFGPBP8dfkTkXBokkqQ==} engines: {node: '>=14'} hasBin: true requiresBuild: true dependencies: - playwright-core: 1.23.2 + playwright-core: 1.23.4 dev: true - /playwright-core/1.23.2: - resolution: {integrity: sha512-UGbutIr0nBALDHWW/HcXfyK6ZdmefC99Moo4qyTr89VNIkYZuDrW8Sw554FyFUamcFSdKOgDPk6ECSkofGIZjQ==} + /playwright-core/1.23.4: + resolution: {integrity: sha512-h5V2yw7d8xIwotjyNrkLF13nV9RiiZLHdXeHo+nVJIYGVlZ8U2qV0pMxNJKNTvfQVT0N8/A4CW6/4EW2cOcTiA==} engines: {node: '>=14'} hasBin: true dev: true - /pnpm/7.5.0: - resolution: {integrity: sha512-sb9wJNyx/d8l3Gze2jI1y8BGNbb/ga+JT3SrGNiH+C5KbtZ4wmgePBWGjaiGugcpT9+vQ5MO//+QlVWhMCpedQ==} + /pnpm/7.5.2: + resolution: {integrity: sha512-tTLvMnu1zIAWrD87Q/Dgw0+d71Brhlm+aM62KkDr/EPNZyA7dBIsu7tS9pNfRSvwgVF7V1Dhc8jJLAsTNTXnDQ==} engines: {node: '>=14.6'} hasBin: true dev: true @@ -6865,9 +6917,9 @@ packages: camelcase-css: 2.0.1 postcss: 8.4.14 - /postcss-load-config/4.0.1_i7duc3lt6p42geuj2nwruihc6u: - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} - engines: {node: '>= 14'} + /postcss-load-config/3.1.4_pe6iykxod2v7i2uk6okjazxzki: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} peerDependencies: postcss: '>=8.0.9' ts-node: '>=9.0.0' @@ -6879,10 +6931,26 @@ packages: dependencies: lilconfig: 2.0.5 postcss: 8.4.14 - ts-node: 10.8.2 - yaml: 2.1.1 + ts-node: 10.9.1 + yaml: 1.10.2 dev: false + /postcss-load-config/3.1.4_postcss@8.4.14: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.0.5 + postcss: 8.4.14 + yaml: 1.10.2 + /postcss-load-config/4.0.1_postcss@8.4.14: resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} @@ -6898,6 +6966,7 @@ packages: lilconfig: 2.0.5 postcss: 8.4.14 yaml: 2.1.1 + dev: true /postcss-modules-extract-imports/3.0.0_postcss@8.4.14: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} @@ -7996,8 +8065,8 @@ packages: resolution: {integrity: sha512-hqTN6kW+pN6/qro6G9OZ7ceDQOcYno020zBQKpZQLsJhYTDMCMNfXi/Y8duF5iW+4WWZr42ry0MMkcRGpbwG2A==} dev: false - /tailwindcss/3.1.5: - resolution: {integrity: sha512-bC/2dy3dGPqxMWAqFSRgQxVCfmO/31ZbeEp8s9DMDh4zgPZ5WW1gxRJkbBkXcTUIzaSUdhWrcsrSOe32ccgB4w==} + /tailwindcss/3.1.6: + resolution: {integrity: sha512-7skAOY56erZAFQssT1xkpk+kWt2NrO45kORlxFPXUt3CiGsVPhH1smuH5XoDH6sGPXLyBv+zgCKA2HWBsgCytg==} engines: {node: '>=12.13.0'} hasBin: true dependencies: @@ -8017,7 +8086,7 @@ packages: postcss: 8.4.14 postcss-import: 14.1.0_postcss@8.4.14 postcss-js: 4.0.0_postcss@8.4.14 - postcss-load-config: 4.0.1_postcss@8.4.14 + postcss-load-config: 3.1.4_postcss@8.4.14 postcss-nested: 5.0.6_postcss@8.4.14 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 @@ -8026,8 +8095,8 @@ packages: transitivePeerDependencies: - ts-node - /tailwindcss/3.1.5_ts-node@10.8.2: - resolution: {integrity: sha512-bC/2dy3dGPqxMWAqFSRgQxVCfmO/31ZbeEp8s9DMDh4zgPZ5WW1gxRJkbBkXcTUIzaSUdhWrcsrSOe32ccgB4w==} + /tailwindcss/3.1.6_ts-node@10.9.1: + resolution: {integrity: sha512-7skAOY56erZAFQssT1xkpk+kWt2NrO45kORlxFPXUt3CiGsVPhH1smuH5XoDH6sGPXLyBv+zgCKA2HWBsgCytg==} engines: {node: '>=12.13.0'} hasBin: true dependencies: @@ -8047,7 +8116,7 @@ packages: postcss: 8.4.14 postcss-import: 14.1.0_postcss@8.4.14 postcss-js: 4.0.0_postcss@8.4.14 - postcss-load-config: 4.0.1_i7duc3lt6p42geuj2nwruihc6u + postcss-load-config: 3.1.4_pe6iykxod2v7i2uk6okjazxzki postcss-nested: 5.0.6_postcss@8.4.14 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 @@ -8082,8 +8151,8 @@ packages: uuid: 3.4.0 dev: true - /terser/5.14.1: - resolution: {integrity: sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==} + /terser/5.14.2: + resolution: {integrity: sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -8127,13 +8196,13 @@ packages: resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} dev: false - /tinypool/0.2.1: - resolution: {integrity: sha512-HFU5ZYVq3wBfhSaf8qdqGsneaqXm0FgJQpoUlJbVdHpRLzm77IneKAD3RjzJWZvIv0YpPB9S7LUW53f6BE6ZSg==} + /tinypool/0.2.4: + resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy/0.3.3: - resolution: {integrity: sha512-gRiUR8fuhUf0W9lzojPf1N1euJYA30ISebSfgca8z76FOvXtVXqd5ojEIaKLWbDQhAaC3ibxZIjqbyi4ybjcTw==} + /tinyspy/1.0.0: + resolution: {integrity: sha512-FI5B2QdODQYDRjfuLF+OrJ8bjWRMCXokQPcwKm0W3IzcbUmBNv536cQc7eXGoAuXphZwgx1DFbqImwzz08Fnhw==} engines: {node: '>=14.0.0'} dev: true @@ -8183,8 +8252,8 @@ packages: utf8-byte-length: 1.0.4 dev: true - /ts-node/10.8.2: - resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==} + /ts-node/10.9.1: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -8249,13 +8318,13 @@ packages: typescript: 4.6.4 dev: true - /tsx/3.7.1: - resolution: {integrity: sha512-dwl1GBdkwVQ9zRxTmETGi+ck8pewNm2QXh+HK6jHxdHmeCjfCL+Db3b4VX/dOMDSS2hle1j5LzQoo8OpVXu6XQ==} + /tsx/3.8.0: + resolution: {integrity: sha512-PcvTwRXTm6hDWfPihA4n5WW/9SmgFNxKaDKqvLLG+FKNEPA4crsipChzC7PVozPtdOaMfR5QctDlkC/hKoIsxw==} hasBin: true dependencies: - '@esbuild-kit/cjs-loader': 2.3.0 - '@esbuild-kit/core-utils': 2.0.2 - '@esbuild-kit/esm-loader': 2.4.0 + '@esbuild-kit/cjs-loader': 2.3.1 + '@esbuild-kit/core-utils': 2.1.0 + '@esbuild-kit/esm-loader': 2.4.1 optionalDependencies: fsevents: 2.3.2 dev: true @@ -8413,7 +8482,7 @@ packages: dependencies: '@babel/core': 7.18.5 '@babel/standalone': 7.18.5 - '@babel/types': 7.18.8 + '@babel/types': 7.18.9 scule: 0.2.1 transitivePeerDependencies: - supports-color @@ -8495,8 +8564,8 @@ packages: - react-dom dev: true - /vitest/0.18.0: - resolution: {integrity: sha512-ryAtlh5Gvg3+aLNuOQ8YOHxgQCCu46jx40X5MBL0K0/ejB9i5zsr8fV8LTGXbXex80UMHlzceI9F+ouGaiR+mQ==} + /vitest/0.18.1: + resolution: {integrity: sha512-4F/1K/Vn4AvJwe7i2YblR02PT5vMKcw9KN4unDq2KD0YcSxX0B/6D6Qu9PJaXwVuxXMFTQ5ovd4+CQaW3bwofA==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -8522,9 +8591,9 @@ packages: '@types/node': 17.0.42 chai: 4.3.6 debug: 4.3.4 - local-pkg: 0.4.1 - tinypool: 0.2.1 - tinyspy: 0.3.3 + local-pkg: 0.4.2 + tinypool: 0.2.4 + tinyspy: 1.0.0 vite: link:packages/vite transitivePeerDependencies: - supports-color @@ -8558,8 +8627,8 @@ packages: vue: 3.2.37 dev: true - /vue-router/4.1.1_vue@3.2.37: - resolution: {integrity: sha512-Wp1mEf2xCwT0ez7o9JvgpfBp9JGnVb+dPERzXDbugTatzJAJ60VWOhJKifQty85k+jOreoFHER4r5fu062PhPw==} + /vue-router/4.1.2_vue@3.2.37: + resolution: {integrity: sha512-5BP1qXFncVRwgV/XnqzsKApdMjQPqWIpoUBdL1ynz8HyLxIX/UDAx7Ql2BjmA5CXT/p61JfZvkpiFWFpaqcfag==} peerDependencies: vue: ^3.2.0 dependencies: @@ -8709,8 +8778,8 @@ packages: optional: true dev: true - /ws/8.8.0: - resolution: {integrity: sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==} + /ws/8.8.1: + resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -8741,6 +8810,7 @@ packages: /yaml/2.1.1: resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} engines: {node: '>= 14'} + dev: true /yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} From d66ffd02801ab7a9f9ef2c2e17f0594d633f933a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Mon, 18 Jul 2022 23:29:21 +0900 Subject: [PATCH 091/716] fix: prevent null pathname error (#9188) Co-authored-by: Christoph Werner --- packages/vite/src/node/server/moduleGraph.ts | 15 ++++++++++----- playground/resolve/index.html | 6 ++++++ playground/resolve/vite.config.js | 16 ++++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/packages/vite/src/node/server/moduleGraph.ts b/packages/vite/src/node/server/moduleGraph.ts index 45fea171ddcc1e..4bbd79cd5cc2f6 100644 --- a/packages/vite/src/node/server/moduleGraph.ts +++ b/packages/vite/src/node/server/moduleGraph.ts @@ -1,5 +1,4 @@ import { extname } from 'node:path' -import { parse as parseUrl } from 'node:url' import type { ModuleInfo, PartialResolvedId } from 'rollup' import { isDirectCSSRequest } from '../plugins/css' import { @@ -237,10 +236,16 @@ export class ModuleGraph { url = removeImportQuery(removeTimestampQuery(url)) const resolved = await this.resolveId(url, !!ssr) const resolvedId = resolved?.id || url - const ext = extname(cleanUrl(resolvedId)) - const { pathname, search, hash } = parseUrl(url) - if (ext && !pathname!.endsWith(ext)) { - url = pathname + ext + (search || '') + (hash || '') + if ( + url !== resolvedId && + !url.includes('\0') && + !url.startsWith(`virtual:`) + ) { + const ext = extname(cleanUrl(resolvedId)) + const { pathname, search, hash } = new URL(url, 'relative://') + if (ext && !pathname!.endsWith(ext)) { + url = pathname + ext + search + hash + } } return [url, resolvedId, resolved?.meta] } diff --git a/playground/resolve/index.html b/playground/resolve/index.html index a1befcc2757348..bca49d55388e27 100644 --- a/playground/resolve/index.html +++ b/playground/resolve/index.html @@ -76,6 +76,9 @@

Monorepo linked dep

Plugin resolved virtual file

+

Plugin resolved virtual file (#9036)

+

+

Plugin resolved custom virtual file

@@ -221,6 +224,9 @@

resolve package that contains # in path

import { msg as virtualMsg } from '@virtual-file' text('.virtual', virtualMsg) + import { msg as virtualMsg9036 } from 'virtual:file-9036.js' + text('.virtual-9036', virtualMsg9036) + import { msg as customVirtualMsg } from '@custom-virtual-file' text('.custom-virtual', customVirtualMsg) diff --git a/playground/resolve/vite.config.js b/playground/resolve/vite.config.js index e2fa303598a26a..b27613eb6bc2ad 100644 --- a/playground/resolve/vite.config.js +++ b/playground/resolve/vite.config.js @@ -4,6 +4,9 @@ const { normalizePath } = require('vite') const virtualFile = '@virtual-file' const virtualId = '\0' + virtualFile +const virtualFile9036 = 'virtual:file-9036.js' +const virtualId9036 = '\0' + virtualFile9036 + const customVirtualFile = '@custom-virtual-file' const { a } = require('./config-dep') @@ -44,6 +47,19 @@ module.exports = { } } }, + { + name: 'virtual-module-9036', + resolveId(id) { + if (id === virtualFile9036) { + return virtualId9036 + } + }, + load(id) { + if (id === virtualId9036) { + return `export const msg = "[success] from virtual file #9036"` + } + } + }, { name: 'custom-resolve', resolveId(id) { From c5f2dc7519d7bf1b5740c05d7137530e2a08699d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Mon, 18 Jul 2022 23:30:42 +0900 Subject: [PATCH 092/716] fix(ssr): strip NULL_BYTE_PLACEHOLDER before import (#9124) --- packages/vite/src/node/ssr/ssrModuleLoader.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/ssr/ssrModuleLoader.ts b/packages/vite/src/node/ssr/ssrModuleLoader.ts index a2e30b2a6ccf5e..e1dd392a138aed 100644 --- a/packages/vite/src/node/ssr/ssrModuleLoader.ts +++ b/packages/vite/src/node/ssr/ssrModuleLoader.ts @@ -137,7 +137,8 @@ async function instantiateModule( if (dep[0] !== '.' && dep[0] !== '/') { return nodeImport(dep, mod.file!, resolveOptions) } - dep = unwrapId(dep) + // convert to rollup URL because `pendingImports`, `moduleGraph.urlToModuleMap` requires that + dep = unwrapId(dep).replace(NULL_BYTE_PLACEHOLDER, '\0') if (!isCircular(dep) && !pendingImports.get(dep)?.some(isCircular)) { pendingDeps.push(dep) if (pendingDeps.length === 1) { From 99b0e67bfe1c06084c1c81695634527e42af78bc Mon Sep 17 00:00:00 2001 From: patak Date: Mon, 18 Jul 2022 16:43:55 +0200 Subject: [PATCH 093/716] fix(dev): build.ssr is set during dev, fix #9134 (#9187) --- packages/vite/src/node/optimizer/index.ts | 7 ++++--- packages/vite/src/node/optimizer/optimizer.ts | 4 ++-- packages/vite/src/node/plugins/index.ts | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 97ce7706ba6e5e..2954accf1fc909 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -224,7 +224,7 @@ export async function optimizeDeps( ): Promise { const log = asCommand ? config.logger.info : debug - const ssr = !!config.build.ssr + const ssr = config.command === 'build' && !!config.build.ssr const cachedMetadata = loadCachedDepOptimizationMetadata( config, @@ -446,7 +446,8 @@ export function depsLogString(qualifiedIds: string[]): string { export async function runOptimizeDeps( resolvedConfig: ResolvedConfig, depsInfo: Record, - ssr: boolean = !!resolvedConfig.build.ssr + ssr: boolean = resolvedConfig.command === 'build' && + !!resolvedConfig.build.ssr ): Promise { const isBuild = resolvedConfig.command === 'build' const config: ResolvedConfig = { @@ -748,7 +749,7 @@ export function depsFromOptimizedDepInfo( export function getOptimizedDepPath( id: string, config: ResolvedConfig, - ssr: boolean = !!config.build.ssr + ssr: boolean ): string { return normalizePath( path.resolve(getDepsCacheDir(config, ssr), flattenId(id) + '.js') diff --git a/packages/vite/src/node/optimizer/optimizer.ts b/packages/vite/src/node/optimizer/optimizer.ts index e11a713958a727..b754a01ca411a3 100644 --- a/packages/vite/src/node/optimizer/optimizer.ts +++ b/packages/vite/src/node/optimizer/optimizer.ts @@ -55,7 +55,7 @@ export async function initDepsOptimizer( server?: ViteDevServer ): Promise { // Non Dev SSR Optimizer - const ssr = !!config.build.ssr + const ssr = config.command === 'build' && !!config.build.ssr if (!getDepsOptimizer(config, ssr)) { await createDepsOptimizer(config, server) } @@ -95,7 +95,7 @@ async function createDepsOptimizer( ): Promise { const { logger } = config const isBuild = config.command === 'build' - const ssr = !!config.build.ssr // safe as Dev SSR don't use this optimizer + const ssr = isBuild && !!config.build.ssr // safe as Dev SSR don't use this optimizer const sessionTimestamp = Date.now().toString() diff --git a/packages/vite/src/node/plugins/index.ts b/packages/vite/src/node/plugins/index.ts index c58cf8f30a77e5..a2fbebcc75b66e 100644 --- a/packages/vite/src/node/plugins/index.ts +++ b/packages/vite/src/node/plugins/index.ts @@ -85,7 +85,7 @@ export async function resolvePlugins( wasmFallbackPlugin(), definePlugin(config), cssPostPlugin(config), - config.build.ssr ? ssrRequireHookPlugin(config) : null, + isBuild && config.build.ssr ? ssrRequireHookPlugin(config) : null, isBuild && buildHtmlPlugin(config), workerImportMetaUrlPlugin(config), ...buildPlugins.pre, From b2f6bdcf3d2f2788070bfe5145e069a3937cc7dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Mon, 18 Jul 2022 23:49:24 +0900 Subject: [PATCH 094/716] fix: return 500 on proxy error only if possible (fixes #9172) (#9193) --- packages/vite/src/node/server/middlewares/proxy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/server/middlewares/proxy.ts b/packages/vite/src/node/server/middlewares/proxy.ts index 0f83ecb723fa19..9f07a3c6e7bc24 100644 --- a/packages/vite/src/node/server/middlewares/proxy.ts +++ b/packages/vite/src/node/server/middlewares/proxy.ts @@ -55,7 +55,7 @@ export function proxyMiddleware( error: err } ) - if (!res.writableEnded) { + if (!res.headersSent && !res.writableEnded) { res .writeHead(500, { 'Content-Type': 'text/plain' From af6088f40ad89579f39f8d2d93ae2d11168847c1 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Mon, 18 Jul 2022 17:00:51 +0200 Subject: [PATCH 095/716] release: v3.0.2 --- packages/vite/CHANGELOG.md | 11 +++++++++++ packages/vite/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index b96232e12f9fe9..fa07b58412b932 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,14 @@ +## 3.0.2 (2022-07-18) + +* fix: fs serve only edit pathname (fixes #9148) (#9173) ([28cffc9](https://github.com/vitejs/vite/commit/28cffc9)), closes [#9148](https://github.com/vitejs/vite/issues/9148) [#9173](https://github.com/vitejs/vite/issues/9173) +* fix: prevent null pathname error (#9188) ([d66ffd0](https://github.com/vitejs/vite/commit/d66ffd0)), closes [#9188](https://github.com/vitejs/vite/issues/9188) +* fix: return 500 on proxy error only if possible (fixes #9172) (#9193) ([b2f6bdc](https://github.com/vitejs/vite/commit/b2f6bdc)), closes [#9172](https://github.com/vitejs/vite/issues/9172) [#9193](https://github.com/vitejs/vite/issues/9193) +* fix(deps): update all non-major dependencies (#9176) ([31d3b70](https://github.com/vitejs/vite/commit/31d3b70)), closes [#9176](https://github.com/vitejs/vite/issues/9176) +* fix(dev): build.ssr is set during dev, fix #9134 (#9187) ([99b0e67](https://github.com/vitejs/vite/commit/99b0e67)), closes [#9134](https://github.com/vitejs/vite/issues/9134) [#9187](https://github.com/vitejs/vite/issues/9187) +* fix(ssr): strip NULL_BYTE_PLACEHOLDER before import (#9124) ([c5f2dc7](https://github.com/vitejs/vite/commit/c5f2dc7)), closes [#9124](https://github.com/vitejs/vite/issues/9124) + + + ## 3.0.1 (2022-07-18) * fix: avoid errors when loading the overlay code in workers (#9064) ([a52b45e](https://github.com/vitejs/vite/commit/a52b45e)), closes [#9064](https://github.com/vitejs/vite/issues/9064) diff --git a/packages/vite/package.json b/packages/vite/package.json index f2d8cbf38afcce..689201587fd7b0 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "vite", - "version": "3.0.1", + "version": "3.0.2", "type": "module", "license": "MIT", "author": "Evan You", From 88baa53961148d1ffc1c76248fa7122feabf671e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 19 Jul 2022 15:48:12 +0900 Subject: [PATCH 096/716] feat(css): use esbuild.log* options when minifying (#9210) --- packages/vite/src/node/plugins/css.ts | 9 ++++++++- playground/css/__tests__/css.spec.ts | 7 +++++++ playground/css/main.js | 2 ++ playground/css/unsupported.css | 3 +++ playground/css/vite.config.js | 5 +++++ 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 playground/css/unsupported.css diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index bfe60ed04dc529..b4429961ef479a 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -1249,18 +1249,25 @@ async function minifyCSS(css: string, config: ResolvedConfig) { function resolveEsbuildMinifyOptions( options: ESBuildOptions ): TransformOptions { + const base: TransformOptions = { + logLevel: options.logLevel, + logLimit: options.logLimit, + logOverride: options.logOverride + } + if ( options.minifyIdentifiers != null || options.minifySyntax != null || options.minifyWhitespace != null ) { return { + ...base, minifyIdentifiers: options.minifyIdentifiers ?? true, minifySyntax: options.minifySyntax ?? true, minifyWhitespace: options.minifyWhitespace ?? true } } else { - return { minify: true } + return { ...base, minify: true } } } diff --git a/playground/css/__tests__/css.spec.ts b/playground/css/__tests__/css.spec.ts index 57b75599150ea8..31425a19fc2c98 100644 --- a/playground/css/__tests__/css.spec.ts +++ b/playground/css/__tests__/css.spec.ts @@ -442,3 +442,10 @@ test('aliased css has content', async () => { // expect(await page.textContent('.aliased-content')).toMatch('.aliased') expect(await getColor('.aliased-module')).toBe('blue') }) + +test.runIf(isBuild)('warning can be suppressed by esbuild.logOverride', () => { + serverLogs.forEach((log) => { + // no warning from esbuild css minifier + expect(log).not.toMatch('unsupported-css-property') + }) +}) diff --git a/playground/css/main.js b/playground/css/main.js index c9384b6a79013c..45e7730b868eb1 100644 --- a/playground/css/main.js +++ b/playground/css/main.js @@ -104,3 +104,5 @@ import aliasModule from '#alias-module' document .querySelector('.aliased-module') .classList.add(aliasModule.aliasedModule) + +import './unsupported.css' diff --git a/playground/css/unsupported.css b/playground/css/unsupported.css new file mode 100644 index 00000000000000..c17818a3ab33d7 --- /dev/null +++ b/playground/css/unsupported.css @@ -0,0 +1,3 @@ +.unsupported { + overflow-x: hidden; +} diff --git a/playground/css/vite.config.js b/playground/css/vite.config.js index c501213b47cded..704eb134e25880 100644 --- a/playground/css/vite.config.js +++ b/playground/css/vite.config.js @@ -7,6 +7,11 @@ module.exports = { build: { cssTarget: 'chrome61' }, + esbuild: { + logOverride: { + 'unsupported-css-property': 'silent' + } + }, resolve: { alias: { '@': __dirname, From 3e510abcdb8248d2dd29a871ffd59ce2a9982845 Mon Sep 17 00:00:00 2001 From: yoho Date: Tue, 19 Jul 2022 16:39:53 +0800 Subject: [PATCH 097/716] feat: worker config call config hook (#9212) --- packages/vite/src/node/config.ts | 95 +++++++++++++------ .../worker/__tests__/iife/vite.config.js | 2 +- playground/worker/package.json | 6 +- .../{vite.config.js => vite.config-iife.js} | 21 +++- 4 files changed, 88 insertions(+), 36 deletions(-) rename playground/worker/{vite.config.js => vite.config-iife.js} (56%) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index ef1fdbe522c133..f0c46ed9f94b19 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -395,6 +395,42 @@ export async function resolveConfig( mode = inlineConfig.mode || config.mode || mode configEnv.mode = mode + // Some plugins that aren't intended to work in the bundling of workers (doing post-processing at build time for example). + // And Plugins may also have cached that could be corrupted by being used in these extra rollup calls. + // So we need to separate the worker plugin from the plugin that vite needs to run. + const rawWorkerUserPlugins = ( + (await asyncFlatten(config.worker?.plugins || [])) as Plugin[] + ).filter((p) => { + if (!p) { + return false + } else if (!p.apply) { + return true + } else if (typeof p.apply === 'function') { + return p.apply({ ...config, mode }, configEnv) + } else { + return p.apply === command + } + }) + + let workerConfig = mergeConfig({}, config) + const [workerPrePlugins, workerNormalPlugins, workerPostPlugins] = + sortUserPlugins(rawWorkerUserPlugins) + + // run config hooks + const workerUserPlugins = [ + ...workerPrePlugins, + ...workerNormalPlugins, + ...workerPostPlugins + ] + for (const p of workerUserPlugins) { + if (p.config) { + const res = await p.config(workerConfig, configEnv) + if (res) { + workerConfig = mergeConfig(workerConfig, res) + } + } + } + // resolve plugins const rawUserPlugins = ( (await asyncFlatten(config.plugins || [])) as Plugin[] @@ -412,13 +448,6 @@ export async function resolveConfig( const [prePlugins, normalPlugins, postPlugins] = sortUserPlugins(rawUserPlugins) - // resolve worker - const resolvedWorkerOptions: ResolveWorkerOptions = { - format: config.worker?.format || 'iife', - plugins: [], - rollupOptions: config.worker?.rollupOptions || {} - } - // run config hooks const userPlugins = [...prePlugins, ...normalPlugins, ...postPlugins] for (const p of userPlugins) { @@ -577,8 +606,14 @@ export async function resolveConfig( const BASE_URL = resolvedBase - const resolved: ResolvedConfig = { - ...config, + // resolve worker + const resolvedWorkerOptions: ResolveWorkerOptions = { + format: workerConfig.worker?.format || 'iife', + plugins: [], + rollupOptions: workerConfig.worker?.rollupOptions || {} + } + + const resolvedConfig: ResolvedConfig = { configFile: configFile ? normalizePath(configFile) : undefined, configFileDependencies: configFileDependencies.map((name) => normalizePath(path.resolve(name)) @@ -628,6 +663,7 @@ export async function resolveConfig( ...config.experimental } } + const resolved: ResolvedConfig = Object.assign(config, resolvedConfig) if (middlewareMode === 'ssr') { logger.warn( @@ -659,26 +695,6 @@ export async function resolveConfig( ) } - // Some plugins that aren't intended to work in the bundling of workers (doing post-processing at build time for example). - // And Plugins may also have cached that could be corrupted by being used in these extra rollup calls. - // So we need to separate the worker plugin from the plugin that vite needs to run. - const [workerPrePlugins, workerNormalPlugins, workerPostPlugins] = - sortUserPlugins(config.worker?.plugins as Plugin[]) - const workerResolved: ResolvedConfig = { - ...resolved, - isWorker: true, - mainConfig: resolved - } - resolved.worker.plugins = await resolvePlugins( - workerResolved, - workerPrePlugins, - workerNormalPlugins, - workerPostPlugins - ) - // call configResolved worker plugins hooks - await Promise.all( - resolved.worker.plugins.map((p) => p.configResolved?.(workerResolved)) - ) ;(resolved.plugins as Plugin[]) = await resolvePlugins( resolved, prePlugins, @@ -686,8 +702,27 @@ export async function resolveConfig( postPlugins ) + const workerResolved: ResolvedConfig = Object.assign( + workerConfig, + resolvedConfig, + { + isWorker: true, + mainConfig: resolved + } + ) + resolved.worker.plugins = await resolvePlugins( + workerResolved, + workerPrePlugins, + workerNormalPlugins, + workerPostPlugins + ) + // call configResolved hooks - await Promise.all(userPlugins.map((p) => p.configResolved?.(resolved))) + await Promise.all( + userPlugins + .map((p) => p.configResolved?.(resolved)) + .concat(workerUserPlugins.map((p) => p.configResolved?.(workerResolved))) + ) if (process.env.DEBUG) { debug(`using resolved config: %O`, { diff --git a/playground/worker/__tests__/iife/vite.config.js b/playground/worker/__tests__/iife/vite.config.js index 4204f532b7ac1c..47821e59505e02 100644 --- a/playground/worker/__tests__/iife/vite.config.js +++ b/playground/worker/__tests__/iife/vite.config.js @@ -1 +1 @@ -module.exports = require('../../vite.config') +module.exports = require('../../vite.config-iife') diff --git a/playground/worker/package.json b/playground/worker/package.json index a4ee96e1620538..701fca25628e76 100644 --- a/playground/worker/package.json +++ b/playground/worker/package.json @@ -3,9 +3,9 @@ "private": true, "version": "0.0.0", "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview", + "dev": "vite --config ./vite.config-iife.js", + "build": "vite --config ./vite.config-iife.js build", + "preview": "vite --config ./vite.config-iife.js preview", "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", diff --git a/playground/worker/vite.config.js b/playground/worker/vite.config-iife.js similarity index 56% rename from playground/worker/vite.config.js rename to playground/worker/vite.config-iife.js index d62d6c4f6d6d36..3a0578c329f8ea 100644 --- a/playground/worker/vite.config.js +++ b/playground/worker/vite.config-iife.js @@ -5,12 +5,29 @@ module.exports = vite.defineConfig({ base: '/iife/', worker: { format: 'iife', - plugins: [vueJsx()], + plugins: [ + vueJsx(), + { + name: 'config-test', + config() { + return { + worker: { + rollupOptions: { + output: { + entryFileNames: 'assets/worker_entry.[name].js' + } + } + } + } + } + } + ], rollupOptions: { output: { assetFileNames: 'assets/worker_asset.[name].[ext]', chunkFileNames: 'assets/worker_chunk.[name].js', - entryFileNames: 'assets/worker_entry.[name].js' + // should fix by config-test plugin + entryFileNames: 'assets/worker_.[name].js' } } }, From 5866cfb2529ef5a5d5258b0fae0b37c3484d1762 Mon Sep 17 00:00:00 2001 From: patak Date: Tue, 19 Jul 2022 19:15:50 +0200 Subject: [PATCH 098/716] fix: ssrLoadModule executes code in non-strict mode, fixes #9197 (#9199) --- packages/vite/src/node/ssr/ssrModuleLoader.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/ssr/ssrModuleLoader.ts b/packages/vite/src/node/ssr/ssrModuleLoader.ts index e1dd392a138aed..e856b02402b659 100644 --- a/packages/vite/src/node/ssr/ssrModuleLoader.ts +++ b/packages/vite/src/node/ssr/ssrModuleLoader.ts @@ -195,7 +195,7 @@ async function instantiateModule( ssrImportKey, ssrDynamicImportKey, ssrExportAllKey, - result.code + `\n//# sourceURL=${mod.url}` + '"use strict";' + result.code + `\n//# sourceURL=${mod.url}` ) await initModule( context.global, From ae5639ccfa29c056fbb1a3ebb55070b65392168d Mon Sep 17 00:00:00 2001 From: Tony Trinh Date: Tue, 19 Jul 2022 12:17:21 -0500 Subject: [PATCH 099/716] docs: update CONTRIBUTING.md (#9127) --- CONTRIBUTING.md | 117 ++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 69 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 65fb07f88fad9d..350f36b0f25351 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Vite Contributing Guide -Hi! We are really excited that you are interested in contributing to Vite. Before submitting your contribution, please make sure to take a moment and read through the following guide: +Hi! We're really excited that you're interested in contributing to Vite! Before submitting your contribution, please read through the following guide. ## Repo Setup @@ -8,7 +8,7 @@ The Vite repo is a monorepo using pnpm workspaces. The package manager used to i To develop and test the core `vite` package: -1. Run `pnpm i` in Vite's root folder +1. Run `pnpm i` in Vite's root folder. 2. Run `pnpm run build` in Vite's root folder. @@ -16,41 +16,41 @@ To develop and test the core `vite` package: You can alternatively use [Vite.js Docker Dev](https://github.com/nystudio107/vitejs-docker-dev) for a containerized Docker setup for Vite.js development. -> Vite uses pnpm v7. If you are working on multiple projects with different versions of pnpm, it's recommend to enable [Corepack](https://github.com/nodejs/corepack) by running `corepack enable`. +> Vite uses pnpm v7. If you are working on multiple projects with different versions of pnpm, it's recommended to enable [Corepack](https://github.com/nodejs/corepack) by running `corepack enable`. ## Debugging -If you want to use break point and explore code execution you can use the ["Run and debug"](https://code.visualstudio.com/docs/editor/debugging) feature from vscode. +To use breakpoints and explore code execution, you can use the ["Run and Debug"](https://code.visualstudio.com/docs/editor/debugging) feature from VS Code. 1. Add a `debugger` statement where you want to stop the code execution. -2. Click on the "Run and Debug" icon in the activity bar of the editor. +2. Click the "Run and Debug" icon in the activity bar of the editor, which opens the [_Run and Debug view_](https://code.visualstudio.com/docs/editor/debugging#_run-and-debug-view). -3. Click on the "JavaScript Debug Terminal" button. +3. Click the "JavaScript Debug Termimal" button in the _Run and Debug view_, which opens a terminal in VS Code. -4. It will open a terminal, then go to `playground/xxx` and run `pnpm run dev`. +4. From that terminal, go to `playground/xxx`, and run `pnpm run dev`. -5. The execution will stop and you'll use the [Debug toolbar](https://code.visualstudio.com/docs/editor/debugging#_debug-actions) to continue, step over, restart the process... +5. The execution will stop at the `debugger` statement, and you can use the [Debug toolbar](https://code.visualstudio.com/docs/editor/debugging#_debug-actions) to continue, step over, and restart the process... -### Debugging errors in Vitest tests using Playwright (Chromium) +### Debugging Errors in Vitest Tests Using Playwright (Chromium) Some errors are masked and hidden away because of the layers of abstraction and sandboxed nature added by Vitest, Playwright, and Chromium. In order to see what's actually going wrong and the contents of the devtools console in those instances, follow this setup: 1. Add a `debugger` statement to the `playground/vitestSetup.ts` -> `afterAll` hook. This will pause execution before the tests quit and the Playwright browser instance exits. -1. Run the tests with the `debug-serve` script command which will enable remote debugging: `pnpm run debug-serve resolve`. +2. Run the tests with the `debug-serve` script command, which will enable remote debugging: `pnpm run debug-serve resolve`. -1. Wait for inspector devtools to open in your browser and the debugger to attach. +3. Wait for inspector devtools to open in your browser and the debugger to attach. -1. In the sources panel in the right column, click the play button to resume execution and allow the tests to run which will open a Chromium instance. +4. In the sources panel in the right column, click the play button to resume execution, and allow the tests to run, which will open a Chromium instance. -1. Focusing the Chromium instance, you can open the browser devtools and inspect the console there to find the underlying problems. +5. Focusing the Chromium instance, you can open the browser devtools and inspect the console there to find the underlying problems. -1. To close everything, just stop the test process back in your terminal. +6. To close everything, just stop the test process back in your terminal. ## Testing Vite against external packages -You may wish to test your locally-modified copy of Vite against another package that is built with Vite. For pnpm, after building Vite, you can use [`pnpm.overrides`](https://pnpm.io/package_json#pnpmoverrides). Please note that `pnpm.overrides` must be specified in the root `package.json` and you must first list the package as a dependency in the root `package.json`: +You may wish to test your locally modified copy of Vite against another package that is built with Vite. For pnpm, after building Vite, you can use [`pnpm.overrides`](https://pnpm.io/package_json#pnpmoverrides) to do this. Note that `pnpm.overrides` must be specified in the root `package.json`, and you must list the package as a dependency in the root `package.json`: ```json { @@ -73,7 +73,7 @@ And re-run `pnpm install` to link the package. Each package under `playground/` contains a `__tests__` directory. The tests are run using [Vitest](https://vitest.dev/) + [Playwright](https://playwright.dev/) with custom integrations to make writing tests simple. The detailed setup is inside `vitest.config.e2e.js` and `playground/vitest*` files. -Before running the tests, make sure that [Vite has been built](#repo-setup). On Windows, you may want to [activate Developer Mode](https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development) to solve [issues with symlink creation for non-admins](https://github.com/vitejs/vite/issues/7390). Also you may want to [set git `core.symlinks` to `true` to solve issues with symlinks in git](https://github.com/vitejs/vite/issues/5242). +Before running the tests, make sure that [Vite has been built](#repo-setup). On Windows, you may want to [activate Developer Mode](https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development) to resolve [issues with symlink creation for non-admins](https://github.com/vitejs/vite/issues/7390). Also, you may want to [set git `core.symlinks` to `true` to resolve issues with symlinks in git](https://github.com/vitejs/vite/issues/5242). Each integration test can be run under either dev server mode or build mode. @@ -83,21 +83,21 @@ Each integration test can be run under either dev server mode or build mode. - `pnpm run test-build` runs tests only under build mode. -- You can also use `pnpm run test-serve [match]` or `pnpm run test-build [match]` to run tests in a specific playground package, e.g. `pnpm run test-serve asset` will run tests for both `playground/asset` and `vite/src/node/__tests__/asset` under serve mode and `vite/src/node/__tests__/**/*` just run in serve mode. +- `pnpm run test-serve [match]` or `pnpm run test-build [match]` runs tests in specific packages that match the given filter. e.g. `pnpm run test-serve asset` runs tests for both `playground/asset` and `vite/src/node/__tests__/asset` under serve mode. Note package matching is not available for the `pnpm test` script, which always runs all tests. ### Unit Tests -Other than tests under `playground/` for integration tests, packages might contains unit tests under their `__tests__` directory. Unit tests are powered by [Vitest](https://vitest.dev/). The detailed config is inside `vitest.config.ts` files. +Other than tests under `playground/` for integration tests, packages might contain unit tests under their `__tests__` directory. Unit tests are powered by [Vitest](https://vitest.dev/). The detailed config is inside `vitest.config.ts` files. - `pnpm run test-unit` runs unit tests under each package. -- You can also use `pnpm run test-unit [match]` to run related tests. +- `pnpm run test-unit [match]` runs tests in specific packages that match the given filter. ### Test Env and Helpers -Inside playground tests, you can import the `page` object from `~utils`, which is a Playwright [`Page`](https://playwright.dev/docs/api/class-page) instance that has already navigated to the served page of the current playground. So writing a test is as simple as: +Inside playground tests, you can import the `page` object from `~utils`, which is a Playwright [`Page`](https://playwright.dev/docs/api/class-page) instance that has already navigated to the served page of the current playground. So, writing a test is as simple as: ```js import { page } from '~utils' @@ -107,13 +107,13 @@ test('should work', async () => { }) ``` -Some common test helpers, e.g. `testDir`, `isBuild` or `editFile` are also available in the utils. Source code is located at `playground/test-utils.ts`. +Some common test helpers (e.g. `testDir`, `isBuild`, or `editFile`) are also available in the utils. Source code is located at `playground/test-utils.ts`. Note: The test build environment uses a [different default set of Vite config](https://github.com/vitejs/vite/blob/main/playground/vitestSetup.ts#L102-L122) to skip transpilation during tests to make it faster. This may produce a different result compared to the default production build. ### Extending the Test Suite -To add new tests, you should find a related playground to the fix or feature (or create a new one). As an example, static assets loading are tested in the [assets playground](https://github.com/vitejs/vite/tree/main/playground/assets). In this Vite App, there is a test for `?raw` imports, with [a section is defined in the `index.html` for it](https://github.com/vitejs/vite/blob/main/playground/assets/index.html#L121): +To add new tests, you should find a related playground to the fix or feature (or create a new one). As an example, static assets loading is tested in the [assets playground](https://github.com/vitejs/vite/tree/main/playground/assets). In this Vite app, there is a test for `?raw` imports with [a section defined in the `index.html` for it](https://github.com/vitejs/vite/blob/main/playground/assets/index.html#L121): ```html

?raw import

@@ -127,7 +127,7 @@ import rawSvg from './nested/fragment.svg?raw' text('.raw', rawSvg) ``` -Where the `text` util is defined as: +...where the `text` util is defined as: ```js function text(el, text) { @@ -145,34 +145,34 @@ test('?raw import', async () => { ## Note on Test Dependencies -In many test cases we need to mock dependencies using `link:` and `file:` protocols. `pnpm` treats `link:` as symlinks and `file:` as hardlinks. To test dependencies as if they are copied into `node_modules`, use the `file:` protocol, other cases should use the `link:` protocol. +In many test cases, we need to mock dependencies using `link:` and `file:` protocols. `pnpm` treats `link:` as symlinks and `file:` as hardlinks. To test dependencies as if they were copied into `node_modules`, use the `file:` protocol. Otherwise, use the `link:` protocol. ## Debug Logging -You can set the `DEBUG` environment variable to turn on debugging logs. E.g. `DEBUG="vite:resolve"`. To see all debug logs you can set `DEBUG="vite:*"`, but be warned that it will be quite noisy. You can run `grep -r "createDebugger('vite:" packages/vite/src/` to see a list of available debug scopes. +You can set the `DEBUG` environment variable to turn on debugging logs (e.g. `DEBUG="vite:resolve"`). To see all debug logs, you can set `DEBUG="vite:*"`, but be warned that it will be quite noisy. You can run `grep -r "createDebugger('vite:" packages/vite/src/` to see a list of available debug scopes. ## Pull Request Guidelines -- Checkout a topic branch from a base branch, e.g. `main`, and merge back against that branch. +- Checkout a topic branch from a base branch (e.g. `main`), and merge back against that branch. - If adding a new feature: - Add accompanying test case. - - Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it. + - Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first, and have it approved before working on it. -- If fixing bug: +- If fixing a bug: - - If you are resolving a special issue, add `(fix #xxxx[,#xxxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `fix: update entities encoding/decoding (fix #3899)`. + - If you are resolving a special issue, add `(fix #xxxx[,#xxxx])` (#xxxx is the issue id) in your PR title for a better release log (e.g. `fix: update entities encoding/decoding (fix #3899)`). - Provide a detailed description of the bug in the PR. Live demo preferred. - Add appropriate test coverage if applicable. -- It's OK to have multiple small commits as you work on the PR - GitHub can automatically squash them before merging. +- It's OK to have multiple small commits as you work on the PR. GitHub can automatically squash them before merging. - Make sure tests pass! - Commit messages must follow the [commit message convention](./.github/commit-convention.md) so that changelogs can be automatically generated. Commit messages are automatically validated before commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [yorkie](https://github.com/yyx990803/yorkie)). -- No need to worry about code style as long as you have installed the dev dependencies - modified files are automatically formatted with Prettier on commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [yorkie](https://github.com/yyx990803/yorkie)). +- No need to worry about code style as long as you have installed the dev dependencies. Modified files are automatically formatted with Prettier on commit (by invoking [Git Hooks](https://git-scm.com/docs/githooks) via [yorkie](https://github.com/yyx990803/yorkie)). ## Maintenance Guidelines @@ -196,62 +196,41 @@ You can set the `DEBUG` environment variable to turn on debugging logs. E.g. `DE Vite aims to be lightweight, and this includes being aware of the number of npm dependencies and their size. -We use rollup to pre-bundle most dependencies before publishing! Therefore most dependencies, even used in src code, should be added under `devDependencies` by default. This also creates a number of constraints that we need to be aware of in the codebase: +We use Rollup to pre-bundle most dependencies before publishing! Therefore, most dependencies, even those used in runtime source code, should be added under `devDependencies` by default. This also creates the following constraints that we need to be aware of in the codebase. ### Usage of `require()` -In some cases we intentionally lazy-require some dependencies to improve startup performance. However, note that we cannot use simple `require('somedep')` calls since these are ignored in ESM files so the dependency won't be included in the bundle, and the actual dependency won't even be there when published since they are in `devDependencies`. +In some cases, we intentionally lazy-require some dependencies to improve start-up performance. However, note that we cannot use simple `require('somedep')` calls since these are ignored in ESM files, so the dependency won't be included in the bundle, and the actual dependency won't even be there when published since they are in `devDependencies`. Instead, use `(await import('somedep')).default`. -### Think before adding a dependency +### Think Before Adding a Dependency Most deps should be added to `devDependencies` even if they are needed at runtime. Some exceptions are: - Type packages. Example: `@types/*`. - Deps that cannot be properly bundled due to binary files. Example: `esbuild`. -- Deps that ships its own types and its type is used in vite's own public types. Example: `rollup`. +- Deps that ship their own types that are used in Vite's own public types. Example: `rollup`. -Avoid deps that has large transitive dependencies that results in bloated size compared to the functionality it provides. For example, `http-proxy` itself plus `@types/http-proxy` is a little over 1MB in size, but `http-proxy-middleware` pulls in a ton of dependencies that makes it 7MB(!) when a minimal custom middleware on top of `http-proxy` only requires a couple lines of code. +Avoid deps with large transitive dependencies that result in bloated size compared to the functionality it provides. For example, `http-proxy` itself plus `@types/http-proxy` is a little over 1MB in size, but `http-proxy-middleware` pulls in a ton of dependencies that make it 7MB(!) when a minimal custom middleware on top of `http-proxy` only requires a couple of lines of code. -### Ensure type support +### Ensure Type Support -Vite aims to be fully usable as a dependency in a TypeScript project (e.g. it should provide proper typings for VitePress), and also in `vite.config.ts`. This means technically a dependency whose types are exposed needs to be part of `dependencies` instead of `devDependencies`. However, these means we won't be able to bundle it. +Vite aims to be fully usable as a dependency in a TypeScript project (e.g. it should provide proper typings for VitePress), and also in `vite.config.ts`. This means technically a dependency whose types are exposed needs to be part of `dependencies` instead of `devDependencies`. However, this also means we won't be able to bundle it. -To get around this, we inline some of these dependencies' types in `packages/vite/types`. This way we can still expose the typing but bundle the dependency's source code. +To get around this, we inline some of these dependencies' types in `packages/vite/types`. This way, we can still expose the typing but bundle the dependency's source code. -Use `pnpm run check-dist-types` to check bundled types does not rely on types in `devDependencies`. If you are adding `dependencies`, make sure to configure `tsconfig.check.json`. +Use `pnpm run check-dist-types` to check that the bundled types do not rely on types in `devDependencies`. If you are adding `dependencies`, make sure to configure `tsconfig.check.json`. -### Think before adding yet another option +### Think Before Adding Yet Another Option -We already have many config options, and we should avoid fixing an issue by adding yet another one. Before adding an option, try to think about: +We already have many config options, and we should avoid fixing an issue by adding yet another one. Before adding an option, consider whether the problem: -- Whether the problem is really worth addressing -- Whether the problem can be fixed with a smarter default -- Whether the problem has workaround using existing options -- Whether the problem can be addressed with a plugin instead +- is really worth addressing +- can be fixed with a smarter default +- has workaround using existing options +- can be addressed with a plugin instead -## Docs translation contribution +## Docs Translation Contribution -If you would like to start a translation in your language, you are welcome to contribute! Please join [the #translations channel in Vite Land](https://chat.vitejs.dev) to discuss and coordinate with others. - -The english docs are embedded in the main Vite repo, to allow contributors to work on docs, tests and implementation in the same PR. Translations are done by forking the main repo. - -### How to start a translation repo - -1. In order to get all doc files, you first need to clone this repo in your personal account. -2. Keep all the files in `docs/` and remove everything else. - - - You should setup your translation site based on all the files in `docs/` folder as a VitePress project. - (that said, `package.json` is need). - - - Refresh git history by removing `.git` and then `git init` - -3. Translate the docs. - - - During this stage, you may be translating documents and synchronizing updates at the same time, but don't worry about that, it's very common in translation contribution. - -4. Push your commits to your GitHub repo. you can setup a netlify preview as well. -5. Use [Ryu-cho](https://github.com/vuejs-translations/ryu-cho) tool to setup a GitHub Action, automatically track English docs update later. - -We recommend talking with others in Vite Land so you find more contributors for your language to share the maintenance work. Once the translation is done, communicate it to the Vite team so the repo can be moved to the official vitejs org in GitHub. +To add a new language to the Vite docs, see [`vite-docs-template`](https://github.com/tony19/vite-docs-template/blob/main/.github/CONTRIBUTING.md). From dfaeb2b7dc39822bf00fc97802b758b17129c37b Mon Sep 17 00:00:00 2001 From: Rom Date: Tue, 19 Jul 2022 21:40:42 +0200 Subject: [PATCH 100/716] fix: make `resolveConfig()` concurrent safe (#9224) --- packages/vite/src/node/config.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index f0c46ed9f94b19..4716bc6fa11271 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1020,12 +1020,14 @@ async function loadConfigFromBundledFile( // with --experimental-loader themselves, we have to do a hack here: // write it to disk, load it with native Node ESM, then delete the file. if (isESM) { - const fileUrl = pathToFileURL(fileName) - fs.writeFileSync(fileName + '.mjs', bundledCode) + const fileBase = `${fileName}.timestamp-${Date.now()}` + const fileNameTmp = `${fileBase}.mjs` + const fileUrl = `${pathToFileURL(fileBase)}.mjs` + fs.writeFileSync(fileNameTmp, bundledCode) try { - return (await dynamicImport(`${fileUrl}.mjs?t=${Date.now()}`)).default + return (await dynamicImport(fileUrl)).default } finally { - fs.unlinkSync(fileName + '.mjs') + fs.unlinkSync(fileNameTmp) } } // for cjs, we can register a custom loader via `_require.extensions` From c98ed4df906b4ebcc1a362e507599c2c09bcc01d Mon Sep 17 00:00:00 2001 From: circle-gon <97845741+circle-gon@users.noreply.github.com> Date: Wed, 20 Jul 2022 00:34:23 -0400 Subject: [PATCH 101/716] docs: update README.md (#9228) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 546014a12c7116..7449f11a54788b 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ - 🔩 Universal Plugin Interface - 🔑 Fully Typed APIs -Vite (French word for "quick", pronounced [`/vit/`](https://cdn.jsdelivr.net/gh/vitejs/vite@main/docs/public/vite.mp3), like "veet") is a new breed of frontend build tool that significantly improves the frontend development experience. It consists of two major parts: +Vite (French word for "quick", pronounced [`/vit/`](https://cdn.jsdelivr.net/gh/vitejs/vite@main/docs/public/vite.mp3), like "veet") is a new breed of frontend build tooling that significantly improves the frontend development experience. It consists of two major parts: - A dev server that serves your source files over [native ES modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules), with [rich built-in features](https://vitejs.dev/guide/features.html) and astonishingly fast [Hot Module Replacement (HMR)](https://vitejs.dev/guide/features.html#hot-module-replacement). From 29db3ea4e6d6d5cb1d6891768789063a9bcdbd0f Mon Sep 17 00:00:00 2001 From: Hang Liang <90079525+xlianghang@users.noreply.github.com> Date: Wed, 20 Jul 2022 23:38:07 +0800 Subject: [PATCH 102/716] docs: fix server options link (#9242) --- packages/plugin-react/README.md | 2 +- packages/vite/src/node/server/middlewares/static.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugin-react/README.md b/packages/plugin-react/README.md index e8d27d0e57242b..6a8f3cb0ac9e21 100644 --- a/packages/plugin-react/README.md +++ b/packages/plugin-react/README.md @@ -83,7 +83,7 @@ Here's the [complete list of Babel parser plugins](https://babeljs.io/docs/en/ba ## Middleware mode -In [middleware mode](https://vitejs.dev/config/#server-middlewaremode), you should make sure your entry `index.html` file is transformed by Vite. Here's an example for an Express server: +In [middleware mode](https://vitejs.dev/config/server-options.html#server-middlewaremode), you should make sure your entry `index.html` file is transformed by Vite. Here's an example for an Express server: ```js app.get('/', async (req, res, next) => { diff --git a/packages/vite/src/node/server/middlewares/static.ts b/packages/vite/src/node/server/middlewares/static.ts index ed0d162b59c936..1c71529ef72e79 100644 --- a/packages/vite/src/node/server/middlewares/static.ts +++ b/packages/vite/src/node/server/middlewares/static.ts @@ -193,7 +193,7 @@ function ensureServingAccess( const hintMessage = ` ${server.config.server.fs.allow.map((i) => `- ${i}`).join('\n')} -Refer to docs https://vitejs.dev/config/#server-fs-allow for configurations and more details.` +Refer to docs https://vitejs.dev/config/server-options.html#server-fs-allow for configurations and more details.` server.config.logger.error(urlMessage) server.config.logger.warnOnce(hintMessage + '\n') From bff3abbc9a6ebe8dabd2398666de42ae8e13f2dc Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Thu, 21 Jul 2022 01:59:53 +0800 Subject: [PATCH 103/716] fix(create-vite): update vanilla-ts brand color (#9254) --- packages/create-vite/template-vanilla-ts/src/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-vite/template-vanilla-ts/src/style.css b/packages/create-vite/template-vanilla-ts/src/style.css index 12320801d3635d..ac37d84b935425 100644 --- a/packages/create-vite/template-vanilla-ts/src/style.css +++ b/packages/create-vite/template-vanilla-ts/src/style.css @@ -53,7 +53,7 @@ h1 { filter: drop-shadow(0 0 2em #646cffaa); } .logo.vanilla:hover { - filter: drop-shadow(0 0 2em #f7df1eaa); + filter: drop-shadow(0 0 2em #3178c6aa); } .card { From aa0b9215f5a8d31bc496c7e415a09588c6368f68 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Thu, 21 Jul 2022 02:54:18 +0800 Subject: [PATCH 104/716] docs: add vite client script for backend integration (#9258) --- docs/guide/backend-integration.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/guide/backend-integration.md b/docs/guide/backend-integration.md index 3cde869121d6d7..92bb4d084d23e6 100644 --- a/docs/guide/backend-integration.md +++ b/docs/guide/backend-integration.md @@ -33,6 +33,7 @@ If you need a custom integration, you can follow the steps in this guide to conf ```html + ``` From c616077fb8d969714dcbec5ed5ff803759d6a2f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Thu, 21 Jul 2022 03:56:24 +0900 Subject: [PATCH 105/716] fix: scanner and optimizer should skip wasm (#9257) --- packages/vite/src/node/optimizer/esbuildDepPlugin.ts | 2 ++ packages/vite/src/node/optimizer/scan.ts | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/optimizer/esbuildDepPlugin.ts b/packages/vite/src/node/optimizer/esbuildDepPlugin.ts index 20b808b1dc7ec7..57e67c2b47a166 100644 --- a/packages/vite/src/node/optimizer/esbuildDepPlugin.ts +++ b/packages/vite/src/node/optimizer/esbuildDepPlugin.ts @@ -29,6 +29,8 @@ const externalTypes = [ 'stylus', 'pcss', 'postcss', + // wasm + 'wasm', // known SFC types 'vue', 'svelte', diff --git a/packages/vite/src/node/optimizer/scan.ts b/packages/vite/src/node/optimizer/scan.ts index f1f698a15258a9..5a6c55ea0a5746 100644 --- a/packages/vite/src/node/optimizer/scan.ts +++ b/packages/vite/src/node/optimizer/scan.ts @@ -419,10 +419,10 @@ function esbuildScanPlugin( // they are done after the bare import resolve because a package name // may end with these extensions - // css & json + // css & json & wasm build.onResolve( { - filter: /\.(css|less|sass|scss|styl|stylus|pcss|postcss|json)$/ + filter: /\.(css|less|sass|scss|styl|stylus|pcss|postcss|json|wasm)$/ }, externalUnlessEntry ) From fa97bf3c3d2e2089c9c9f2432392ecbd1126ee3e Mon Sep 17 00:00:00 2001 From: Peter Chibisov Date: Thu, 21 Jul 2022 07:57:57 +0300 Subject: [PATCH 106/716] docs: HMR abbreviation (#9259) --- docs/guide/why.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/why.md b/docs/guide/why.md index 8a38c36ef89953..bc72b5a3ebbfe5 100644 --- a/docs/guide/why.md +++ b/docs/guide/why.md @@ -6,7 +6,7 @@ Before ES modules were available in browsers, developers had no native mechanism Over time we have seen tools like [webpack](https://webpack.js.org/), [Rollup](https://rollupjs.org) and [Parcel](https://parceljs.org/), which greatly improved the development experience for frontend developers. -However, as we build more and more ambitious applications, the amount of JavaScript we are dealing with is also increasing dramatically. It is not uncommon for large scale projects to contain thousands of modules. We are starting to hit a performance bottleneck for JavaScript based tooling: it can often take an unreasonably long wait (sometimes up to minutes!) to spin up a dev server, and even with HMR, file edits can take a couple of seconds to be reflected in the browser. The slow feedback loop can greatly affect developers' productivity and happiness. +However, as we build more and more ambitious applications, the amount of JavaScript we are dealing with is also increasing dramatically. It is not uncommon for large scale projects to contain thousands of modules. We are starting to hit a performance bottleneck for JavaScript based tooling: it can often take an unreasonably long wait (sometimes up to minutes!) to spin up a dev server, and even with Hot Module Replacement (HMR), file edits can take a couple of seconds to be reflected in the browser. The slow feedback loop can greatly affect developers' productivity and happiness. Vite aims to address these issues by leveraging new advancements in the ecosystem: the availability of native ES modules in the browser, and the rise of JavaScript tools written in compile-to-native languages. From 6adb90695ba0de5b5cdc3edcc4a9fb63835efded Mon Sep 17 00:00:00 2001 From: Tony Trinh Date: Thu, 21 Jul 2022 04:32:41 -0500 Subject: [PATCH 107/716] docs: convert png diagrams to svg (#9208) --- docs/.vitepress/theme/components/SvgImage.vue | 22 ++++++++ docs/.vitepress/theme/index.ts | 4 ++ docs/guide/features.md | 5 +- docs/guide/why.md | 9 ++-- docs/images/bundler.png | Bin 30471 -> 0 bytes docs/images/bundler.svg | 37 +++++++++++++ docs/images/diagrams.fig | Bin 0 -> 47258 bytes docs/images/esm.png | Bin 73223 -> 0 bytes docs/images/esm.svg | 51 ++++++++++++++++++ docs/images/graph.png | Bin 79704 -> 0 bytes docs/images/graph.svg | 16 ++++++ 11 files changed, 140 insertions(+), 4 deletions(-) create mode 100644 docs/.vitepress/theme/components/SvgImage.vue delete mode 100644 docs/images/bundler.png create mode 100644 docs/images/bundler.svg create mode 100644 docs/images/diagrams.fig delete mode 100644 docs/images/esm.png create mode 100644 docs/images/esm.svg delete mode 100644 docs/images/graph.png create mode 100644 docs/images/graph.svg diff --git a/docs/.vitepress/theme/components/SvgImage.vue b/docs/.vitepress/theme/components/SvgImage.vue new file mode 100644 index 00000000000000..3440988030d2db --- /dev/null +++ b/docs/.vitepress/theme/components/SvgImage.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index 3b4d7e38df76ab..39f1f2ffcae120 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -3,6 +3,7 @@ import Theme from 'vitepress/theme' import './styles/vars.css' import HomeSponsors from './components/HomeSponsors.vue' import AsideSponsors from './components/AsideSponsors.vue' +import SvgImage from './components/SvgImage.vue' export default { ...Theme, @@ -11,5 +12,8 @@ export default { 'home-features-after': () => h(HomeSponsors), 'aside-ads-before': () => h(AsideSponsors) }) + }, + enhanceApp({ app }) { + app.component('SvgImage', SvgImage) } } diff --git a/docs/guide/features.md b/docs/guide/features.md index b7449e15bfc1c9..db1f45b4ddeb99 100644 --- a/docs/guide/features.md +++ b/docs/guide/features.md @@ -538,7 +538,10 @@ Vite automatically generates `` directives for entry c In real world applications, Rollup often generates "common" chunks - code that is shared between two or more other chunks. Combined with dynamic imports, it is quite common to have the following scenario: -![graph](/images/graph.png) + + In the non-optimized scenarios, when async chunk `A` is imported, the browser will have to request and parse `A` before it can figure out that it also needs the common chunk `C`. This results in an extra network roundtrip: diff --git a/docs/guide/why.md b/docs/guide/why.md index bc72b5a3ebbfe5..24b1acfef6358f 100644 --- a/docs/guide/why.md +++ b/docs/guide/why.md @@ -24,9 +24,12 @@ Vite improves the dev server start time by first dividing the modules in an appl Vite serves source code over [native ESM](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules). This is essentially letting the browser take over part of the job of a bundler: Vite only needs to transform and serve source code on demand, as the browser requests it. Code behind conditional dynamic imports is only processed if actually used on the current screen. - ![bundler based dev server](/images/bundler.png) - - ![esm based dev server](/images/esm.png) + + + ### Slow Updates diff --git a/docs/images/bundler.png b/docs/images/bundler.png deleted file mode 100644 index 22d0a072dc73035820e36772eeafc929132fede6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30471 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
<|NL3#YML* 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 N_to{(zNnZ7{~w3++Vubc diff --git a/docs/images/bundler.svg b/docs/images/bundler.svg new file mode 100644 index 00000000000000..598f708c8c5cc5 --- /dev/null +++ b/docs/images/bundler.svg @@ -0,0 +1,37 @@ + +Bundle based dev server + + +entry + +··· + +route + +route + + + + + + + + + + +module + +module + +module + +module + +··· + + + +Bundle + +Server ready + diff --git a/docs/images/diagrams.fig b/docs/images/diagrams.fig new file mode 100644 index 0000000000000000000000000000000000000000..300edd04609ba8ffd2691928b39127dcd9f9473a GIT binary patch literal 47258 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 A<^TWy literal 0 HcmV?d00001 diff --git a/docs/images/esm.png b/docs/images/esm.png deleted file mode 100644 index 2998a6d0688dee4a3d802967ae37c7295d1fb171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73223 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

BvLcqMFD1VUAHOF>oy2y6`5~7Cq0>hFEc( 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 Date: Wed, 13 Jul 2022 12:31:41 +0200 Subject: [PATCH 041/716] docs: update ssr externals (#9048) Co-authored-by: Bjorn Lu --- docs/guide/ssr.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/guide/ssr.md b/docs/guide/ssr.md index f9133a254577b2..747572d1b0b66b 100644 --- a/docs/guide/ssr.md +++ b/docs/guide/ssr.md @@ -206,17 +206,9 @@ If the routes and the data needed for certain routes are known ahead of time, we ## SSR Externals -Many dependencies ship both ESM and CommonJS files. When running SSR, a dependency that provides CommonJS builds can be "externalized" from Vite's SSR transform / module system to speed up both dev and build. For example, instead of pulling in the pre-bundled ESM version of React and then transforming it back to be Node.js-compatible, it is more efficient to simply `require('react')` instead. It also greatly improves the speed of the SSR bundle build. +Dependencies are "externalized" from Vite's SSR transform module system by default when running SSR. This speeds up both dev and build. -Vite performs automated SSR externalization based on the following heuristics: - -- If a dependency's resolved ESM entry point and its default Node entry point are different, its default Node entry is probably a CommonJS build that can be externalized. For example, `vue` will be automatically externalized because it ships both ESM and CommonJS builds. - -- Otherwise, Vite will check whether the package's entry point contains valid ESM syntax - if not, the package is likely CommonJS and will be externalized. As an example, `react-dom` will be automatically externalized because it only specifies a single entry which is in CommonJS format. - -If this heuristics leads to errors, you can manually adjust SSR externals using `ssr.external` and `ssr.noExternal` config options. - -In the future, this heuristics will likely improve to detect if the project has `type: "module"` enabled, so that Vite can also externalize dependencies that ship Node-compatible ESM builds by importing them via dynamic `import()` during SSR. +If a dependency needs to be transformed by Vite's pipeline, for example, because Vite features are used untranspiled in them, they can be added to [`ssr.noExternal`](../config/ssr-options.md#ssrnoexternal). :::warning Working with Aliases If you have configured aliases that redirects one package to another, you may want to alias the actual `node_modules` packages instead to make it work for SSR externalized dependencies. Both [Yarn](https://classic.yarnpkg.com/en/docs/cli/add/#toc-yarn-add-alias) and [pnpm](https://pnpm.js.org/en/aliases) support aliasing via the `npm:` prefix. @@ -269,3 +261,7 @@ The CLI commands `$ vite dev` and `$ vite preview` can also be used for SSR apps :::tip Note Use a post hook so that your SSR middleware runs _after_ Vite's middlewares. ::: + +## SSR Format + +By default, Vite generates the SSR bundle in ESM. There is experimental support for configuring `ssr.format`, but it isn't recommended. Future efforts around SSR development will be based on ESM, and commonjs remain available for backward compatibility. If using ESM for SSR isn't possible in your project, you can set `legacy.buildSsrCjsExternalHeuristics: true` to generate a CJS bundle using the same [externalization heuristics of Vite v2](https://v2.vitejs.dev/guide/ssr.html#ssr-externals). From d5d41a6688250c9b67bcfe326d69d0f9ed811a20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Wed, 13 Jul 2022 19:50:36 +0900 Subject: [PATCH 042/716] docs: improve server.host desc in migration guide (#9030) Co-authored-by: Ian VanSchooten Co-authored-by: Bjorn Lu Co-authored-by: Tony Trinh --- docs/config/server-options.md | 4 ++-- docs/guide/migration.md | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/config/server-options.md b/docs/config/server-options.md index 6a43117f2ff164..33208bd4b04155 100644 --- a/docs/config/server-options.md +++ b/docs/config/server-options.md @@ -14,9 +14,9 @@ This can be set via the CLI using `--host 0.0.0.0` or `--host`. There are cases when other servers might respond instead of Vite. -The first case is when `localhost` is used. Node.js below v17 reorders the result of DNS-resolved address by default. When accessing `localhost`, browsers use DNS to resolve the address and that address might differ from the address which Vite is listening. Vite prints the resolved address when it differs. +The first case is when `localhost` is used. Node.js under v17 reorders the result of DNS-resolved address by default. When accessing `localhost`, browsers use DNS to resolve the address and that address might differ from the address which Vite is listening. Vite prints the resolved address when it differs. -You could set [`dns.setDefaultResultOrder('verbatim')`](https://nodejs.org/api/dns.html#dns_dns_setdefaultresultorder_order) to disable the reordering behavior. Or you could set `server.host` to `127.0.0.1` explicitly. +You can set [`dns.setDefaultResultOrder('verbatim')`](https://nodejs.org/api/dns.html#dns_dns_setdefaultresultorder_order) to disable the reordering behavior. Vite will then print the address as `localhost`. ```js // vite.config.js diff --git a/docs/guide/migration.md b/docs/guide/migration.md index 8047c03c198c80..70333ed9112cc0 100644 --- a/docs/guide/migration.md +++ b/docs/guide/migration.md @@ -1,8 +1,8 @@ # Migration from v2 -## Node Support +## Node.js Support -Vite no longer supports Node v12, which reached its EOL. Node 14.18+ is now required. +Vite no longer supports Node.js 12, which reached its EOL. Node.js 14.18+ is now required. ## Modern Browser Baseline change @@ -35,7 +35,9 @@ This section describes the biggest architecture changes in Vite v3. To allow pro Vite's default dev server port is now 5173. You can use [`server.port`](../config/server-options.md#server-port) to set it to 3000. -Vite's default dev server host is now `localhost`. You can use [`server.host`](../config/server-options.md#server-host) to set it to `127.0.0.1`. +Vite's default dev server host is now `localhost`. In Vite v2, Vite was listening to `127.0.0.1` by default. Node.js under v17 normally resolves `localhost` to `127.0.0.1`, so for those versions, the host won't change. For Node.js 17+, you can use [`server.host`](../config/server-options.md#server-host) to set it to `127.0.0.1` to keep the same host as Vite v2. + +Note that Vite v3 now prints the correct host. This means Vite may print `127.0.0.1` as the listening host when `localhost` is used. You can set [`dns.setDefaultResultOrder('verbatim')`](https://nodejs.org/api/dns.html#dns_dns_setdefaultresultorder_order) to prevent this. See [`server.host`](../config/server-options.md#server-host) for more details. ### SSR Changes From 631e26de43283b4ce1fcca7bcb42ff9008115a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Wed, 13 Jul 2022 20:32:39 +0900 Subject: [PATCH 043/716] docs: version toggle label (#9069) --- docs/.vitepress/config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 20beb7c851088b..1ab27cb3ad754d 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -106,10 +106,10 @@ export default defineConfig({ ] }, { - text: 'v3 (next)', + text: 'Version', items: [ { - text: 'v2.x (stable)', + text: 'Vite 2 Docs', link: 'https://v2.vitejs.dev' } ] From 8480b3519f63b4576aa649ca1d9d58249849c2da Mon Sep 17 00:00:00 2001 From: patak Date: Wed, 13 Jul 2022 13:43:30 +0200 Subject: [PATCH 044/716] docs: upgrades to vite core (#9070) --- docs/blog/announcing-vite3.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/blog/announcing-vite3.md b/docs/blog/announcing-vite3.md index c3455822364c58..2c75692d6fc28b 100644 --- a/docs/blog/announcing-vite3.md +++ b/docs/blog/announcing-vite3.md @@ -237,6 +237,17 @@ A triaging marathon was spearheaded by [@bluwyoo](https://twitter.com/bluwyoo), Learn more in the [Migration Guide](/guide/migration). +## Upgrades to Vite Core + +While working towards Vite 3, we also improved the contributing experience for collaborators to [Vite Core](https://github.com/vitejs/vite). + +- Unit and E2E tests have been migrated to [Vitest](https://vitest.dev), providing a faster and more stable DX. This move also works as dog fooding for an important infrastructure project in the ecosystem. +- VitePress build is now tested as part of CI. +- Vite upgraded to [pnpm 7](https://pnpm.io/), following the rest of the ecosystem. +- Playgrounds have been moved to [`/playgrounds`](https://github.com/vitejs/vite/tree/main/playground) out of packages directory. +- The packages and playgrounds are now `"type": "module"`. +- Plugins are now bundled using [unbuild](https://github.com/unjs/unbuild), and [plugin-vue-jsx](https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx) and [plugin-legacy](https://github.com/vitejs/vite/tree/main/packages/plugin-legacy) were moved to TypeScript. + ## The Ecosystem is Ready for v3 We have worked closely with projects in the ecosystem to ensure that frameworks powered by Vite are ready for Vite 3. [vite-ecosystem-ci](https://github.com/vitejs/vite-ecosystem-ci) allows us to run the CI's from the leading players in the ecosystem against Vite's main branch and receive timely reports before introducing a regression. Today's release should soon be compatible with most projects using Vite. @@ -250,6 +261,7 @@ We want to thank everyone that have implemented features, and fixes, given feedb - Vite team members [@youyuxi](https://twitter.com/youyuxi), [@patak_dev](https://twitter.com/patak_dev), [@antfu7](https://twitter.com/antfu7), [@bluwyoo](https://twitter.com/bluwyoo), [@sapphi_red](https://twitter.com/sapphi_red), [@haoqunjiang](https://twitter.com/haoqunjiang), [@poyoho](https://github.com/poyoho), [@Shini_92](https://twitter.com/Shini_92), and [@retropragma](https://twitter.com/retropragma). - [@benmccann](https://github.com/benmccann), [@danielcroe](https://twitter.com/danielcroe), [@brillout](https://twitter.com/brillout), [@sheremet_va](https://twitter.com/sheremet_va), [@userquin](https://twitter.com/userquin), [@enzoinnocenzi](https://twitter.com/enzoinnocenzi), [@maximomussini](https://twitter.com/maximomussini), [@IanVanSchooten](https://twitter.com/IanVanSchooten), the [Astro team](https://astro.build/), and all other maintainers of frameworks and plugins in the ecosystem in that helped shape v3. - [@dominikg](https://github.com/dominikg) for his work on vite-ecosystem-ci. +- [@ZoltanKochan](https://twitter.com/ZoltanKochan) for his work on [pnpm](https://pnpm.io/), and for his responsivness when we needed support with it. - [@rixo](https://github.com/rixo) for HMR Partial Accept support. - [@KiaKing85](https://twitter.com/KiaKing85) for getting the theme ready for the Vite 3 release, and [@\_brc_dd](https://twitter.com/_brc_dd) for working on the VitePress internals. - [@CodingWithCego](https://twitter.com/CodingWithCego) for the new Spanish translation, and [@ShenQingchuan](https://twitter.com/ShenQingchuan), [@hiro-lapis](https://github.com/hiro-lapis) and others in the Chinese and Japanese translations teams for keeping the translated docs up to date. From b8c625cec4db938032ad754c7095bd246a4698ee Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 13 Jul 2022 13:52:07 +0200 Subject: [PATCH 045/716] release: v3.0.0 --- packages/vite/CHANGELOG.md | 9 +++++++++ packages/vite/package.json | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 9c5449c24000e9..669fe19575ce00 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,3 +1,12 @@ +## 3.0.0 (2022-07-13) + +* fix: prevent production node_env in serve (#9066) ([7662998](https://github.com/vitejs/vite/commit/7662998)), closes [#9066](https://github.com/vitejs/vite/issues/9066) +* fix: reload on restart with middleware mode (fixes #9038) (#9040) ([e372693](https://github.com/vitejs/vite/commit/e372693)), closes [#9038](https://github.com/vitejs/vite/issues/9038) [#9040](https://github.com/vitejs/vite/issues/9040) +* fix: remove ws is already closed error (#9041) ([45b8b53](https://github.com/vitejs/vite/commit/45b8b53)), closes [#9041](https://github.com/vitejs/vite/issues/9041) +* chore: include 2.9.13-2.9.14 changelog in main (#9053) ([f020066](https://github.com/vitejs/vite/commit/f020066)), closes [#9053](https://github.com/vitejs/vite/issues/9053) + + + ## 3.0.0-beta.10 (2022-07-11) * feat: expose server resolved urls (#8986) ([26bcdc3](https://github.com/vitejs/vite/commit/26bcdc3)), closes [#8986](https://github.com/vitejs/vite/issues/8986) diff --git a/packages/vite/package.json b/packages/vite/package.json index 9b9427b8b55f4f..b503fc06db2910 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "vite", - "version": "3.0.0-beta.10", + "version": "3.0.0", "type": "module", "license": "MIT", "author": "Evan You", From 427ba26fa720a11530d135b2ee39876fc9a778fb Mon Sep 17 00:00:00 2001 From: patak Date: Wed, 13 Jul 2022 14:23:55 +0200 Subject: [PATCH 046/716] chore: 3.0 release notes and bump peer deps (#9072) --- docs/blog/announcing-vite3.md | 2 +- packages/plugin-legacy/package.json | 2 +- packages/plugin-react/package.json | 2 +- packages/plugin-vue-jsx/package.json | 2 +- packages/plugin-vue/package.json | 2 +- packages/vite/CHANGELOG.md | 59 +++++++++++++--------------- 6 files changed, 33 insertions(+), 36 deletions(-) diff --git a/docs/blog/announcing-vite3.md b/docs/blog/announcing-vite3.md index 2c75692d6fc28b..d15d624822a671 100644 --- a/docs/blog/announcing-vite3.md +++ b/docs/blog/announcing-vite3.md @@ -40,7 +40,7 @@ Quick links: - [Docs](/) - [Migration Guide](/guide/migration) -- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#300-beta9-2022-07-08) +- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#300-2022-07-13) If you are new to Vite, we recommend reading the [Why Vite Guide](https://vitejs.dev/guide/why.html). Then check out [the Getting Started](https://vitejs.dev/guide/getting-started) and [Features guide](https://vitejs.dev/guide/features) to see what Vite provides out of the box. As usual, contributions are welcome at [GitHub](https://github.com/vitejs/vite). More than [600 collaborators](https://github.com/vitejs/vite/graphs/contributors) have helped improve Vite so far. Follow the updates on [Twitter](https://twitter.com/vite_js), or join discussions with other Vite users on our [Discord chat server](http://chat.vitejs.dev/). diff --git a/packages/plugin-legacy/package.json b/packages/plugin-legacy/package.json index 57585a7bf9dff0..01101bcd82f05a 100644 --- a/packages/plugin-legacy/package.json +++ b/packages/plugin-legacy/package.json @@ -43,7 +43,7 @@ }, "peerDependencies": { "terser": "^5.4.0", - "vite": "^3.0.0-alpha" + "vite": "^3.0.0" }, "devDependencies": { "@babel/core": "^7.18.6", diff --git a/packages/plugin-react/package.json b/packages/plugin-react/package.json index c21207996e4089..a2e7aa04df7c45 100644 --- a/packages/plugin-react/package.json +++ b/packages/plugin-react/package.json @@ -48,7 +48,7 @@ "react-refresh": "^0.14.0" }, "peerDependencies": { - "vite": "^3.0.0-alpha.11" + "vite": "^3.0.0" }, "devDependencies": { "vite": "workspace:*" diff --git a/packages/plugin-vue-jsx/package.json b/packages/plugin-vue-jsx/package.json index 873916c1e4d825..cf555d2211931e 100644 --- a/packages/plugin-vue-jsx/package.json +++ b/packages/plugin-vue-jsx/package.json @@ -44,7 +44,7 @@ "vite": "workspace:*" }, "peerDependencies": { - "vite": "^3.0.0-alpha", + "vite": "^3.0.0", "vue": "^3.0.0" } } diff --git a/packages/plugin-vue/package.json b/packages/plugin-vue/package.json index 6e665b5ad115f0..ab8f480592d328 100644 --- a/packages/plugin-vue/package.json +++ b/packages/plugin-vue/package.json @@ -35,7 +35,7 @@ }, "homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-vue#readme", "peerDependencies": { - "vite": "^3.0.0-alpha", + "vite": "^3.0.0", "vue": "^3.2.25" }, "devDependencies": { diff --git a/packages/vite/CHANGELOG.md b/packages/vite/CHANGELOG.md index 669fe19575ce00..acc3b4194113ce 100644 --- a/packages/vite/CHANGELOG.md +++ b/packages/vite/CHANGELOG.md @@ -1,31 +1,11 @@ ## 3.0.0 (2022-07-13) -* fix: prevent production node_env in serve (#9066) ([7662998](https://github.com/vitejs/vite/commit/7662998)), closes [#9066](https://github.com/vitejs/vite/issues/9066) -* fix: reload on restart with middleware mode (fixes #9038) (#9040) ([e372693](https://github.com/vitejs/vite/commit/e372693)), closes [#9038](https://github.com/vitejs/vite/issues/9038) [#9040](https://github.com/vitejs/vite/issues/9040) -* fix: remove ws is already closed error (#9041) ([45b8b53](https://github.com/vitejs/vite/commit/45b8b53)), closes [#9041](https://github.com/vitejs/vite/issues/9041) -* chore: include 2.9.13-2.9.14 changelog in main (#9053) ([f020066](https://github.com/vitejs/vite/commit/f020066)), closes [#9053](https://github.com/vitejs/vite/issues/9053) - - - -## 3.0.0-beta.10 (2022-07-11) - -* feat: expose server resolved urls (#8986) ([26bcdc3](https://github.com/vitejs/vite/commit/26bcdc3)), closes [#8986](https://github.com/vitejs/vite/issues/8986) -* feat: show ws connection error (#9007) ([da7c3ae](https://github.com/vitejs/vite/commit/da7c3ae)), closes [#9007](https://github.com/vitejs/vite/issues/9007) -* chore: fix test optimizeDeps at build time flag (#9004) ([9363872](https://github.com/vitejs/vite/commit/9363872)), closes [#9004](https://github.com/vitejs/vite/issues/9004) -* chore: ignore ts warning (#9015) ([e2a6bf4](https://github.com/vitejs/vite/commit/e2a6bf4)), closes [#9015](https://github.com/vitejs/vite/issues/9015) -* chore: scanner after server listen (#9020) ([53799e1](https://github.com/vitejs/vite/commit/53799e1)), closes [#9020](https://github.com/vitejs/vite/issues/9020) -* chore: v3.0.0-beta.9 release notes (#8996) ([2a9bc6d](https://github.com/vitejs/vite/commit/2a9bc6d)), closes [#8996](https://github.com/vitejs/vite/issues/8996) -* chore(deps): update all non-major dependencies (#9022) ([6342140](https://github.com/vitejs/vite/commit/6342140)), closes [#9022](https://github.com/vitejs/vite/issues/9022) -* fix(ssr): sourcemap content (fixes #8657) (#8997) ([aff4544](https://github.com/vitejs/vite/commit/aff4544)), closes [#8657](https://github.com/vitejs/vite/issues/8657) [#8997](https://github.com/vitejs/vite/issues/8997) -* docs: update api-javascript (#8999) ([05b17df](https://github.com/vitejs/vite/commit/05b17df)), closes [#8999](https://github.com/vitejs/vite/issues/8999) - - - -## 3.0.0-beta.9 (2022-07-08) - ### Main Changes -- New docs theme using [VitePress](https://vitepress.vuejs.org/) v1 alpha: https://main.vitejs.dev +> **Vite 3 is out!** +> Read the [Vite 3 Annoucement blog post](https://vitejs.dev/blog/announcing-vite3) + +- New docs theme using [VitePress](https://vitepress.vuejs.org/) v1 alpha: https://vitejs.dev - Vite CLI - The default dev server port is now 5173, with the preview server starting at 4173. - The default dev server host is now `localhost` instead of `127.0.0.1`. @@ -37,23 +17,26 @@ - Architecture changes - Vite now avoids full reload during cold start when imports are injected by plugins in while crawling the initial statically imported modules ([#8869](https://github.com/vitejs/vite/issues/8869)). - Vite uses ESM for the SSR build by default, and previous [SSR externalization heuristics](https://vitejs.dev/guide/ssr.html#ssr-externals) are no longer needed. -- `import.meta.glob` has been improved, read about the new features in the [Glob Import Guide](https://main.vitejs.dev/guide/features.html#glob-import) -- The WebAssembly import API has been revised to avoid collisions with future standards. Read more in the [WebAssembly guide](https://main.vitejs.dev/guide/features.html#webassembly) +- `import.meta.glob` has been improved, read about the new features in the [Glob Import Guide](https://vitejs.dev/guide/features.html#glob-import) +- The WebAssembly import API has been revised to avoid collisions with future standards. Read more in the [WebAssembly guide](https://vitejs.dev/guide/features.html#webassembly) - Improved support for relative base. - Experimental Features - - [Build Advanced Base Options](https://main.vitejs.dev/guide/build.html#advanced-base-options) + - [Build Advanced Base Options](https://vitejs.dev/guide/build.html#advanced-base-options) - [HMR Partial Accept](https://github.com/vitejs/vite/pull/7324) - - Vite now allows the use of [esbuild to optimize dependencies during build time](https://main.vitejs.dev/guide/migration.html#using-esbuild-deps-optimization-at-build-time) avoiding the need of [`@rollupjs/plugin-commonjs`](https://github.com/rollup/plugins/tree/master/packages/commonjs), removing one of the difference id dependency handling between dev and prod. + - Vite now allows the use of [esbuild to optimize dependencies during build time](https://vitejs.dev/guide/migration.html#using-esbuild-deps-optimization-at-build-time) avoiding the need of [`@rollupjs/plugin-commonjs`](https://github.com/rollup/plugins/tree/master/packages/commonjs), removing one of the difference id dependency handling between dev and prod. - Bundle size reduction - Terser is now an optional dependency. If you use `build.minify: 'terser'`, you'll need to install it (`npm add -D terser`) - - node-forge moved out of the monorepo to [@vitejs/plugin-basic-ssl](https://main.vitejs.dev/guide/migration.html#automatic-https-certificate-generation) -- Options that were [already deprecated in v2](https://main.vitejs.dev/guide/migration.html#config-options-changes) have been removed. + - node-forge moved out of the monorepo to [@vitejs/plugin-basic-ssl](https://vitejs.dev/guide/migration.html#automatic-https-certificate-generation) +- Options that were [already deprecated in v2](https://vitejs.dev/guide/migration.html#config-options-changes) have been removed. > **Note** -> Before updating, check out the [migration guide from v2](https://main.vitejs.dev/guide/migration) +> Before updating, check out the [migration guide from v2](https://vitejs.dev/guide/migration) ### Features +* feat: expose server resolved urls (#8986) ([26bcdc3](https://github.com/vitejs/vite/commit/26bcdc3)), closes [#8986](https://github.com/vitejs/vite/issues/8986) +* feat: show ws connection error (#9007) ([da7c3ae](https://github.com/vitejs/vite/commit/da7c3ae)), closes [#9007](https://github.com/vitejs/vite/issues/9007) +* docs: update api-javascript (#8999) ([05b17df](https://github.com/vitejs/vite/commit/05b17df)), closes [#8999](https://github.com/vitejs/vite/issues/8999) * refactor: opt-in optimizeDeps during build and SSR (#8965) ([f8c8cf2](https://github.com/vitejs/vite/commit/f8c8cf2)), closes [#8965](https://github.com/vitejs/vite/issues/8965) * refactor!: move basic ssl setup to external plugin, fix #8532 (#8961) ([5c6cf5a](https://github.com/vitejs/vite/commit/5c6cf5a)), closes [#8532](https://github.com/vitejs/vite/issues/8532) [#8961](https://github.com/vitejs/vite/issues/8961) * feat: avoid scanner during build and only optimize CJS in SSR (#8932) ([339d9e3](https://github.com/vitejs/vite/commit/339d9e3)), closes [#8932](https://github.com/vitejs/vite/issues/8932) @@ -123,6 +106,10 @@ ### Bug Fixes +* fix: prevent production node_env in serve (#9066) ([7662998](https://github.com/vitejs/vite/commit/7662998)), closes [#9066](https://github.com/vitejs/vite/issues/9066) +* fix: reload on restart with middleware mode (fixes #9038) (#9040) ([e372693](https://github.com/vitejs/vite/commit/e372693)), closes [#9038](https://github.com/vitejs/vite/issues/9038) [#9040](https://github.com/vitejs/vite/issues/9040) +* fix: remove ws is already closed error (#9041) ([45b8b53](https://github.com/vitejs/vite/commit/45b8b53)), closes [#9041](https://github.com/vitejs/vite/issues/9041) +* fix(ssr): sourcemap content (fixes #8657) (#8997) ([aff4544](https://github.com/vitejs/vite/commit/aff4544)), closes [#8657](https://github.com/vitejs/vite/issues/8657) [#8997](https://github.com/vitejs/vite/issues/8997) * fix: respect explicitily external/noExternal config (#8983) ([e369880](https://github.com/vitejs/vite/commit/e369880)), closes [#8983](https://github.com/vitejs/vite/issues/8983) * fix: cjs interop export names local clash, fix #8950 (#8953) ([2185f72](https://github.com/vitejs/vite/commit/2185f72)), closes [#8950](https://github.com/vitejs/vite/issues/8950) [#8953](https://github.com/vitejs/vite/issues/8953) * fix: handle context resolve options (#8966) ([57c6c15](https://github.com/vitejs/vite/commit/57c6c15)), closes [#8966](https://github.com/vitejs/vite/issues/8966) @@ -237,6 +224,16 @@ ### Previous Changelogs +#### [3.0.0-beta.10](https://github.com/vitejs/vite/compare/v3.0.0-beta.9...v3.0.0-beta.10) (2022-07-11) + +See [3.0.0-beta.10 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.10/packages/vite/CHANGELOG.md) + + +#### [3.0.0-beta.9](https://github.com/vitejs/vite/compare/v3.0.0-beta.8...v3.0.0-beta.9) (2022-07-08) + +See [3.0.0-beta.9 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.9/packages/vite/CHANGELOG.md) + + #### [3.0.0-beta.8](https://github.com/vitejs/vite/compare/v3.0.0-beta.7...v3.0.0-beta.8) (2022-07-08) See [3.0.0-beta.8 changelog](https://github.com/vitejs/vite/blob/v3.0.0-beta.8/packages/vite/CHANGELOG.md) From 549a890b9fb034ff25266344e5c0da46160e798e Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 13 Jul 2022 14:25:47 +0200 Subject: [PATCH 047/716] release: plugin-vue@3.0.0 --- packages/plugin-vue/CHANGELOG.md | 8 ++++++++ packages/plugin-vue/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/plugin-vue/CHANGELOG.md b/packages/plugin-vue/CHANGELOG.md index 2486b316e26acd..b71b477954bd1c 100644 --- a/packages/plugin-vue/CHANGELOG.md +++ b/packages/plugin-vue/CHANGELOG.md @@ -1,3 +1,11 @@ +## 3.0.0 (2022-07-13) + +* chore: 3.0 release notes and bump peer deps (#9072) ([427ba26](https://github.com/vitejs/vite/commit/427ba26)), closes [#9072](https://github.com/vitejs/vite/issues/9072) +* fix(vue): handle undefined on import.meta.hot.accept (fixes #8625) (#9011) ([70af44a](https://github.com/vitejs/vite/commit/70af44a)), closes [#8625](https://github.com/vitejs/vite/issues/8625) [#9011](https://github.com/vitejs/vite/issues/9011) +* docs: cleanup changes (#8989) ([07aef1b](https://github.com/vitejs/vite/commit/07aef1b)), closes [#8989](https://github.com/vitejs/vite/issues/8989) + + + ## 3.0.0-beta.1 (2022-07-06) * fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) diff --git a/packages/plugin-vue/package.json b/packages/plugin-vue/package.json index ab8f480592d328..b588b166dace47 100644 --- a/packages/plugin-vue/package.json +++ b/packages/plugin-vue/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-vue", - "version": "3.0.0-beta.1", + "version": "3.0.0", "license": "MIT", "author": "Evan You", "files": [ From fcb6a6151c9442aa4140a9a8c9af0a448fb206ad Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 13 Jul 2022 14:26:27 +0200 Subject: [PATCH 048/716] release: plugin-vue-jsx@2.0.0 --- packages/plugin-vue-jsx/CHANGELOG.md | 9 +++++++++ packages/plugin-vue-jsx/package.json | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/plugin-vue-jsx/CHANGELOG.md b/packages/plugin-vue-jsx/CHANGELOG.md index a2618a14927bc4..d5c54726f3e012 100644 --- a/packages/plugin-vue-jsx/CHANGELOG.md +++ b/packages/plugin-vue-jsx/CHANGELOG.md @@ -1,3 +1,12 @@ +## 2.0.0 (2022-07-13) + +* chore: 3.0 release notes and bump peer deps (#9072) ([427ba26](https://github.com/vitejs/vite/commit/427ba26)), closes [#9072](https://github.com/vitejs/vite/issues/9072) +* chore: use `tsx` directly instead of indirect `esno` (#8773) ([f018f13](https://github.com/vitejs/vite/commit/f018f13)), closes [#8773](https://github.com/vitejs/vite/issues/8773) +* chore(deps): update all non-major dependencies (#9022) ([6342140](https://github.com/vitejs/vite/commit/6342140)), closes [#9022](https://github.com/vitejs/vite/issues/9022) +* fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) + + + ## 2.0.0-beta.0 (2022-06-21) * chore: update major deps (#8572) ([0e20949](https://github.com/vitejs/vite/commit/0e20949)), closes [#8572](https://github.com/vitejs/vite/issues/8572) diff --git a/packages/plugin-vue-jsx/package.json b/packages/plugin-vue-jsx/package.json index cf555d2211931e..a6ea702884f7b3 100644 --- a/packages/plugin-vue-jsx/package.json +++ b/packages/plugin-vue-jsx/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-vue-jsx", - "version": "2.0.0-beta.0", + "version": "2.0.0", "license": "MIT", "author": "Evan You", "files": [ From 57df81c89034da60b38f92745448bf57a9bb9e1c Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 13 Jul 2022 14:27:11 +0200 Subject: [PATCH 049/716] release: plugin-react@2.0.0 --- packages/plugin-react/CHANGELOG.md | 7 +++++++ packages/plugin-react/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/plugin-react/CHANGELOG.md b/packages/plugin-react/CHANGELOG.md index c10d8565d18449..78b6de12fea5f0 100644 --- a/packages/plugin-react/CHANGELOG.md +++ b/packages/plugin-react/CHANGELOG.md @@ -1,3 +1,10 @@ +## 2.0.0 (2022-07-13) + +* chore: 3.0 release notes and bump peer deps (#9072) ([427ba26](https://github.com/vitejs/vite/commit/427ba26)), closes [#9072](https://github.com/vitejs/vite/issues/9072) +* fix(react): sourcemap incorrect warning and classic runtime sourcemap (#9006) ([bdae7fa](https://github.com/vitejs/vite/commit/bdae7fa)), closes [#9006](https://github.com/vitejs/vite/issues/9006) + + + ## 2.0.0-beta.1 (2022-07-06) * fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) diff --git a/packages/plugin-react/package.json b/packages/plugin-react/package.json index a2e7aa04df7c45..9f5332d16165f1 100644 --- a/packages/plugin-react/package.json +++ b/packages/plugin-react/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-react", - "version": "2.0.0-beta.1", + "version": "2.0.0", "license": "MIT", "author": "Evan You", "contributors": [ From 592d8795e344f60eca171592bd085f0c46ea58e1 Mon Sep 17 00:00:00 2001 From: patak-dev Date: Wed, 13 Jul 2022 14:27:54 +0200 Subject: [PATCH 050/716] release: plugin-legacy@2.0.0 --- packages/plugin-legacy/CHANGELOG.md | 8 ++++++++ packages/plugin-legacy/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/plugin-legacy/CHANGELOG.md b/packages/plugin-legacy/CHANGELOG.md index a78da9b382017d..11783e3f959c44 100644 --- a/packages/plugin-legacy/CHANGELOG.md +++ b/packages/plugin-legacy/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.0.0 (2022-07-13) + +* chore: 3.0 release notes and bump peer deps (#9072) ([427ba26](https://github.com/vitejs/vite/commit/427ba26)), closes [#9072](https://github.com/vitejs/vite/issues/9072) +* chore(deps): update all non-major dependencies (#9022) ([6342140](https://github.com/vitejs/vite/commit/6342140)), closes [#9022](https://github.com/vitejs/vite/issues/9022) +* docs: cleanup changes (#8989) ([07aef1b](https://github.com/vitejs/vite/commit/07aef1b)), closes [#8989](https://github.com/vitejs/vite/issues/8989) + + + ## 2.0.0-beta.1 (2022-07-06) * fix(deps): update all non-major dependencies (#8802) ([a4a634d](https://github.com/vitejs/vite/commit/a4a634d)), closes [#8802](https://github.com/vitejs/vite/issues/8802) diff --git a/packages/plugin-legacy/package.json b/packages/plugin-legacy/package.json index 01101bcd82f05a..168095efcd9d30 100644 --- a/packages/plugin-legacy/package.json +++ b/packages/plugin-legacy/package.json @@ -1,6 +1,6 @@ { "name": "@vitejs/plugin-legacy", - "version": "2.0.0-beta.1", + "version": "2.0.0", "license": "MIT", "author": "Evan You", "files": [ From 880f5608b435a32a5c5b4554c8ef929c24149007 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Wed, 13 Jul 2022 21:04:18 +0800 Subject: [PATCH 051/716] fix(create-vite): remove import from public (#9074) --- packages/create-vite/template-lit-ts/src/my-element.ts | 3 +-- packages/create-vite/template-lit/src/my-element.js | 3 +-- packages/create-vite/template-preact-ts/src/app.tsx | 3 +-- packages/create-vite/template-preact/src/app.jsx | 3 +-- packages/create-vite/template-react-ts/src/App.tsx | 3 +-- packages/create-vite/template-react/src/App.jsx | 3 +-- packages/create-vite/template-svelte-ts/src/App.svelte | 3 +-- packages/create-vite/template-svelte/src/App.svelte | 3 +-- packages/create-vite/template-vanilla-ts/src/main.ts | 3 +-- packages/create-vite/template-vanilla/main.js | 3 +-- 10 files changed, 10 insertions(+), 20 deletions(-) diff --git a/packages/create-vite/template-lit-ts/src/my-element.ts b/packages/create-vite/template-lit-ts/src/my-element.ts index ba01ce52154a0d..da680eb1d0f19c 100644 --- a/packages/create-vite/template-lit-ts/src/my-element.ts +++ b/packages/create-vite/template-lit-ts/src/my-element.ts @@ -1,6 +1,5 @@ import { html, css, LitElement } from 'lit' import { customElement, property } from 'lit/decorators.js' -import viteLogo from '/vite.svg' import litLogo from './assets/lit.svg' /** @@ -27,7 +26,7 @@ export class MyElement extends LitElement { return html`