From 560466940e1d15cc9848b294721c5cacfcc76923 Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Sun, 29 Dec 2024 09:47:05 +0100 Subject: [PATCH 01/14] use `acorn` and `estree` --- packages/ast-tooling/index.ts | 2 +- packages/ast-tooling/package.json | 7 +- packages/ast-tooling/ts-estree.ts | 79 +++ packages/core/tooling/js/array.ts | 10 +- packages/core/tooling/js/common.ts | 45 +- packages/core/tooling/js/exports.ts | 7 +- packages/core/tooling/js/function.ts | 15 +- packages/core/tooling/js/imports.ts | 12 +- packages/core/tooling/js/index.ts | 2 +- packages/core/tooling/js/kit.ts | 30 +- packages/core/tooling/js/object.ts | 27 +- packages/core/tooling/js/variables.ts | 6 +- pnpm-lock.yaml | 865 +++++++++----------------- 13 files changed, 450 insertions(+), 657 deletions(-) create mode 100644 packages/ast-tooling/ts-estree.ts diff --git a/packages/ast-tooling/index.ts b/packages/ast-tooling/index.ts index c1e353be..9e151b0b 100644 --- a/packages/ast-tooling/index.ts +++ b/packages/ast-tooling/index.ts @@ -117,7 +117,7 @@ export function stripAst(node: T, propToRemove: string): T { } export type SvelteAst = { - jsAst: AstTypes.Program; + jsAst: TsEstree.Program; htmlAst: Document; cssAst: CssAst; }; diff --git a/packages/ast-tooling/package.json b/packages/ast-tooling/package.json index 6e32db22..95a9d47a 100644 --- a/packages/ast-tooling/package.json +++ b/packages/ast-tooling/package.json @@ -24,14 +24,15 @@ } }, "devDependencies": { - "@babel/parser": "^7.26.3", - "ast-types": "^0.16.1", + "@types/estree": "^1.0.6", + "acorn": "^8.14.0", + "acorn-typescript": "^1.4.13", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", + "esrap": "^1.3.2", "htmlparser2": "^9.1.0", "postcss": "^8.4.49", - "recast": "^0.23.9", "silver-fleece": "^1.2.1", "zimmerframe": "^1.1.2" } diff --git a/packages/ast-tooling/ts-estree.ts b/packages/ast-tooling/ts-estree.ts new file mode 100644 index 00000000..919cc91e --- /dev/null +++ b/packages/ast-tooling/ts-estree.ts @@ -0,0 +1,79 @@ +import type * as estree from 'estree'; + +declare module 'estree' { + // new types + interface TSTypeAnnotation { + type: 'TSTypeAnnotation'; + typeAnnotation: TSStringKeyword | TSTypeReference | TSUnionType; + } + interface TSStringKeyword { + type: 'TSStringKeyword'; + } + interface TSNullKeyword { + type: 'TSNullKeyword'; + } + interface TSTypeReference { + type: 'TSTypeReference'; + typeName: Identifier; + } + interface TSAsExpression extends BaseNode { + type: 'TSAsExpression'; + expression: Expression; + typeAnnotation: TSTypeAnnotation['typeAnnotation']; + } + interface TSModuleDeclaration extends BaseNode { + type: 'TSModuleDeclaration'; + global: boolean; + declare: boolean; + id: Identifier; + body: TSModuleBlock; + } + interface TSModuleBlock extends BaseNode { + type: 'TSModuleBlock'; + body: Array; + } + interface TSInterfaceDeclaration extends BaseNode { + type: 'TSInterfaceDeclaration'; + id: Identifier; + body: TSInterfaceBody; + } + interface TSInterfaceBody extends BaseNode { + type: 'TSInterfaceBody'; + body: TSPropertySignature[]; + } + interface TSPropertySignature extends BaseNode { + type: 'TSPropertySignature'; + computed: boolean; + key: Identifier; + typeAnnotation: TSTypeAnnotation; + } + interface TSProgram extends Omit { + body: Array; + } + interface TSUnionType { + type: 'TSUnionType'; + types: Array; + } + interface TSImportType { + type: 'TSImportType'; + argument: Literal; + qualifier: Identifier; + } + + // enhanced types + interface Identifier { + typeAnnotation?: TSTypeAnnotation; + } + interface ExpressionMap { + TSAsExpression: TSAsExpression; + } + interface NodeMap { + TSModuleDeclaration: TSModuleDeclaration; + TSInterfaceDeclaration: TSInterfaceDeclaration; + } + interface ImportDeclaration { + importKind: 'type' | 'value'; + } +} + +export type { estree as TsEstree }; diff --git a/packages/core/tooling/js/array.ts b/packages/core/tooling/js/array.ts index 7b43cd91..eb947020 100644 --- a/packages/core/tooling/js/array.ts +++ b/packages/core/tooling/js/array.ts @@ -1,5 +1,5 @@ import { areNodesEqual } from './common.ts'; -import type { AstKinds, AstTypes } from '@sveltejs/ast-tooling'; +import type { AstTypes } from '@sveltejs/ast-tooling'; export function createEmpty(): AstTypes.ArrayExpression { const arrayExpression: AstTypes.ArrayExpression = { @@ -11,24 +11,24 @@ export function createEmpty(): AstTypes.ArrayExpression { export function push( ast: AstTypes.ArrayExpression, - data: string | AstKinds.ExpressionKind | AstKinds.SpreadElementKind + data: string | AstTypes.Expression | AstTypes.SpreadElement ): void { if (typeof data === 'string') { const existingLiterals = ast.elements.filter( - (x): x is AstTypes.StringLiteral => x?.type == 'StringLiteral' + (x): x is AstTypes.Literal => x?.type == 'Literal' ); let literal = existingLiterals.find((x) => x.value == data); if (!literal) { literal = { - type: 'StringLiteral', + type: 'Literal', value: data }; ast.elements.push(literal); } } else { let anyNodeEquals = false; - const elements = ast.elements as AstTypes.ASTNode[]; + const elements = ast.elements as AstTypes.Node[]; for (const node of elements) { if (areNodesEqual(data, node)) { anyNodeEquals = true; diff --git a/packages/core/tooling/js/common.ts b/packages/core/tooling/js/common.ts index 218cfb17..ebfcf180 100644 --- a/packages/core/tooling/js/common.ts +++ b/packages/core/tooling/js/common.ts @@ -1,5 +1,4 @@ import { - type AstKinds, type AstTypes, Walker, parseScript, @@ -11,9 +10,8 @@ import dedent from 'dedent'; export function addJsDocTypeComment(node: AstTypes.Node, type: string): void { const comment: AstTypes.CommentBlock = { - type: 'CommentBlock', - value: `* @type {${type}} `, - leading: true + type: 'Line', + value: `* @type {${type}} ` }; addComment(node, comment); @@ -35,14 +33,16 @@ export function addJsDocComment(node: AstTypes.Node, params: Record n.type === 'CommentBlock' && n.value === comment.value); - if (!found) node.comments.push(comment); + const found = node.leadingComments.find( + (n) => n.type === 'CommentBlock' && n.value === comment.value + ); + if (!found) node.leadingComments.push(comment); } export function typeAnnotateExpression( - node: AstKinds.ExpressionKind, + node: AstTypes.Expression, type: string ): AstTypes.TSAsExpression { const expression: AstTypes.TSAsExpression = { @@ -67,7 +67,7 @@ export function satisfiesExpression( return expression; } -export function createSpreadElement(expression: AstKinds.ExpressionKind): AstTypes.SpreadElement { +export function createSpreadElement(expression: AstTypes.Expression): AstTypes.SpreadElement { return { type: 'SpreadElement', argument: expression @@ -83,13 +83,15 @@ export function createLiteral(value: string | number | boolean | null = null): A return literal; } -export function areNodesEqual(ast1: AstTypes.ASTNode, ast2: AstTypes.ASTNode): boolean { +export function areNodesEqual(ast1: AstTypes.Node, ast2: AstTypes.Node): boolean { // We're deep cloning these trees so that we can strip the locations off of them for comparisons. // Without this, we'd be getting false negatives due to slight differences in formatting style. // These ASTs are also filled to the brim with circular references, which prevents // us from using `structuredCloned` directly - const ast1Clone = stripAst(decircular(ast1), 'loc'); - const ast2Clone = stripAst(decircular(ast2), 'loc'); + + // todo: can we simplify this duplicated call? + const ast1Clone = stripAst(stripAst(decircular(ast1), 'loc'), 'raw'); + const ast2Clone = stripAst(stripAst(decircular(ast2), 'loc'), 'raw'); return serializeScript(ast1Clone) === serializeScript(ast2Clone); } @@ -101,9 +103,7 @@ export function blockStatement(): AstTypes.BlockStatement { return statement; } -export function expressionStatement( - expression: AstKinds.ExpressionKind -): AstTypes.ExpressionStatement { +export function expressionStatement(expression: AstTypes.Expression): AstTypes.ExpressionStatement { const statement: AstTypes.ExpressionStatement = { type: 'ExpressionStatement', expression @@ -118,11 +118,12 @@ export function addFromString( const program = parseScript(dedent(value)); for (const childNode of program.body) { + // @ts-expect-error ast.body.push(childNode); } } -export function expressionFromString(value: string): AstKinds.ExpressionKind { +export function expressionFromString(value: string): AstTypes.Expression { const program = parseScript(dedent(value)); const statement = program.body[0]!; if (statement.type !== 'ExpressionStatement') { @@ -132,23 +133,27 @@ export function expressionFromString(value: string): AstKinds.ExpressionKind { return statement.expression; } -export function statementFromString(value: string): AstKinds.StatementKind { +export function statementFromString(value: string): AstTypes.Statement { + return fromString(value); +} + +export function fromString(value: string): T { const program = parseScript(dedent(value)); const statement = program.body[0]!; - return statement; + return statement as T; } /** Appends the statement to body of the block if it doesn't already exist */ export function addStatement( ast: AstTypes.BlockStatement | AstTypes.Program, - statement: AstKinds.StatementKind + statement: AstTypes.Statement ): void { if (!hasNode(ast, statement)) ast.body.push(statement); } /** Returns `true` if the provided node exists in the AST */ -export function hasNode(ast: AstTypes.ASTNode, nodeToMatch: AstTypes.ASTNode): boolean { +export function hasNode(ast: AstTypes.Node, nodeToMatch: AstTypes.Node): boolean { let found = false; // prettier-ignore // this gets needlessly butchered by prettier diff --git a/packages/core/tooling/js/exports.ts b/packages/core/tooling/js/exports.ts index 92543660..2839a0fc 100644 --- a/packages/core/tooling/js/exports.ts +++ b/packages/core/tooling/js/exports.ts @@ -1,11 +1,11 @@ -import type { AstKinds, AstTypes } from '@sveltejs/ast-tooling'; +import type { AstTypes } from '@sveltejs/ast-tooling'; export type ExportDefaultReturn = { astNode: AstTypes.ExportDefaultDeclaration; value: T; }; -export function defaultExport( +export function defaultExport( ast: AstTypes.Program, fallbackDeclaration: T ): ExportDefaultReturn { @@ -72,7 +72,8 @@ export function namedExport( namedExport = { type: 'ExportNamedDeclaration', - declaration: fallback + declaration: fallback, + specifiers: [] }; ast.body.push(namedExport); return namedExport; diff --git a/packages/core/tooling/js/function.ts b/packages/core/tooling/js/function.ts index 84445a7c..56040113 100644 --- a/packages/core/tooling/js/function.ts +++ b/packages/core/tooling/js/function.ts @@ -1,4 +1,4 @@ -import type { AstKinds, AstTypes } from '@sveltejs/ast-tooling'; +import type { AstTypes } from '@sveltejs/ast-tooling'; export function call(name: string, args: string[]): AstTypes.CallExpression { const callExpression: AstTypes.CallExpression = { @@ -7,7 +7,8 @@ export function call(name: string, args: string[]): AstTypes.CallExpression { type: 'Identifier', name }, - arguments: [] + arguments: [], + optional: false }; for (const argument of args) { @@ -27,7 +28,8 @@ export function callByIdentifier(name: string, args: string[]): AstTypes.CallExp type: 'Identifier', name }, - arguments: [] + arguments: [], + optional: false }; for (const argument of args) { @@ -43,19 +45,20 @@ export function callByIdentifier(name: string, args: string[]): AstTypes.CallExp export function arrowFunction( async: boolean, - body: AstKinds.ExpressionKind | AstTypes.BlockStatement + body: AstTypes.Expression | AstTypes.BlockStatement ): AstTypes.ArrowFunctionExpression { const arrowFunction: AstTypes.ArrowFunctionExpression = { type: 'ArrowFunctionExpression', async, body, - params: [] + params: [], + expression: true }; return arrowFunction; } -export function argumentByIndex( +export function argumentByIndex( ast: AstTypes.CallExpression, i: number, fallback: T diff --git a/packages/core/tooling/js/imports.ts b/packages/core/tooling/js/imports.ts index a0dd0fcf..0f2f36c3 100644 --- a/packages/core/tooling/js/imports.ts +++ b/packages/core/tooling/js/imports.ts @@ -8,7 +8,8 @@ export function addEmpty(ast: AstTypes.Program, importFrom: string): void { type: 'Literal', value: importFrom }, - specifiers: [] + specifiers: [], + importKind: 'value' }; addImportIfNecessary(ast, expectedImportDeclaration); @@ -44,7 +45,8 @@ export function addDefault(ast: AstTypes.Program, importFrom: string, importAs: name: importAs } } - ] + ], + importKind: 'value' }; addImportIfNecessary(ast, expectedImportDeclaration); @@ -73,7 +75,7 @@ export function addNamed( let importDecl: AstTypes.ImportDeclaration | undefined; // prettier-ignore - Walker.walk(ast as AstTypes.ASTNode, {}, { + Walker.walk(ast as AstTypes.Node, {}, { ImportDeclaration(node) { if (node.source.value === importFrom && node.specifiers) { importDecl = node; @@ -89,6 +91,8 @@ export function addNamed( (existingSpecifier) => existingSpecifier.type === 'ImportSpecifier' && existingSpecifier.local?.name !== specifierToAdd.local?.name && + existingSpecifier.imported.type == 'Identifier' && + specifierToAdd.imported.type == 'Identifier' && existingSpecifier.imported.name !== specifierToAdd.imported.name ) ) { @@ -105,7 +109,7 @@ export function addNamed( value: importFrom }, specifiers, - importKind: isType ? 'type' : undefined + importKind: isType ? 'type' : 'value' }; ast.body.unshift(expectedImportDeclaration); diff --git a/packages/core/tooling/js/index.ts b/packages/core/tooling/js/index.ts index 5e252626..7e556569 100644 --- a/packages/core/tooling/js/index.ts +++ b/packages/core/tooling/js/index.ts @@ -6,4 +6,4 @@ export * as imports from './imports.ts'; export * as variables from './variables.ts'; export * as exports from './exports.ts'; export * as kit from './kit.ts'; -export type { AstTypes, AstKinds } from '@sveltejs/ast-tooling'; +export type { AstTypes } from '@sveltejs/ast-tooling'; diff --git a/packages/core/tooling/js/kit.ts b/packages/core/tooling/js/kit.ts index 84c799c0..2cbf8838 100644 --- a/packages/core/tooling/js/kit.ts +++ b/packages/core/tooling/js/kit.ts @@ -1,8 +1,8 @@ -import { Walker, type AstKinds } from '@sveltejs/ast-tooling'; -import { common, functions, imports, variables, exports, type AstTypes } from '../js/index.ts'; +import { Walker } from '@sveltejs/ast-tooling'; +import { type AstTypes, common, functions, imports, variables, exports } from '../js/index.ts'; export function addGlobalAppInterface( - ast: AstTypes.Program, + ast: AstTypes.TSProgram, name: 'Error' | 'Locals' | 'PageData' | 'PageState' | 'Platform' ): AstTypes.TSInterfaceDeclaration { let globalDecl = ast.body @@ -10,7 +10,7 @@ export function addGlobalAppInterface( .find((m) => m.global && m.declare); if (!globalDecl) { - globalDecl = common.statementFromString('declare global {}') as AstTypes.TSModuleDeclaration; + globalDecl = common.fromString('declare global {}'); ast.body.push(globalDecl); } @@ -22,7 +22,7 @@ export function addGlobalAppInterface( let interfaceNode: AstTypes.TSInterfaceDeclaration | undefined; // prettier-ignore - Walker.walk(globalDecl as AstTypes.ASTNode, {}, { + Walker.walk(globalDecl as AstTypes.Node, {}, { TSModuleDeclaration(node, { next }) { if (node.id.type === 'Identifier' && node.id.name === 'App') { app = node; @@ -37,7 +37,7 @@ export function addGlobalAppInterface( }); if (!app) { - app = common.statementFromString('namespace App {}') as AstTypes.TSModuleDeclaration; + app = common.fromString('namespace App {}'); globalDecl.body.body.push(app); } @@ -47,9 +47,7 @@ export function addGlobalAppInterface( if (!interfaceNode) { // add the interface if it's missing - interfaceNode = common.statementFromString( - `interface ${name} {}` - ) as AstTypes.TSInterfaceDeclaration; + interfaceNode = common.fromString(`interface ${name} {}`); app.body.body.push(interfaceNode); } @@ -69,20 +67,20 @@ export function addHooksHandle( let isSpecifier: boolean = false; let handleName = 'handle'; let exportDecl: AstTypes.ExportNamedDeclaration | undefined; - let originalHandleDecl: AstKinds.DeclarationKind | undefined; + let originalHandleDecl: AstTypes.Declaration | undefined; // We'll first visit all of the named exports and grab their references if they export `handle`. // This will grab export references for: // `export { handle }` & `export { foo as handle }` // `export const handle = ...`, & `export function handle() {...}` // prettier-ignore - Walker.walk(ast as AstTypes.ASTNode, {}, { + Walker.walk(ast as AstTypes.Node, {}, { ExportNamedDeclaration(node) { - let maybeHandleDecl: AstKinds.DeclarationKind | undefined; + let maybeHandleDecl: AstTypes.Declaration | undefined; // `export { handle }` & `export { foo as handle }` - const handleSpecifier = node.specifiers?.find((s) => s.exported.name === 'handle'); - if (handleSpecifier) { + const handleSpecifier = node.specifiers?.find((s) => s.exported.type == 'Identifier' && s.exported.name === 'handle'); + if (handleSpecifier && handleSpecifier.local.type == 'Identifier' && handleSpecifier.exported.type == 'Identifier') { isSpecifier = true; // we'll search for the local name in case it's aliased (e.g. `export { foo as handle }`) handleName = (handleSpecifier.local?.name ?? handleSpecifier.exported.name) as string; @@ -246,7 +244,7 @@ function usingSequence(node: AstTypes.VariableDeclarator, handleName: string) { } function isVariableDeclaration( - node: AstTypes.ASTNode, + node: AstTypes.Node, variableName: string ): node is AstTypes.VariableDeclaration { return ( @@ -264,7 +262,7 @@ function getVariableDeclarator( } function isFunctionDeclaration( - node: AstTypes.ASTNode, + node: AstTypes.Node, funcName: string ): node is AstTypes.FunctionDeclaration { return node.type === 'FunctionDeclaration' && node.id?.name === funcName; diff --git a/packages/core/tooling/js/object.ts b/packages/core/tooling/js/object.ts index e0a5fb63..4163921f 100644 --- a/packages/core/tooling/js/object.ts +++ b/packages/core/tooling/js/object.ts @@ -1,13 +1,13 @@ -import type { AstKinds, AstTypes } from '@sveltejs/ast-tooling'; +import type { AstTypes } from '@sveltejs/ast-tooling'; -export function property( +export function property( ast: AstTypes.ObjectExpression, name: string, fallback: T ): T { const objectExpression = ast; const properties = objectExpression.properties.filter( - (x): x is AstTypes.ObjectProperty => x.type == 'ObjectProperty' + (x): x is AstTypes.Property => x.type == 'Property' ); let property = properties.find((x) => (x.key as AstTypes.Identifier).name == name); let propertyValue: T; @@ -23,13 +23,16 @@ export function property( +export function overrideProperty( ast: AstTypes.ObjectExpression, name: string, value: T ): T { const objectExpression = ast; const properties = objectExpression.properties.filter( - (x): x is AstTypes.ObjectProperty => x.type == 'ObjectProperty' + (x): x is AstTypes.Property => x.type == 'Property' ); const prop = properties.find((x) => (x.key as AstTypes.Identifier).name == name); @@ -58,7 +61,7 @@ export function overrideProperty( return value; } -export function overrideProperties( +export function overrideProperties( ast: AstTypes.ObjectExpression, obj: Record ): void { @@ -68,7 +71,7 @@ export function overrideProperties( } } -export function properties( +export function properties( ast: AstTypes.ObjectExpression, obj: Record ): void { @@ -79,9 +82,7 @@ export function properties( } export function removeProperty(ast: AstTypes.ObjectExpression, property: string): void { - const properties = ast.properties.filter( - (x): x is AstTypes.ObjectProperty => x.type === 'ObjectProperty' - ); + const properties = ast.properties.filter((x): x is AstTypes.Property => x.type === 'Property'); const propIdx = properties.findIndex((x) => (x.key as AstTypes.Identifier).name === property); if (propIdx !== -1) { @@ -89,7 +90,7 @@ export function removeProperty(ast: AstTypes.ObjectExpression, property: string) } } -export function create( +export function create( obj: Record ): AstTypes.ObjectExpression { const objExpression = createEmpty(); diff --git a/packages/core/tooling/js/variables.ts b/packages/core/tooling/js/variables.ts index 968ea9a4..7818b548 100644 --- a/packages/core/tooling/js/variables.ts +++ b/packages/core/tooling/js/variables.ts @@ -1,10 +1,10 @@ -import type { AstKinds, AstTypes } from '@sveltejs/ast-tooling'; +import type { AstTypes } from '@sveltejs/ast-tooling'; export function declaration( - ast: AstTypes.Program | AstKinds.DeclarationKind, + ast: AstTypes.Program | AstTypes.Declaration, kind: 'const' | 'let' | 'var', name: string, - value: AstKinds.ExpressionKind + value: AstTypes.Expression ): AstTypes.VariableDeclaration { const declarations = ast.type == 'Program' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff7592a3..1e643e78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,28 +10,28 @@ importers: devDependencies: '@changesets/cli': specifier: ^2.27.10 - version: 2.27.10 + version: 2.27.11 '@playwright/test': specifier: ^1.49.1 version: 1.49.1 '@rollup/plugin-commonjs': specifier: ^28.0.2 - version: 28.0.2(rollup@4.28.1) + version: 28.0.2(rollup@4.29.1) '@rollup/plugin-dynamic-import-vars': specifier: ^2.1.5 - version: 2.1.5(rollup@4.28.1) + version: 2.1.5(rollup@4.29.1) '@rollup/plugin-json': specifier: ^6.1.0 - version: 6.1.0(rollup@4.28.1) + version: 6.1.0(rollup@4.29.1) '@rollup/plugin-node-resolve': specifier: ^15.3.0 - version: 15.3.0(rollup@4.28.1) + version: 15.3.1(rollup@4.29.1) '@sveltejs/create': specifier: workspace:* version: link:packages/create '@sveltejs/eslint-config': specifier: ^8.1.0 - version: 8.1.0(@stylistic/eslint-plugin-js@2.10.1(eslint@9.17.0))(eslint-config-prettier@9.1.0(eslint@9.17.0))(eslint-plugin-n@17.13.1(eslint@9.17.0))(eslint-plugin-svelte@2.46.0(eslint@9.17.0)(svelte@5.12.0))(eslint@9.17.0)(typescript-eslint@8.18.0(eslint@9.17.0)(typescript@5.7.2))(typescript@5.7.2) + version: 8.1.0(@stylistic/eslint-plugin-js@2.12.1(eslint@9.17.0))(eslint-config-prettier@9.1.0(eslint@9.17.0))(eslint-plugin-n@17.15.1(eslint@9.17.0))(eslint-plugin-svelte@2.46.1(eslint@9.17.0)(svelte@5.16.0))(eslint@9.17.0)(typescript-eslint@8.18.2(eslint@9.17.0)(typescript@5.7.2))(typescript@5.7.2) '@svitejs/changesets-changelog-github-compact': specifier: ^1.2.0 version: 1.2.0 @@ -46,7 +46,7 @@ importers: version: 9.17.0 magic-string: specifier: ^0.30.15 - version: 0.30.15 + version: 0.30.17 prettier: specifier: ^3.4.2 version: 3.4.2 @@ -55,31 +55,31 @@ importers: version: 2.5.6(prettier@3.4.2) prettier-plugin-svelte: specifier: ^3.3.2 - version: 3.3.2(prettier@3.4.2)(svelte@5.12.0) + version: 3.3.2(prettier@3.4.2)(svelte@5.16.0) rollup: specifier: ^4.28.1 - version: 4.28.1 + version: 4.29.1 rollup-plugin-esbuild: specifier: ^6.1.1 - version: 6.1.1(esbuild@0.24.0)(rollup@4.28.1) + version: 6.1.1(esbuild@0.21.5)(rollup@4.29.1) rollup-plugin-preserve-shebangs: specifier: ^0.2.0 - version: 0.2.0(rollup@4.28.1) + version: 0.2.0(rollup@4.29.1) sv: specifier: workspace:* version: link:packages/cli svelte: specifier: ^5.12.0 - version: 5.12.0 + version: 5.16.0 typescript: specifier: ^5.6.2 version: 5.7.2 typescript-eslint: specifier: ^8.18.0 - version: 8.18.0(eslint@9.17.0)(typescript@5.7.2) + version: 8.18.2(eslint@9.17.0)(typescript@5.7.2) unplugin-isolated-decl: specifier: ^0.8.3 - version: 0.8.3(rollup@4.28.1)(typescript@5.7.2) + version: 0.8.3(rollup@4.29.1)(typescript@5.7.2) vitest: specifier: ^2.1.8 version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8) @@ -108,12 +108,15 @@ importers: packages/ast-tooling: devDependencies: - '@babel/parser': - specifier: ^7.26.3 - version: 7.26.3 - ast-types: - specifier: ^0.16.1 - version: 0.16.1 + '@types/estree': + specifier: ^1.0.6 + version: 1.0.6 + acorn: + specifier: ^8.14.0 + version: 8.14.0 + acorn-typescript: + specifier: ^1.4.13 + version: 1.4.13(acorn@8.14.0) dom-serializer: specifier: ^2.0.0 version: 2.0.0 @@ -122,16 +125,16 @@ importers: version: 5.0.3 domutils: specifier: ^3.1.0 - version: 3.1.0 + version: 3.2.1 + esrap: + specifier: ^1.3.2 + version: 1.3.2 htmlparser2: specifier: ^9.1.0 version: 9.1.0 postcss: specifier: ^8.4.49 version: 8.4.49 - recast: - specifier: ^0.23.9 - version: 0.23.9 silver-fleece: specifier: ^1.2.1 version: 1.2.1 @@ -200,7 +203,7 @@ importers: version: 1.0.0 package-manager-detector: specifier: ^0.2.7 - version: 0.2.7 + version: 0.2.8 picocolors: specifier: ^1.1.1 version: 1.1.1 @@ -234,7 +237,7 @@ importers: version: 1.5.3 magic-string: specifier: ^0.30.15 - version: 0.30.15 + version: 0.30.17 picocolors: specifier: ^1.1.1 version: 1.1.1 @@ -264,7 +267,7 @@ importers: version: 4.1.5 magic-string: specifier: ^0.30.15 - version: 0.30.15 + version: 0.30.17 prompts: specifier: ^2.4.2 version: 2.4.2 @@ -303,29 +306,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.26.3': - resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/runtime@7.26.0': resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.3': - resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} - engines: {node: '>=6.9.0'} - - '@changesets/apply-release-plan@7.0.6': - resolution: {integrity: sha512-TKhVLtiwtQOgMAC0fCJfmv93faiViKSDqr8oMEqrnNs99gtSC1sZh/aEMS9a+dseU1ESZRCK+ofLgGY7o0fw/Q==} + '@changesets/apply-release-plan@7.0.7': + resolution: {integrity: sha512-qnPOcmmmnD0MfMg9DjU1/onORFyRpDXkMMl2IJg9mECY6RnxL3wN0TCCc92b2sXt1jt8DgjAUUsZYGUGTdYIXA==} '@changesets/assemble-release-plan@6.0.5': resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==} @@ -333,12 +319,12 @@ packages: '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} - '@changesets/cli@2.27.10': - resolution: {integrity: sha512-PfeXjvs9OfQJV8QSFFHjwHX3QnUL9elPEQ47SgkiwzLgtKGyuikWjrdM+lO9MXzOE22FO9jEGkcs4b+B6D6X0Q==} + '@changesets/cli@2.27.11': + resolution: {integrity: sha512-1QislpE+nvJgSZZo9+Lj3Lno5pKBgN46dAV8IVxKJy9wX8AOrs9nn5pYVZuDpoxWJJCALmbfOsHkyxujgetQSg==} hasBin: true - '@changesets/config@3.0.4': - resolution: {integrity: sha512-+DiIwtEBpvvv1z30f8bbOsUQGuccnZl9KRKMM/LxUHuDu5oEjmN+bJQ1RIBKNJjfYMQn8RZzoPiX0UgPaLQyXw==} + '@changesets/config@3.0.5': + resolution: {integrity: sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} @@ -349,8 +335,8 @@ packages: '@changesets/get-github-info@0.6.0': resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - '@changesets/get-release-plan@4.0.5': - resolution: {integrity: sha512-E6wW7JoSMcctdVakut0UB76FrrN3KIeJSXvB+DHMFo99CnC3ZVnNYDCVNClMlqAhYGmLmAj77QfApaI3ca4Fkw==} + '@changesets/get-release-plan@4.0.6': + resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -388,282 +374,138 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.24.0': - resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.24.0': - resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} - engines: {node: '>=18'} - 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.24.0': - resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@eslint-community/eslint-utils@4.4.1': resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -844,8 +686,8 @@ packages: rollup: optional: true - '@rollup/plugin-node-resolve@15.3.0': - resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 @@ -853,8 +695,8 @@ packages: rollup: optional: true - '@rollup/pluginutils@5.1.3': - resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -862,103 +704,103 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.28.1': - resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==} + '@rollup/rollup-android-arm-eabi@4.29.1': + resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.28.1': - resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==} + '@rollup/rollup-android-arm64@4.29.1': + resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.28.1': - resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==} + '@rollup/rollup-darwin-arm64@4.29.1': + resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.28.1': - resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==} + '@rollup/rollup-darwin-x64@4.29.1': + resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.28.1': - resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==} + '@rollup/rollup-freebsd-arm64@4.29.1': + resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.28.1': - resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==} + '@rollup/rollup-freebsd-x64@4.29.1': + resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.28.1': - resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==} + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.28.1': - resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==} + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.28.1': - resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==} + '@rollup/rollup-linux-arm64-gnu@4.29.1': + resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.28.1': - resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==} + '@rollup/rollup-linux-arm64-musl@4.29.1': + resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.28.1': - resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==} + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': - resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==} + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.28.1': - resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==} + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.28.1': - resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==} + '@rollup/rollup-linux-s390x-gnu@4.29.1': + resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.28.1': - resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==} + '@rollup/rollup-linux-x64-gnu@4.29.1': + resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.28.1': - resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==} + '@rollup/rollup-linux-x64-musl@4.29.1': + resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.28.1': - resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==} + '@rollup/rollup-win32-arm64-msvc@4.29.1': + resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.28.1': - resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==} + '@rollup/rollup-win32-ia32-msvc@4.29.1': + resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.28.1': - resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==} + '@rollup/rollup-win32-x64-msvc@4.29.1': + resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} cpu: [x64] os: [win32] - '@stylistic/eslint-plugin-js@2.10.1': - resolution: {integrity: sha512-IikL/RKy9Sk2UMDUUpqrEcwDeYzUEt6SaL2/UVCFuVQxKACHSgStT0NxXkxZmBOUforaU52FPf2Su07FYH5s5g==} + '@stylistic/eslint-plugin-js@2.12.1': + resolution: {integrity: sha512-5ybogtEgWIGCR6dMnaabztbWyVdAPDsf/5XOk6jBonWug875Q9/a6gm9QxnU3rhdyDEnckWKX7dduwYJMOWrVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' @@ -1020,51 +862,51 @@ packages: '@types/tar-stream@3.1.3': resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} - '@typescript-eslint/eslint-plugin@8.18.0': - resolution: {integrity: sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==} + '@typescript-eslint/eslint-plugin@8.18.2': + resolution: {integrity: sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.18.0': - resolution: {integrity: sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==} + '@typescript-eslint/parser@8.18.2': + resolution: {integrity: sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.18.0': - resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} + '@typescript-eslint/scope-manager@8.18.2': + resolution: {integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.18.0': - resolution: {integrity: sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==} + '@typescript-eslint/type-utils@8.18.2': + resolution: {integrity: sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.18.0': - resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} + '@typescript-eslint/types@8.18.2': + resolution: {integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.18.0': - resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} + '@typescript-eslint/typescript-estree@8.18.2': + resolution: {integrity: sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.18.0': - resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==} + '@typescript-eslint/utils@8.18.2': + resolution: {integrity: sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.18.0': - resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} + '@typescript-eslint/visitor-keys@8.18.2': + resolution: {integrity: sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitest/expect@2.1.8': @@ -1160,10 +1002,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} - astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true @@ -1234,6 +1072,10 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + code-block-writer@13.0.3: resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} @@ -1340,8 +1182,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.2.1: + resolution: {integrity: sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==} dotenv@16.4.7: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} @@ -1366,8 +1208,8 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} engines: {node: '>=10.13.0'} enquirer@2.4.1: @@ -1378,19 +1220,14 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true - esbuild@0.24.0: - resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} - engines: {node: '>=18'} - hasBin: true - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -1413,14 +1250,14 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-n@17.13.1: - resolution: {integrity: sha512-97qzhk1z3DdSJNCqT45EslwCu5+LB9GDadSyBItgKUfGsXAmN/aa7LRQ0ZxHffUxUzvgbTPJL27/pE9ZQWHy7A==} + eslint-plugin-n@17.15.1: + resolution: {integrity: sha512-KFw7x02hZZkBdbZEFQduRGH4VkIH4MW97ClsbAM4Y4E6KguBJWGfWG1P4HEIpZk2bkoWf0bojpnjNAhYQP8beA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' - eslint-plugin-svelte@2.46.0: - resolution: {integrity: sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==} + eslint-plugin-svelte@2.46.1: + resolution: {integrity: sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 @@ -1475,8 +1312,8 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - esrap@1.2.3: - resolution: {integrity: sha512-ZlQmCCK+n7SGoqo7DnfKaP1sJZa49P01/dXzmjCASSo04p72w8EksT2NMK8CEX8DhKsfJXANioIw8VyHNsBfvQ==} + esrap@1.3.2: + resolution: {integrity: sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -1526,8 +1363,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} fdir@6.4.2: resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} @@ -1621,8 +1458,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.13.0: - resolution: {integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==} + globals@15.14.0: + resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} engines: {node: '>=18'} globalyzer@0.1.0: @@ -1674,8 +1511,8 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - is-core-module@2.16.0: - resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -1796,8 +1633,8 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.30.15: - resolution: {integrity: sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} map-stream@0.1.0: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} @@ -1907,8 +1744,8 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@0.2.7: - resolution: {integrity: sha512-g4+387DXDKlZzHkP+9FLt8yKj8+/3tOkPv7DVTJGGRm00RkEWgqbFstX1mXJ4M0VDYhUqsTOiISqNOJnhAu3PQ==} + package-manager-detector@0.2.8: + resolution: {integrity: sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -2064,10 +1901,6 @@ packages: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} - engines: {node: '>= 4'} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -2082,8 +1915,9 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.9: - resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true reusify@1.0.4: @@ -2102,8 +1936,8 @@ packages: peerDependencies: rollup: '*' - rollup@4.28.1: - resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==} + rollup@4.29.1: + resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2158,10 +1992,6 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead @@ -2237,8 +2067,8 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} - svelte@5.12.0: - resolution: {integrity: sha512-nOd7uj0D/4A3IrHnltaFYndVPGViYSs0s+Zi3N4uQg3owJt9RoiUdwxYx8qjorj5CtaGsx8dNYsFVbH6czrGNg==} + svelte@5.16.0: + resolution: {integrity: sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==} engines: {node: '>=18'} synckit@0.9.2: @@ -2275,9 +2105,6 @@ packages: tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -2334,8 +2161,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.18.0: - resolution: {integrity: sha512-Xq2rRjn6tzVpAyHr3+nmSg1/9k9aIHnJ2iZeOH7cfGOWqTkXTm3kwpQglEuLGdNrYvPF+2gtAs+/KF5rjVo+WQ==} + typescript-eslint@8.18.2: + resolution: {integrity: sha512-KuXezG6jHkvC3MvizeXgupZzaG5wjhU3yE8E7e6viOvAvD9xAWYp8/vy0WULTGe9DYDWcQu7aW03YIV3mSitrQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2502,26 +2329,13 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@babel/helper-string-parser@7.25.9': {} - - '@babel/helper-validator-identifier@7.25.9': {} - - '@babel/parser@7.26.3': - dependencies: - '@babel/types': 7.26.3 - '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 - '@babel/types@7.26.3': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@changesets/apply-release-plan@7.0.6': + '@changesets/apply-release-plan@7.0.7': dependencies: - '@changesets/config': 3.0.4 + '@changesets/config': 3.0.5 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.2 '@changesets/should-skip-package': 0.1.1 @@ -2548,15 +2362,15 @@ snapshots: dependencies: '@changesets/types': 6.0.0 - '@changesets/cli@2.27.10': + '@changesets/cli@2.27.11': dependencies: - '@changesets/apply-release-plan': 7.0.6 + '@changesets/apply-release-plan': 7.0.7 '@changesets/assemble-release-plan': 6.0.5 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.4 + '@changesets/config': 3.0.5 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.2 - '@changesets/get-release-plan': 4.0.5 + '@changesets/get-release-plan': 4.0.6 '@changesets/git': 3.0.2 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.1 @@ -2572,14 +2386,14 @@ snapshots: fs-extra: 7.0.1 mri: 1.2.0 p-limit: 2.3.0 - package-manager-detector: 0.2.7 + package-manager-detector: 0.2.8 picocolors: 1.1.1 resolve-from: 5.0.0 semver: 7.6.3 spawndamnit: 3.0.1 term-size: 2.2.1 - '@changesets/config@3.0.4': + '@changesets/config@3.0.5': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.2 @@ -2607,10 +2421,10 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.5': + '@changesets/get-release-plan@4.0.6': dependencies: '@changesets/assemble-release-plan': 6.0.5 - '@changesets/config': 3.0.4 + '@changesets/config': 3.0.5 '@changesets/pre': 2.0.1 '@changesets/read': 0.6.2 '@changesets/types': 6.0.0 @@ -2671,144 +2485,72 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.24.0': - optional: true - '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.24.0': - optional: true - '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.24.0': - optional: true - '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.24.0': - optional: true - '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.24.0': - optional: true - '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.24.0': - optional: true - '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.24.0': - optional: true - '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.24.0': - optional: true - '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.24.0': - optional: true - '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.24.0': - optional: true - '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.24.0': - optional: true - '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.24.0': - optional: true - '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.24.0': - optional: true - '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.24.0': - optional: true - '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.24.0': - optional: true - '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.24.0': - optional: true - '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.24.0': - optional: true - '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.24.0': - optional: true - - '@esbuild/openbsd-arm64@0.24.0': - optional: true - '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.24.0': - optional: true - '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.24.0': - optional: true - '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.24.0': - optional: true - '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.24.0': - optional: true - '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.24.0': - optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': dependencies: eslint: 9.17.0 @@ -2915,7 +2657,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.18.0 '@oxc-parser/binding-darwin-arm64@0.37.0': optional: true @@ -2954,125 +2696,125 @@ snapshots: '@polka/url@1.0.0-next.28': {} - '@rollup/plugin-commonjs@28.0.2(rollup@4.28.1)': + '@rollup/plugin-commonjs@28.0.2(rollup@4.29.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.2(picomatch@4.0.2) is-reference: 1.2.1 - magic-string: 0.30.15 + magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: - rollup: 4.28.1 + rollup: 4.29.1 - '@rollup/plugin-dynamic-import-vars@2.1.5(rollup@4.28.1)': + '@rollup/plugin-dynamic-import-vars@2.1.5(rollup@4.29.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) astring: 1.9.0 estree-walker: 2.0.2 fast-glob: 3.3.2 - magic-string: 0.30.15 + magic-string: 0.30.17 optionalDependencies: - rollup: 4.28.1 + rollup: 4.29.1 - '@rollup/plugin-json@6.1.0(rollup@4.28.1)': + '@rollup/plugin-json@6.1.0(rollup@4.29.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) optionalDependencies: - rollup: 4.28.1 + rollup: 4.29.1 - '@rollup/plugin-node-resolve@15.3.0(rollup@4.28.1)': + '@rollup/plugin-node-resolve@15.3.1(rollup@4.29.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 - resolve: 1.22.9 + resolve: 1.22.10 optionalDependencies: - rollup: 4.28.1 + rollup: 4.29.1 - '@rollup/pluginutils@5.1.3(rollup@4.28.1)': + '@rollup/pluginutils@5.1.4(rollup@4.29.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.28.1 + rollup: 4.29.1 - '@rollup/rollup-android-arm-eabi@4.28.1': + '@rollup/rollup-android-arm-eabi@4.29.1': optional: true - '@rollup/rollup-android-arm64@4.28.1': + '@rollup/rollup-android-arm64@4.29.1': optional: true - '@rollup/rollup-darwin-arm64@4.28.1': + '@rollup/rollup-darwin-arm64@4.29.1': optional: true - '@rollup/rollup-darwin-x64@4.28.1': + '@rollup/rollup-darwin-x64@4.29.1': optional: true - '@rollup/rollup-freebsd-arm64@4.28.1': + '@rollup/rollup-freebsd-arm64@4.29.1': optional: true - '@rollup/rollup-freebsd-x64@4.28.1': + '@rollup/rollup-freebsd-x64@4.29.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.28.1': + '@rollup/rollup-linux-arm-musleabihf@4.29.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.28.1': + '@rollup/rollup-linux-arm64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.28.1': + '@rollup/rollup-linux-arm64-musl@4.29.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.28.1': + '@rollup/rollup-linux-riscv64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.28.1': + '@rollup/rollup-linux-s390x-gnu@4.29.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.28.1': + '@rollup/rollup-linux-x64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-x64-musl@4.28.1': + '@rollup/rollup-linux-x64-musl@4.29.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.28.1': + '@rollup/rollup-win32-arm64-msvc@4.29.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.28.1': + '@rollup/rollup-win32-ia32-msvc@4.29.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.28.1': + '@rollup/rollup-win32-x64-msvc@4.29.1': optional: true - '@stylistic/eslint-plugin-js@2.10.1(eslint@9.17.0)': + '@stylistic/eslint-plugin-js@2.12.1(eslint@9.17.0)': dependencies: eslint: 9.17.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 - '@sveltejs/eslint-config@8.1.0(@stylistic/eslint-plugin-js@2.10.1(eslint@9.17.0))(eslint-config-prettier@9.1.0(eslint@9.17.0))(eslint-plugin-n@17.13.1(eslint@9.17.0))(eslint-plugin-svelte@2.46.0(eslint@9.17.0)(svelte@5.12.0))(eslint@9.17.0)(typescript-eslint@8.18.0(eslint@9.17.0)(typescript@5.7.2))(typescript@5.7.2)': + '@sveltejs/eslint-config@8.1.0(@stylistic/eslint-plugin-js@2.12.1(eslint@9.17.0))(eslint-config-prettier@9.1.0(eslint@9.17.0))(eslint-plugin-n@17.15.1(eslint@9.17.0))(eslint-plugin-svelte@2.46.1(eslint@9.17.0)(svelte@5.16.0))(eslint@9.17.0)(typescript-eslint@8.18.2(eslint@9.17.0)(typescript@5.7.2))(typescript@5.7.2)': dependencies: - '@stylistic/eslint-plugin-js': 2.10.1(eslint@9.17.0) + '@stylistic/eslint-plugin-js': 2.12.1(eslint@9.17.0) eslint: 9.17.0 eslint-config-prettier: 9.1.0(eslint@9.17.0) - eslint-plugin-n: 17.13.1(eslint@9.17.0) - eslint-plugin-svelte: 2.46.0(eslint@9.17.0)(svelte@5.12.0) - globals: 15.13.0 + eslint-plugin-n: 17.15.1(eslint@9.17.0) + eslint-plugin-svelte: 2.46.1(eslint@9.17.0)(svelte@5.16.0) + globals: 15.14.0 typescript: 5.7.2 - typescript-eslint: 8.18.0(eslint@9.17.0)(typescript@5.7.2) + typescript-eslint: 8.18.2(eslint@9.17.0)(typescript@5.7.2) '@svitejs/changesets-changelog-github-compact@1.2.0': dependencies: @@ -3107,7 +2849,7 @@ snapshots: '@types/prompts@2.4.9': dependencies: - '@types/node': 22.10.2 + '@types/node': 18.19.68 kleur: 3.0.3 '@types/ps-tree@1.1.6': {} @@ -3125,14 +2867,14 @@ snapshots: dependencies: '@types/node': 22.10.2 - '@typescript-eslint/eslint-plugin@8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.18.0(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 8.18.0 - '@typescript-eslint/type-utils': 8.18.0(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.0(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.0 + '@typescript-eslint/parser': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/type-utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.18.2 eslint: 9.17.0 graphemer: 1.4.0 ignore: 5.3.2 @@ -3142,27 +2884,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.18.0(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/scope-manager': 8.18.0 - '@typescript-eslint/types': 8.18.0 - '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.0 + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.18.2 debug: 4.4.0 eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.18.0': + '@typescript-eslint/scope-manager@8.18.2': dependencies: - '@typescript-eslint/types': 8.18.0 - '@typescript-eslint/visitor-keys': 8.18.0 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/visitor-keys': 8.18.2 - '@typescript-eslint/type-utils@8.18.0(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/type-utils@8.18.2(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.0(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) debug: 4.4.0 eslint: 9.17.0 ts-api-utils: 1.4.3(typescript@5.7.2) @@ -3170,12 +2912,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.18.0': {} + '@typescript-eslint/types@8.18.2': {} - '@typescript-eslint/typescript-estree@8.18.0(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.18.2(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.18.0 - '@typescript-eslint/visitor-keys': 8.18.0 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/visitor-keys': 8.18.2 debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -3186,20 +2928,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.18.0(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/utils@8.18.2(eslint@9.17.0)(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - '@typescript-eslint/scope-manager': 8.18.0 - '@typescript-eslint/types': 8.18.0 - '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.18.0': + '@typescript-eslint/visitor-keys@8.18.2': dependencies: - '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/types': 8.18.2 eslint-visitor-keys: 4.2.0 '@vitest/expect@2.1.8': @@ -3213,7 +2955,7 @@ snapshots: dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 - magic-string: 0.30.15 + magic-string: 0.30.17 optionalDependencies: vite: 5.4.11(@types/node@22.10.2) @@ -3229,7 +2971,7 @@ snapshots: '@vitest/snapshot@2.1.8': dependencies: '@vitest/pretty-format': 2.1.8 - magic-string: 0.30.15 + magic-string: 0.30.17 pathe: 1.1.2 '@vitest/spy@2.1.8': @@ -3296,10 +3038,6 @@ snapshots: assertion-error@2.0.1: {} - ast-types@0.16.1: - dependencies: - tslib: 2.8.1 - astring@1.9.0: {} axobject-query@4.1.0: {} @@ -3371,6 +3109,8 @@ snapshots: ci-info@3.9.0: {} + clsx@2.1.1: {} + code-block-writer@13.0.3: {} code-red@1.0.4: @@ -3448,7 +3188,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - domutils@3.1.0: + domutils@3.2.1: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -3470,7 +3210,7 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.17.1: + enhanced-resolve@5.18.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -3482,7 +3222,7 @@ snapshots: entities@4.5.0: {} - es-module-lexer@1.5.4: {} + es-module-lexer@1.6.0: {} esbuild@0.21.5: optionalDependencies: @@ -3510,33 +3250,6 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.24.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.24.0 - '@esbuild/android-arm': 0.24.0 - '@esbuild/android-arm64': 0.24.0 - '@esbuild/android-x64': 0.24.0 - '@esbuild/darwin-arm64': 0.24.0 - '@esbuild/darwin-x64': 0.24.0 - '@esbuild/freebsd-arm64': 0.24.0 - '@esbuild/freebsd-x64': 0.24.0 - '@esbuild/linux-arm': 0.24.0 - '@esbuild/linux-arm64': 0.24.0 - '@esbuild/linux-ia32': 0.24.0 - '@esbuild/linux-loong64': 0.24.0 - '@esbuild/linux-mips64el': 0.24.0 - '@esbuild/linux-ppc64': 0.24.0 - '@esbuild/linux-riscv64': 0.24.0 - '@esbuild/linux-s390x': 0.24.0 - '@esbuild/linux-x64': 0.24.0 - '@esbuild/netbsd-x64': 0.24.0 - '@esbuild/openbsd-arm64': 0.24.0 - '@esbuild/openbsd-x64': 0.24.0 - '@esbuild/sunos-x64': 0.24.0 - '@esbuild/win32-arm64': 0.24.0 - '@esbuild/win32-ia32': 0.24.0 - '@esbuild/win32-x64': 0.24.0 - escape-string-regexp@4.0.0: {} eslint-compat-utils@0.5.1(eslint@9.17.0): @@ -3555,19 +3268,19 @@ snapshots: eslint: 9.17.0 eslint-compat-utils: 0.5.1(eslint@9.17.0) - eslint-plugin-n@17.13.1(eslint@9.17.0): + eslint-plugin-n@17.15.1(eslint@9.17.0): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - enhanced-resolve: 5.17.1 + enhanced-resolve: 5.18.0 eslint: 9.17.0 eslint-plugin-es-x: 7.8.0(eslint@9.17.0) get-tsconfig: 4.8.1 - globals: 15.13.0 + globals: 15.14.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-svelte@2.46.0(eslint@9.17.0)(svelte@5.12.0): + eslint-plugin-svelte@2.46.1(eslint@9.17.0)(svelte@5.16.0): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) '@jridgewell/sourcemap-codec': 1.5.0 @@ -3580,9 +3293,9 @@ snapshots: postcss-safe-parser: 6.0.0(postcss@8.4.49) postcss-selector-parser: 6.1.2 semver: 7.6.3 - svelte-eslint-parser: 0.43.0(svelte@5.12.0) + svelte-eslint-parser: 0.43.0(svelte@5.16.0) optionalDependencies: - svelte: 5.12.0 + svelte: 5.16.0 transitivePeerDependencies: - ts-node @@ -3659,10 +3372,9 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@1.2.3: + esrap@1.3.2: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - '@types/estree': 1.0.6 esrecurse@4.3.0: dependencies: @@ -3714,7 +3426,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fastq@1.17.1: + fastq@1.18.0: dependencies: reusify: 1.0.4 @@ -3805,7 +3517,7 @@ snapshots: globals@14.0.0: {} - globals@15.13.0: {} + globals@15.14.0: {} globalyzer@0.1.0: {} @@ -3834,7 +3546,7 @@ snapshots: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.1 entities: 4.5.0 human-id@1.0.2: {} @@ -3854,7 +3566,7 @@ snapshots: imurmurhash@0.1.4: {} - is-core-module@2.16.0: + is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -3956,7 +3668,7 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - magic-string@0.30.15: + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -4059,7 +3771,7 @@ snapshots: package-json-from-dist@1.0.1: {} - package-manager-detector@0.2.7: {} + package-manager-detector@0.2.8: {} parent-module@1.0.1: dependencies: @@ -4147,10 +3859,10 @@ snapshots: optionalDependencies: prettier: 3.4.2 - prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@5.12.0): + prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@5.16.0): dependencies: prettier: 3.4.2 - svelte: 5.12.0 + svelte: 5.16.0 prettier@2.8.8: {} @@ -4183,14 +3895,6 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - recast@0.23.9: - dependencies: - ast-types: 0.16.1 - esprima: 4.0.1 - source-map: 0.6.1 - tiny-invariant: 1.3.3 - tslib: 2.8.1 - regenerator-runtime@0.14.1: {} resolve-from@4.0.0: {} @@ -4199,53 +3903,53 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.9: + resolve@1.22.10: dependencies: - is-core-module: 2.16.0 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 reusify@1.0.4: {} - rollup-plugin-esbuild@6.1.1(esbuild@0.24.0)(rollup@4.28.1): + rollup-plugin-esbuild@6.1.1(esbuild@0.21.5)(rollup@4.29.1): dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) debug: 4.4.0 - es-module-lexer: 1.5.4 - esbuild: 0.24.0 + es-module-lexer: 1.6.0 + esbuild: 0.21.5 get-tsconfig: 4.8.1 - rollup: 4.28.1 + rollup: 4.29.1 transitivePeerDependencies: - supports-color - rollup-plugin-preserve-shebangs@0.2.0(rollup@4.28.1): + rollup-plugin-preserve-shebangs@0.2.0(rollup@4.29.1): dependencies: magic-string: 0.25.9 - rollup: 4.28.1 + rollup: 4.29.1 - rollup@4.28.1: + rollup@4.29.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.28.1 - '@rollup/rollup-android-arm64': 4.28.1 - '@rollup/rollup-darwin-arm64': 4.28.1 - '@rollup/rollup-darwin-x64': 4.28.1 - '@rollup/rollup-freebsd-arm64': 4.28.1 - '@rollup/rollup-freebsd-x64': 4.28.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.28.1 - '@rollup/rollup-linux-arm-musleabihf': 4.28.1 - '@rollup/rollup-linux-arm64-gnu': 4.28.1 - '@rollup/rollup-linux-arm64-musl': 4.28.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.28.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1 - '@rollup/rollup-linux-riscv64-gnu': 4.28.1 - '@rollup/rollup-linux-s390x-gnu': 4.28.1 - '@rollup/rollup-linux-x64-gnu': 4.28.1 - '@rollup/rollup-linux-x64-musl': 4.28.1 - '@rollup/rollup-win32-arm64-msvc': 4.28.1 - '@rollup/rollup-win32-ia32-msvc': 4.28.1 - '@rollup/rollup-win32-x64-msvc': 4.28.1 + '@rollup/rollup-android-arm-eabi': 4.29.1 + '@rollup/rollup-android-arm64': 4.29.1 + '@rollup/rollup-darwin-arm64': 4.29.1 + '@rollup/rollup-darwin-x64': 4.29.1 + '@rollup/rollup-freebsd-arm64': 4.29.1 + '@rollup/rollup-freebsd-x64': 4.29.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 + '@rollup/rollup-linux-arm-musleabihf': 4.29.1 + '@rollup/rollup-linux-arm64-gnu': 4.29.1 + '@rollup/rollup-linux-arm64-musl': 4.29.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 + '@rollup/rollup-linux-riscv64-gnu': 4.29.1 + '@rollup/rollup-linux-s390x-gnu': 4.29.1 + '@rollup/rollup-linux-x64-gnu': 4.29.1 + '@rollup/rollup-linux-x64-musl': 4.29.1 + '@rollup/rollup-win32-arm64-msvc': 4.29.1 + '@rollup/rollup-win32-ia32-msvc': 4.29.1 + '@rollup/rollup-win32-x64-msvc': 4.29.1 fsevents: 2.3.3 run-parallel@1.2.0: @@ -4293,8 +3997,6 @@ snapshots: source-map-js@1.2.1: {} - source-map@0.6.1: {} - sourcemap-codec@1.4.8: {} spawndamnit@3.0.1: @@ -4364,7 +4066,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-eslint-parser@0.43.0(svelte@5.12.0): + svelte-eslint-parser@0.43.0(svelte@5.16.0): dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -4372,7 +4074,7 @@ snapshots: postcss: 8.4.49 postcss-scss: 4.0.9(postcss@8.4.49) optionalDependencies: - svelte: 5.12.0 + svelte: 5.16.0 svelte@4.2.19: dependencies: @@ -4388,10 +4090,10 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.15 + magic-string: 0.30.17 periscopic: 3.1.0 - svelte@5.12.0: + svelte@5.16.0: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -4400,11 +4102,12 @@ snapshots: acorn-typescript: 1.4.13(acorn@8.14.0) aria-query: 5.3.2 axobject-query: 4.1.0 + clsx: 2.1.1 esm-env: 1.2.1 - esrap: 1.2.3 + esrap: 1.3.2 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.15 + magic-string: 0.30.17 zimmerframe: 1.1.2 synckit@0.9.2: @@ -4449,8 +4152,6 @@ snapshots: globalyzer: 0.1.0 globrex: 0.1.2 - tiny-invariant@1.3.3: {} - tinybench@2.9.0: {} tinyexec@0.3.1: {} @@ -4495,11 +4196,11 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.18.0(eslint@9.17.0)(typescript@5.7.2): + typescript-eslint@8.18.2(eslint@9.17.0)(typescript@5.7.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/parser': 8.18.0(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.0(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: @@ -4513,11 +4214,11 @@ snapshots: universalify@0.1.2: {} - unplugin-isolated-decl@0.8.3(rollup@4.28.1)(typescript@5.7.2): + unplugin-isolated-decl@0.8.3(rollup@4.29.1)(typescript@5.7.2): dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) debug: 4.4.0 - magic-string: 0.30.15 + magic-string: 0.30.17 oxc-parser: 0.37.0 unplugin: 1.16.0 optionalDependencies: @@ -4545,7 +4246,7 @@ snapshots: dependencies: cac: 6.7.14 debug: 4.4.0 - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 pathe: 1.1.2 vite: 5.4.11(@types/node@22.10.2) transitivePeerDependencies: @@ -4563,7 +4264,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.28.1 + rollup: 4.29.1 optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 @@ -4580,7 +4281,7 @@ snapshots: chai: 5.1.2 debug: 4.4.0 expect-type: 1.1.0 - magic-string: 0.30.15 + magic-string: 0.30.17 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 From 654236978c166fb1099b1f708e7bcd5dc4a53161 Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Sun, 29 Dec 2024 09:49:29 +0100 Subject: [PATCH 02/14] update tests --- packages/core/tests/css/common/add-at-rule/run.ts | 4 ++-- packages/core/tests/css/common/add-comment/run.ts | 4 ++-- packages/core/tests/css/common/add-imports/run.ts | 4 ++-- packages/core/tests/css/common/add-rule/run.ts | 4 ++-- packages/core/tests/css/index.ts | 2 +- packages/core/tests/html/common/create-div/run.ts | 5 ++--- packages/core/tests/html/common/create-element/run.ts | 5 ++--- packages/core/tests/html/common/from-raw/run.ts | 5 ++--- packages/core/tests/html/index.ts | 2 +- packages/core/tests/js/arrays/empty-array/run.ts | 5 ++--- packages/core/tests/js/arrays/object-array/run.ts | 5 ++--- packages/core/tests/js/arrays/string-array/run.ts | 5 ++--- packages/core/tests/js/common/jsdoc-comment/run.ts | 2 +- .../tests/js/exports/default-export-with-variable/run.ts | 5 ++--- packages/core/tests/js/exports/default-export/run.ts | 5 ++--- .../core/tests/js/exports/named-export-with-existing/run.ts | 3 +-- packages/core/tests/js/exports/named-export/run.ts | 5 ++--- packages/core/tests/js/functions/arrow-function/run.ts | 5 ++--- .../tests/js/functions/function-call-by-identifier/run.ts | 5 ++--- packages/core/tests/js/functions/function-call/run.ts | 5 ++--- .../core/tests/js/imports/avoid-duplicating-imports/run.ts | 5 ++--- packages/core/tests/js/imports/default-import/run.ts | 5 ++--- packages/core/tests/js/imports/empty-import/run.ts | 5 ++--- packages/core/tests/js/imports/named-import-merging/run.ts | 5 ++--- packages/core/tests/js/imports/named-import/run.ts | 5 ++--- packages/core/tests/js/imports/namespaced-import/run.ts | 2 +- packages/core/tests/js/index.ts | 2 +- packages/core/tests/js/object/create/run.ts | 5 ++--- packages/core/tests/js/object/override-property/run.ts | 3 +-- packages/core/tests/js/object/property/run.ts | 3 +-- packages/core/tests/js/object/remove-property/run.ts | 3 +-- packages/core/tests/js/variables/declaration/run.ts | 5 ++--- packages/core/tests/js/variables/identifier/run.ts | 5 ++--- .../core/tests/js/variables/type-annotate-declarator/run.ts | 5 ++--- 34 files changed, 59 insertions(+), 84 deletions(-) diff --git a/packages/core/tests/css/common/add-at-rule/run.ts b/packages/core/tests/css/common/add-at-rule/run.ts index fd53c285..11de1450 100644 --- a/packages/core/tests/css/common/add-at-rule/run.ts +++ b/packages/core/tests/css/common/add-at-rule/run.ts @@ -1,7 +1,7 @@ import { addAtRule } from '@sveltejs/cli-core/css'; -import type { CssFileEditor } from '@sveltejs/cli-core'; +import type { CssAst } from '@sveltejs/ast-tooling'; -export function run({ ast }: CssFileEditor): void { +export function run(ast: CssAst): void { addAtRule(ast, 'tailwind', "'lib/path/file.ext'", false); addAtRule(ast, 'tailwind', "'lib/path/file1.ext'", true); } diff --git a/packages/core/tests/css/common/add-comment/run.ts b/packages/core/tests/css/common/add-comment/run.ts index b8481ab4..5f8d4999 100644 --- a/packages/core/tests/css/common/add-comment/run.ts +++ b/packages/core/tests/css/common/add-comment/run.ts @@ -1,6 +1,6 @@ import { addComment } from '@sveltejs/cli-core/css'; -import type { CssFileEditor } from '@sveltejs/cli-core'; +import type { CssAst } from '@sveltejs/ast-tooling'; -export function run({ ast }: CssFileEditor): void { +export function run(ast: CssAst): void { addComment(ast, 'foo comment'); } diff --git a/packages/core/tests/css/common/add-imports/run.ts b/packages/core/tests/css/common/add-imports/run.ts index 12b0033a..18ccb618 100644 --- a/packages/core/tests/css/common/add-imports/run.ts +++ b/packages/core/tests/css/common/add-imports/run.ts @@ -1,6 +1,6 @@ import { addImports } from '@sveltejs/cli-core/css'; -import type { CssFileEditor } from '@sveltejs/cli-core'; +import type { CssAst } from '@sveltejs/ast-tooling'; -export function run({ ast }: CssFileEditor): void { +export function run(ast: CssAst): void { addImports(ast, ["'lib/path/file.css'"]); } diff --git a/packages/core/tests/css/common/add-rule/run.ts b/packages/core/tests/css/common/add-rule/run.ts index 7639c5c4..57c83df3 100644 --- a/packages/core/tests/css/common/add-rule/run.ts +++ b/packages/core/tests/css/common/add-rule/run.ts @@ -1,7 +1,7 @@ import { addDeclaration, addRule } from '@sveltejs/cli-core/css'; -import type { CssFileEditor } from '@sveltejs/cli-core'; +import type { CssAst } from '@sveltejs/ast-tooling'; -export function run({ ast }: CssFileEditor): void { +export function run(ast: CssAst): void { const barSelectorRule = addRule(ast, '.bar'); addDeclaration(barSelectorRule, 'color', 'blue'); } diff --git a/packages/core/tests/css/index.ts b/packages/core/tests/css/index.ts index 77a89d83..d9d20386 100644 --- a/packages/core/tests/css/index.ts +++ b/packages/core/tests/css/index.ts @@ -25,7 +25,7 @@ for (const categoryDirectory of categoryDirectories) { // dynamic imports always need to provide the path inline for static analysis const module = await import(`./${categoryDirectory}/${testName}/run.ts`); - module.run({ ast }); + module.run(ast); const output = serializeCss(ast); const formattedOutput = await prettier.format(output, prettierConfig); diff --git a/packages/core/tests/html/common/create-div/run.ts b/packages/core/tests/html/common/create-div/run.ts index 36a582bd..4e4d9642 100644 --- a/packages/core/tests/html/common/create-div/run.ts +++ b/packages/core/tests/html/common/create-div/run.ts @@ -1,7 +1,6 @@ -import { div, appendElement, insertElement } from '@sveltejs/cli-core/html'; -import type { HtmlFileEditor } from '@sveltejs/cli-core'; +import { div, appendElement, insertElement, type HtmlDocument } from '@sveltejs/cli-core/html'; -export function run({ ast }: HtmlFileEditor): void { +export function run(ast: HtmlDocument): void { const emptyDiv = div(); insertElement(ast.childNodes, emptyDiv); appendElement(ast.childNodes, emptyDiv); diff --git a/packages/core/tests/html/common/create-element/run.ts b/packages/core/tests/html/common/create-element/run.ts index 12658d28..99205f4d 100644 --- a/packages/core/tests/html/common/create-element/run.ts +++ b/packages/core/tests/html/common/create-element/run.ts @@ -1,7 +1,6 @@ -import { element, appendElement, insertElement } from '@sveltejs/cli-core/html'; -import type { HtmlFileEditor } from '@sveltejs/cli-core'; +import { element, appendElement, insertElement, type HtmlDocument } from '@sveltejs/cli-core/html'; -export function run({ ast }: HtmlFileEditor): void { +export function run(ast: HtmlDocument): void { const emptySpan = element('span'); insertElement(ast.childNodes, emptySpan); appendElement(ast.childNodes, emptySpan); diff --git a/packages/core/tests/html/common/from-raw/run.ts b/packages/core/tests/html/common/from-raw/run.ts index d1cfa163..3270c972 100644 --- a/packages/core/tests/html/common/from-raw/run.ts +++ b/packages/core/tests/html/common/from-raw/run.ts @@ -1,6 +1,5 @@ -import { addFromRawHtml } from '@sveltejs/cli-core/html'; -import type { HtmlFileEditor } from '@sveltejs/cli-core'; +import { addFromRawHtml, type HtmlDocument } from '@sveltejs/cli-core/html'; -export function run({ ast }: HtmlFileEditor): void { +export function run(ast: HtmlDocument): void { addFromRawHtml(ast.childNodes, '
foo
'); } diff --git a/packages/core/tests/html/index.ts b/packages/core/tests/html/index.ts index dfad1d0d..b5e33cd3 100644 --- a/packages/core/tests/html/index.ts +++ b/packages/core/tests/html/index.ts @@ -25,7 +25,7 @@ for (const categoryDirectory of categoryDirectories) { // dynamic imports always need to provide the path inline for static analysis const module = await import(`./${categoryDirectory}/${testName}/run.ts`); - module.run({ ast }); + module.run(ast); const output = serializeHtml(ast); const formattedOutput = await prettier.format(output, prettierConfig); diff --git a/packages/core/tests/js/arrays/empty-array/run.ts b/packages/core/tests/js/arrays/empty-array/run.ts index d3b4a0b1..0d4241da 100644 --- a/packages/core/tests/js/arrays/empty-array/run.ts +++ b/packages/core/tests/js/arrays/empty-array/run.ts @@ -1,7 +1,6 @@ -import { array, variables } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { array, variables, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const emptyArray = array.createEmpty(); // create declaration so that we serialize everything diff --git a/packages/core/tests/js/arrays/object-array/run.ts b/packages/core/tests/js/arrays/object-array/run.ts index 622cc377..26ba00e8 100644 --- a/packages/core/tests/js/arrays/object-array/run.ts +++ b/packages/core/tests/js/arrays/object-array/run.ts @@ -1,7 +1,6 @@ -import { array, object, common, variables } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { array, object, common, variables, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const array1 = array.createEmpty(); const object1 = object.create({ test: common.expressionFromString('true') }); diff --git a/packages/core/tests/js/arrays/string-array/run.ts b/packages/core/tests/js/arrays/string-array/run.ts index 9d779482..80d5ea12 100644 --- a/packages/core/tests/js/arrays/string-array/run.ts +++ b/packages/core/tests/js/arrays/string-array/run.ts @@ -1,7 +1,6 @@ -import { array, variables } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { array, variables, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const array1 = array.createEmpty(); array.push(array1, 'test'); array.push(array1, 'test2'); diff --git a/packages/core/tests/js/common/jsdoc-comment/run.ts b/packages/core/tests/js/common/jsdoc-comment/run.ts index 0dc71cf2..169d6682 100644 --- a/packages/core/tests/js/common/jsdoc-comment/run.ts +++ b/packages/core/tests/js/common/jsdoc-comment/run.ts @@ -1,6 +1,6 @@ import { common, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: { ast: AstTypes.Program }): void { +export function run(ast: AstTypes.Program): void { const functionDeclaration = ast.body[0] as AstTypes.FunctionDeclaration; common.addJsDocComment(functionDeclaration, { diff --git a/packages/core/tests/js/exports/default-export-with-variable/run.ts b/packages/core/tests/js/exports/default-export-with-variable/run.ts index 89137ad3..6515509e 100644 --- a/packages/core/tests/js/exports/default-export-with-variable/run.ts +++ b/packages/core/tests/js/exports/default-export-with-variable/run.ts @@ -1,7 +1,6 @@ -import { object, common, variables, exports } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { object, common, variables, exports, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const object1 = object.create({ test: common.createLiteral('string') }); diff --git a/packages/core/tests/js/exports/default-export/run.ts b/packages/core/tests/js/exports/default-export/run.ts index 7e350fb2..8e0d9fc1 100644 --- a/packages/core/tests/js/exports/default-export/run.ts +++ b/packages/core/tests/js/exports/default-export/run.ts @@ -1,7 +1,6 @@ -import { object, common, exports } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { object, common, exports, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const object1 = object.create({ test: common.createLiteral('string') }); diff --git a/packages/core/tests/js/exports/named-export-with-existing/run.ts b/packages/core/tests/js/exports/named-export-with-existing/run.ts index 6f8b8c1c..fc0609f2 100644 --- a/packages/core/tests/js/exports/named-export-with-existing/run.ts +++ b/packages/core/tests/js/exports/named-export-with-existing/run.ts @@ -1,7 +1,6 @@ import { common, variables, object, exports, type AstTypes } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const variableFallback = variables.declaration(ast, 'const', 'variable', object.createEmpty()); const existingExport = exports.namedExport(ast, 'named', variableFallback); diff --git a/packages/core/tests/js/exports/named-export/run.ts b/packages/core/tests/js/exports/named-export/run.ts index ead2b2d5..67d468df 100644 --- a/packages/core/tests/js/exports/named-export/run.ts +++ b/packages/core/tests/js/exports/named-export/run.ts @@ -1,7 +1,6 @@ -import { common, variables, object, exports } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { common, variables, object, exports, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const object1 = object.create({ test: common.createLiteral('string') }); diff --git a/packages/core/tests/js/functions/arrow-function/run.ts b/packages/core/tests/js/functions/arrow-function/run.ts index 56250235..5856f8bb 100644 --- a/packages/core/tests/js/functions/arrow-function/run.ts +++ b/packages/core/tests/js/functions/arrow-function/run.ts @@ -1,7 +1,6 @@ -import { functions, common } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { functions, common, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const insideExpression = common.expressionFromString("console.log('foo')"); const functionCall = functions.arrowFunction(false, insideExpression); const expression = common.expressionStatement(functionCall); diff --git a/packages/core/tests/js/functions/function-call-by-identifier/run.ts b/packages/core/tests/js/functions/function-call-by-identifier/run.ts index 28ef6ceb..ebbb3734 100644 --- a/packages/core/tests/js/functions/function-call-by-identifier/run.ts +++ b/packages/core/tests/js/functions/function-call-by-identifier/run.ts @@ -1,7 +1,6 @@ -import { functions, common } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { functions, common, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const functionCall = functions.callByIdentifier('foo', ['a']); const expression = common.expressionStatement(functionCall); ast.body.push(expression); diff --git a/packages/core/tests/js/functions/function-call/run.ts b/packages/core/tests/js/functions/function-call/run.ts index acce02d3..41fe064e 100644 --- a/packages/core/tests/js/functions/function-call/run.ts +++ b/packages/core/tests/js/functions/function-call/run.ts @@ -1,7 +1,6 @@ -import { functions, common } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { functions, common, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const functionCall = functions.call('foo', ['bar']); const expression = common.expressionStatement(functionCall); ast.body.push(expression); diff --git a/packages/core/tests/js/imports/avoid-duplicating-imports/run.ts b/packages/core/tests/js/imports/avoid-duplicating-imports/run.ts index 496abb10..faacdcda 100644 --- a/packages/core/tests/js/imports/avoid-duplicating-imports/run.ts +++ b/packages/core/tests/js/imports/avoid-duplicating-imports/run.ts @@ -1,7 +1,6 @@ -import { imports } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { imports, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { imports.addEmpty(ast, 'package/file.js'); imports.addDefault(ast, 'package', 'MyPackage'); imports.addNamed(ast, 'package2', { Named: 'Named' }); diff --git a/packages/core/tests/js/imports/default-import/run.ts b/packages/core/tests/js/imports/default-import/run.ts index 003f65bd..7f50dd3b 100644 --- a/packages/core/tests/js/imports/default-import/run.ts +++ b/packages/core/tests/js/imports/default-import/run.ts @@ -1,6 +1,5 @@ -import { imports } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { imports, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { imports.addDefault(ast, 'package', 'MyPackage'); } diff --git a/packages/core/tests/js/imports/empty-import/run.ts b/packages/core/tests/js/imports/empty-import/run.ts index 4d89d304..505bce37 100644 --- a/packages/core/tests/js/imports/empty-import/run.ts +++ b/packages/core/tests/js/imports/empty-import/run.ts @@ -1,7 +1,6 @@ -import { imports } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { imports, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { imports.addEmpty(ast, './relativ/file.css'); // allow importing from npm packages diff --git a/packages/core/tests/js/imports/named-import-merging/run.ts b/packages/core/tests/js/imports/named-import-merging/run.ts index 29aeac9b..c6cb2c65 100644 --- a/packages/core/tests/js/imports/named-import-merging/run.ts +++ b/packages/core/tests/js/imports/named-import-merging/run.ts @@ -1,6 +1,5 @@ -import { imports } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { imports, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { imports.addNamed(ast, 'package', { namedTwo: 'namedTwo' }, false); } diff --git a/packages/core/tests/js/imports/named-import/run.ts b/packages/core/tests/js/imports/named-import/run.ts index 163c9c42..f16bd0e9 100644 --- a/packages/core/tests/js/imports/named-import/run.ts +++ b/packages/core/tests/js/imports/named-import/run.ts @@ -1,7 +1,6 @@ -import { imports } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { imports, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { imports.addNamed(ast, 'package', { namedOne: 'namedOne' }, false); imports.addNamed(ast, '@sveltejs/kit', { Handle: 'Handle' }, false); diff --git a/packages/core/tests/js/imports/namespaced-import/run.ts b/packages/core/tests/js/imports/namespaced-import/run.ts index f46a38af..7cf39897 100644 --- a/packages/core/tests/js/imports/namespaced-import/run.ts +++ b/packages/core/tests/js/imports/namespaced-import/run.ts @@ -1,6 +1,6 @@ import { imports, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: { ast: AstTypes.Program }): void { +export function run(ast: AstTypes.Program): void { imports.addNamespace(ast, 'package', 'foo'); imports.addNamespace(ast, './some-file', 'bar'); diff --git a/packages/core/tests/js/index.ts b/packages/core/tests/js/index.ts index 8cf489a4..6bcfda9f 100644 --- a/packages/core/tests/js/index.ts +++ b/packages/core/tests/js/index.ts @@ -25,7 +25,7 @@ for (const categoryDirectory of categoryDirectories) { // dynamic imports always need to provide the path inline for static analysis const module = await import(`./${categoryDirectory}/${testName}/run.ts`); - module.run({ ast }); + module.run(ast); const output = serializeScript(ast, input); const formattedOutput = await prettier.format(output, prettierConfig); diff --git a/packages/core/tests/js/object/create/run.ts b/packages/core/tests/js/object/create/run.ts index 8bd864b4..f5b51c32 100644 --- a/packages/core/tests/js/object/create/run.ts +++ b/packages/core/tests/js/object/create/run.ts @@ -1,7 +1,6 @@ -import { variables, object, common } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { variables, object, common, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const emptyObject = object.createEmpty(); const emptyVariable = variables.declaration(ast, 'const', 'empty', emptyObject); ast.body.push(emptyVariable); diff --git a/packages/core/tests/js/object/override-property/run.ts b/packages/core/tests/js/object/override-property/run.ts index 8ab3425c..9f284df3 100644 --- a/packages/core/tests/js/object/override-property/run.ts +++ b/packages/core/tests/js/object/override-property/run.ts @@ -1,7 +1,6 @@ import { variables, object, common, type AstTypes } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const variable = variables.declaration(ast, 'const', 'test', object.createEmpty()); const objectDeclarator = variable.declarations[0] as AstTypes.VariableDeclarator; const objectExpression = objectDeclarator.init as AstTypes.ObjectExpression; diff --git a/packages/core/tests/js/object/property/run.ts b/packages/core/tests/js/object/property/run.ts index c288c301..59866dfe 100644 --- a/packages/core/tests/js/object/property/run.ts +++ b/packages/core/tests/js/object/property/run.ts @@ -1,7 +1,6 @@ import { variables, object, common, type AstTypes } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const variable = variables.declaration(ast, 'const', 'test', object.createEmpty()); const objectDeclarator = variable.declarations[0] as AstTypes.VariableDeclarator; const objectExpression = objectDeclarator.init as AstTypes.ObjectExpression; diff --git a/packages/core/tests/js/object/remove-property/run.ts b/packages/core/tests/js/object/remove-property/run.ts index 0971c07a..d5c38e04 100644 --- a/packages/core/tests/js/object/remove-property/run.ts +++ b/packages/core/tests/js/object/remove-property/run.ts @@ -1,7 +1,6 @@ import { variables, object, type AstTypes } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const variable = variables.declaration(ast, 'const', 'test', object.createEmpty()); const objectDeclarator = variable.declarations[0] as AstTypes.VariableDeclarator; const objectExpression = objectDeclarator.init as AstTypes.ObjectExpression; diff --git a/packages/core/tests/js/variables/declaration/run.ts b/packages/core/tests/js/variables/declaration/run.ts index ba1880e7..01b7a047 100644 --- a/packages/core/tests/js/variables/declaration/run.ts +++ b/packages/core/tests/js/variables/declaration/run.ts @@ -1,7 +1,6 @@ -import { variables, common, object } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { variables, common, object, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const testNumberVariable = variables.declaration( ast, 'const', diff --git a/packages/core/tests/js/variables/identifier/run.ts b/packages/core/tests/js/variables/identifier/run.ts index a5870f4d..5ab8962e 100644 --- a/packages/core/tests/js/variables/identifier/run.ts +++ b/packages/core/tests/js/variables/identifier/run.ts @@ -1,7 +1,6 @@ -import { variables } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { variables, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const barVariable = variables.declaration(ast, 'const', 'bar', variables.identifier('foo')); ast.body.push(barVariable); } diff --git a/packages/core/tests/js/variables/type-annotate-declarator/run.ts b/packages/core/tests/js/variables/type-annotate-declarator/run.ts index 4a0de3af..fc074609 100644 --- a/packages/core/tests/js/variables/type-annotate-declarator/run.ts +++ b/packages/core/tests/js/variables/type-annotate-declarator/run.ts @@ -1,7 +1,6 @@ -import { variables } from '@sveltejs/cli-core/js'; -import type { ScriptFileEditor } from '@sveltejs/cli-core'; +import { variables, type AstTypes } from '@sveltejs/cli-core/js'; -export function run({ ast }: ScriptFileEditor): void { +export function run(ast: AstTypes.Program): void { const decl = ast.body[0] as any; const annotatedDecl = variables.typeAnnotateDeclarator(decl.declarations[0], 'string'); decl.declarations[0] = annotatedDecl; From d345d91039f42eab20bd80e6c74b85463d9e434a Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Sun, 29 Dec 2024 10:28:23 +0100 Subject: [PATCH 03/14] fix most type errors --- packages/addons/drizzle/index.ts | 4 +- packages/addons/eslint/index.ts | 3 +- packages/addons/lucia/index.ts | 4 +- packages/addons/sveltekit-adapter/index.ts | 4 +- packages/addons/vitest-addon/index.ts | 14 +++- packages/ast-tooling/index.ts | 81 ++++++++++++++++------ 6 files changed, 77 insertions(+), 33 deletions(-) diff --git a/packages/addons/drizzle/index.ts b/packages/addons/drizzle/index.ts index 626efaaa..91223585 100644 --- a/packages/addons/drizzle/index.ts +++ b/packages/addons/drizzle/index.ts @@ -191,8 +191,8 @@ export default defineAddon({ url: common.expressionFromString('process.env.DATABASE_URL'), authToken }), - verbose: { type: 'BooleanLiteral', value: true }, - strict: { type: 'BooleanLiteral', value: true }, + verbose: { type: 'Literal', value: true }, + strict: { type: 'Literal', value: true }, driver }); diff --git a/packages/addons/eslint/index.ts b/packages/addons/eslint/index.ts index 1f86cb54..9fbbe9e8 100644 --- a/packages/addons/eslint/index.ts +++ b/packages/addons/eslint/index.ts @@ -7,7 +7,6 @@ import { functions, imports, object, - type AstKinds, type AstTypes } from '@sveltejs/cli-core/js'; import { parseJson, parseScript } from '@sveltejs/cli-core/parsers'; @@ -55,7 +54,7 @@ export default defineAddon({ const { ast, generateCode } = parseScript(content); const eslintConfigs: Array< - AstKinds.ExpressionKind | AstTypes.SpreadElement | AstTypes.ObjectExpression + AstTypes.Expression | AstTypes.SpreadElement | AstTypes.ObjectExpression > = []; const gitIgnorePathStatement = common.statementFromString( diff --git a/packages/addons/lucia/index.ts b/packages/addons/lucia/index.ts index d064c807..360d9267 100644 --- a/packages/addons/lucia/index.ts +++ b/packages/addons/lucia/index.ts @@ -54,7 +54,7 @@ export default defineAddon({ sv.file(`drizzle.config.${ext}`, (content) => { const { ast, generateCode } = parseScript(content); - const isProp = (name: string, node: AstTypes.ObjectProperty) => + const isProp = (name: string, node: AstTypes.Property) => node.key.type === 'Identifier' && node.key.name === name; // prettier-ignore @@ -648,7 +648,7 @@ function getAuthHandleContent() { };`; } -function getCallExpression(ast: AstTypes.ASTNode): AstTypes.CallExpression | undefined { +function getCallExpression(ast: AstTypes.Node): AstTypes.CallExpression | undefined { let callExpression; // prettier-ignore diff --git a/packages/addons/sveltekit-adapter/index.ts b/packages/addons/sveltekit-adapter/index.ts index 880c0d2b..43daed95 100644 --- a/packages/addons/sveltekit-adapter/index.ts +++ b/packages/addons/sveltekit-adapter/index.ts @@ -78,8 +78,8 @@ export default defineAddon({ const { value: config } = exports.defaultExport(ast, object.createEmpty()); const kitConfig = config.properties.find( - (p) => p.type === 'ObjectProperty' && p.key.type === 'Identifier' && p.key.name === 'kit' - ) as AstTypes.ObjectProperty | undefined; + (p) => p.type === 'Property' && p.key.type === 'Identifier' && p.key.name === 'kit' + ) as AstTypes.Property | undefined; if (kitConfig && kitConfig.value.type === 'ObjectExpression') { // only overrides the `adapter` property so we can reset it's args diff --git a/packages/addons/vitest-addon/index.ts b/packages/addons/vitest-addon/index.ts index 26909799..e4af3395 100644 --- a/packages/addons/vitest-addon/index.ts +++ b/packages/addons/vitest-addon/index.ts @@ -50,7 +50,9 @@ export default defineAddon({ importDecl.importKind === 'value' && importDecl.specifiers?.some( (specifier) => - specifier.type === 'ImportSpecifier' && specifier.imported.name === 'defineConfig' + specifier.type === 'ImportSpecifier' && + specifier.imported.type == 'Identifier' && + specifier.imported.name === 'defineConfig' ) ); @@ -62,7 +64,10 @@ export default defineAddon({ } else { // otherwise, just remove the `defineConfig` specifier const idxToRemove = defineConfigImportDecl?.specifiers?.findIndex( - (s) => s.type === 'ImportSpecifier' && s.imported.name === 'defineConfig' + (s) => + s.type === 'ImportSpecifier' && + s.imported.type == 'Identifier' && + s.imported.name === 'defineConfig' ); if (idxToRemove) defineConfigImportDecl?.specifiers?.splice(idxToRemove, 1); } @@ -81,7 +86,10 @@ export default defineAddon({ ) { // if the previous `defineConfig` was aliased, reuse the alias for the "vitest/config" import const importSpecifier = defineConfigImportDecl?.specifiers?.find( - (sp) => sp.type === 'ImportSpecifier' && sp.imported.name === 'defineConfig' + (sp) => + sp.type === 'ImportSpecifier' && + sp.imported.type == 'Identifier' && + sp.imported.name === 'defineConfig' ); const defineConfigAlias = (importSpecifier?.local?.name ?? 'defineConfig') as string; imports.addNamed(ast, 'vitest/config', { defineConfig: defineConfigAlias }); diff --git a/packages/ast-tooling/index.ts b/packages/ast-tooling/index.ts index 9e151b0b..820f6f1f 100644 --- a/packages/ast-tooling/index.ts +++ b/packages/ast-tooling/index.ts @@ -1,5 +1,3 @@ -import { parse as tsParse } from 'recast/parsers/typescript.js'; -import { parse as recastParse, print as recastPrint, type Options as RecastOptions } from 'recast'; import { Document, Element, type ChildNode } from 'domhandler'; import { ElementType, parseDocument } from 'htmlparser2'; import { removeElement, textContent } from 'domutils'; @@ -15,8 +13,12 @@ import { } from 'postcss'; import * as fleece from 'silver-fleece'; import * as Walker from 'zimmerframe'; -import type { namedTypes as AstTypes } from 'ast-types'; -import type * as AstKinds from 'ast-types/gen/kinds'; +// todo: why is this file only generated during `dev` startup, if it's prefixed with type? +// @ts-expect-error +import { TsEstree } from './ts-estree.ts'; +import { print as esrapPrint } from 'esrap'; +import * as acorn from 'acorn'; +import { tsPlugin } from 'acorn-typescript'; /** * Most of the AST tooling is pretty big in bundle size and bundling takes forever. @@ -48,34 +50,69 @@ export type { ChildNode as HtmlChildNode, // js - AstTypes, - AstKinds, + TsEstree as AstTypes, //css CssChildNode }; -export function parseScript(content: string): AstTypes.Program { - const recastOutput: { program: AstTypes.Program } = recastParse(content, { - parser: { - parse: tsParse +export function parseScript(content: string): TsEstree.Program { + const comments: any[] = []; + + // @ts-expect-error + const acornTs = acorn.Parser.extend(tsPlugin({ allowSatisfies: true })); + + const ast = acornTs.parse(content, { + ecmaVersion: 'latest', + sourceType: 'module', + locations: true, + onComment: (block, value, start, end) => { + if (block && /\n/.test(value)) { + let a = start; + while (a > 0 && content[a - 1] !== '\n') a -= 1; + + let b = a; + while (/[ \t]/.test(content[b])) b += 1; + + const indentation = content.slice(a, b); + value = value.replace(new RegExp(`^${indentation}`, 'gm'), ''); + } + + comments.push({ type: block ? 'Block' : 'Line', value, start, end }); } }); - return recastOutput.program; -} + Walker.walk(ast, null, { + _(node, { next }) { + const commentNode /** @type {import('../../src/types').NodeWithComments} */ = + /** @type {any} */ node; + let comment; -export function serializeScript(ast: AstTypes.ASTNode, previousContent?: string): string { - let options: RecastOptions | undefined; - if (!previousContent) { - // provide sensible defaults if we generate a new file - options = { - quote: 'single', - useTabs: true - }; - } + while (comments[0] && comments[0].start < node.start) { + comment = comments.shift(); + // @ts-expect-error + (commentNode.leadingComments ||= []).push(comment); + } + + next(); + + if (comments[0]) { + const slice = content.slice(node.end, comments[0].start); + + if (/^[,) \t]*$/.test(slice)) { + // @ts-expect-error + commentNode.trailingComments = [comments.shift()]; + } + } + } + }); + + return ast as TsEstree.Program; +} - return recastPrint(ast, options).code; +export function serializeScript(ast: TsEstree.Node): string { + const { code } = esrapPrint(ast, {}); + return code; } export function parseCss(content: string): CssAst { From 18e937da88965adfbc0d20e129bfe4a16647bc0b Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Sun, 29 Dec 2024 10:30:09 +0100 Subject: [PATCH 04/14] update snapshots --- packages/core/tests/js/arrays/object-array/output.ts | 9 +-------- packages/core/tests/js/common/jsdoc-comment/output.ts | 1 + .../js/exports/default-export-with-variable/output.ts | 4 +--- packages/core/tests/js/exports/default-export/output.ts | 4 +--- .../js/exports/named-export-with-existing/output.ts | 5 +---- packages/core/tests/js/exports/named-export/output.ts | 9 ++------- .../js/functions/function-call-by-identifier/output.ts | 1 + packages/core/tests/js/functions/function-call/output.ts | 1 + packages/core/tests/js/object/create/output.ts | 6 +----- .../core/tests/js/object/override-property/output.ts | 6 +----- packages/core/tests/js/object/property/output.ts | 5 +---- packages/core/tests/js/variables/declaration/output.ts | 5 +---- 12 files changed, 13 insertions(+), 43 deletions(-) diff --git a/packages/core/tests/js/arrays/object-array/output.ts b/packages/core/tests/js/arrays/object-array/output.ts index 1fa08802..0042b760 100644 --- a/packages/core/tests/js/arrays/object-array/output.ts +++ b/packages/core/tests/js/arrays/object-array/output.ts @@ -1,8 +1 @@ -const array = [ - { - test: true - }, - { - test2: 'string' - } -]; +const array = [{ test: true }, { test2: 'string' }]; diff --git a/packages/core/tests/js/common/jsdoc-comment/output.ts b/packages/core/tests/js/common/jsdoc-comment/output.ts index 2394044f..80679227 100644 --- a/packages/core/tests/js/common/jsdoc-comment/output.ts +++ b/packages/core/tests/js/common/jsdoc-comment/output.ts @@ -4,5 +4,6 @@ function switchToLanguage(newLanguage) { const canonicalPath = i18n.route($page.url.pathname); const localisedPath = i18n.resolveRoute(canonicalPath, newLanguage); + goto(localisedPath); } diff --git a/packages/core/tests/js/exports/default-export-with-variable/output.ts b/packages/core/tests/js/exports/default-export-with-variable/output.ts index 920afac1..6fb3d6a8 100644 --- a/packages/core/tests/js/exports/default-export-with-variable/output.ts +++ b/packages/core/tests/js/exports/default-export-with-variable/output.ts @@ -1,5 +1,3 @@ -const object = { - test: 'string' -}; +const object = { test: 'string' }; export default object; diff --git a/packages/core/tests/js/exports/default-export/output.ts b/packages/core/tests/js/exports/default-export/output.ts index d2516b3e..e1a8f21a 100644 --- a/packages/core/tests/js/exports/default-export/output.ts +++ b/packages/core/tests/js/exports/default-export/output.ts @@ -1,3 +1 @@ -export default { - test: 'string' -}; +export default { test: 'string' }; diff --git a/packages/core/tests/js/exports/named-export-with-existing/output.ts b/packages/core/tests/js/exports/named-export-with-existing/output.ts index 3cc72fee..c252cd00 100644 --- a/packages/core/tests/js/exports/named-export-with-existing/output.ts +++ b/packages/core/tests/js/exports/named-export-with-existing/output.ts @@ -1,4 +1 @@ -export const named = { - test: 'string', - test2: 'string2' -}; +export const named = { test: 'string', test2: 'string2' }; diff --git a/packages/core/tests/js/exports/named-export/output.ts b/packages/core/tests/js/exports/named-export/output.ts index fec3056c..c978b2f0 100644 --- a/packages/core/tests/js/exports/named-export/output.ts +++ b/packages/core/tests/js/exports/named-export/output.ts @@ -1,7 +1,2 @@ -export const variable = { - test: 'string' -}; - -export const variable2 = { - test2: 'string2' -}; +export const variable = { test: 'string' }; +export const variable2 = { test2: 'string2' }; diff --git a/packages/core/tests/js/functions/function-call-by-identifier/output.ts b/packages/core/tests/js/functions/function-call-by-identifier/output.ts index 8b54d5a3..448dad44 100644 --- a/packages/core/tests/js/functions/function-call-by-identifier/output.ts +++ b/packages/core/tests/js/functions/function-call-by-identifier/output.ts @@ -3,4 +3,5 @@ function foo(bar: string) { } const a = 'bar'; + foo(a); diff --git a/packages/core/tests/js/functions/function-call/output.ts b/packages/core/tests/js/functions/function-call/output.ts index 69b852d5..590e7538 100644 --- a/packages/core/tests/js/functions/function-call/output.ts +++ b/packages/core/tests/js/functions/function-call/output.ts @@ -1,4 +1,5 @@ function foo(bar: string) { console.log(bar); } + foo('bar'); diff --git a/packages/core/tests/js/object/create/output.ts b/packages/core/tests/js/object/create/output.ts index b8a403ca..a633f4a0 100644 --- a/packages/core/tests/js/object/create/output.ts +++ b/packages/core/tests/js/object/create/output.ts @@ -1,6 +1,2 @@ const empty = {}; - -const created = { - foo: 1, - bar: 'string' -}; +const created = { foo: 1, bar: 'string' }; diff --git a/packages/core/tests/js/object/override-property/output.ts b/packages/core/tests/js/object/override-property/output.ts index 0069e775..c9790a5a 100644 --- a/packages/core/tests/js/object/override-property/output.ts +++ b/packages/core/tests/js/object/override-property/output.ts @@ -1,5 +1 @@ -const test = { - foo: 2, - bar: 'string2', - lorem: false -}; +const test = { foo: 2, bar: 'string2', lorem: false }; diff --git a/packages/core/tests/js/object/property/output.ts b/packages/core/tests/js/object/property/output.ts index 3967f063..e0bd5000 100644 --- a/packages/core/tests/js/object/property/output.ts +++ b/packages/core/tests/js/object/property/output.ts @@ -1,4 +1 @@ -const test = { - foo: 1, - bar: 'string' -}; +const test = { foo: 1, bar: 'string' }; diff --git a/packages/core/tests/js/variables/declaration/output.ts b/packages/core/tests/js/variables/declaration/output.ts index e96c602e..60f98ba1 100644 --- a/packages/core/tests/js/variables/declaration/output.ts +++ b/packages/core/tests/js/variables/declaration/output.ts @@ -1,5 +1,2 @@ const testNumber = 2; - -const testObject = { - foo: 'bar' -}; +const testObject = { foo: 'bar' }; From c14011e04ef8ac920db4d0509561cc6825cc7352 Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Sun, 29 Dec 2024 11:15:51 +0100 Subject: [PATCH 05/14] remove useless function --- packages/ast-tooling/index.ts | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/packages/ast-tooling/index.ts b/packages/ast-tooling/index.ts index 820f6f1f..e2227751 100644 --- a/packages/ast-tooling/index.ts +++ b/packages/ast-tooling/index.ts @@ -1,6 +1,5 @@ import { Document, Element, type ChildNode } from 'domhandler'; import { ElementType, parseDocument } from 'htmlparser2'; -import { removeElement, textContent } from 'domutils'; import serializeDom from 'dom-serializer'; import { Root as CssAst, @@ -159,36 +158,6 @@ export type SvelteAst = { cssAst: CssAst; }; -export function parseSvelte(content: string): SvelteAst { - const htmlAst = parseHtml(content); - - let scriptTag, styleTag; - for (const node of htmlAst.childNodes) { - if (node.type === ElementType.Script) { - scriptTag = node; - removeElement(scriptTag); - } else if (node.type === ElementType.Style) { - styleTag = node; - removeElement(styleTag); - } - } - - if (!scriptTag) { - scriptTag = new Element('script', {}, undefined, ElementType.ElementType.Script); - } - if (!styleTag) { - styleTag = new Element('style', {}, undefined, ElementType.ElementType.Style); - } - - const css = textContent(styleTag); - const cssAst = parseCss(css); - - const scriptValue = textContent(scriptTag); - const jsAst = parseScript(scriptValue); - - return { jsAst, htmlAst, cssAst }; -} - export function parseJson(content: string): any { // some of the files we need to process contain comments. The default // node JSON.parse fails parsing those comments. From 1f12c1fc510afcb82bd2379112d14abc59334eae Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Sun, 29 Dec 2024 11:17:24 +0100 Subject: [PATCH 06/14] fix --- packages/core/tooling/parsers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/tooling/parsers.ts b/packages/core/tooling/parsers.ts index 846cb8ea..2bfe4b85 100644 --- a/packages/core/tooling/parsers.ts +++ b/packages/core/tooling/parsers.ts @@ -8,7 +8,7 @@ type ParseBase = { export function parseScript(source: string): { ast: tools.AstTypes.Program } & ParseBase { const ast = tools.parseScript(source); - const generateCode = () => tools.serializeScript(ast, source); + const generateCode = () => tools.serializeScript(ast); return { ast, source, generateCode }; } From 3e2ee466440694da724c1f84a1ba3ea183f6e7cb Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Tue, 31 Dec 2024 09:53:50 +0100 Subject: [PATCH 07/14] fix check --- packages/addons/lucia/index.ts | 13 +++++++------ packages/ast-tooling/ts-estree.ts | 17 ++++++++++++++++- packages/core/tooling/js/common.ts | 17 +++++++---------- packages/core/tooling/js/imports.ts | 1 + 4 files changed, 31 insertions(+), 17 deletions(-) diff --git a/packages/addons/lucia/index.ts b/packages/addons/lucia/index.ts index 360d9267..3f699b3c 100644 --- a/packages/addons/lucia/index.ts +++ b/packages/addons/lucia/index.ts @@ -58,12 +58,12 @@ export default defineAddon({ node.key.type === 'Identifier' && node.key.name === name; // prettier-ignore - Walker.walk(ast as AstTypes.ASTNode, {}, { - ObjectProperty(node) { - if (isProp('dialect', node) && node.value.type === 'StringLiteral') { + Walker.walk(ast as AstTypes.Node, {}, { + Property(node) { + if (isProp('dialect', node) && node.value.type === 'Literal' && node.value.value === typeof 'string') { drizzleDialect = node.value.value as Dialect; } - if (isProp('schema', node) && node.value.type === 'StringLiteral') { + if (isProp('schema', node) && node.value.type === 'Literal' && node.value.value === typeof 'string') { schemaPath = node.value.value; } } @@ -600,13 +600,14 @@ function createLuciaType(name: string): AstTypes.TSInterfaceBody['body'][number] type: 'Identifier', name }, + computed: false, typeAnnotation: { type: 'TSTypeAnnotation', typeAnnotation: { type: 'TSIndexedAccessType', objectType: { type: 'TSImportType', - argument: { type: 'StringLiteral', value: '$lib/server/auth' }, + argument: { type: 'Literal', value: '$lib/server/auth' }, qualifier: { type: 'Identifier', name: 'SessionValidationResult' @@ -615,7 +616,7 @@ function createLuciaType(name: string): AstTypes.TSInterfaceBody['body'][number] indexType: { type: 'TSLiteralType', literal: { - type: 'StringLiteral', + type: 'Literal', value: name } } diff --git a/packages/ast-tooling/ts-estree.ts b/packages/ast-tooling/ts-estree.ts index 919cc91e..347b53f7 100644 --- a/packages/ast-tooling/ts-estree.ts +++ b/packages/ast-tooling/ts-estree.ts @@ -4,7 +4,7 @@ declare module 'estree' { // new types interface TSTypeAnnotation { type: 'TSTypeAnnotation'; - typeAnnotation: TSStringKeyword | TSTypeReference | TSUnionType; + typeAnnotation: TSStringKeyword | TSTypeReference | TSUnionType | TSIndexedAccessType; } interface TSStringKeyword { type: 'TSStringKeyword'; @@ -59,6 +59,20 @@ declare module 'estree' { argument: Literal; qualifier: Identifier; } + interface TSIndexedAccessType { + type: 'TSIndexedAccessType'; + objectType: TSImportType; + indexType: TSLiteralType; + } + interface TSLiteralType { + type: 'TSLiteralType'; + literal: Literal; + } + interface TSSatisfiesExpression extends BaseNode { + type: 'TSSatisfiesExpression'; + expression: Expression; + typeAnnotation: TSTypeAnnotation['typeAnnotation']; + } // enhanced types interface Identifier { @@ -66,6 +80,7 @@ declare module 'estree' { } interface ExpressionMap { TSAsExpression: TSAsExpression; + TSSatisfiesExpression: TSSatisfiesExpression; } interface NodeMap { TSModuleDeclaration: TSModuleDeclaration; diff --git a/packages/core/tooling/js/common.ts b/packages/core/tooling/js/common.ts index ebfcf180..79c4b6bd 100644 --- a/packages/core/tooling/js/common.ts +++ b/packages/core/tooling/js/common.ts @@ -9,7 +9,7 @@ import decircular from 'decircular'; import dedent from 'dedent'; export function addJsDocTypeComment(node: AstTypes.Node, type: string): void { - const comment: AstTypes.CommentBlock = { + const comment: AstTypes.Comment = { type: 'Line', value: `* @type {${type}} ` }; @@ -23,21 +23,18 @@ export function addJsDocComment(node: AstTypes.Node, params: Record n.type === 'CommentBlock' && n.value === comment.value - ); + const found = node.leadingComments.find((n) => n.type === 'Block' && n.value === comment.value); if (!found) node.leadingComments.push(comment); } @@ -55,7 +52,7 @@ export function typeAnnotateExpression( } export function satisfiesExpression( - node: AstKinds.ExpressionKind, + node: AstTypes.Expression, type: string ): AstTypes.TSSatisfiesExpression { const expression: AstTypes.TSSatisfiesExpression = { diff --git a/packages/core/tooling/js/imports.ts b/packages/core/tooling/js/imports.ts index 0f2f36c3..f8eb4435 100644 --- a/packages/core/tooling/js/imports.ts +++ b/packages/core/tooling/js/imports.ts @@ -18,6 +18,7 @@ export function addEmpty(ast: AstTypes.Program, importFrom: string): void { export function addNamespace(ast: AstTypes.Program, importFrom: string, importAs: string): void { const expectedImportDeclaration: AstTypes.ImportDeclaration = { type: 'ImportDeclaration', + importKind: 'value', source: { type: 'Literal', value: importFrom }, specifiers: [ { From e263f9efd72a0de1cc31ee43164a44436b633b1f Mon Sep 17 00:00:00 2001 From: Manuel Serret Date: Fri, 10 Jan 2025 16:49:20 +0100 Subject: [PATCH 08/14] update esrap --- packages/ast-tooling/index.ts | 5 ++++- packages/ast-tooling/package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/ast-tooling/index.ts b/packages/ast-tooling/index.ts index e2227751..76574432 100644 --- a/packages/ast-tooling/index.ts +++ b/packages/ast-tooling/index.ts @@ -110,7 +110,10 @@ export function parseScript(content: string): TsEstree.Program { } export function serializeScript(ast: TsEstree.Node): string { - const { code } = esrapPrint(ast, {}); + const { code } = esrapPrint(ast, { + indent: '\t', + quotes: 'single' + }); return code; } diff --git a/packages/ast-tooling/package.json b/packages/ast-tooling/package.json index 95a9d47a..d166033a 100644 --- a/packages/ast-tooling/package.json +++ b/packages/ast-tooling/package.json @@ -30,7 +30,7 @@ "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", - "esrap": "^1.3.2", + "esrap": "^1.4.2", "htmlparser2": "^9.1.0", "postcss": "^8.4.49", "silver-fleece": "^1.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e643e78..7107fce6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -127,8 +127,8 @@ importers: specifier: ^3.1.0 version: 3.2.1 esrap: - specifier: ^1.3.2 - version: 1.3.2 + specifier: ^1.4.2 + version: 1.4.2 htmlparser2: specifier: ^9.1.0 version: 9.1.0 @@ -1312,8 +1312,8 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - esrap@1.3.2: - resolution: {integrity: sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==} + esrap@1.4.2: + resolution: {integrity: sha512-FhVlJzvTw7ZLxYZ7RyHwQCFE64dkkpzGNNnphaGCLwjqGk1SQcqzbgdx9FowPCktx6NOSHkzvcZ3vsvdH54YXA==} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -3372,7 +3372,7 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@1.3.2: + esrap@1.4.2: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -4104,7 +4104,7 @@ snapshots: axobject-query: 4.1.0 clsx: 2.1.1 esm-env: 1.2.1 - esrap: 1.3.2 + esrap: 1.4.2 is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.17 From 197e3507afa197421d340c2767bd7e8c5bd32483 Mon Sep 17 00:00:00 2001 From: Manuel Date: Sun, 9 Feb 2025 16:18:15 +0100 Subject: [PATCH 09/14] fix --- package.json | 4 +- pnpm-lock.yaml | 723 +------------------------------------------------ 2 files changed, 17 insertions(+), 710 deletions(-) diff --git a/package.json b/package.json index 0aeaea18..5d01b29a 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "@sveltejs/eslint-config": "^8.1.0", "@svitejs/changesets-changelog-github-compact": "^1.2.0", "@types/node": "^22.10.2", - "@vitest/ui": "^3.0.3", + "@vitest/ui": "^3.0.5", "eslint": "^9.17.0", "magic-string": "^0.30.15", "prettier": "^3.4.2", @@ -39,5 +39,5 @@ "unplugin-isolated-decl": "^0.8.3", "vitest": "^3.0.5" }, - "packageManager": "pnpm@10.1.0" + "packageManager": "pnpm@10.2.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e4cf551..b656a901 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,21 +14,6 @@ importers: '@playwright/test': specifier: ^1.49.1 version: 1.49.1 -<<<<<<< HEAD - '@rollup/plugin-commonjs': - specifier: ^28.0.2 - version: 28.0.2(rollup@4.29.1) - '@rollup/plugin-dynamic-import-vars': - specifier: ^2.1.5 - version: 2.1.5(rollup@4.29.1) - '@rollup/plugin-json': - specifier: ^6.1.0 - version: 6.1.0(rollup@4.29.1) - '@rollup/plugin-node-resolve': - specifier: ^15.3.0 - version: 15.3.1(rollup@4.29.1) -======= ->>>>>>> main '@sveltejs/create': specifier: workspace:* version: link:packages/create @@ -42,8 +27,8 @@ importers: specifier: ^22.10.2 version: 22.10.2 '@vitest/ui': - specifier: ^3.0.3 - version: 3.0.3(vitest@3.0.5) + specifier: ^3.0.5 + version: 3.0.5(vitest@3.0.5) eslint: specifier: ^9.17.0 version: 9.17.0 @@ -58,23 +43,10 @@ importers: version: 2.5.6(prettier@3.4.2) prettier-plugin-svelte: specifier: ^3.3.2 -<<<<<<< HEAD version: 3.3.2(prettier@3.4.2)(svelte@5.16.0) - rollup: - specifier: ^4.28.1 - version: 4.29.1 - rollup-plugin-esbuild: - specifier: ^6.1.1 - version: 6.1.1(esbuild@0.21.5)(rollup@4.29.1) - rollup-plugin-preserve-shebangs: - specifier: ^0.2.0 - version: 0.2.0(rollup@4.29.1) -======= - version: 3.3.2(prettier@3.4.2)(svelte@5.12.0) rolldown: specifier: 1.0.0-beta.1 version: 1.0.0-beta.1(@babel/runtime@7.26.0) ->>>>>>> main sv: specifier: workspace:* version: link:packages/cli @@ -89,14 +61,10 @@ importers: version: 8.18.2(eslint@9.17.0)(typescript@5.7.2) unplugin-isolated-decl: specifier: ^0.8.3 -<<<<<<< HEAD - version: 0.8.3(rollup@4.29.1)(typescript@5.7.2) -======= version: 0.8.3(rollup@4.34.5)(typescript@5.7.2) ->>>>>>> main vitest: specifier: ^3.0.5 - version: 3.0.5(@types/node@22.10.2)(@vitest/ui@3.0.3(vitest@3.0.5)) + version: 3.0.5(@types/node@22.10.2)(@vitest/ui@3.0.5) community-addon-template: dependencies: @@ -112,7 +80,7 @@ importers: version: link:../packages/cli vitest: specifier: ^3.0.5 - version: 3.0.5(@types/node@22.10.2)(@vitest/ui@3.0.3(vitest@3.0.5)) + version: 3.0.5(@types/node@22.10.2)(@vitest/ui@3.0.5) packages/addons: dependencies: @@ -148,14 +116,7 @@ importers: version: 9.1.0 postcss: specifier: ^8.4.49 -<<<<<<< HEAD - version: 8.4.49 -======= version: 8.5.1 - recast: - specifier: ^0.23.9 - version: 0.23.9 ->>>>>>> main silver-fleece: specifier: ^1.2.1 version: 1.2.1 @@ -289,15 +250,9 @@ importers: magic-string: specifier: ^0.30.15 version: 0.30.17 -<<<<<<< HEAD - prompts: - specifier: ^2.4.2 - version: 2.4.2 -======= picocolors: specifier: ^1.1.1 version: 1.1.1 ->>>>>>> main semver: specifier: ^7.6.3 version: 7.6.3 @@ -398,137 +353,6 @@ packages: '@clack/core@0.4.0': resolution: {integrity: sha512-YJCYBsyJfNDaTbvDUVSJ3SgSuPrcujarRgkJ5NLjexDZKvaOiVVJvAQYx8lIgG0qRT8ff0fPgqyBCVivanIZ+A==} -<<<<<<< HEAD - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - 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-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - 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-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - 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-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - 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-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - 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-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - 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-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - 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/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - 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-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} -======= '@clack/prompts@0.9.0': resolution: {integrity: sha512-nGsytiExgUr4FL0pR/LeqxA28nz3E0cW7eLTSh3Iod9TGrbBt8Y7BHbV3mmkNC4G0evdYyQ3ZsbiBkk7ektArA==} @@ -688,7 +512,6 @@ packages: '@esbuild/win32-x64@0.24.2': resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} ->>>>>>> main cpu: [x64] os: [win32] @@ -863,16 +686,6 @@ packages: cpu: [x64] os: [freebsd] -<<<<<<< HEAD - '@rollup/plugin-node-resolve@15.3.1': - resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true -======= '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.1': resolution: {integrity: sha512-B/R4Vt8f8z/WmW9Y9NMgA+t5bCfRLmgZohs5mWf8KoD5FRlpvJtCo/SnD7fEg9npHEP5A28+Cikiyd7aCcKPSA==} cpu: [arm] @@ -917,10 +730,9 @@ packages: resolution: {integrity: sha512-k8Ld05OlxkzR/+Ob8+IESaZ4uFcgLwbbwtUZLoryn3S6lCogkclcN/4m1wo/PyWtUAWF5mdz83SrkRL8dS4AqA==} cpu: [x64] os: [win32] ->>>>>>> main - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + '@rollup/pluginutils@5.1.3': + resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -928,100 +740,6 @@ packages: rollup: optional: true -<<<<<<< HEAD - '@rollup/rollup-android-arm-eabi@4.29.1': - resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.29.1': - resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.29.1': - resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.29.1': - resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.29.1': - resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.29.1': - resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': - resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.29.1': - resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.29.1': - resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.29.1': - resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.29.1': - resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': - resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.29.1': - resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.29.1': - resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.29.1': - resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.29.1': - resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.29.1': - resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.29.1': - resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.29.1': - resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} -======= '@rollup/rollup-android-arm-eabi@4.34.5': resolution: {integrity: sha512-JXmmQcKQtpf3Z6lvA8akkrHDZ5AEfgc2hLMix1/X5BhQbezBQ0AP5GYLdU8jsQRme8qr2sscCe3wizp7UT0L9g==} cpu: [arm] @@ -1114,7 +832,6 @@ packages: '@rollup/rollup-win32-x64-msvc@4.34.5': resolution: {integrity: sha512-Mi8yVUlQOoeBpY72n75VLATptPGvj2lHa47rQdK9kZ4MoG5Ve86aVIU+PO3tBklTCBtILtdRfXS0EvIbXgmCAg==} ->>>>>>> main cpu: [x64] os: [win32] @@ -1242,9 +959,6 @@ packages: vite: optional: true - '@vitest/pretty-format@3.0.3': - resolution: {integrity: sha512-gCrM9F7STYdsDoNjGgYXKPq4SkSxwwIU5nkaQvdUxiQ0EcNlez+PdKOVIsUJvh9P9IeIFmjn4IIREWblOBpP2Q==} - '@vitest/pretty-format@3.0.5': resolution: {integrity: sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA==} @@ -1257,13 +971,10 @@ packages: '@vitest/spy@3.0.5': resolution: {integrity: sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg==} - '@vitest/ui@3.0.3': - resolution: {integrity: sha512-kGavHxFA3dETa61mgzdvxc3u/JSCiHR2o/0Z99IE8EAwtFxSLZeb2MofPKNVCPY3IAIcTx4blH57BJ1GuiRAUA==} + '@vitest/ui@3.0.5': + resolution: {integrity: sha512-gw2noso6WI+2PeMVCZFntdATS6xl9qhQcbhkPQ9sOmx/Xn0f4Bx4KDSbD90jpJPF0l5wOzSoGCmKyVR3W612mg==} peerDependencies: - vitest: 3.0.3 - - '@vitest/utils@3.0.3': - resolution: {integrity: sha512-f+s8CvyzPtMFY1eZKkIHGhPsQgYo5qCm6O8KZoim9qm1/jT64qBgGpO5tHscNH6BzRHM+edLNOP+3vO8+8pE/A==} + vitest: 3.0.5 '@vitest/utils@3.0.5': resolution: {integrity: sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg==} @@ -1327,16 +1038,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} -<<<<<<< HEAD - astring@1.9.0: - resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} - hasBin: true -======= - ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} ->>>>>>> main - axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -1532,13 +1233,8 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} -<<<<<<< HEAD - enhanced-resolve@5.18.0: - resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} -======= enhanced-resolve@5.18.1: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} ->>>>>>> main engines: {node: '>=10.13.0'} enquirer@2.4.1: @@ -1552,15 +1248,9 @@ packages: es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} -<<<<<<< HEAD - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} -======= esbuild@0.24.2: resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} ->>>>>>> main hasBin: true escape-string-regexp@4.0.0: @@ -1839,13 +1529,6 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} -<<<<<<< HEAD - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - -======= ->>>>>>> main is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -1945,21 +1628,12 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - loupe@3.1.2: - resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} - loupe@3.1.3: resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} -<<<<<<< HEAD - magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - -======= ->>>>>>> main magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} @@ -2235,14 +1909,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} -<<<<<<< HEAD - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - -======= ->>>>>>> main reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -2256,18 +1922,8 @@ packages: '@babel/runtime': optional: true -<<<<<<< HEAD - rollup-plugin-preserve-shebangs@0.2.0: - resolution: {integrity: sha512-OEyTIfZwUJ7yUAVAbegac/bNvp1WJzgZcQNCFprWX42wwwOqlJwrev9lUmzZdYVgCWct+03xUPvZg4RfgkM9oQ==} - peerDependencies: - rollup: '*' - - rollup@4.29.1: - resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} -======= rollup@4.34.5: resolution: {integrity: sha512-GyVCmpo9z/HYqFD8QWoBUnz1Q9xC22t8tPAZm/AvAcUg2U2/+DkboEvSioMwv042zE4I9N3FEhx7fiCT2YHzKQ==} ->>>>>>> main engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2327,16 +1983,6 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} -<<<<<<< HEAD - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead -======= - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} ->>>>>>> main - spawndamnit@3.0.1: resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} @@ -2851,72 +2497,6 @@ snapshots: tslib: 2.8.1 optional: true -<<<<<<< HEAD - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.21.5': -======= '@emnapi/runtime@1.3.1': dependencies: tslib: 2.8.1 @@ -3000,7 +2580,6 @@ snapshots: optional: true '@esbuild/win32-x64@0.24.2': ->>>>>>> main optional: true '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': @@ -3155,47 +2734,6 @@ snapshots: '@polka/url@1.0.0-next.28': {} -<<<<<<< HEAD - '@rollup/plugin-commonjs@28.0.2(rollup@4.29.1)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.4.2(picomatch@4.0.2) - is-reference: 1.2.1 - magic-string: 0.30.17 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.29.1 - - '@rollup/plugin-dynamic-import-vars@2.1.5(rollup@4.29.1)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - astring: 1.9.0 - estree-walker: 2.0.2 - fast-glob: 3.3.2 - magic-string: 0.30.17 - optionalDependencies: - rollup: 4.29.1 - - '@rollup/plugin-json@6.1.0(rollup@4.29.1)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - optionalDependencies: - rollup: 4.29.1 - - '@rollup/plugin-node-resolve@15.3.1(rollup@4.29.1)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.10 - optionalDependencies: - rollup: 4.29.1 - - '@rollup/pluginutils@5.1.4(rollup@4.29.1)': -======= '@rolldown/binding-darwin-arm64@1.0.0-beta.1': optional: true @@ -3235,71 +2773,11 @@ snapshots: optional: true '@rollup/pluginutils@5.1.3(rollup@4.34.5)': ->>>>>>> main dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: -<<<<<<< HEAD - rollup: 4.29.1 - - '@rollup/rollup-android-arm-eabi@4.29.1': - optional: true - - '@rollup/rollup-android-arm64@4.29.1': - optional: true - - '@rollup/rollup-darwin-arm64@4.29.1': - optional: true - - '@rollup/rollup-darwin-x64@4.29.1': - optional: true - - '@rollup/rollup-freebsd-arm64@4.29.1': - optional: true - - '@rollup/rollup-freebsd-x64@4.29.1': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.29.1': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.29.1': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.29.1': - optional: true - - '@rollup/rollup-linux-loongarch64-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.29.1': - optional: true - - '@rollup/rollup-linux-x64-musl@4.29.1': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.29.1': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.29.1': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.29.1': -======= rollup: 4.34.5 '@rollup/rollup-android-arm-eabi@4.34.5': @@ -3357,7 +2835,6 @@ snapshots: optional: true '@rollup/rollup-win32-x64-msvc@4.34.5': ->>>>>>> main optional: true '@stylistic/eslint-plugin-js@2.12.1(eslint@9.17.0)': @@ -3371,13 +2848,8 @@ snapshots: '@stylistic/eslint-plugin-js': 2.12.1(eslint@9.17.0) eslint: 9.17.0 eslint-config-prettier: 9.1.0(eslint@9.17.0) -<<<<<<< HEAD eslint-plugin-n: 17.15.1(eslint@9.17.0) eslint-plugin-svelte: 2.46.1(eslint@9.17.0)(svelte@5.16.0) -======= - eslint-plugin-n: 17.13.1(eslint@9.17.0) - eslint-plugin-svelte: 2.46.0(eslint@9.17.0)(svelte@5.12.0) ->>>>>>> main globals: 15.14.0 typescript: 5.7.2 typescript-eslint: 8.18.2(eslint@9.17.0)(typescript@5.7.2) @@ -3528,24 +3000,14 @@ snapshots: optionalDependencies: vite: 6.1.0(@types/node@22.10.2) - '@vitest/pretty-format@3.0.3': - dependencies: - tinyrainbow: 2.0.0 - '@vitest/pretty-format@3.0.5': dependencies: tinyrainbow: 2.0.0 '@vitest/runner@3.0.5': dependencies: -<<<<<<< HEAD - '@vitest/pretty-format': 2.1.8 - magic-string: 0.30.17 - pathe: 1.1.2 -======= '@vitest/utils': 3.0.5 pathe: 2.0.2 ->>>>>>> main '@vitest/snapshot@3.0.5': dependencies: @@ -3557,22 +3019,16 @@ snapshots: dependencies: tinyspy: 3.0.2 - '@vitest/ui@3.0.3(vitest@3.0.5)': + '@vitest/ui@3.0.5(vitest@3.0.5)': dependencies: - '@vitest/utils': 3.0.3 + '@vitest/utils': 3.0.5 fflate: 0.8.2 flatted: 3.3.2 pathe: 2.0.2 sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 2.0.0 - vitest: 3.0.5(@types/node@22.10.2)(@vitest/ui@3.0.3(vitest@3.0.5)) - - '@vitest/utils@3.0.3': - dependencies: - '@vitest/pretty-format': 3.0.3 - loupe: 3.1.2 - tinyrainbow: 2.0.0 + vitest: 3.0.5(@types/node@22.10.2)(@vitest/ui@3.0.5) '@vitest/utils@3.0.5': dependencies: @@ -3623,14 +3079,6 @@ snapshots: assertion-error@2.0.1: {} -<<<<<<< HEAD - astring@1.9.0: {} -======= - ast-types@0.16.1: - dependencies: - tslib: 2.8.1 ->>>>>>> main - axobject-query@4.1.0: {} b4a@1.6.7: {} @@ -3797,11 +3245,7 @@ snapshots: dependencies: once: 1.4.0 -<<<<<<< HEAD - enhanced-resolve@5.18.0: -======= enhanced-resolve@5.18.1: ->>>>>>> main dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -3817,31 +3261,6 @@ snapshots: esbuild@0.24.2: optionalDependencies: -<<<<<<< HEAD - '@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/aix-ppc64': 0.24.2 '@esbuild/android-arm': 0.24.2 '@esbuild/android-arm64': 0.24.2 @@ -3867,7 +3286,6 @@ snapshots: '@esbuild/win32-arm64': 0.24.2 '@esbuild/win32-ia32': 0.24.2 '@esbuild/win32-x64': 0.24.2 ->>>>>>> main escape-string-regexp@4.0.0: {} @@ -3890,17 +3308,10 @@ snapshots: eslint-plugin-n@17.15.1(eslint@9.17.0): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) -<<<<<<< HEAD - enhanced-resolve: 5.18.0 - eslint: 9.17.0 - eslint-plugin-es-x: 7.8.0(eslint@9.17.0) - get-tsconfig: 4.8.1 -======= enhanced-resolve: 5.18.1 eslint: 9.17.0 eslint-plugin-es-x: 7.8.0(eslint@9.17.0) get-tsconfig: 4.10.0 ->>>>>>> main globals: 15.14.0 ignore: 5.3.2 minimatch: 9.0.5 @@ -3918,13 +3329,8 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.1) postcss-safe-parser: 6.0.0(postcss@8.5.1) postcss-selector-parser: 6.1.2 -<<<<<<< HEAD - semver: 7.6.3 - svelte-eslint-parser: 0.43.0(svelte@5.16.0) -======= semver: 7.7.1 - svelte-eslint-parser: 0.43.0(svelte@5.12.0) ->>>>>>> main + svelte-eslint-parser: 0.43.0(svelte@5.16.0) optionalDependencies: svelte: 5.16.0 transitivePeerDependencies: @@ -4191,13 +3597,6 @@ snapshots: imurmurhash@0.1.4: {} -<<<<<<< HEAD - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - -======= ->>>>>>> main is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -4280,19 +3679,10 @@ snapshots: lodash.startcase@4.4.0: {} - loupe@3.1.2: {} - loupe@3.1.3: {} lru-cache@10.4.3: {} -<<<<<<< HEAD - magic-string@0.25.9: - dependencies: - sourcemap-codec: 1.4.8 - -======= ->>>>>>> main magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -4521,55 +3911,6 @@ snapshots: resolve-pkg-maps@1.0.0: {} -<<<<<<< HEAD - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - reusify@1.0.4: {} - - rollup-plugin-esbuild@6.1.1(esbuild@0.21.5)(rollup@4.29.1): - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) - debug: 4.4.0 - es-module-lexer: 1.6.0 - esbuild: 0.21.5 - get-tsconfig: 4.8.1 - rollup: 4.29.1 - transitivePeerDependencies: - - supports-color - - rollup-plugin-preserve-shebangs@0.2.0(rollup@4.29.1): - dependencies: - magic-string: 0.25.9 - rollup: 4.29.1 - - rollup@4.29.1: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.29.1 - '@rollup/rollup-android-arm64': 4.29.1 - '@rollup/rollup-darwin-arm64': 4.29.1 - '@rollup/rollup-darwin-x64': 4.29.1 - '@rollup/rollup-freebsd-arm64': 4.29.1 - '@rollup/rollup-freebsd-x64': 4.29.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 - '@rollup/rollup-linux-arm-musleabihf': 4.29.1 - '@rollup/rollup-linux-arm64-gnu': 4.29.1 - '@rollup/rollup-linux-arm64-musl': 4.29.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 - '@rollup/rollup-linux-riscv64-gnu': 4.29.1 - '@rollup/rollup-linux-s390x-gnu': 4.29.1 - '@rollup/rollup-linux-x64-gnu': 4.29.1 - '@rollup/rollup-linux-x64-musl': 4.29.1 - '@rollup/rollup-win32-arm64-msvc': 4.29.1 - '@rollup/rollup-win32-ia32-msvc': 4.29.1 - '@rollup/rollup-win32-x64-msvc': 4.29.1 -======= reusify@1.0.4: {} rolldown@1.0.0-beta.1(@babel/runtime@7.26.0): @@ -4613,7 +3954,6 @@ snapshots: '@rollup/rollup-win32-arm64-msvc': 4.34.5 '@rollup/rollup-win32-ia32-msvc': 4.34.5 '@rollup/rollup-win32-x64-msvc': 4.34.5 ->>>>>>> main fsevents: 2.3.3 run-parallel@1.2.0: @@ -4663,12 +4003,6 @@ snapshots: source-map-js@1.2.1: {} -<<<<<<< HEAD - sourcemap-codec@1.4.8: {} -======= - source-map@0.6.1: {} ->>>>>>> main - spawndamnit@3.0.1: dependencies: cross-spawn: 7.0.6 @@ -4734,13 +4068,7 @@ snapshots: dependencies: has-flag: 4.0.0 -<<<<<<< HEAD - supports-preserve-symlinks-flag@1.0.0: {} - svelte-eslint-parser@0.43.0(svelte@5.16.0): -======= - svelte-eslint-parser@0.43.0(svelte@5.12.0): ->>>>>>> main dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -4888,15 +4216,9 @@ snapshots: universalify@0.1.2: {} -<<<<<<< HEAD - unplugin-isolated-decl@0.8.3(rollup@4.29.1)(typescript@5.7.2): - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.1) -======= unplugin-isolated-decl@0.8.3(rollup@4.34.5)(typescript@5.7.2): dependencies: '@rollup/pluginutils': 5.1.3(rollup@4.34.5) ->>>>>>> main debug: 4.4.0 magic-string: 0.30.17 oxc-parser: 0.37.0 @@ -4927,13 +4249,8 @@ snapshots: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 -<<<<<<< HEAD - pathe: 1.1.2 - vite: 5.4.11(@types/node@22.10.2) -======= pathe: 2.0.2 vite: 6.1.0(@types/node@22.10.2) ->>>>>>> main transitivePeerDependencies: - '@types/node' - jiti @@ -4950,20 +4267,14 @@ snapshots: vite@6.1.0(@types/node@22.10.2): dependencies: -<<<<<<< HEAD - esbuild: 0.21.5 - postcss: 8.4.49 - rollup: 4.29.1 -======= esbuild: 0.24.2 postcss: 8.5.1 rollup: 4.34.5 ->>>>>>> main optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 - vitest@3.0.5(@types/node@22.10.2)(@vitest/ui@3.0.3(vitest@3.0.5)): + vitest@3.0.5(@types/node@22.10.2)(@vitest/ui@3.0.5): dependencies: '@vitest/expect': 3.0.5 '@vitest/mocker': 3.0.5(vite@6.1.0(@types/node@22.10.2)) @@ -4976,11 +4287,7 @@ snapshots: debug: 4.4.0 expect-type: 1.1.0 magic-string: 0.30.17 -<<<<<<< HEAD - pathe: 1.1.2 -======= pathe: 2.0.2 ->>>>>>> main std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.2 @@ -4991,7 +4298,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.10.2 - '@vitest/ui': 3.0.3(vitest@3.0.5) + '@vitest/ui': 3.0.5(vitest@3.0.5) transitivePeerDependencies: - jiti - less From 8a5f993b4c97dde1c52fad86361c76d1fbb4d87f Mon Sep 17 00:00:00 2001 From: Manuel Date: Sun, 9 Feb 2025 16:26:01 +0100 Subject: [PATCH 10/14] fixes --- packages/addons/sveltekit-adapter/index.ts | 4 ++-- packages/ast-tooling/index.ts | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/addons/sveltekit-adapter/index.ts b/packages/addons/sveltekit-adapter/index.ts index 568899f7..9bbc8262 100644 --- a/packages/addons/sveltekit-adapter/index.ts +++ b/packages/addons/sveltekit-adapter/index.ts @@ -83,10 +83,10 @@ export default defineAddon({ if (kitConfig && kitConfig.value.type === 'ObjectExpression') { const adapterProp = kitConfig.value.properties.find( - (p) => - p.type === 'ObjectProperty' && p.key.type === 'Identifier' && p.key.name === 'adapter' + (p) => p.type === 'Property' && p.key.type === 'Identifier' && p.key.name === 'adapter' ); if (adapterProp) { + // @ts-expect-error comment nodes unknown in estree adapterProp.comments = []; } diff --git a/packages/ast-tooling/index.ts b/packages/ast-tooling/index.ts index 76574432..c77f7463 100644 --- a/packages/ast-tooling/index.ts +++ b/packages/ast-tooling/index.ts @@ -12,9 +12,7 @@ import { } from 'postcss'; import * as fleece from 'silver-fleece'; import * as Walker from 'zimmerframe'; -// todo: why is this file only generated during `dev` startup, if it's prefixed with type? -// @ts-expect-error -import { TsEstree } from './ts-estree.ts'; +import type { TsEstree } from './ts-estree.ts'; import { print as esrapPrint } from 'esrap'; import * as acorn from 'acorn'; import { tsPlugin } from 'acorn-typescript'; From 4216131bc8adef63579e6b9b8f039ad945583af5 Mon Sep 17 00:00:00 2001 From: Manuel Date: Sun, 9 Feb 2025 16:31:54 +0100 Subject: [PATCH 11/14] remove now duplicated code --- packages/addons/vitest-addon/index.ts | 60 --------------------------- 1 file changed, 60 deletions(-) diff --git a/packages/addons/vitest-addon/index.ts b/packages/addons/vitest-addon/index.ts index 0e207942..c0cb0c63 100644 --- a/packages/addons/vitest-addon/index.ts +++ b/packages/addons/vitest-addon/index.ts @@ -144,66 +144,6 @@ export default defineAddon({ const workspaceArray = object.property(testObject, 'workspace', array.createEmpty()); array.push(workspaceArray, clientObjectExpression); array.push(workspaceArray, serverObjectExpression); - // find `defineConfig` import declaration for "vite" - const importDecls = ast.body.filter((n) => n.type === 'ImportDeclaration'); - const defineConfigImportDecl = importDecls.find( - (importDecl) => - (importDecl.source.value === 'vite' || importDecl.source.value === 'vitest/config') && - importDecl.importKind === 'value' && - importDecl.specifiers?.some( - (specifier) => - specifier.type === 'ImportSpecifier' && - specifier.imported.type == 'Identifier' && - specifier.imported.name === 'defineConfig' - ) - ); - - // we'll need to replace the "vite" import for a "vitest/config" import. - // if `defineConfig` is the only specifier in that "vite" import, remove the entire import declaration - if (defineConfigImportDecl?.specifiers?.length === 1) { - const idxToRemove = ast.body.indexOf(defineConfigImportDecl); - ast.body.splice(idxToRemove, 1); - } else { - // otherwise, just remove the `defineConfig` specifier - const idxToRemove = defineConfigImportDecl?.specifiers?.findIndex( - (s) => - s.type === 'ImportSpecifier' && - s.imported.type == 'Identifier' && - s.imported.name === 'defineConfig' - ); - if (idxToRemove) defineConfigImportDecl?.specifiers?.splice(idxToRemove, 1); - } - - const config = common.expressionFromString('defineConfig({})'); - const defaultExport = exports.defaultExport(ast, config); - - const test = object.create({ - include: common.expressionFromString("['src/**/*.{test,spec}.{js,ts}']") - }); - - // uses the `defineConfig` helper - if ( - defaultExport.value.type === 'CallExpression' && - defaultExport.value.arguments[0]?.type === 'ObjectExpression' - ) { - // if the previous `defineConfig` was aliased, reuse the alias for the "vitest/config" import - const importSpecifier = defineConfigImportDecl?.specifiers?.find( - (sp) => - sp.type === 'ImportSpecifier' && - sp.imported.type == 'Identifier' && - sp.imported.name === 'defineConfig' - ); - const defineConfigAlias = (importSpecifier?.local?.name ?? 'defineConfig') as string; - imports.addNamed(ast, 'vitest/config', { defineConfig: defineConfigAlias }); - - object.properties(defaultExport.value.arguments[0], { test }); - } else if (defaultExport.value.type === 'ObjectExpression') { - // if the config is just an object expression, just add the property - object.properties(defaultExport.value, { test }); - } else { - // unexpected config shape - log.warn('Unexpected vite config for vitest add-on. Could not update.'); - } return generateCode(); }); From a37ab528965efdd079d9ab8b05d0b1a37876e054 Mon Sep 17 00:00:00 2001 From: Manuel Date: Sun, 9 Feb 2025 17:31:53 +0100 Subject: [PATCH 12/14] fix sveltekit-adapter addon --- packages/addons/sveltekit-adapter/index.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/addons/sveltekit-adapter/index.ts b/packages/addons/sveltekit-adapter/index.ts index 9bbc8262..b2ebe841 100644 --- a/packages/addons/sveltekit-adapter/index.ts +++ b/packages/addons/sveltekit-adapter/index.ts @@ -70,6 +70,9 @@ export default defineAddon({ if (adapterImportDecl) { // replaces the import's source with the new adapter adapterImportDecl.source.value = adapter.package; + // reset raw value, so that the string is re-generated + adapterImportDecl.source.raw = undefined; + adapterName = adapterImportDecl.specifiers?.find((s) => s.type === 'ImportDefaultSpecifier') ?.local?.name as string; } else { @@ -86,8 +89,7 @@ export default defineAddon({ (p) => p.type === 'Property' && p.key.type === 'Identifier' && p.key.name === 'adapter' ); if (adapterProp) { - // @ts-expect-error comment nodes unknown in estree - adapterProp.comments = []; + adapterProp.leadingComments = []; } // only overrides the `adapter` property so we can reset it's args From 9a57307b7c8fdf34bff8d2c30e631ccd758ea059 Mon Sep 17 00:00:00 2001 From: Manuel Date: Sun, 9 Feb 2025 17:52:19 +0100 Subject: [PATCH 13/14] fix lucia --- packages/addons/lucia/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/addons/lucia/index.ts b/packages/addons/lucia/index.ts index 5c8df8bf..ed91ec43 100644 --- a/packages/addons/lucia/index.ts +++ b/packages/addons/lucia/index.ts @@ -61,11 +61,11 @@ export default defineAddon({ // prettier-ignore Walker.walk(ast as AstTypes.Node, {}, { Property(node) { - if (isProp('dialect', node) && node.value.type === 'Literal' && node.value.value === typeof 'string') { + if (isProp('dialect', node) && node.value.type === 'Literal' && typeof node.value.type === 'string') { drizzleDialect = node.value.value as Dialect; } - if (isProp('schema', node) && node.value.type === 'Literal' && node.value.value === typeof 'string') { - schemaPath = node.value.value; + if (isProp('schema', node) && node.value.type === 'Literal' && typeof node.value.type === 'string') { + schemaPath = node.value.value as string; } } }) From 8b6ab0ec65229d761143b4e028f298cc1654a700 Mon Sep 17 00:00:00 2001 From: Manuel Date: Tue, 11 Feb 2025 18:33:31 +0100 Subject: [PATCH 14/14] update `esrap` --- packages/ast-tooling/package.json | 2 +- pnpm-lock.yaml | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/ast-tooling/package.json b/packages/ast-tooling/package.json index d166033a..7843a518 100644 --- a/packages/ast-tooling/package.json +++ b/packages/ast-tooling/package.json @@ -30,7 +30,7 @@ "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", - "esrap": "^1.4.2", + "esrap": "^1.4.4", "htmlparser2": "^9.1.0", "postcss": "^8.4.49", "silver-fleece": "^1.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b656a901..00c33ab9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -109,8 +109,8 @@ importers: specifier: ^3.1.0 version: 3.2.1 esrap: - specifier: ^1.4.2 - version: 1.4.2 + specifier: ^1.4.4 + version: 1.4.4 htmlparser2: specifier: ^9.1.0 version: 9.1.0 @@ -1340,6 +1340,9 @@ packages: esrap@1.4.2: resolution: {integrity: sha512-FhVlJzvTw7ZLxYZ7RyHwQCFE64dkkpzGNNnphaGCLwjqGk1SQcqzbgdx9FowPCktx6NOSHkzvcZ3vsvdH54YXA==} + esrap@1.4.4: + resolution: {integrity: sha512-tDN6xP/r/b3WmdpWm7LybrD252hY52IokcycPnO+WHfhFF0+n5AWtcLLK7VNV6m0uYgVRhGVs8OkZwRyfC7HzQ==} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -3413,6 +3416,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + esrap@1.4.4: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0