diff --git a/package.json b/package.json index 8ae818b3d2fbb4..1d50d10d5b6320 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "oxfmt": "^0.48.0", "picocolors": "^1.1.1", "playwright-chromium": "^1.59.1", - "rolldown": "1.0.0-rc.18", + "rolldown": "1.0.0", "rollup": "^4.59.0", "simple-git-hooks": "^2.13.1", "tsx": "^4.21.0", diff --git a/packages/create-vite/src/index.ts b/packages/create-vite/src/index.ts index d0a8589bf27e17..3f4343386180a0 100755 --- a/packages/create-vite/src/index.ts +++ b/packages/create-vite/src/index.ts @@ -174,7 +174,7 @@ const FRAMEWORKS: Framework[] = [ link: 'https://tanstack.com/router', color: cyan, customCommand: - 'npm exec -- @tanstack/cli@latest create TARGET_DIR --interactive', + 'npm exec -- @tanstack/cli@latest create TARGET_DIR --framework react --interactive', }, { name: 'redwoodsdk-standard', diff --git a/packages/vite/package.json b/packages/vite/package.json index 3b5cf3ea92bc96..d51b3acc7cbdce 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -76,7 +76,7 @@ "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.14", - "rolldown": "1.0.0-rc.18", + "rolldown": "1.0.0", "tinyglobby": "^0.2.16" }, "optionalDependencies": { diff --git a/packages/vite/src/module-runner/runner.ts b/packages/vite/src/module-runner/runner.ts index 64b97e2e3b63d5..8305fd6fd82cca 100644 --- a/packages/vite/src/module-runner/runner.ts +++ b/packages/vite/src/module-runner/runner.ts @@ -133,37 +133,32 @@ export class ModuleRunner { return exports } - private isCircularModule(mod: EvaluatedModuleNode) { - for (const importedFile of mod.imports) { - if (mod.importers.has(importedFile)) { - return true - } + private isCircularRequest( + mod: EvaluatedModuleNode, + callstack: string[], + visited = new Set(), + ): boolean { + if (visited.has(mod.id)) { + return false } - return false - } + visited.add(mod.id) - private isCircularImport( - importers: Set, - moduleUrl: string, - visited = new Set(), - ) { - for (const importer of importers) { - if (visited.has(importer)) { - continue - } - visited.add(importer) - if (importer === moduleUrl) { + for (const importedModuleId of mod.imports) { + if (callstack.includes(importedModuleId)) { return true } - const mod = this.evaluatedModules.getModuleById(importer) + + const importedModule = + this.evaluatedModules.getModuleById(importedModuleId) if ( - mod && - mod.importers.size && - this.isCircularImport(mod.importers, moduleUrl, visited) + importedModule?.promise && + !importedModule.evaluated && + this.isCircularRequest(importedModule, callstack, visited) ) { return true } } + return false } @@ -176,24 +171,23 @@ export class ModuleRunner { const meta = mod.meta! const moduleId = meta.id - const { importers } = mod - const importee = callstack[callstack.length - 1] - if (importee) importers.add(importee) + if (importee) mod.importers.add(importee) // fast path: already evaluated modules can't deadlock if (mod.evaluated && mod.promise) { return this.processImport(await mod.promise, meta, metadata) } - // check circular dependency (only for modules still being evaluated) - if ( - callstack.includes(moduleId) || - this.isCircularModule(mod) || - this.isCircularImport(importers, moduleId) - ) { - if (mod.exports) return this.processImport(mod.exports, meta, metadata) + if (mod.promise) { + if ( + mod.exports && + (callstack.includes(moduleId) || this.isCircularRequest(mod, callstack)) + ) { + return this.processImport(mod.exports, meta, metadata) + } + return this.processImport(await mod.promise, meta, metadata) } let debugTimer: any @@ -212,10 +206,6 @@ export class ModuleRunner { } try { - // cached module (in-progress, not yet evaluated) - if (mod.promise) - return this.processImport(await mod.promise, meta, metadata) - const promise = this.directRequest(url, mod, callstack) mod.promise = promise mod.evaluated = false diff --git a/packages/vite/src/node/plugins/worker.ts b/packages/vite/src/node/plugins/worker.ts index 648ecf35759bc6..ff8144eaae131a 100644 --- a/packages/vite/src/node/plugins/worker.ts +++ b/packages/vite/src/node/plugins/worker.ts @@ -189,6 +189,7 @@ async function bundleWorkerEntry( await workerEnvironment.init() const chunkMetadataMap = new ChunkMetadataMap() + const workerBuildTarget = workerEnvironment.config.build.target const bundle = await rolldown({ ...rollupOptions, input, @@ -198,6 +199,10 @@ async function bundleWorkerEntry( onLog(level, log) { onRollupLog(level, log, workerEnvironment) }, + transform: { + target: workerBuildTarget === false ? undefined : workerBuildTarget, + ...rollupOptions.transform, + }, // TODO: remove this and enable rolldown's CSS support later moduleTypes: { '.css': 'js', diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/core.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/core.js new file mode 100644 index 00000000000000..e87e51dd1c944d --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/core.js @@ -0,0 +1,5 @@ +await globalThis.__vite_ssr_hmr_reexport_race__?.wait?.() + +export function createThing(value) { + return value +} diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/entry-a.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/entry-a.js new file mode 100644 index 00000000000000..a75ac0dbc91f7b --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/entry-a.js @@ -0,0 +1,5 @@ +import { createThing } from './shared.js' + +export const result = createThing('a') + +import.meta.hot?.accept() diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/entry-b.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/entry-b.js new file mode 100644 index 00000000000000..077c50cfcdea7c --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/entry-b.js @@ -0,0 +1,5 @@ +import { createThing } from './shared.js' + +export const result = createThing('b') + +import.meta.hot?.accept() diff --git a/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/shared.js b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/shared.js new file mode 100644 index 00000000000000..ba798cdc628b27 --- /dev/null +++ b/packages/vite/src/node/ssr/runtime/__tests__/fixtures/hmr-reexport-race/shared.js @@ -0,0 +1,3 @@ +import './entry-a.js' + +export * from './core.js' diff --git a/packages/vite/src/node/ssr/runtime/__tests__/server-hmr.spec.ts b/packages/vite/src/node/ssr/runtime/__tests__/server-hmr.spec.ts index 997df1f12095b7..d529153d8aada1 100644 --- a/packages/vite/src/node/ssr/runtime/__tests__/server-hmr.spec.ts +++ b/packages/vite/src/node/ssr/runtime/__tests__/server-hmr.spec.ts @@ -1,4 +1,4 @@ -import { describe, expect } from 'vitest' +import { describe, expect, onTestFinished } from 'vitest' import { createModuleRunnerTester } from './utils' describe( @@ -36,6 +36,103 @@ describe( expect(runner.hmrClient!.ctxToListenersMap.has(fixture)).toBe(true) } }) + + it('does not expose partial exports during concurrent updates', async ({ + runner, + }) => { + const testGlobal = globalThis as any + + testGlobal.__vite_ssr_hmr_reexport_race__ = { + wait: () => Promise.resolve(), + } + onTestFinished(() => { + delete testGlobal.__vite_ssr_hmr_reexport_race__ + }) + + await runner.import('/fixtures/hmr-reexport-race/entry-a.js') + await runner.import('/fixtures/hmr-reexport-race/entry-b.js') + + const sharedModule = runner.evaluatedModules.getModuleByUrl( + '/fixtures/hmr-reexport-race/shared.js', + ) + const coreModule = runner.evaluatedModules.getModuleByUrl( + '/fixtures/hmr-reexport-race/core.js', + ) + const entryAModule = runner.evaluatedModules.getModuleByUrl( + '/fixtures/hmr-reexport-race/entry-a.js', + ) + const entryBModule = runner.evaluatedModules.getModuleByUrl( + '/fixtures/hmr-reexport-race/entry-b.js', + ) + expect(sharedModule).toBeDefined() + expect(coreModule).toBeDefined() + expect(entryAModule).toBeDefined() + expect(entryBModule).toBeDefined() + + let waitStarted!: () => void + const waitStartedPromise = new Promise((resolve) => { + waitStarted = resolve + }) + let releaseWait!: () => void + const waitPromise = new Promise((resolve) => { + releaseWait = resolve + }) + + testGlobal.__vite_ssr_hmr_reexport_race__ = { + wait: () => { + waitStarted() + return waitPromise + }, + } + + for (const module of [ + entryAModule!, + entryBModule!, + sharedModule!, + coreModule!, + ]) { + runner.evaluatedModules.invalidateModule(module) + } + + const importA = runner.import('/fixtures/hmr-reexport-race/entry-a.js') + await waitStartedPromise + + const importB = runner.import('/fixtures/hmr-reexport-race/entry-b.js') + // Wait deterministically until entry-b has reached the point where it + // observes shared as in-flight. The `mod.imports.add(depMod.id)` line + // in `request()` runs synchronously immediately before `cachedRequest` + // executes its cycle-detection prefix, so observing this edge means + // the buggy/fixed branch has either just run or is about to run on + // the same microtask. `imports` is cleared by invalidateModule, so + // this is a fresh signal (unlike `importers`, which is preserved). + const entryBNode = runner.evaluatedModules.getModuleByUrl( + '/fixtures/hmr-reexport-race/entry-b.js', + )! + while (!entryBNode.imports.has(sharedModule!.id)) { + await new Promise((resolve) => setImmediate(resolve)) + } + releaseWait() + const results = await Promise.allSettled([importA, importB] as const) + + expect(results).toEqual([ + { + status: 'fulfilled', + value: expect.objectContaining({ result: 'a' }), + }, + { + status: 'fulfilled', + value: expect.objectContaining({ result: 'b' }), + }, + ]) + + const hmrListeners = runner.hmrClient!.hotModulesMap + expect(hmrListeners.has('/fixtures/hmr-reexport-race/entry-a.js')).toBe( + true, + ) + expect(hmrListeners.has('/fixtures/hmr-reexport-race/entry-b.js')).toBe( + true, + ) + }) }, process.env.CI ? 50_00 : 5_000, ) diff --git a/playground/package.json b/playground/package.json index 82bf8dc0b398d4..3d4a278cea532e 100644 --- a/playground/package.json +++ b/playground/package.json @@ -10,6 +10,6 @@ "convert-source-map": "^2.0.0", "css-color-names": "^1.0.1", "kill-port": "^1.6.1", - "rolldown": "1.0.0-rc.18" + "rolldown": "1.0.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index badd61ab602e3b..15c41d4a3ef359 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,7 @@ settings: excludeLinksFromLockfile: false overrides: - rolldown: 1.0.0-rc.18 + rolldown: 1.0.0 vite: workspace:* debug: npm:obug@^1.0.2 @@ -97,8 +97,8 @@ importers: specifier: ^1.59.1 version: 1.59.1 rolldown: - specifier: 1.0.0-rc.18 - version: 1.0.0-rc.18 + specifier: 1.0.0 + version: 1.0.0 rollup: specifier: ^4.59.0 version: 4.59.0 @@ -245,8 +245,8 @@ importers: specifier: ^8.5.14 version: 8.5.14 rolldown: - specifier: 1.0.0-rc.18 - version: 1.0.0-rc.18 + specifier: 1.0.0 + version: 1.0.0 tinyglobby: specifier: ^0.2.16 version: 0.2.16 @@ -385,7 +385,7 @@ importers: version: 2.0.3 rolldown-plugin-dts: specifier: ^0.24.1 - version: 0.24.1(rolldown@1.0.0-rc.18)(typescript@6.0.2)(vue-tsc@3.2.8) + version: 0.24.1(rolldown@1.0.0)(typescript@6.0.2)(vue-tsc@3.2.8) rollup: specifier: ^4.59.0 version: 4.59.0 @@ -553,8 +553,8 @@ importers: specifier: ^1.6.1 version: 1.6.1 rolldown: - specifier: 1.0.0-rc.18 - version: 1.0.0-rc.18 + specifier: 1.0.0 + version: 1.0.0 playground/alias: dependencies: @@ -3433,8 +3433,8 @@ packages: '@oxc-project/types@0.126.0': resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==} - '@oxc-project/types@0.128.0': - resolution: {integrity: sha512-huv1Y/LzBJkBVHt3OlC7u0zHBW9qXf1FdD7sGmc1rXc2P1mTwHssYv7jyGx5KAACSCH+9B3Bhn6Z9luHRvf7pQ==} + '@oxc-project/types@0.129.0': + resolution: {integrity: sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==} '@oxfmt/binding-android-arm-eabi@0.48.0': resolution: {integrity: sha512-uwqk+/KhQvBIpULD8SMM/zAafMRC/+DV/xsEQjkkIsJ/kLmEI/2bxonVowcYTiXqqZ/a0FEW8DPkZY3VvwELDA==} @@ -3725,97 +3725,97 @@ packages: '@rive-app/canvas-lite@2.35.1': resolution: {integrity: sha512-Hm5dp9dmIj+3UoZiyTVi42QvO5bRtg5MrWIfidgZiX3L+oM/H94YfhPpX8Ktp6WXZtnHjh7zGy4v5hYkOlfiYA==} - '@rolldown/binding-android-arm64@1.0.0-rc.18': - resolution: {integrity: sha512-lIDyUAfD7U3+BWKzdxMbJcsYHuqXqmGz40aeRqvuAm3y5TkJSYTBW2RDrn65DJFPQqVjUAUqq5uz8urzQ8aBdQ==} + '@rolldown/binding-android-arm64@1.0.0': + resolution: {integrity: sha512-TWMZnRLMe63C2Lhyicviu7ZHaU4kxa6PS3rofvc9GmcvptzNN11BcfQ4Sl7MwTOsisQoa2keB/EBdNCAnUo8vA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.18': - resolution: {integrity: sha512-apJq2ktnGp27nSInMR5Vcj8kY6xJzDAvfdIFlpDcAK/w4cDO58qVoi1YQsES/SKiFNge/6e4CUzgjfHduYqWpQ==} + '@rolldown/binding-darwin-arm64@1.0.0': + resolution: {integrity: sha512-6XcD+8k0gPVItNagEw78/qqcBDwKcwDYS8V2hRmVsfUSIrd8cWe/CBvRDI5toqFyPfj+FJr6t8U6Xj2P2prEew==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.18': - resolution: {integrity: sha512-5Ofot8xbs+pxRHJqm9/9N/4sTQOvdrwEsmPE9pdLEEoAbdZtG6F2LMDfO1sp6ZAtXJuJV/21ew2srq3W8NXB5g==} + '@rolldown/binding-darwin-x64@1.0.0': + resolution: {integrity: sha512-iN/tWVXRQDWvmZlKdceP1Dwug9GDpEymhb9p4xnEe6zvCg5lFmzVljl+1qR1NVx3yfGpr2Na+CuLmv5IU8uzfQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.18': - resolution: {integrity: sha512-7h8eeOTT1eyqJyx64BFCnWZpNm486hGWt2sqeLLgDxA0xI1oGZ9H7gK1S85uNGmBhkdPwa/6reTxfFFKvIsebw==} + '@rolldown/binding-freebsd-x64@1.0.0': + resolution: {integrity: sha512-jjQMDvvwSOuhOwMszD/klSOjyWMM3zI64hWTj9KT5x4MxRbZAf+7vLQ6qouRhtsLVFHr3f0ILaJAfgENPiQdAQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.18': - resolution: {integrity: sha512-eRcm/HVt9U/JFu5RKAEKwGQYtDCKWLiaH6wOnsSEp6NMBb/3Os8LgHZlNyzMpFVNmiiMFlfb2zEnebfzJrHFmg==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0': + resolution: {integrity: sha512-d//Dtg2x6/m3mbV64yUGNnDGNZaDGRpDLLNGerHQUVObuNaIQaaDp25yUiqGXtHEXX+NP2d0wAlmKgpYgIAJ2A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.18': - resolution: {integrity: sha512-SOrT/cT4ukTmgnrEz/Hg3m7LBnuCLW9psDeMKrimRWY4I8DmnO7Lco8W2vtqPmMkbVu8iJ+g4GFLVLLOVjJ9DQ==} + '@rolldown/binding-linux-arm64-gnu@1.0.0': + resolution: {integrity: sha512-n7Ofp0mx+aB2cC+Sdy5YtMnXtY9lchnHbY+3Yt0uq9JsWQExf4f5Whu0tK0R8Jdc9S6RchTHjIFY7uc92puOVQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.18': - resolution: {integrity: sha512-QWjdxN1HJCpBTAcZ5N5F7wju3gVPzRzSpmGzx7na0c/1qpN9CFil+xt+l9lV/1M6/gqHSNXCiqPfwhVJPeLnug==} + '@rolldown/binding-linux-arm64-musl@1.0.0': + resolution: {integrity: sha512-EIVjy2cgd7uuMMo94FVkBp7F6DhcZAUwNURkSG3RwUmvAXR6s0ISxM81U+IydcZByPG0pZIHsf1b6kTxoFDgJA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.18': - resolution: {integrity: sha512-ugCOyj7a4d9h3q9B+wXmf6g3a68UsjGh6dob5DHevHGMwDUbhsYNbSPxJsENcIttJZ9jv7qGM2UesLw5jqIhdg==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0': + resolution: {integrity: sha512-JEwwOPcwTLAcpDQlqSmjEmfs63xJnSiUNIGvLcDLUHCWK4XowpS/7c7tUsUH6uT/ct6bMUTdXKfI8967FYj6mg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.18': - resolution: {integrity: sha512-kKWRhbsotpXkGbcd5dllUWg5gEXcDAa8u5YnP9AV5DYNbvJHGzzuwv7dpmhc8NqKMJldl0a+x76IHbspEpEmdA==} + '@rolldown/binding-linux-s390x-gnu@1.0.0': + resolution: {integrity: sha512-0wjCFhLrihtAubnT9iA0N++0pSV0z5Hg7tNGdNJ4RFaINceHadoF+kiFGyY1qSSNVIAZtLotG8Ju1bgDPkjnFA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.18': - resolution: {integrity: sha512-uCo8ElcCIAMyYAZyuIZ81oFkhTSIllNvUCHCAlbhlN4ji3uC28h7IIdlXyIvGO7HsuqnV9p3rD/bpH7XhIyhRw==} + '@rolldown/binding-linux-x64-gnu@1.0.0': + resolution: {integrity: sha512-Dfn7iak9BcMMePxcoJfpSbWqnEyrp/dRF63/8qW/eHBdOZov6x5aShLLEYGYdIeSJ6vMLK/XCVB+lGIxm41bQA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.18': - resolution: {integrity: sha512-XNOQZtuE6yUIvx4rwGemwh8kpL1xvU41FXy/s9K7T/3JVcqGzo3NfKM2HrbrGgfPYGFW42f07Wk++aOC6B9NWA==} + '@rolldown/binding-linux-x64-musl@1.0.0': + resolution: {integrity: sha512-5/utzzDmD/pD/bmuaUcbTf/sZYy0aztwIVlfpoW1fTjCZ0BaPOMVWGZL1zvgxyi7ZIVYWlxKONHmSbHuiOh8Jw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.18': - resolution: {integrity: sha512-tSn/kzrfa7tNOXr7sEacDBN4YsIqTyLqh45IO0nHDwtpKIDNDJr+VFojt+4klSpChxB29JLyduSsE0MKEwa65A==} + '@rolldown/binding-openharmony-arm64@1.0.0': + resolution: {integrity: sha512-ouJs8VcUomfLfpbUECqFMRqdV4x6aeAK3MA4m6vTrJJjKyWTV5KnxZx7Jd9G+GlDaQQxubcba00x16OyJ1meig==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.18': - resolution: {integrity: sha512-+J9YGmc+czgqlhYmwun3S3O0FIZhsH8ep2456xwjAdIOmuJxM7xz4P4PtrxU+Bz17a/5bqPA8o3HAAoX0teUdg==} + '@rolldown/binding-wasm32-wasi@1.0.0': + resolution: {integrity: sha512-E+oHKGiDA+lsKMmFtffDDw91EryDT7uJocrIuCHqhm6bCTM6xFK+3gaCkYOHfPwQr0cCNarSM2xaELoQDz9jJg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.18': - resolution: {integrity: sha512-zsu47DgU0FQzSwi6sU9dZoEdUv7pc1AptSEz/Z8HBg54sV0Pbs3N0+CrIbTsgiu6EyoaNN9CHboqbLaz9lhOyQ==} + '@rolldown/binding-win32-arm64-msvc@1.0.0': + resolution: {integrity: sha512-yYK02n8Rngo+gbm1y6G0+7jk1sJ/2Wt7K0me0Y7k/ErBpyf+LJ2gFpqWVTcRV1rUepBlQRmpgWkTQCiiwrK0Ow==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.18': - resolution: {integrity: sha512-7H+3yqGgmnlDTRRhw/xpYY9J1kf4GC681nVc4GqKhExZTDrVVrV2tsOR9kso0fvgBdcTCcQShx4SLLoHgaLwhg==} + '@rolldown/binding-win32-x64-msvc@1.0.0': + resolution: {integrity: sha512-14bpChMahXRRXiTwahSl+zzHPW6qQTXtkMuJBFlbo+pqSAews2d4BdCSHfrJ/MBsCZtpmTafsY+1QhBzitcmdg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -3823,8 +3823,8 @@ packages: '@rolldown/debug@1.0.0-rc.18': resolution: {integrity: sha512-TpVI38fXLiuQhkfQaj4Lh0bFzj9tsaPR5vtK3r+ouWgWhNCsr5tjyKvhGmtcp+PoS7l5gad5il6F4prYatLPQA==} - '@rolldown/pluginutils@1.0.0-rc.18': - resolution: {integrity: sha512-CUY5Mnhe64xQBGZEEXQ5WyZwsc1JU3vAZLIxtrsBt3LO6UOb+C8GunVKqe9sT8NeWb4lqSaoJtp2xo6GxT1MNw==} + '@rolldown/pluginutils@1.0.0': + resolution: {integrity: sha512-aKs/3GSWyV0mrhNmt/96/Z3yczC3yvrzYATCiCXQebBsGyYzjNdUphRVLeJQ67ySKVXRfMxt2lm12pmXvbPFQQ==} '@rolldown/pluginutils@1.0.0-rc.2': resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==} @@ -7279,7 +7279,7 @@ packages: peerDependencies: '@ts-macro/tsc': ^0.3.6 '@typescript/native-preview': '>=7.0.0-dev.20260325.1' - rolldown: 1.0.0-rc.18 + rolldown: 1.0.0 typescript: ^5.0.0 || ^6.0.0 vue-tsc: ~3.2.0 peerDependenciesMeta: @@ -7298,7 +7298,7 @@ packages: peerDependencies: '@ts-macro/tsc': ^0.3.6 '@typescript/native-preview': '>=7.0.0-dev.20260325.1' - rolldown: 1.0.0-rc.18 + rolldown: 1.0.0 typescript: ^6.0.0 vue-tsc: ~3.2.0 peerDependenciesMeta: @@ -7311,8 +7311,8 @@ packages: vue-tsc: optional: true - rolldown@1.0.0-rc.18: - resolution: {integrity: sha512-phmyKBpuBdRYDf4hgyynGAYn/rDDe+iZXKVJ7WX5b1zQzpLkP5oJRPGsfJuHdzPMlyyEO/4sPW6yfSx2gf7lVg==} + rolldown@1.0.0: + resolution: {integrity: sha512-yD986aXDESFGS95spT1LAv0jssywP4npMEjmMHyN2/5+eE8qQJUype2AaKkRiLgBgyD0LFlubwAht7VmY8rGoA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -9851,7 +9851,7 @@ snapshots: '@oxc-project/types@0.126.0': {} - '@oxc-project/types@0.128.0': {} + '@oxc-project/types@0.129.0': {} '@oxfmt/binding-android-arm-eabi@0.48.0': optional: true @@ -10056,58 +10056,58 @@ snapshots: '@rive-app/canvas-lite@2.35.1': {} - '@rolldown/binding-android-arm64@1.0.0-rc.18': + '@rolldown/binding-android-arm64@1.0.0': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.18': + '@rolldown/binding-darwin-arm64@1.0.0': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.18': + '@rolldown/binding-darwin-x64@1.0.0': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.18': + '@rolldown/binding-freebsd-x64@1.0.0': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.18': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.18': + '@rolldown/binding-linux-arm64-gnu@1.0.0': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.18': + '@rolldown/binding-linux-arm64-musl@1.0.0': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.18': + '@rolldown/binding-linux-ppc64-gnu@1.0.0': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.18': + '@rolldown/binding-linux-s390x-gnu@1.0.0': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.18': + '@rolldown/binding-linux-x64-gnu@1.0.0': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.18': + '@rolldown/binding-linux-x64-musl@1.0.0': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.18': + '@rolldown/binding-openharmony-arm64@1.0.0': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.18': + '@rolldown/binding-wasm32-wasi@1.0.0': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.18': + '@rolldown/binding-win32-arm64-msvc@1.0.0': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.18': + '@rolldown/binding-win32-x64-msvc@1.0.0': optional: true '@rolldown/debug@1.0.0-rc.18': {} - '@rolldown/pluginutils@1.0.0-rc.18': {} + '@rolldown/pluginutils@1.0.0': {} '@rolldown/pluginutils@1.0.0-rc.2': {} @@ -13853,7 +13853,7 @@ snapshots: rfdc@1.4.1: {} - rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.18)(typescript@6.0.2)(vue-tsc@3.2.8): + rolldown-plugin-dts@0.23.2(rolldown@1.0.0)(typescript@6.0.2)(vue-tsc@3.2.8): dependencies: '@babel/generator': 8.0.0-rc.3 '@babel/helper-validator-identifier': 8.0.0-rc.3 @@ -13865,14 +13865,14 @@ snapshots: get-tsconfig: 4.13.7 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.18 + rolldown: 1.0.0 optionalDependencies: typescript: 6.0.2 vue-tsc: 3.2.8(typescript@6.0.2) transitivePeerDependencies: - oxc-resolver - rolldown-plugin-dts@0.24.1(rolldown@1.0.0-rc.18)(typescript@6.0.2)(vue-tsc@3.2.8): + rolldown-plugin-dts@0.24.1(rolldown@1.0.0)(typescript@6.0.2)(vue-tsc@3.2.8): dependencies: '@babel/generator': 8.0.0-rc.4 '@babel/helper-validator-identifier': 8.0.0-rc.4 @@ -13882,33 +13882,33 @@ snapshots: dts-resolver: 2.1.3 get-tsconfig: 5.0.0-beta.5 obug: 2.1.1 - rolldown: 1.0.0-rc.18 + rolldown: 1.0.0 optionalDependencies: typescript: 6.0.2 vue-tsc: 3.2.8(typescript@6.0.2) transitivePeerDependencies: - oxc-resolver - rolldown@1.0.0-rc.18: + rolldown@1.0.0: dependencies: - '@oxc-project/types': 0.128.0 - '@rolldown/pluginutils': 1.0.0-rc.18 + '@oxc-project/types': 0.129.0 + '@rolldown/pluginutils': 1.0.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.18 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.18 - '@rolldown/binding-darwin-x64': 1.0.0-rc.18 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.18 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.18 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.18 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.18 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.18 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.18 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.18 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.18 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.18 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.18 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.18 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.18 + '@rolldown/binding-android-arm64': 1.0.0 + '@rolldown/binding-darwin-arm64': 1.0.0 + '@rolldown/binding-darwin-x64': 1.0.0 + '@rolldown/binding-freebsd-x64': 1.0.0 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0 + '@rolldown/binding-linux-arm64-gnu': 1.0.0 + '@rolldown/binding-linux-arm64-musl': 1.0.0 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0 + '@rolldown/binding-linux-s390x-gnu': 1.0.0 + '@rolldown/binding-linux-x64-gnu': 1.0.0 + '@rolldown/binding-linux-x64-musl': 1.0.0 + '@rolldown/binding-openharmony-arm64': 1.0.0 + '@rolldown/binding-wasm32-wasi': 1.0.0 + '@rolldown/binding-win32-arm64-msvc': 1.0.0 + '@rolldown/binding-win32-x64-msvc': 1.0.0 rollup-plugin-license@3.7.1(picomatch@4.0.4)(rollup@4.59.0): dependencies: @@ -14518,8 +14518,8 @@ snapshots: import-without-cache: 0.3.3 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.18 - rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.18)(typescript@6.0.2)(vue-tsc@3.2.8) + rolldown: 1.0.0 + rolldown-plugin-dts: 0.23.2(rolldown@1.0.0)(typescript@6.0.2)(vue-tsc@3.2.8) semver: 7.7.4 tinyexec: 1.1.2 tinyglobby: 0.2.16 @@ -14702,7 +14702,7 @@ snapshots: unrun@0.2.37: dependencies: - rolldown: 1.0.0-rc.18 + rolldown: 1.0.0 unstorage@1.17.5: dependencies: