diff --git a/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts b/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts index e8570c6d4afedf..e73e47200ee78f 100644 --- a/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts +++ b/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts @@ -56,25 +56,25 @@ test('namespace import', async () => { test('export function declaration', async () => { expect(await ssrTransformSimpleCode(`export function foo() {}`)) .toMatchInlineSnapshot(` - "function foo() {} - Object.defineProperty(__vite_ssr_exports__, "foo", { enumerable: true, configurable: true, get(){ return foo }});" + "Object.defineProperty(__vite_ssr_exports__, "foo", { enumerable: true, configurable: true, get(){ return foo }}); + function foo() {}" `) }) test('export class declaration', async () => { expect(await ssrTransformSimpleCode(`export class foo {}`)) .toMatchInlineSnapshot(` - "class foo {} - Object.defineProperty(__vite_ssr_exports__, "foo", { enumerable: true, configurable: true, get(){ return foo }});" + "Object.defineProperty(__vite_ssr_exports__, "foo", { enumerable: true, configurable: true, get(){ return foo }}); + class foo {}" `) }) test('export var declaration', async () => { 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 }});" + "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" `) }) @@ -82,9 +82,9 @@ test('export named', async () => { expect( 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 }}); - Object.defineProperty(__vite_ssr_exports__, "c", { enumerable: true, configurable: true, get(){ return b }});" + "Object.defineProperty(__vite_ssr_exports__, "a", { enumerable: true, configurable: true, get(){ return a }}); + Object.defineProperty(__vite_ssr_exports__, "c", { enumerable: true, configurable: true, get(){ return b }}); + const a = 1, b = 2; " `) }) @@ -92,10 +92,10 @@ test('export named from', async () => { expect( await ssrTransformSimpleCode(`export { ref, computed as c } from 'vue'`), ).toMatchInlineSnapshot(` - "const __vite_ssr_import_0__ = await __vite_ssr_import__("vue", {"importedNames":["ref","computed"]}); - - Object.defineProperty(__vite_ssr_exports__, "ref", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__.ref }}); - Object.defineProperty(__vite_ssr_exports__, "c", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__.computed }});" + "Object.defineProperty(__vite_ssr_exports__, "ref", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__.ref }}); + Object.defineProperty(__vite_ssr_exports__, "c", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__.computed }}); + const __vite_ssr_import_0__ = await __vite_ssr_import__("vue", {"importedNames":["ref","computed"]}); + " `) }) @@ -105,9 +105,9 @@ test('named exports of imported binding', async () => { `import {createApp} from 'vue';export {createApp}`, ), ).toMatchInlineSnapshot(` - "const __vite_ssr_import_0__ = await __vite_ssr_import__("vue", {"importedNames":["createApp"]}); - - Object.defineProperty(__vite_ssr_exports__, "createApp", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__.createApp }});" + "Object.defineProperty(__vite_ssr_exports__, "createApp", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__.createApp }}); + const __vite_ssr_import_0__ = await __vite_ssr_import__("vue", {"importedNames":["createApp"]}); + " `) }) @@ -129,9 +129,9 @@ test('export * from', async () => { test('export * as from', async () => { expect(await ssrTransformSimpleCode(`export * as foo from 'vue'`)) .toMatchInlineSnapshot(` - "const __vite_ssr_import_0__ = await __vite_ssr_import__("vue"); - - Object.defineProperty(__vite_ssr_exports__, "foo", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__ }});" + "Object.defineProperty(__vite_ssr_exports__, "foo", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__ }}); + const __vite_ssr_import_0__ = await __vite_ssr_import__("vue"); + " `) }) @@ -139,9 +139,9 @@ test('export * as from arbitrary module namespace identifier', async () => { expect( await ssrTransformSimpleCode(`export * as "arbitrary string" from 'vue'`), ).toMatchInlineSnapshot(` - "const __vite_ssr_import_0__ = await __vite_ssr_import__("vue"); - - Object.defineProperty(__vite_ssr_exports__, "arbitrary string", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__ }});" + "Object.defineProperty(__vite_ssr_exports__, "arbitrary string", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__ }}); + const __vite_ssr_import_0__ = await __vite_ssr_import__("vue"); + " `) }) @@ -151,8 +151,8 @@ test('export as arbitrary module namespace identifier', async () => { `const something = "Something";export { something as "arbitrary string" };`, ), ).toMatchInlineSnapshot(` - "const something = "Something"; - Object.defineProperty(__vite_ssr_exports__, "arbitrary string", { enumerable: true, configurable: true, get(){ return something }});" + "Object.defineProperty(__vite_ssr_exports__, "arbitrary string", { enumerable: true, configurable: true, get(){ return something }}); + const something = "Something";" `) }) @@ -162,9 +162,9 @@ test('export as from arbitrary module namespace identifier', async () => { `export { "arbitrary string2" as "arbitrary string" } from 'vue';`, ), ).toMatchInlineSnapshot(` - "const __vite_ssr_import_0__ = await __vite_ssr_import__("vue", {"importedNames":["arbitrary string2"]}); - - Object.defineProperty(__vite_ssr_exports__, "arbitrary string", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__["arbitrary string2"] }});" + "Object.defineProperty(__vite_ssr_exports__, "arbitrary string", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_0__["arbitrary string2"] }}); + const __vite_ssr_import_0__ = await __vite_ssr_import__("vue", {"importedNames":["arbitrary string2"]}); + " `) }) @@ -209,8 +209,8 @@ test('dynamic import', async () => { `export const i = () => import('./foo')`, ) expect(result?.code).toMatchInlineSnapshot(` - "const i = () => __vite_ssr_dynamic_import__('./foo') - Object.defineProperty(__vite_ssr_exports__, "i", { enumerable: true, configurable: true, get(){ return i }});" + "Object.defineProperty(__vite_ssr_exports__, "i", { enumerable: true, configurable: true, get(){ return i }}); + const i = () => __vite_ssr_dynamic_import__('./foo')" `) expect(result?.deps).toEqual([]) expect(result?.dynamicDeps).toEqual(['./foo']) @@ -382,11 +382,11 @@ test('should declare variable for imported super class', async () => { `export class B extends Foo {}`, ), ).toMatchInlineSnapshot(` - "const __vite_ssr_import_0__ = await __vite_ssr_import__("./dependency", {"importedNames":["Foo"]}); + "Object.defineProperty(__vite_ssr_exports__, "B", { enumerable: true, configurable: true, get(){ return B }}); + const __vite_ssr_import_0__ = await __vite_ssr_import__("./dependency", {"importedNames":["Foo"]}); const Foo = __vite_ssr_import_0__.Foo; class A extends Foo {}; class B extends Foo {} - Object.defineProperty(__vite_ssr_exports__, "B", { enumerable: true, configurable: true, get(){ return B }}); Object.defineProperty(__vite_ssr_exports__, "default", { enumerable: true, configurable: true, value: A });" `) }) @@ -422,9 +422,9 @@ test('should handle default export variants', async () => { `export default class A {}\n` + `export class B extends A {}`, ), ).toMatchInlineSnapshot(` - "class A {}; + "Object.defineProperty(__vite_ssr_exports__, "B", { enumerable: true, configurable: true, get(){ return B }}); + class A {}; class B extends A {} - Object.defineProperty(__vite_ssr_exports__, "B", { enumerable: true, configurable: true, get(){ return B }}); Object.defineProperty(__vite_ssr_exports__, "default", { enumerable: true, configurable: true, value: A });" `) }) @@ -875,12 +875,12 @@ export function fn1() { `, ), ).toMatchInlineSnapshot(` - " + "Object.defineProperty(__vite_ssr_exports__, "fn1", { enumerable: true, configurable: true, get(){ return fn1 }}); + Object.defineProperty(__vite_ssr_exports__, "fn2", { enumerable: true, configurable: true, get(){ return fn2 }}); + function fn1() { + };function fn2() { } - Object.defineProperty(__vite_ssr_exports__, "fn1", { enumerable: true, configurable: true, get(){ return fn1 }});;function fn2() { - } - Object.defineProperty(__vite_ssr_exports__, "fn2", { enumerable: true, configurable: true, get(){ return fn2 }}); " `) }) @@ -981,7 +981,8 @@ export class Test { };`.trim() expect(await ssrTransformSimpleCode(code)).toMatchInlineSnapshot(` - "const __vite_ssr_import_0__ = await __vite_ssr_import__("foobar", {"importedNames":["foo","bar"]}); + "Object.defineProperty(__vite_ssr_exports__, "Test", { enumerable: true, configurable: true, get(){ return Test }}); + const __vite_ssr_import_0__ = await __vite_ssr_import__("foobar", {"importedNames":["foo","bar"]}); if (false) { const foo = 'foo'; @@ -1006,8 +1007,7 @@ export class Test { console.log((0,__vite_ssr_import_0__.bar)) } } - } - Object.defineProperty(__vite_ssr_exports__, "Test", { enumerable: true, configurable: true, get(){ return Test }});;;" + };;" `) }) @@ -1180,13 +1180,13 @@ export * as bar from './bar' console.log(bar) `), ).toMatchInlineSnapshot(` - "const __vite_ssr_import_0__ = await __vite_ssr_import__("./foo", {"importedNames":["foo"]}); + "Object.defineProperty(__vite_ssr_exports__, "bar", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_1__ }}); + const __vite_ssr_import_0__ = await __vite_ssr_import__("./foo", {"importedNames":["foo"]}); __vite_ssr_exports__.default = (0,__vite_ssr_import_0__.foo)(); const __vite_ssr_import_1__ = await __vite_ssr_import__("./bar"); - - Object.defineProperty(__vite_ssr_exports__, "bar", { enumerable: true, configurable: true, get(){ return __vite_ssr_import_1__ }});; + ; console.log(bar) " `) diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/README.md b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/README.md new file mode 100644 index 00000000000000..42cebdf4ea801d --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/README.md @@ -0,0 +1,9 @@ +Cyclic import example based on https://github.com/vitejs/vite/issues/14048#issuecomment-2354774156 + +```mermaid +flowchart TD + B(dep1.js) -->|dep1| A(index.js) + A -->|dep1| C(dep2.js) + C -->|dep2| A + A -->|dep1, dep2| entry.js +``` diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/package.json b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/package.json new file mode 100644 index 00000000000000..3dbc1ca591c055 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/dep1.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/dep1.js new file mode 100644 index 00000000000000..052c10ef6e602c --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/dep1.js @@ -0,0 +1 @@ +export const dep1 = { ok: true }; diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/dep2.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/dep2.js new file mode 100644 index 00000000000000..be498e991723fb --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/dep2.js @@ -0,0 +1,2 @@ +import { dep1 } from "./index.js" +export const dep2 = { ok: dep1.ok } diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/entry.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/entry.js new file mode 100644 index 00000000000000..28f08f86fec791 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/entry.js @@ -0,0 +1 @@ +export * from "./index.js" diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/index.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/index.js new file mode 100644 index 00000000000000..49fa0342503c71 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test1/index.js @@ -0,0 +1,5 @@ +import { dep1 } from './dep1.js' +export { dep1 } + +import { dep2 } from './dep2.js' +export { dep2 } diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/dep1.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/dep1.js new file mode 100644 index 00000000000000..052c10ef6e602c --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/dep1.js @@ -0,0 +1 @@ +export const dep1 = { ok: true }; diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/dep2.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/dep2.js new file mode 100644 index 00000000000000..be498e991723fb --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/dep2.js @@ -0,0 +1,2 @@ +import { dep1 } from "./index.js" +export const dep2 = { ok: dep1.ok } diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/entry.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/entry.js new file mode 100644 index 00000000000000..28f08f86fec791 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/entry.js @@ -0,0 +1 @@ +export * from "./index.js" diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/index.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/index.js new file mode 100644 index 00000000000000..49f8047b941b02 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test2/index.js @@ -0,0 +1,2 @@ +export { dep1 } from './dep1.js' +export { dep2 } from "./dep2.js" diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/dep1.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/dep1.js new file mode 100644 index 00000000000000..052c10ef6e602c --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/dep1.js @@ -0,0 +1 @@ +export const dep1 = { ok: true }; diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/dep2.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/dep2.js new file mode 100644 index 00000000000000..be498e991723fb --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/dep2.js @@ -0,0 +1,2 @@ +import { dep1 } from "./index.js" +export const dep2 = { ok: dep1.ok } diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/entry.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/entry.js new file mode 100644 index 00000000000000..28f08f86fec791 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/entry.js @@ -0,0 +1 @@ +export * from "./index.js" diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/index.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/index.js new file mode 100644 index 00000000000000..e032a766eab42d --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test3/index.js @@ -0,0 +1,4 @@ +import { dep1 } from './dep1.js' +import { dep2 } from './dep2.js' +export { dep1 } +export { dep2 } diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/dep1.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/dep1.js new file mode 100644 index 00000000000000..052c10ef6e602c --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/dep1.js @@ -0,0 +1 @@ +export const dep1 = { ok: true }; diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/dep2.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/dep2.js new file mode 100644 index 00000000000000..be498e991723fb --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/dep2.js @@ -0,0 +1,2 @@ +import { dep1 } from "./index.js" +export const dep2 = { ok: dep1.ok } diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/entry.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/entry.js new file mode 100644 index 00000000000000..28f08f86fec791 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/entry.js @@ -0,0 +1 @@ +export * from "./index.js" diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/index.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/index.js new file mode 100644 index 00000000000000..bcbfe36b7660f7 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test4/index.js @@ -0,0 +1,2 @@ +export * from './dep1.js' +export * from './dep2.js' diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/dep1.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/dep1.js new file mode 100644 index 00000000000000..052c10ef6e602c --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/dep1.js @@ -0,0 +1 @@ +export const dep1 = { ok: true }; diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/dep2.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/dep2.js new file mode 100644 index 00000000000000..be498e991723fb --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/dep2.js @@ -0,0 +1,2 @@ +import { dep1 } from "./index.js" +export const dep2 = { ok: dep1.ok } diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/entry.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/entry.js new file mode 100644 index 00000000000000..28f08f86fec791 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/entry.js @@ -0,0 +1 @@ +export * from "./index.js" diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/index.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/index.js new file mode 100644 index 00000000000000..f748a394a7eb77 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2/test5/index.js @@ -0,0 +1,5 @@ +import { dep2 } from './dep2.js' +export { dep2 } + +import { dep1 } from './dep1.js' +export { dep1 } diff --git a/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts b/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts index 4c47558c210517..ed9d88eba7b1f1 100644 --- a/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts +++ b/packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts @@ -232,6 +232,30 @@ describe('module runner initialization', async () => { const mod = await runner.import('/fixtures/no-this/importer.js') expect(mod.result).toBe(undefined) }) + + it.for([ + ['/fixtures/cyclic2/test1/index.js', true], + ['/fixtures/cyclic2/test2/index.js', true], + ['/fixtures/cyclic2/test3/index.js', true], + ['/fixtures/cyclic2/test4/index.js', true], + ['/fixtures/cyclic2/test5/index.js', false], + ] as const)(`cyclic %s`, async ([entry, ok], { runner }) => { + if (ok) { + const mod = await runner.import(entry) + expect({ ...mod }).toEqual({ + dep1: { + ok: true, + }, + dep2: { + ok: true, + }, + }) + } else { + await expect(() => runner.import(entry)).rejects.toMatchObject({ + name: 'ReferenceError', + }) + } + }) }) describe('optimize-deps', async () => { diff --git a/packages/vite/src/node/ssr/ssrTransform.ts b/packages/vite/src/node/ssr/ssrTransform.ts index c4552f73229663..9d5a1a64482107 100644 --- a/packages/vite/src/node/ssr/ssrTransform.ts +++ b/packages/vite/src/node/ssr/ssrTransform.ts @@ -157,11 +157,11 @@ async function ssrTransformScript( return importId } - function defineExport(position: number, name: string, local = name) { + function defineExport(_position: number, name: string, local = name) { s.appendLeft( - position, - `\nObject.defineProperty(${ssrModuleExportsKey}, ${JSON.stringify(name)}, ` + - `{ enumerable: true, configurable: true, get(){ return ${local} }});`, + fileStartIndex, + `Object.defineProperty(${ssrModuleExportsKey}, ${JSON.stringify(name)}, ` + + `{ enumerable: true, configurable: true, get(){ return ${local} }});\n`, ) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 90a196a6eecbcb..d7a74553b00a8b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,7 +134,7 @@ importers: version: link:packages/vite vitest: specifier: ^2.1.8 - version: 2.1.8(@types/node@22.10.2) + version: 2.1.8(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0) docs: devDependencies: @@ -149,7 +149,7 @@ importers: version: 4.2.2 vitepress: specifier: ^1.5.0 - version: 1.5.0(@algolia/client-search@5.13.0)(@types/react@18.3.17)(axios@1.7.9)(postcss@8.4.49)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + version: 1.5.0(@algolia/client-search@5.13.0)(@types/node@22.10.2)(@types/react@18.3.17)(axios@1.7.9)(less@4.2.1)(lightningcss@1.28.2)(postcss@8.4.49)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0)(typescript@5.6.3) vitepress-plugin-group-icons: specifier: ^1.3.1 version: 1.3.1 @@ -464,6 +464,8 @@ importers: packages/vite/src/node/ssr/runtime/__tests__/fixtures/cjs-external: {} + packages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic2: {} + packages/vite/src/node/ssr/runtime/__tests__/fixtures/esm-external: {} playground: @@ -2302,6 +2304,12 @@ packages: search-insights: optional: true + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.23.1': resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} engines: {node: '>=18'} @@ -2314,6 +2322,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.23.1': resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} engines: {node: '>=18'} @@ -2326,6 +2340,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.23.1': resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} engines: {node: '>=18'} @@ -2338,6 +2358,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.23.1': resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} engines: {node: '>=18'} @@ -2350,6 +2376,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.23.1': resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} engines: {node: '>=18'} @@ -2362,6 +2394,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.23.1': resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} engines: {node: '>=18'} @@ -2374,6 +2412,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.23.1': resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} engines: {node: '>=18'} @@ -2386,6 +2430,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.23.1': resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} engines: {node: '>=18'} @@ -2398,6 +2448,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.23.1': resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} engines: {node: '>=18'} @@ -2410,6 +2466,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.23.1': resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} engines: {node: '>=18'} @@ -2422,6 +2484,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.23.1': resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} engines: {node: '>=18'} @@ -2434,6 +2502,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.23.1': resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} engines: {node: '>=18'} @@ -2446,6 +2520,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.23.1': resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} engines: {node: '>=18'} @@ -2458,6 +2538,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.23.1': resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} engines: {node: '>=18'} @@ -2470,6 +2556,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.23.1': resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} engines: {node: '>=18'} @@ -2482,6 +2574,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.23.1': resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} engines: {node: '>=18'} @@ -2494,6 +2592,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.23.1': resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} engines: {node: '>=18'} @@ -2506,6 +2610,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.23.1': resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} engines: {node: '>=18'} @@ -2530,6 +2640,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.23.1': resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} engines: {node: '>=18'} @@ -2542,6 +2658,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.23.1': resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} engines: {node: '>=18'} @@ -2554,6 +2676,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.23.1': resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} engines: {node: '>=18'} @@ -2566,6 +2694,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.23.1': resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} engines: {node: '>=18'} @@ -2578,6 +2712,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.23.1': resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} engines: {node: '>=18'} @@ -4420,6 +4560,11 @@ packages: resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} engines: {node: '>=0.12'} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.23.1: resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} engines: {node: '>=18'} @@ -7023,6 +7168,37 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vitepress-plugin-group-icons@1.3.1: resolution: {integrity: sha512-KHw3vaSqobjePKGWVRchd3PIG9wKrfA9U43yFLp2hTxXxUOIJdTb+e/qj0dEQYGYbwdXFBeErPVYHYNVBDSqow==} @@ -8041,108 +8217,162 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' + '@esbuild/aix-ppc64@0.21.5': + optional: true + '@esbuild/aix-ppc64@0.23.1': optional: true '@esbuild/aix-ppc64@0.24.0': optional: true + '@esbuild/android-arm64@0.21.5': + optional: true + '@esbuild/android-arm64@0.23.1': optional: true '@esbuild/android-arm64@0.24.0': optional: true + '@esbuild/android-arm@0.21.5': + optional: true + '@esbuild/android-arm@0.23.1': optional: true '@esbuild/android-arm@0.24.0': optional: true + '@esbuild/android-x64@0.21.5': + optional: true + '@esbuild/android-x64@0.23.1': optional: true '@esbuild/android-x64@0.24.0': optional: true + '@esbuild/darwin-arm64@0.21.5': + optional: true + '@esbuild/darwin-arm64@0.23.1': optional: true '@esbuild/darwin-arm64@0.24.0': optional: true + '@esbuild/darwin-x64@0.21.5': + optional: true + '@esbuild/darwin-x64@0.23.1': optional: true '@esbuild/darwin-x64@0.24.0': optional: true + '@esbuild/freebsd-arm64@0.21.5': + optional: true + '@esbuild/freebsd-arm64@0.23.1': optional: true '@esbuild/freebsd-arm64@0.24.0': optional: true + '@esbuild/freebsd-x64@0.21.5': + optional: true + '@esbuild/freebsd-x64@0.23.1': optional: true '@esbuild/freebsd-x64@0.24.0': optional: true + '@esbuild/linux-arm64@0.21.5': + optional: true + '@esbuild/linux-arm64@0.23.1': optional: true '@esbuild/linux-arm64@0.24.0': optional: true + '@esbuild/linux-arm@0.21.5': + optional: true + '@esbuild/linux-arm@0.23.1': optional: true '@esbuild/linux-arm@0.24.0': optional: true + '@esbuild/linux-ia32@0.21.5': + optional: true + '@esbuild/linux-ia32@0.23.1': optional: true '@esbuild/linux-ia32@0.24.0': optional: true + '@esbuild/linux-loong64@0.21.5': + optional: true + '@esbuild/linux-loong64@0.23.1': optional: true '@esbuild/linux-loong64@0.24.0': optional: true + '@esbuild/linux-mips64el@0.21.5': + optional: true + '@esbuild/linux-mips64el@0.23.1': optional: true '@esbuild/linux-mips64el@0.24.0': optional: true + '@esbuild/linux-ppc64@0.21.5': + optional: true + '@esbuild/linux-ppc64@0.23.1': optional: true '@esbuild/linux-ppc64@0.24.0': optional: true + '@esbuild/linux-riscv64@0.21.5': + optional: true + '@esbuild/linux-riscv64@0.23.1': optional: true '@esbuild/linux-riscv64@0.24.0': optional: true + '@esbuild/linux-s390x@0.21.5': + optional: true + '@esbuild/linux-s390x@0.23.1': optional: true '@esbuild/linux-s390x@0.24.0': optional: true + '@esbuild/linux-x64@0.21.5': + optional: true + '@esbuild/linux-x64@0.23.1': optional: true '@esbuild/linux-x64@0.24.0': optional: true + '@esbuild/netbsd-x64@0.21.5': + optional: true + '@esbuild/netbsd-x64@0.23.1': optional: true @@ -8155,30 +8385,45 @@ snapshots: '@esbuild/openbsd-arm64@0.24.0': optional: true + '@esbuild/openbsd-x64@0.21.5': + optional: true + '@esbuild/openbsd-x64@0.23.1': optional: true '@esbuild/openbsd-x64@0.24.0': optional: true + '@esbuild/sunos-x64@0.21.5': + optional: true + '@esbuild/sunos-x64@0.23.1': optional: true '@esbuild/sunos-x64@0.24.0': optional: true + '@esbuild/win32-arm64@0.21.5': + optional: true + '@esbuild/win32-arm64@0.23.1': optional: true '@esbuild/win32-arm64@0.24.0': optional: true + '@esbuild/win32-ia32@0.21.5': + optional: true + '@esbuild/win32-ia32@0.23.1': optional: true '@esbuild/win32-ia32@0.24.0': optional: true + '@esbuild/win32-x64@0.21.5': + optional: true + '@esbuild/win32-x64@0.23.1': optional: true @@ -8861,9 +9106,9 @@ snapshots: '@vitejs/longfilename-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@file:playground/optimize-deps/longfilename': {} - '@vitejs/plugin-vue@5.1.4(vite@packages+vite)(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue@5.1.4(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0))(vue@3.5.13(typescript@5.6.3))': dependencies: - vite: link:packages/vite + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0) vue: 3.5.13(typescript@5.6.3) '@vitejs/release-scripts@1.3.2': @@ -9082,13 +9327,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@packages+vite)': + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: link:packages/vite + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0) '@vitest/pretty-format@2.1.8': dependencies: @@ -10055,6 +10300,32 @@ snapshots: d: 1.0.2 ext: 1.7.0 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + esbuild@0.23.1: optionalDependencies: '@esbuild/aix-ppc64': 0.23.1 @@ -12916,15 +13187,39 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.1.8: + vite-node@2.1.8(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: link:packages/vite + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0) transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss - supports-color + - terser + + vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.28.1 + optionalDependencies: + '@types/node': 22.10.2 + fsevents: 2.3.3 + less: 4.2.1 + lightningcss: 1.28.2 + sass: 1.83.0 + sass-embedded: 1.83.0(source-map-js@1.2.1) + stylus: 0.64.0 + sugarss: 5.0.0(postcss@8.4.49) + terser: 5.37.0 vitepress-plugin-group-icons@1.3.1: dependencies: @@ -12934,7 +13229,7 @@ snapshots: transitivePeerDependencies: - supports-color - vitepress@1.5.0(@algolia/client-search@5.13.0)(@types/react@18.3.17)(axios@1.7.9)(postcss@8.4.49)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3): + vitepress@1.5.0(@algolia/client-search@5.13.0)(@types/node@22.10.2)(@types/react@18.3.17)(axios@1.7.9)(less@4.2.1)(lightningcss@1.28.2)(postcss@8.4.49)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0)(typescript@5.6.3): dependencies: '@docsearch/css': 3.7.0 '@docsearch/js': 3.7.0(@algolia/client-search@5.13.0)(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -12943,7 +13238,7 @@ snapshots: '@shikijs/transformers': 1.22.2 '@shikijs/types': 1.24.2 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.1.4(vite@packages+vite)(vue@3.5.13(typescript@5.6.3)) + '@vitejs/plugin-vue': 5.1.4(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) '@vue/devtools-api': 7.6.3 '@vue/shared': 3.5.13 '@vueuse/core': 11.2.0(vue@3.5.13(typescript@5.6.3)) @@ -12952,12 +13247,13 @@ snapshots: mark.js: 8.11.1 minisearch: 7.1.0 shiki: 1.24.2 - vite: link:packages/vite + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0) vue: 3.5.13(typescript@5.6.3) optionalDependencies: postcss: 8.4.49 transitivePeerDependencies: - '@algolia/client-search' + - '@types/node' - '@types/react' - '@vue/composition-api' - async-validator @@ -12967,19 +13263,26 @@ snapshots: - fuse.js - idb-keyval - jwt-decode + - less + - lightningcss - nprogress - qrcode - react - react-dom + - sass + - sass-embedded - search-insights - sortablejs + - stylus + - sugarss + - terser - typescript - universal-cookie - vitest@2.1.8(@types/node@22.10.2): + vitest@2.1.8(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@packages+vite) + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -12995,14 +13298,21 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: link:packages/vite - vite-node: 2.1.8 + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0) + vite-node: 2.1.8(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.28.2)(sass-embedded@1.83.0(source-map-js@1.2.1))(sass@1.83.0)(stylus@0.64.0)(sugarss@5.0.0(postcss@8.4.49))(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.10.2 transitivePeerDependencies: + - less + - lightningcss - msw + - sass + - sass-embedded + - stylus + - sugarss - supports-color + - terser void-elements@3.1.0: {}