diff --git a/packages/emotion/src/index.ts b/packages/emotion/src/index.ts index c4821a0..1e9e544 100644 --- a/packages/emotion/src/index.ts +++ b/packages/emotion/src/index.ts @@ -1,6 +1,6 @@ import { withMagicString } from 'rolldown-string' import type { Plugin } from 'rolldown' -import type { ESTree } from 'rolldown/utils' +import { Visitor, type ESTree } from 'rolldown/utils' import { ScopedVisitor } from 'oxc-unshadowed-visitor' import type { EmotionPluginOptions } from './types.js' import { minifyCSSString } from './css-minify.js' @@ -160,6 +160,7 @@ export default function emotionPlugin(options: EmotionPluginOptions = {}): Plugi let inJsx = false const sv = new ScopedVisitor({ trackedNames, + walk: (program, visitor) => new Visitor(visitor).visit(program), visitor: { VariableDeclarator(node) { let ctx = null diff --git a/packages/oxc-unshadowed-visitor/README.md b/packages/oxc-unshadowed-visitor/README.md index ad5a585..ecd9287 100644 --- a/packages/oxc-unshadowed-visitor/README.md +++ b/packages/oxc-unshadowed-visitor/README.md @@ -1,6 +1,8 @@ # oxc-unshadowed-visitor [![npm](https://img.shields.io/npm/v/oxc-unshadowed-visitor.svg)](https://npmx.dev/package/oxc-unshadowed-visitor) -Scope-aware AST visitor that tracks references to specified names, filtering out those shadowed by local bindings. Performs single-pass analysis using Rolldown's built-in AST visitor. +Scope-aware AST visitor that tracks references to specified names, filtering out those shadowed by local bindings. Performs single-pass analysis using Oxc's AST visitor. + +Works with both `rolldown` and `oxc-parser`. At least one must be installed as a peer dependency. ## Install @@ -8,16 +10,29 @@ Scope-aware AST visitor that tracks references to specified names, filtering out pnpm add -D oxc-unshadowed-visitor ``` +Also install at least one of: + +```bash +pnpm add -D rolldown +# or +pnpm add -D oxc-parser +``` + ## Usage +### With `rolldown` + ```ts -import { parseSync } from 'rolldown/utils' +import { parseSync, Visitor } from 'oxc-parser' // or from 'rolldown/utils' import { ScopedVisitor } from 'oxc-unshadowed-visitor' +import type { WalkFn } from 'oxc-unshadowed-visitor' +const walk: WalkFn = (program, visitor) => new Visitor(visitor).visit(program) const program = parseSync('app.tsx', code).program const sv = new ScopedVisitor({ trackedNames: ['React'], + walk, visitor: { Identifier(node, ctx) { if (node.name === 'React') { @@ -39,16 +54,29 @@ Main class that walks the AST once and maintains a scope stack internally. When #### `new ScopedVisitor(options)` -- **`options.trackedNames`** — `string[]` — Names to track for shadowing. -- **`options.visitor`** — `ScopedVisitorObject` — Visitor object with handlers that receive the AST node and a `VisitorContext`. +- **`options.trackedNames`**: `string[]`. Names to track for shadowing. +- **`options.visitor`**: `ScopedVisitorObject`. Visitor object with handlers that receive the AST node and a `VisitorContext`. +- **`options.walk`**: `WalkFn`. Walk function that traverses the AST. Must call visitor handlers by node type (e.g. `Identifier`, `FunctionDeclaration:exit`). #### `sv.walk(program): TransformRecord[]` -Walks the given `ESTree.Program` and returns an array of records that were not shadowed. +Walks the given program AST and returns an array of records that were not shadowed. + +### `WalkFn` + +```ts +type WalkFn = (program: Program, visitor: SimpleVisitorObject) => void +``` + +A function that walks the AST and calls visitor handlers. Both `oxc-parser` and `rolldown/utils` export a `Visitor` class that can be used to create one: + +```ts +const walk: WalkFn = (program, visitor) => new Visitor(visitor).visit(program) +``` ### `VisitorContext` -- **`record(opts: { name: string; node: object; data: T })`** — Records a reference. The record is automatically filtered out if the name is shadowed at the call site. +- **`record(opts: { name: string; node: object; data: T })`**: Records a reference. The record is automatically filtered out if the name is shadowed at the call site. ### `TransformRecord` diff --git a/packages/oxc-unshadowed-visitor/package.json b/packages/oxc-unshadowed-visitor/package.json index 2b84a4f..38940d0 100644 --- a/packages/oxc-unshadowed-visitor/package.json +++ b/packages/oxc-unshadowed-visitor/package.json @@ -32,11 +32,22 @@ "prepublishOnly": "pnpm run build" }, "devDependencies": { + "@oxc-project/types": "^0.122.0", + "oxc-parser": "^0.121.0", "oxc-walker": "^0.7.0", - "rolldown": "^1.0.0-rc.10" + "rolldown": "^1.0.0-rc.12" }, "peerDependencies": { - "rolldown": "^1.0.0-rc.9" + "oxc-parser": "^0.121.0", + "rolldown": "^1.0.0-rc.12" + }, + "peerDependenciesMeta": { + "oxc-parser": { + "optional": true + }, + "rolldown": { + "optional": true + } }, "engines": { "node": ">=22.12.0 || ^24.0.0" diff --git a/packages/oxc-unshadowed-visitor/src/binding-names.ts b/packages/oxc-unshadowed-visitor/src/bindingNames.ts similarity index 95% rename from packages/oxc-unshadowed-visitor/src/binding-names.ts rename to packages/oxc-unshadowed-visitor/src/bindingNames.ts index b90ff04..c5de5de 100644 --- a/packages/oxc-unshadowed-visitor/src/binding-names.ts +++ b/packages/oxc-unshadowed-visitor/src/bindingNames.ts @@ -1,4 +1,4 @@ -import type { ESTree } from 'rolldown/utils' +import type * as ESTree from '@oxc-project/types' /** * Recursively extracts binding names from a pattern node. diff --git a/packages/oxc-unshadowed-visitor/src/index.test.ts b/packages/oxc-unshadowed-visitor/src/index.test.ts index 5b19610..401bbd6 100644 --- a/packages/oxc-unshadowed-visitor/src/index.test.ts +++ b/packages/oxc-unshadowed-visitor/src/index.test.ts @@ -1,15 +1,19 @@ import { describe, test, expect } from 'vitest' -import { parseSync } from 'rolldown/utils' +import { parseSync, Visitor } from 'rolldown/utils' import { ScopedVisitor } from './index.ts' +import type { WalkFn } from './index.ts' function parse(code: string) { return parseSync('test.js', code).program } +const walk: WalkFn = (program, visitor) => new Visitor(visitor).visit(program) + function collectRecords(code: string, trackedNames = ['React']) { const program = parse(code) const sv = new ScopedVisitor({ trackedNames, + walk, visitor: { Identifier(node, ctx) { if (trackedNames.includes(node.name)) { @@ -34,6 +38,7 @@ describe('ScopedVisitor', () => { const program = parse(code) const sv = new ScopedVisitor({ trackedNames: ['React'], + walk, visitor: { Identifier(node, ctx) { ctx.record({ name: node.name, node, data: 'ref' }) @@ -263,6 +268,7 @@ describe('ScopedVisitor', () => { }).program const sv = new ScopedVisitor({ trackedNames: ['React'], + walk, visitor: { Identifier(node, ctx) { if (node.name === 'React') { @@ -280,6 +286,7 @@ describe('ScopedVisitor', () => { const events: string[] = [] const sv = new ScopedVisitor({ trackedNames: ['React'], + walk, visitor: { FunctionDeclaration(node, _ctx) { events.push('enter:' + node.id!.name) @@ -304,6 +311,7 @@ describe('ScopedVisitor', () => { const exitShadowState: boolean[] = [] const sv = new ScopedVisitor({ trackedNames: ['React'], + walk, visitor: { Identifier(node, ctx) { if (node.name === 'React') { diff --git a/packages/oxc-unshadowed-visitor/src/index.ts b/packages/oxc-unshadowed-visitor/src/index.ts index 6f62f18..399c31b 100644 --- a/packages/oxc-unshadowed-visitor/src/index.ts +++ b/packages/oxc-unshadowed-visitor/src/index.ts @@ -1,7 +1,3 @@ -export { ScopedVisitor } from './scoped-visitor.ts' -export type { - TransformRecord, - ScopedVisitorObject, - ScopedVisitorOptions, -} from './scoped-visitor.ts' -export type { VisitorContext } from './types.ts' +export { ScopedVisitor } from './scopedVisitor.ts' +export type { TransformRecord, ScopedVisitorObject, ScopedVisitorOptions } from './scopedVisitor.ts' +export type { VisitorContext, WalkFn, SimpleVisitorObject } from './types.ts' diff --git a/packages/oxc-unshadowed-visitor/src/merge-visitors.ts b/packages/oxc-unshadowed-visitor/src/mergeVisitors.ts similarity index 90% rename from packages/oxc-unshadowed-visitor/src/merge-visitors.ts rename to packages/oxc-unshadowed-visitor/src/mergeVisitors.ts index ad64ee7..9c408b3 100644 --- a/packages/oxc-unshadowed-visitor/src/merge-visitors.ts +++ b/packages/oxc-unshadowed-visitor/src/mergeVisitors.ts @@ -1,12 +1,10 @@ -import type { ESTree } from 'rolldown/utils' -import type { VisitorContext } from './types' +import type * as ESTree from '@oxc-project/types' +import type { SimpleVisitorObject, VisitorContext } from './types.ts' export type SimpleScopedVisitorObject = { [key: string]: (node: ESTree.Node, ctx: VisitorContext) => void } -export type SimpleVisitorObject = { - [key: string]: (node: ESTree.Node) => void -} +export type { SimpleVisitorObject } /** * Merge user visitors with internal scope-tracking visitors. diff --git a/packages/oxc-unshadowed-visitor/src/oxcCompat.ts b/packages/oxc-unshadowed-visitor/src/oxcCompat.ts new file mode 100644 index 0000000..4aabe14 --- /dev/null +++ b/packages/oxc-unshadowed-visitor/src/oxcCompat.ts @@ -0,0 +1,16 @@ +import type * as rolldownUtils from 'rolldown/utils' +import type * as OxcParser from 'oxc-parser' + +// https://github.com/type-challenges/type-challenges/issues/29285 +type IsAny = boolean extends (T extends never ? true : false) ? true : false + +type RolldownVisitorObject = rolldownUtils.VisitorObject +export type VisitorObject = + IsAny extends false ? rolldownUtils.VisitorObject : OxcParser.VisitorObject + +export type Program = + IsAny extends false + ? rolldownUtils.ESTree.Program + : OxcParser.Program +export type Node = + IsAny extends false ? rolldownUtils.ESTree.Node : OxcParser.Node diff --git a/packages/oxc-unshadowed-visitor/src/scope-tracker.ts b/packages/oxc-unshadowed-visitor/src/scopeTracker.ts similarity index 100% rename from packages/oxc-unshadowed-visitor/src/scope-tracker.ts rename to packages/oxc-unshadowed-visitor/src/scopeTracker.ts diff --git a/packages/oxc-unshadowed-visitor/src/scoped-visitor.ts b/packages/oxc-unshadowed-visitor/src/scopedVisitor.ts similarity index 89% rename from packages/oxc-unshadowed-visitor/src/scoped-visitor.ts rename to packages/oxc-unshadowed-visitor/src/scopedVisitor.ts index 7438879..ffbadb5 100644 --- a/packages/oxc-unshadowed-visitor/src/scoped-visitor.ts +++ b/packages/oxc-unshadowed-visitor/src/scopedVisitor.ts @@ -1,13 +1,9 @@ -import { Visitor } from 'rolldown/utils' -import type { ESTree, VisitorObject } from 'rolldown/utils' -import { ScopeTracker, type Invalidatable } from './scope-tracker.ts' -import { extractBindingNames } from './binding-names.ts' -import type { VisitorContext } from './types.ts' -import { - mergeVisitors, - type SimpleScopedVisitorObject, - type SimpleVisitorObject, -} from './merge-visitors.ts' +import type * as ESTree from '@oxc-project/types' +import type { Program, VisitorObject } from './oxcCompat.ts' +import { ScopeTracker, type Invalidatable } from './scopeTracker.ts' +import { extractBindingNames } from './bindingNames.ts' +import type { VisitorContext, WalkFn, SimpleVisitorObject } from './types.ts' +import { mergeVisitors, type SimpleScopedVisitorObject } from './mergeVisitors.ts' export interface TransformRecord { name: string @@ -33,18 +29,21 @@ export type ScopedVisitorObject = { export interface ScopedVisitorOptions { trackedNames: string[] visitor: ScopedVisitorObject + walk: WalkFn } export class ScopedVisitor { private trackedNames: string[] private userVisitor: ScopedVisitorObject + private walkFn: WalkFn constructor(options: ScopedVisitorOptions) { this.trackedNames = options.trackedNames this.userVisitor = options.visitor + this.walkFn = options.walk } - walk(program: ESTree.Program): TransformRecord[] { + walk(program: Program): TransformRecord[] { const records: InternalRecord[] = [] const trackedNames = this.trackedNames const tracker = new ScopeTracker(trackedNames.length) @@ -163,8 +162,7 @@ export class ScopedVisitor { scopeExit, ) - const visitor = new Visitor(oxcVisitor) - visitor.visit(program) + this.walkFn(program, oxcVisitor) return records .filter((r) => !r.invalidated) diff --git a/packages/oxc-unshadowed-visitor/src/types.ts b/packages/oxc-unshadowed-visitor/src/types.ts index fa873f1..ff13665 100644 --- a/packages/oxc-unshadowed-visitor/src/types.ts +++ b/packages/oxc-unshadowed-visitor/src/types.ts @@ -1,3 +1,11 @@ +import type * as ESTree from './oxcCompat.ts' + export interface VisitorContext { record(opts: { name: string; node: object; data: T }): void } + +export type SimpleVisitorObject = { + [key: string]: (node: ESTree.Node) => void +} + +export type WalkFn = (program: ESTree.Program, visitor: SimpleVisitorObject) => void diff --git a/packages/oxc-unshadowed-visitor/src/walk.bench.ts b/packages/oxc-unshadowed-visitor/src/walk.bench.ts index 4044fc9..f5cad13 100644 --- a/packages/oxc-unshadowed-visitor/src/walk.bench.ts +++ b/packages/oxc-unshadowed-visitor/src/walk.bench.ts @@ -1,5 +1,5 @@ import { bench, describe } from 'vitest' -import { parseSync } from 'rolldown/utils' +import { parseSync, Visitor } from 'rolldown/utils' import { walk, ScopeTracker } from 'oxc-walker' import { ScopedVisitor } from './index.js' @@ -34,6 +34,7 @@ describe('small (10)', () => { bench('single-pass (ScopedVisitor)', () => { const sv = new ScopedVisitor({ trackedNames: ['React'], + walk: (program, visitor) => new Visitor(visitor).visit(program), visitor: { Identifier(node, ctx) { if (node.name === 'React') { @@ -68,6 +69,7 @@ describe('medium (100)', () => { bench('single-pass (ScopedVisitor)', () => { const sv = new ScopedVisitor({ trackedNames: ['React'], + walk: (program, visitor) => new Visitor(visitor).visit(program), visitor: { Identifier(node, ctx) { if (node.name === 'React') { @@ -102,6 +104,7 @@ describe('large (500)', () => { bench('single-pass (ScopedVisitor)', () => { const sv = new ScopedVisitor({ trackedNames: ['React'], + walk: (program, visitor) => new Visitor(visitor).visit(program), visitor: { Identifier(node, ctx) { if (node.name === 'React') { diff --git a/packages/oxc-unshadowed-visitor/tsdown.config.ts b/packages/oxc-unshadowed-visitor/tsdown.config.ts index a3a2720..f5cfc54 100644 --- a/packages/oxc-unshadowed-visitor/tsdown.config.ts +++ b/packages/oxc-unshadowed-visitor/tsdown.config.ts @@ -6,4 +6,7 @@ export default defineConfig({ tsconfig: '../../tsconfig.common.json', tsgo: true, }, + deps: { + onlyBundle: [], + }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 746bcb3..48c76cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,7 +67,7 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(@rolldown/plugin-babel@0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.10)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)))(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)) + version: 6.0.1(@rolldown/plugin-babel@0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.12)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)))(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)) vite: specifier: ^8.0.1 version: 8.0.1(@types/node@24.12.0)(esbuild@0.27.3) @@ -92,7 +92,7 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(@rolldown/plugin-babel@0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.10)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)))(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)) + version: 6.0.1(@rolldown/plugin-babel@0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.12)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)))(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)) vite: specifier: ^8.0.1 version: 8.0.1(@types/node@24.12.0)(esbuild@0.27.3) @@ -305,12 +305,18 @@ importers: packages/oxc-unshadowed-visitor: devDependencies: + '@oxc-project/types': + specifier: ^0.122.0 + version: 0.122.0 + oxc-parser: + specifier: ^0.121.0 + version: 0.121.0 oxc-walker: specifier: ^0.7.0 - version: 0.7.0(oxc-parser@0.119.0) + version: 0.7.0(oxc-parser@0.121.0) rolldown: - specifier: ^1.0.0-rc.10 - version: 1.0.0-rc.10 + specifier: ^1.0.0-rc.12 + version: 1.0.0-rc.12 scripts: devDependencies: @@ -883,129 +889,129 @@ packages: '@oxc-node/core@0.0.35': resolution: {integrity: sha512-PV46QRDI2wCDdaPzppEh4UfzFmmpSt+1dX32ooq8RWb0BuWX24+LKYicAmSrsk1ls8JRSkAqiWrjrYFHIGozGg==} - '@oxc-parser/binding-android-arm-eabi@0.119.0': - resolution: {integrity: sha512-e0ii/Tqwk5pAHZRY+ZyXOdKHNRNmE+dvTGQZ7xQ5XPH2Am59aktD30QvfcfwItGhNTLCj/5TYGH5RHvmvqaILQ==} + '@oxc-parser/binding-android-arm-eabi@0.121.0': + resolution: {integrity: sha512-n07FQcySwOlzap424/PLMtOkbS7xOu8nsJduKL8P3COGHKgKoDYXwoAHCbChfgFpHnviehrLWIPX0lKGtbEk/A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-parser/binding-android-arm64@0.119.0': - resolution: {integrity: sha512-ha0xQpiStuoBv7HGazNKQWa6IRxri2+PpeojdAyBGnHGzfioA1GcStNGEGOyXvF+OxDfWvPuw5QiRYRUMtmgbQ==} + '@oxc-parser/binding-android-arm64@0.121.0': + resolution: {integrity: sha512-/Dd1xIXboYAicw+twT2utxPD7bL8qh7d3ej0qvaYIMj3/EgIrGR+tSnjCUkiCT6g6uTC0neSS4JY8LxhdSU/sA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-parser/binding-darwin-arm64@0.119.0': - resolution: {integrity: sha512-h/AIi5jfQz9WQUJJkkkHeXNYMhPtR72qnYZt0ZpM/LvlH/wpI5QkCPi7MWjjyY+m0JDorIXJyfOfccn8SbNSxQ==} + '@oxc-parser/binding-darwin-arm64@0.121.0': + resolution: {integrity: sha512-A0jNEvv7QMtCO1yk205t3DWU9sWUjQ2KNF0hSVO5W9R9r/R1BIvzG01UQAfmtC0dQm7sCrs5puixurKSfr2bRQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.119.0': - resolution: {integrity: sha512-15RwS/AawrgognvWsonI2eLKI5BqO0FzrpYXnzROysSR0x5RYsCc3UMFBwB1ph0UFFQzJy3ZbHHxfxp8RGr5Xg==} + '@oxc-parser/binding-darwin-x64@0.121.0': + resolution: {integrity: sha512-SsHzipdxTKUs3I9EOAPmnIimEeJOemqRlRDOp9LIj+96wtxZejF51gNibmoGq8KoqbT1ssAI5po/E3J+vEtXGA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-parser/binding-freebsd-x64@0.119.0': - resolution: {integrity: sha512-iKaayTIDqEj0yyNPL+0t/spNAxMv7O32uY4eu/ir8BvFNgavoRmN8uqxRj8sxQDle89N/1Iw0dgRjS3tiWrqlA==} + '@oxc-parser/binding-freebsd-x64@0.121.0': + resolution: {integrity: sha512-v1APOTkCp+RWOIDAHRoaeW/UoaHF15a60E8eUL6kUQXh+i4K7PBwq2Wi7jm8p0ymID5/m/oC1w3W31Z/+r7HQw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-parser/binding-linux-arm-gnueabihf@0.119.0': - resolution: {integrity: sha512-PDoOaOx8YWoxy19WNeMs6kOE0uFSb5EtA64Ye0wSp6sQpe+l8Gd+yjX2L+yNwd5MpDOvOy8KToa2bqCV4pf6iQ==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.121.0': + resolution: {integrity: sha512-PmqPQuqHZyFVWA4ycr0eu4VnTMmq9laOHZd+8R359w6kzuNZPvmmunmNJ8ybkm769A0nCoVp3TJ6dUz7B3FYIQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.119.0': - resolution: {integrity: sha512-AVxZ5Eo5squsUhpjnkCYuH20t5FCGV3HAP9UOKLxJQkmZW3kJvBGbfpH75ABxRrE2kGqmJW5FmS980u8v9Cepw==} + '@oxc-parser/binding-linux-arm-musleabihf@0.121.0': + resolution: {integrity: sha512-vF24htj+MOH+Q7y9A8NuC6pUZu8t/C2Fr/kDOi2OcNf28oogr2xadBPXAbml802E8wRAVfbta6YLDQTearz+jw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.119.0': - resolution: {integrity: sha512-9vfdyT9gczSeSwsEkBHVjigI8SWo3iB9zxEzL+YMBUrN0ftCUkKQr27DaDZK4/cQ80t6KRB+g9sUmT2T2AGnOQ==} + '@oxc-parser/binding-linux-arm64-gnu@0.121.0': + resolution: {integrity: sha512-wjH8cIG2Lu/3d64iZpbYr73hREMgKAfu7fqpXjgM2S16y2zhTfDIp8EQjxO8vlDtKP5Rc7waZW72lh8nZtWrpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-arm64-musl@0.119.0': - resolution: {integrity: sha512-7BOq/tjSrtnp/ihw615uGcxMY3iya2qvVtwm15h2NvBZ6Jje+PC1GSUBOLfqGKJbUr9riSVV//a4iNhHI48Qdw==} + '@oxc-parser/binding-linux-arm64-musl@0.121.0': + resolution: {integrity: sha512-qT663J/W8yQFw3dtscbEi9LKJevr20V7uWs2MPGTnvNZ3rm8anhhE16gXGpxDOHeg9raySaSHKhd4IGa3YZvuw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-ppc64-gnu@0.119.0': - resolution: {integrity: sha512-PQIrLJwoAaNyNSWBF+2SSgv44Jp+xpKVUA+8+PuoMhyBQ6lFSbQdaxewdn11i3heTFMYd2xF339HWax4S6MPVA==} + '@oxc-parser/binding-linux-ppc64-gnu@0.121.0': + resolution: {integrity: sha512-mYNe4NhVvDBbPkAP8JaVS8lC1dsoJZWH5WCjpw5E+sjhk1R08wt3NnXYUzum7tIiWPfgQxbCMcoxgeemFASbRw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-gnu@0.119.0': - resolution: {integrity: sha512-spNh4YhT9K+Ya5hr6NmI1MazKSKORD8u5/06hFbzTslLnmmxiGaLqJXhNKIYUH39ne/JD5rkoRkUcOB2/LpC3A==} + '@oxc-parser/binding-linux-riscv64-gnu@0.121.0': + resolution: {integrity: sha512-+QiFoGxhAbaI/amqX567784cDyyuZIpinBrJNxUzb+/L2aBRX67mN6Jv40pqduHf15yYByI+K5gUEygCuv0z9w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-musl@0.119.0': - resolution: {integrity: sha512-hFoCTRxSJAcrNBYVlgNDDQq6LyJLYyhnJDlPtK/mWrPYS3x5/fUR9jc6wo5VyxKIL/0dDJBBWp19v81q9heU/A==} + '@oxc-parser/binding-linux-riscv64-musl@0.121.0': + resolution: {integrity: sha512-9ykEgyTa5JD/Uhv2sttbKnCfl2PieUfOjyxJC/oDL2UO0qtXOtjPLl7H8Kaj5G7p3hIvFgu3YWvAxvE0sqY+hQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-s390x-gnu@0.119.0': - resolution: {integrity: sha512-bl7jHJZq3W5tYEvKG3yWZTUKTNb0/BtyYSnfMIrQ7t8hajCH4i1g0q+14s0KmQQl1UHxIX/Gx/Ps6e92qJQJmQ==} + '@oxc-parser/binding-linux-s390x-gnu@0.121.0': + resolution: {integrity: sha512-DB1EW5VHZdc1lIRjOI3bW/wV6R6y0xlfvdVrqj6kKi7Ayu2U3UqUBdq9KviVkcUGd5Oq+dROqvUEEFRXGAM7EQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-gnu@0.119.0': - resolution: {integrity: sha512-m+DE7NhJIEGp4efSJnNfRf3swT25rbZ1FTIihV+pOLTI+k5yNguxvqT338mNu61OVSx0BfpV8QlO2nz43GR/Zg==} + '@oxc-parser/binding-linux-x64-gnu@0.121.0': + resolution: {integrity: sha512-s4lfobX9p4kPTclvMiH3gcQUd88VlnkMTF6n2MTMDAyX5FPNRhhRSFZK05Ykhf8Zy5NibV4PbGR6DnK7FGNN6A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-musl@0.119.0': - resolution: {integrity: sha512-pHhnXZHUfd5pYzFLQfvx1DH2HY+L8DPZeh6SsQrsmoaODm1+j8VPeWLwGSrXQSz5f1kfT/mnzm1iNLVOGIeuaw==} + '@oxc-parser/binding-linux-x64-musl@0.121.0': + resolution: {integrity: sha512-P9KlyTpuBuMi3NRGpJO8MicuGZfOoqZVRP1WjOecwx8yk4L/+mrCRNc5egSi0byhuReblBF2oVoDSMgV9Bj4Hw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxc-parser/binding-openharmony-arm64@0.119.0': - resolution: {integrity: sha512-8Fthv9nOec0hQLX16yjYyYIU+u8ZFuQojdQ3vNgXN+PcqI/bDohGgCATrxO69gLf0IzkyOmKmurXOQCYK8BYpQ==} + '@oxc-parser/binding-openharmony-arm64@0.121.0': + resolution: {integrity: sha512-R+4jrWOfF2OAPPhj3Eb3U5CaKNAH9/btMveMULIrcNW/hjfysFQlF8wE0GaVBr81dWz8JLgQlsxwctoL78JwXw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-parser/binding-wasm32-wasi@0.119.0': - resolution: {integrity: sha512-KpOU6fLqevFDP6ndkgE4BPoceELM4bOsEsAXjpe+FKYuUyEzHssYPBmxouGpXDQeAeWTBIjosw5yElLMRPuccw==} + '@oxc-parser/binding-wasm32-wasi@0.121.0': + resolution: {integrity: sha512-5TFISkPTymKvsmIlKasPVTPuWxzCcrT8pM+p77+mtQbIZDd1UC8zww4CJcRI46kolmgrEX6QpKO8AvWMVZ+ifw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-parser/binding-win32-arm64-msvc@0.119.0': - resolution: {integrity: sha512-omtTgAKIl6GQ40nG+wAWN8xMJLNtfmTdd0+wMIcrw1shX9y5TntAVIuiay3Du0wvUK9sgMpL07HYNphgHeZS0A==} + '@oxc-parser/binding-win32-arm64-msvc@0.121.0': + resolution: {integrity: sha512-V0pxh4mql4XTt3aiEtRNUeBAUFOw5jzZNxPABLaOKAWrVzSr9+XUaB095lY7jqMf5t8vkfh8NManGB28zanYKw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.119.0': - resolution: {integrity: sha512-+0kqoCfv4WFP3e4BqcVEtf1moUuG9Zv5lo1aKcw1JakqJo008TGG+C2LnVM4QucGSZVQ/Ii/H5XCvrRbkeLQfA==} + '@oxc-parser/binding-win32-ia32-msvc@0.121.0': + resolution: {integrity: sha512-4Ob1qvYMPnlF2N9rdmKdkQFdrq16QVcQwBsO8yiPZXof0fHKFF+LmQV501XFbi7lHyrKm8rlJRfQ/M8bZZPVLw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.119.0': - resolution: {integrity: sha512-5kaKmBHD+OQjZzGAQQ9n8jWNvCRxu3MjElAjkCqsS3i2wiN3hqHlOPKwGDydYiB1gKdeYGlTjRYtuF4gBLDSxQ==} + '@oxc-parser/binding-win32-x64-msvc@0.121.0': + resolution: {integrity: sha512-BOp1KCzdboB1tPqoCPXgntgFs0jjeSyOXHzgxVFR7B/qfr3F8r4YDacHkTOUNXtDgM8YwKnkf3rE5gwALYX7NA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1013,12 +1019,15 @@ packages: '@oxc-project/types@0.115.0': resolution: {integrity: sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==} - '@oxc-project/types@0.119.0': - resolution: {integrity: sha512-9SCGhodOxEicD2kblitu34fGHcpmqgI3beYw/E22ehVLHzccHRFH91NmKt0MhZEaAwLpei6OOA9aB6Vuks9qAg==} - '@oxc-project/types@0.120.0': resolution: {integrity: sha512-k1YNu55DuvAip/MGE1FTsIuU3FUCn6v/ujG9V7Nq5Df/kX2CWb13hhwD0lmJGMGqE+bE1MXvv9SZVnMzEXlWcg==} + '@oxc-project/types@0.121.0': + resolution: {integrity: sha512-CGtOARQb9tyv7ECgdAlFxi0Fv7lmzvmlm2rpD/RdijOO9rfk/JvB1CjT8EnoD+tjna/IYgKKw3IV7objRb+aYw==} + + '@oxc-project/types@0.122.0': + resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} + '@oxfmt/binding-android-arm-eabi@0.41.0': resolution: {integrity: sha512-REfrqeMKGkfMP+m/ScX4f5jJBSmVNYcpoDF8vP8f8eYPDuPGZmzp56NIUsYmx3h7f6NzC6cE3gqh8GDWrJHCKw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1306,6 +1315,12 @@ packages: cpu: [arm64] os: [android] + '@rolldown/binding-android-arm64@1.0.0-rc.12': + resolution: {integrity: sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-android-arm64@1.0.0-rc.9': resolution: {integrity: sha512-lcJL0bN5hpgJfSIz/8PIf02irmyL43P+j1pTCfbD1DbLkmGRuFIA4DD3B3ZOvGqG0XiVvRznbKtN0COQVaKUTg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1318,6 +1333,12 @@ packages: cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': + resolution: {integrity: sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.0-rc.9': resolution: {integrity: sha512-J7Zk3kLYFsLtuH6U+F4pS2sYVzac0qkjcO5QxHS7OS7yZu2LRs+IXo+uvJ/mvpyUljDJ3LROZPoQfgBIpCMhdQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1330,6 +1351,12 @@ packages: cpu: [x64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.12': + resolution: {integrity: sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.9': resolution: {integrity: sha512-iwtmmghy8nhfRGeNAIltcNXzD0QMNaaA5U/NyZc1Ia4bxrzFByNMDoppoC+hl7cDiUq5/1CnFthpT9n+UtfFyg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1342,6 +1369,12 @@ packages: cpu: [x64] os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': + resolution: {integrity: sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.0-rc.9': resolution: {integrity: sha512-DLFYI78SCiZr5VvdEplsVC2Vx53lnA4/Ga5C65iyldMVaErr86aiqCoNBLl92PXPfDtUYjUh+xFFor40ueNs4Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1354,6 +1387,12 @@ packages: cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': + resolution: {integrity: sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.9': resolution: {integrity: sha512-CsjTmTwd0Hri6iTw/DRMK7kOZ7FwAkrO4h8YWKoX/kcj833e4coqo2wzIFywtch/8Eb5enQ/lwLM7w6JX1W5RQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1367,6 +1406,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': + resolution: {integrity: sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.9': resolution: {integrity: sha512-2x9O2JbSPxpxMDhP9Z74mahAStibTlrBMW0520+epJH5sac7/LwZW5Bmg/E6CXuEF53JJFW509uP+lSedaUNxg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1381,6 +1427,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': + resolution: {integrity: sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.9': resolution: {integrity: sha512-JA1QRW31ogheAIRhIg9tjMfsYbglXXYGNPLdPEYrwFxdbkQCAzvpSCSHCDWNl4hTtrol8WeboCSEpjdZK8qrCg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1395,6 +1448,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': + resolution: {integrity: sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.9': resolution: {integrity: sha512-aOKU9dJheda8Kj8Y3w9gnt9QFOO+qKPAl8SWd7JPHP+Cu0EuDAE5wokQubLzIDQWg2myXq2XhTpOVS07qqvT+w==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1409,6 +1469,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': + resolution: {integrity: sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.9': resolution: {integrity: sha512-OalO94fqj7IWRn3VdXWty75jC5dk4C197AWEuMhIpvVv2lw9fiPhud0+bW2ctCxb3YoBZor71QHbY+9/WToadA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1423,6 +1490,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': + resolution: {integrity: sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.9': resolution: {integrity: sha512-cVEl1vZtBsBZna3YMjGXNvnYYrOJ7RzuWvZU0ffvJUexWkukMaDuGhUXn0rjnV0ptzGVkvc+vW9Yqy6h8YX4pg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1437,6 +1511,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': + resolution: {integrity: sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.9': resolution: {integrity: sha512-UzYnKCIIc4heAKgI4PZ3dfBGUZefGCJ1TPDuLHoCzgrMYPb5Rv6TLFuYtyM4rWyHM7hymNdsg5ik2C+UD9VDbA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1450,6 +1531,12 @@ packages: cpu: [arm64] os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': + resolution: {integrity: sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.9': resolution: {integrity: sha512-+6zoiF+RRyf5cdlFQP7nm58mq7+/2PFaY2DNQeD4B87N36JzfF/l9mdBkkmTvSYcYPE8tMh/o3cRlsx1ldLfog==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1461,6 +1548,11 @@ packages: engines: {node: '>=14.0.0'} cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': + resolution: {integrity: sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.9': resolution: {integrity: sha512-rgFN6sA/dyebil3YTlL2evvi/M+ivhfnyxec7AccTpRPccno/rPoNlqybEZQBkcbZu8Hy+eqNJCqfBR8P7Pg8g==} engines: {node: '>=14.0.0'} @@ -1472,6 +1564,12 @@ packages: cpu: [arm64] os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': + resolution: {integrity: sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.9': resolution: {integrity: sha512-lHVNUG/8nlF1IQk1C0Ci574qKYyty2goMiPlRqkC5R+3LkXDkL5Dhx8ytbxq35m+pkHVIvIxviD+TWLdfeuadA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1484,6 +1582,12 @@ packages: cpu: [x64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': + resolution: {integrity: sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.9': resolution: {integrity: sha512-G0oA4+w1iY5AGi5HcDTxWsoxF509hrFIPB2rduV5aDqS9FtDg1CAfa7V34qImbjfhIcA8C+RekocJZA96EarwQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1527,6 +1631,9 @@ packages: '@rolldown/pluginutils@1.0.0-rc.10': resolution: {integrity: sha512-UkVDEFk1w3mveXeKgaTuYfKWtPbvgck1dT8TUG3bnccrH0XtLTuAyfCoks4Q/M5ZGToSVJTIQYCzy2g/atAOeg==} + '@rolldown/pluginutils@1.0.0-rc.12': + resolution: {integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==} + '@rolldown/pluginutils@1.0.0-rc.7': resolution: {integrity: sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==} @@ -2252,8 +2359,8 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - oxc-parser@0.119.0: - resolution: {integrity: sha512-fNiKvO0ZHSUmINQlVY2It+vGbHxCvhpqJi0rZYFFOESoOy3fs5E4erKYGZtB/J1aULkjtY06aWNil4JxMsKXGg==} + oxc-parser@0.121.0: + resolution: {integrity: sha512-ek9o58+SCv6AV7nchiAcUJy1DNE2CC5WRdBcO0mF+W4oRjNQfPO7b3pLjTHSFECpHkKGOZSQxx3hk8viIL5YCg==} engines: {node: ^20.19.0 || >=22.12.0} oxc-walker@0.7.0: @@ -2418,6 +2525,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rolldown@1.0.0-rc.12: + resolution: {integrity: sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rolldown@1.0.0-rc.9: resolution: {integrity: sha512-9EbgWge7ZH+yqb4d2EnELAntgPTWbfL8ajiTW+SyhJEC4qhBbkCKbqFV4Ge4zmu5ziQuVbWxb/XwLZ+RIO7E8Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3289,74 +3401,76 @@ snapshots: '@oxc-node/core-win32-ia32-msvc': 0.0.35 '@oxc-node/core-win32-x64-msvc': 0.0.35 - '@oxc-parser/binding-android-arm-eabi@0.119.0': + '@oxc-parser/binding-android-arm-eabi@0.121.0': optional: true - '@oxc-parser/binding-android-arm64@0.119.0': + '@oxc-parser/binding-android-arm64@0.121.0': optional: true - '@oxc-parser/binding-darwin-arm64@0.119.0': + '@oxc-parser/binding-darwin-arm64@0.121.0': optional: true - '@oxc-parser/binding-darwin-x64@0.119.0': + '@oxc-parser/binding-darwin-x64@0.121.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.119.0': + '@oxc-parser/binding-freebsd-x64@0.121.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.119.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.121.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.119.0': + '@oxc-parser/binding-linux-arm-musleabihf@0.121.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.119.0': + '@oxc-parser/binding-linux-arm64-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.119.0': + '@oxc-parser/binding-linux-arm64-musl@0.121.0': optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.119.0': + '@oxc-parser/binding-linux-ppc64-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.119.0': + '@oxc-parser/binding-linux-riscv64-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-riscv64-musl@0.119.0': + '@oxc-parser/binding-linux-riscv64-musl@0.121.0': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.119.0': + '@oxc-parser/binding-linux-s390x-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.119.0': + '@oxc-parser/binding-linux-x64-gnu@0.121.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.119.0': + '@oxc-parser/binding-linux-x64-musl@0.121.0': optional: true - '@oxc-parser/binding-openharmony-arm64@0.119.0': + '@oxc-parser/binding-openharmony-arm64@0.121.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.119.0': + '@oxc-parser/binding-wasm32-wasi@0.121.0': dependencies: '@napi-rs/wasm-runtime': 1.1.1 optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.119.0': + '@oxc-parser/binding-win32-arm64-msvc@0.121.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.119.0': + '@oxc-parser/binding-win32-ia32-msvc@0.121.0': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.119.0': + '@oxc-parser/binding-win32-x64-msvc@0.121.0': optional: true '@oxc-project/types@0.115.0': {} - '@oxc-project/types@0.119.0': {} - '@oxc-project/types@0.120.0': {} + '@oxc-project/types@0.121.0': {} + + '@oxc-project/types@0.122.0': {} + '@oxfmt/binding-android-arm-eabi@0.41.0': optional: true @@ -3498,72 +3612,108 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-rc.10': optional: true + '@rolldown/binding-android-arm64@1.0.0-rc.12': + optional: true + '@rolldown/binding-android-arm64@1.0.0-rc.9': optional: true '@rolldown/binding-darwin-arm64@1.0.0-rc.10': optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.9': optional: true '@rolldown/binding-darwin-x64@1.0.0-rc.10': optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.12': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.9': optional: true '@rolldown/binding-freebsd-x64@1.0.0-rc.10': optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.9': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.10': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.9': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.10': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.9': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-rc.10': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.9': optional: true '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.10': optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': + optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.9': optional: true '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.10': optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': + optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.9': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-rc.10': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.9': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-rc.10': optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.9': optional: true '@rolldown/binding-openharmony-arm64@1.0.0-rc.10': optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.9': optional: true @@ -3572,6 +3722,11 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.1 optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 + optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.9': dependencies: '@napi-rs/wasm-runtime': 1.1.1 @@ -3580,20 +3735,26 @@ snapshots: '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.10': optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': + optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.9': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0-rc.10': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': + optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.9': optional: true - '@rolldown/plugin-babel@0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.10)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3))': + '@rolldown/plugin-babel@0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.12)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3))': dependencies: '@babel/core': 8.0.0-rc.3 picomatch: 4.0.3 - rolldown: 1.0.0-rc.10 + rolldown: 1.0.0-rc.12 optionalDependencies: '@babel/plugin-transform-runtime': 8.0.0-rc.3(@babel/core@8.0.0-rc.3) '@babel/runtime': 8.0.0-rc.3 @@ -3612,6 +3773,8 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.10': {} + '@rolldown/pluginutils@1.0.0-rc.12': {} + '@rolldown/pluginutils@1.0.0-rc.7': {} '@rolldown/pluginutils@1.0.0-rc.9': {} @@ -3782,12 +3945,12 @@ snapshots: '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260322.1 '@typescript/native-preview-win32-x64': 7.0.0-dev.20260322.1 - '@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.10)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)))(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3))': + '@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.12)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)))(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 vite: 8.0.1(@types/node@24.12.0)(esbuild@0.27.3) optionalDependencies: - '@rolldown/plugin-babel': 0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.10)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)) + '@rolldown/plugin-babel': 0.2.2(@babel/core@8.0.0-rc.3)(@babel/plugin-transform-runtime@8.0.0-rc.3(@babel/core@8.0.0-rc.3))(@babel/runtime@8.0.0-rc.3)(rolldown@1.0.0-rc.12)(vite@8.0.1(@types/node@24.12.0)(esbuild@0.27.3)) '@vitejs/release-scripts@1.6.0(patch_hash=934d3ff41c551b1d73703bec99c2edbc3a91ec064c86cb21dad311a998354ced)(conventional-commits-filter@5.0.0)': dependencies: @@ -4254,35 +4417,35 @@ snapshots: dependencies: mimic-fn: 4.0.0 - oxc-parser@0.119.0: + oxc-parser@0.121.0: dependencies: - '@oxc-project/types': 0.119.0 + '@oxc-project/types': 0.121.0 optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.119.0 - '@oxc-parser/binding-android-arm64': 0.119.0 - '@oxc-parser/binding-darwin-arm64': 0.119.0 - '@oxc-parser/binding-darwin-x64': 0.119.0 - '@oxc-parser/binding-freebsd-x64': 0.119.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.119.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.119.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.119.0 - '@oxc-parser/binding-linux-arm64-musl': 0.119.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.119.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.119.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.119.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.119.0 - '@oxc-parser/binding-linux-x64-gnu': 0.119.0 - '@oxc-parser/binding-linux-x64-musl': 0.119.0 - '@oxc-parser/binding-openharmony-arm64': 0.119.0 - '@oxc-parser/binding-wasm32-wasi': 0.119.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.119.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.119.0 - '@oxc-parser/binding-win32-x64-msvc': 0.119.0 - - oxc-walker@0.7.0(oxc-parser@0.119.0): + '@oxc-parser/binding-android-arm-eabi': 0.121.0 + '@oxc-parser/binding-android-arm64': 0.121.0 + '@oxc-parser/binding-darwin-arm64': 0.121.0 + '@oxc-parser/binding-darwin-x64': 0.121.0 + '@oxc-parser/binding-freebsd-x64': 0.121.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.121.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.121.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.121.0 + '@oxc-parser/binding-linux-arm64-musl': 0.121.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.121.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.121.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.121.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.121.0 + '@oxc-parser/binding-linux-x64-gnu': 0.121.0 + '@oxc-parser/binding-linux-x64-musl': 0.121.0 + '@oxc-parser/binding-openharmony-arm64': 0.121.0 + '@oxc-parser/binding-wasm32-wasi': 0.121.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.121.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.121.0 + '@oxc-parser/binding-win32-x64-msvc': 0.121.0 + + oxc-walker@0.7.0(oxc-parser@0.121.0): dependencies: magic-regexp: 0.10.0 - oxc-parser: 0.119.0 + oxc-parser: 0.121.0 oxfmt@0.41.0: dependencies: @@ -4472,6 +4635,27 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.10 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.10 + rolldown@1.0.0-rc.12: + dependencies: + '@oxc-project/types': 0.122.0 + '@rolldown/pluginutils': 1.0.0-rc.12 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.12 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.12 + '@rolldown/binding-darwin-x64': 1.0.0-rc.12 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.12 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.12 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.12 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.12 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.12 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.12 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.12 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.12 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.12 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.12 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.12 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.12 + rolldown@1.0.0-rc.9: dependencies: '@oxc-project/types': 0.115.0