diff --git a/.changeset/wyw-alpha-static-eval.md b/.changeset/wyw-alpha-static-eval.md new file mode 100644 index 000000000..c0ffbdce9 --- /dev/null +++ b/.changeset/wyw-alpha-static-eval.md @@ -0,0 +1,8 @@ +--- +"@linaria/atomic": patch +"@linaria/core": patch +"@linaria/react": patch +"@linaria/stylelint": patch +--- + +Migrate WyW dependencies to 2.0.0-alpha.1 and expose processor static evaluation semantics for the new evaluator architecture. diff --git a/babel-plugins/transform-import-meta.cjs b/babel-plugins/transform-import-meta.cjs new file mode 100644 index 000000000..316059ad8 --- /dev/null +++ b/babel-plugins/transform-import-meta.cjs @@ -0,0 +1,25 @@ +module.exports = ({ types: t }) => ({ + name: 'transform-import-meta-url', + visitor: { + MemberExpression(path) { + const { object, property, computed } = path.node; + if (computed) return; + if (!t.isMetaProperty(object)) return; + if (!t.isIdentifier(object.meta, { name: 'import' })) return; + if (!t.isIdentifier(object.property, { name: 'meta' })) return; + if (!t.isIdentifier(property, { name: 'url' })) return; + const requireUrl = t.callExpression( + t.memberExpression(t.identifier('module'), t.identifier('require')), + [t.stringLiteral('url')] + ); + const pathToFileURL = t.memberExpression( + requireUrl, + t.identifier('pathToFileURL') + ); + const fileUrl = t.callExpression(pathToFileURL, [ + t.identifier('__filename'), + ]); + path.replaceWith(t.memberExpression(fileUrl, t.identifier('href'))); + }, + }, +}); diff --git a/babel.config.js b/babel.config.js index dee6c7137..882f740d4 100644 --- a/babel.config.js +++ b/babel.config.js @@ -19,6 +19,8 @@ const commonJSTargets = { node: '12', }; +const transformImportMeta = require('./babel-plugins/transform-import-meta.cjs'); + module.exports = { presets: ['@babel/preset-typescript'], plugins: ['@babel/plugin-proposal-explicit-resource-management'], @@ -47,6 +49,7 @@ module.exports = { ], '@babel/preset-typescript', ], + plugins: [transformImportMeta], }, }, overrides: [ diff --git a/examples/astro-solid/package.json b/examples/astro-solid/package.json index fb582908a..611de3194 100644 --- a/examples/astro-solid/package.json +++ b/examples/astro-solid/package.json @@ -8,7 +8,7 @@ "@astrojs/solid-js": "^1.2.3", "@babel/core": "^7.23.5", "@linaria/core": "workspace:^", - "@wyw-in-js/vite": "^1.0.6", + "@wyw-in-js/vite": "2.0.0-alpha.1", "astro": "^1.6.10", "solid-js": "^1.6.2", "vite": "^3", diff --git a/examples/esbuild/package.json b/examples/esbuild/package.json index 128314efa..c9e649af4 100644 --- a/examples/esbuild/package.json +++ b/examples/esbuild/package.json @@ -7,7 +7,7 @@ "linaria-website": "workspace:^" }, "devDependencies": { - "@wyw-in-js/esbuild": "^1.0.6", + "@wyw-in-js/esbuild": "2.0.0-alpha.1", "esbuild": "^0.15.16" }, "scripts": { diff --git a/examples/rollup/package.json b/examples/rollup/package.json index 71637ec27..8797a161e 100644 --- a/examples/rollup/package.json +++ b/examples/rollup/package.json @@ -13,7 +13,7 @@ "@rollup/plugin-commonjs": "^25.0.4", "@rollup/plugin-image": "^3.0.2", "@rollup/plugin-node-resolve": "^15.2.1", - "@wyw-in-js/rollup": "^1.0.6", + "@wyw-in-js/rollup": "2.0.0-alpha.1", "rollup": "^4.0.0", "rollup-plugin-css-only": "^4.3.0" }, diff --git a/examples/vite/package.json b/examples/vite/package.json index 23fdfa197..bfb51d20b 100644 --- a/examples/vite/package.json +++ b/examples/vite/package.json @@ -11,7 +11,7 @@ "devDependencies": { "@rollup/plugin-node-resolve": "^15.2.1", "@vitejs/plugin-react": "^2.1.0", - "@wyw-in-js/vite": "^1.0.6", + "@wyw-in-js/vite": "2.0.0-alpha.1", "vite": "^3.2.10" }, "scripts": { diff --git a/examples/vpssr-linaria-solid/package.json b/examples/vpssr-linaria-solid/package.json index 9d7a430ac..537b8b85a 100644 --- a/examples/vpssr-linaria-solid/package.json +++ b/examples/vpssr-linaria-solid/package.json @@ -11,7 +11,7 @@ "license": "ISC", "dependencies": { "@linaria/core": "workspace:^", - "@wyw-in-js/vite": "^1.0.6", + "@wyw-in-js/vite": "2.0.0-alpha.1", "babel-preset-solid": "^1.6.2", "compression": "^1.7.4", "express": "^4.20.0", diff --git a/examples/webpack5/package.json b/examples/webpack5/package.json index 43b7fed1e..758a916f3 100644 --- a/examples/webpack5/package.json +++ b/examples/webpack5/package.json @@ -9,7 +9,7 @@ }, "devDependencies": { "@babel/core": "^7.23.5", - "@wyw-in-js/webpack-loader": "^1.0.6", + "@wyw-in-js/webpack-loader": "2.0.0-alpha.1", "babel-loader": "^9.1.0", "cross-env": "^7.0.3", "css-hot-loader": "^1.4.4", diff --git a/jest.config.js b/jest.config.js index 1393034f5..64554dd3c 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,12 @@ module.exports = { + cache: false, testEnvironment: 'node', collectCoverageFrom: ['src/*.ts'], - transformIgnorePatterns: ['node_modules/(?!@linaria)'], + transformIgnorePatterns: [ + 'node_modules/(?!.*(@linaria|@wyw-in-js|oxc-parser|oxc-resolver|oxc-transform|@oxc-project))', + ], + transform: { + '^.+\\.[tj]sx?$': ['babel-jest', { rootMode: 'upward' }], + }, testPathIgnorePatterns: ['/__utils__/'], }; diff --git a/packages/atomic/package.json b/packages/atomic/package.json index 4afd275f6..10b3846ef 100644 --- a/packages/atomic/package.json +++ b/packages/atomic/package.json @@ -51,8 +51,8 @@ "dependencies": { "@linaria/core": "workspace:^", "@linaria/react": "workspace:^", - "@wyw-in-js/processor-utils": "^1.0.4", - "@wyw-in-js/shared": "^1.0.4", + "@wyw-in-js/processor-utils": "2.0.0-alpha.1", + "@wyw-in-js/shared": "2.0.0-alpha.1", "known-css-properties": "^0.24.0", "postcss": "^8.4.31", "stylis": "^4.3.0", diff --git a/packages/atomic/src/processors/css.ts b/packages/atomic/src/processors/css.ts index 4089a9567..881a52a4a 100644 --- a/packages/atomic/src/processors/css.ts +++ b/packages/atomic/src/processors/css.ts @@ -1,5 +1,8 @@ -import type { SourceLocation } from '@babel/types'; -import type { Rules, ValueCache } from '@wyw-in-js/processor-utils'; +import type { + Rules, + SourceLocation, + ValueCache, +} from '@wyw-in-js/processor-utils'; import { logger } from '@wyw-in-js/shared'; import CssProcessor from '@linaria/core/processors/css'; diff --git a/packages/atomic/src/processors/styled.ts b/packages/atomic/src/processors/styled.ts index e6d1af7e3..0225f3a3b 100644 --- a/packages/atomic/src/processors/styled.ts +++ b/packages/atomic/src/processors/styled.ts @@ -1,5 +1,8 @@ -import type { SourceLocation } from '@babel/types'; -import type { Rules, ValueCache } from '@wyw-in-js/processor-utils'; +import type { + Rules, + SourceLocation, + ValueCache, +} from '@wyw-in-js/processor-utils'; import { logger, hasEvalMeta } from '@wyw-in-js/shared'; import type { IProps } from '@linaria/react/processors/styled'; diff --git a/packages/core/package.json b/packages/core/package.json index a18e839e3..85e607aa5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -58,7 +58,7 @@ "watch": "pnpm build:dist --watch & pnpm build:declarations --watch" }, "dependencies": { - "@wyw-in-js/processor-utils": "^1.0.4" + "@wyw-in-js/processor-utils": "2.0.0-alpha.1" }, "devDependencies": { "@babel/traverse": "^7.23.5", diff --git a/packages/core/src/processors/css.ts b/packages/core/src/processors/css.ts index 05b7ceae3..76c18ccef 100644 --- a/packages/core/src/processors/css.ts +++ b/packages/core/src/processors/css.ts @@ -1,7 +1,17 @@ -import type { SourceLocation, StringLiteral } from '@babel/types'; -import type { Rules, ValueCache } from '@wyw-in-js/processor-utils'; +import type { + Rules, + SourceLocation, + StringLiteral, + ValueCache, +} from '@wyw-in-js/processor-utils'; import { TaggedTemplateProcessor } from '@wyw-in-js/processor-utils'; +type StaticClassNameValue = { + className: string; + kind: 'class-name'; + value: string; +}; + export default class CssProcessor extends TaggedTemplateProcessor { public override get asSelector(): string { return this.className; @@ -48,4 +58,12 @@ export default class CssProcessor extends TaggedTemplateProcessor { return rules; } + + public getStaticValue(): StaticClassNameValue { + return { + className: this.className, + kind: 'class-name', + value: this.className, + }; + } } diff --git a/packages/react/package.json b/packages/react/package.json index b6cecd5f3..59d316ad3 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -60,8 +60,8 @@ "dependencies": { "@emotion/is-prop-valid": "^1.2.0", "@linaria/core": "workspace:^", - "@wyw-in-js/processor-utils": "^1.0.4", - "@wyw-in-js/shared": "^1.0.4", + "@wyw-in-js/processor-utils": "2.0.0-alpha.1", + "@wyw-in-js/shared": "2.0.0-alpha.1", "minimatch": "^9.0.3", "react-html-attributes": "^1.4.6", "resolve": "^1.22.8", diff --git a/packages/react/src/processors/styled.ts b/packages/react/src/processors/styled.ts index bbe64de84..9c02f9d80 100644 --- a/packages/react/src/processors/styled.ts +++ b/packages/react/src/processors/styled.ts @@ -1,14 +1,6 @@ import { readFileSync } from 'fs'; import { dirname, join, posix } from 'path'; -import type { - CallExpression, - Expression, - ObjectExpression, - SourceLocation, - StringLiteral, - Identifier, -} from '@babel/types'; import { buildSlug, TaggedTemplateProcessor, @@ -16,8 +8,14 @@ import { toValidCSSIdentifier, } from '@wyw-in-js/processor-utils'; import type { + CallExpression, + Expression, + Identifier, + ObjectExpression, Params, Rules, + SourceLocation, + StringLiteral, TailProcessorParams, ValueCache, } from '@wyw-in-js/processor-utils'; @@ -48,7 +46,105 @@ export interface IProps { vars?: Record; } -const singleQuotedStringLiteral = (value: string): StringLiteral => ({ +type StaticSerializableValue = { + kind: 'serializable'; + value: unknown; +}; + +type StaticClassNameValue = { + className: string; + kind: 'class-name'; + value?: unknown; +}; + +type StaticSelectorChainValue = { + className: string; + kind: 'selector-chain'; + selectors: string[]; + value: StaticStyledValue; +}; + +type StaticOpaqueComponentValue = { + className?: string; + kind: 'opaque-component'; + value?: unknown; +}; + +type StaticRuntimeCallbackValue = { + kind: 'runtime-callback'; + value?: unknown; +}; + +type StaticUnresolvedValue = { + details?: Readonly>; + kind: 'unresolved'; + reason: string; +}; + +type StaticProcessorValue = + | StaticClassNameValue + | StaticOpaqueComponentValue + | StaticRuntimeCallbackValue + | StaticSelectorChainValue + | StaticSerializableValue + | StaticUnresolvedValue; + +type StaticStyledValue = { + __wyw_meta: { + className: string; + extends: StaticStyledValue | null; + }; + displayName: string; +}; + +type RawStringLiteral = StringLiteral & { + extra: { + raw: string; + rawValue: string; + }; +}; + +const staticClassSelector = (className: string): string => `.${className}`; + +const isStaticStyledValue = (value: unknown): value is StaticStyledValue => { + if (typeof value !== 'object' || value === null) { + return false; + } + + const meta = (value as { __wyw_meta?: unknown }).__wyw_meta; + return ( + typeof meta === 'object' && + meta !== null && + typeof (meta as { className?: unknown }).className === 'string' && + ('extends' in meta + ? (meta as { extends?: unknown }).extends === null || + isStaticStyledValue((meta as { extends?: unknown }).extends) + : false) + ); +}; + +const staticStyledValueFromProcessorValue = ( + value: StaticProcessorValue +): StaticStyledValue | null => + value.kind === 'selector-chain' && isStaticStyledValue(value.value) + ? value.value + : null; + +const staticSelectorsFromProcessorValue = ( + value: StaticProcessorValue +): string[] => { + if (value.kind === 'selector-chain') { + return value.selectors; + } + + if (value.kind === 'class-name') { + return [staticClassSelector(value.className)]; + } + + return []; +}; + +const singleQuotedStringLiteral = (value: string): RawStringLiteral => ({ type: 'StringLiteral', value, extra: { @@ -290,6 +386,54 @@ export default class StyledProcessor extends TaggedTemplateProcessor { return rules; } + public getStaticValue(): StaticProcessorValue { + if (typeof this.component !== 'string' && !this.component.nonLinaria) { + return { + details: { + component: this.component.source, + }, + kind: 'unresolved', + reason: 'styled-target-static-value-required', + }; + } + + return this.createStaticSelectorValue(null); + } + + // eslint-disable-next-line class-methods-use-this + public resolveStaticInterpolation( + _interpolation: unknown, + value: StaticProcessorValue + ): StaticProcessorValue | null { + const selectors = staticSelectorsFromProcessorValue(value); + if (selectors.length === 0) { + return null; + } + + return { + kind: 'serializable', + value: selectors.join(''), + }; + } + + public resolveStaticTagTarget( + target: StaticProcessorValue + ): StaticProcessorValue | null { + if ( + target.kind === 'opaque-component' || + target.kind === 'runtime-callback' + ) { + return this.createStaticSelectorValue(null); + } + + const extendsValue = staticStyledValueFromProcessorValue(target); + if (!extendsValue && target.kind !== 'class-name') { + return null; + } + + return this.createStaticSelectorValue(extendsValue); + } + public override toString(): string { const res = (arg: string) => `${this.tagSourceCode()}(${arg})\`…\``; @@ -304,6 +448,32 @@ export default class StyledProcessor extends TaggedTemplateProcessor { return res(this.component.source); } + protected createStaticSelectorValue( + extendsValue: StaticStyledValue | null + ): StaticSelectorChainValue { + const ownSelector = staticClassSelector(this.className); + const selectors = [ownSelector]; + let current = extendsValue; + + while (current) { + selectors.push(staticClassSelector(current.__wyw_meta.className)); + current = current.__wyw_meta.extends; + } + + return { + className: this.className, + kind: 'selector-chain', + selectors, + value: { + displayName: this.displayName, + __wyw_meta: { + className: this.className, + extends: extendsValue, + }, + }, + }; + } + protected getCustomVariableId( source: string, unit: string, diff --git a/packages/stylelint/package.json b/packages/stylelint/package.json index 6a091cc33..c323d6cfe 100644 --- a/packages/stylelint/package.json +++ b/packages/stylelint/package.json @@ -30,8 +30,8 @@ "watch": "pnpm build:lib --watch & pnpm build:esm --watch & pnpm build:declarations --watch" }, "dependencies": { - "@wyw-in-js/shared": "^1.0.4", - "@wyw-in-js/transform": "^1.0.6" + "@wyw-in-js/shared": "2.0.0-alpha.1", + "@wyw-in-js/transform": "2.0.0-alpha.1" }, "devDependencies": { "@types/node": "^17.0.39" diff --git a/packages/testkit/jest.config.js b/packages/testkit/jest.config.js deleted file mode 100644 index e86e13bab..000000000 --- a/packages/testkit/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', -}; diff --git a/packages/testkit/package.json b/packages/testkit/package.json index 3ed1fc33c..3496625b0 100644 --- a/packages/testkit/package.json +++ b/packages/testkit/package.json @@ -17,7 +17,7 @@ "repository": "git@github.com:callstack/linaria.git", "license": "MIT", "scripts": { - "test": "jest --config ./jest.config.js --rootDir .", + "test": "jest --config ../../jest.config.js --rootDir .", "typecheck": "tsc --noEmit --composite false" }, "dependencies": { @@ -26,9 +26,9 @@ "@babel/traverse": "^7.23.5", "@linaria/react": "workspace:^", "@swc/core": "^1.3.20", - "@wyw-in-js/processor-utils": "^1.0.4", - "@wyw-in-js/shared": "^1.0.4", - "@wyw-in-js/transform": "^1.0.6", + "@wyw-in-js/processor-utils": "2.0.0-alpha.1", + "@wyw-in-js/shared": "2.0.0-alpha.1", + "@wyw-in-js/transform": "2.0.0-alpha.1", "debug": "^4.3.4", "dedent": "^1.5.1", "esbuild": "^0.15.16", diff --git a/packages/testkit/src/__fixtures__/assignToExport.js b/packages/testkit/src/__fixtures__/assignToExport.js index 8843e09e9..99de2e484 100644 --- a/packages/testkit/src/__fixtures__/assignToExport.js +++ b/packages/testkit/src/__fixtures__/assignToExport.js @@ -1 +1 @@ -var Padding = (exports.Padding = 4); +export const Padding = 4; diff --git a/packages/testkit/src/__fixtures__/foo-static.js b/packages/testkit/src/__fixtures__/foo-static.js new file mode 100644 index 000000000..145504ab4 --- /dev/null +++ b/packages/testkit/src/__fixtures__/foo-static.js @@ -0,0 +1,2 @@ +export const foo1 = 'foo1'; +export const foo2 = 'foo2'; diff --git a/packages/testkit/src/__fixtures__/objectExport.js b/packages/testkit/src/__fixtures__/objectExport.js index d1070862d..054ff4df2 100644 --- a/packages/testkit/src/__fixtures__/objectExport.js +++ b/packages/testkit/src/__fixtures__/objectExport.js @@ -1,3 +1,3 @@ -module.exports = { +export default { margin: 5, }; diff --git a/packages/testkit/src/__fixtures__/re-exports/empty.js b/packages/testkit/src/__fixtures__/re-exports/empty.js index cb0ff5c3b..1ad7fb5ca 100644 --- a/packages/testkit/src/__fixtures__/re-exports/empty.js +++ b/packages/testkit/src/__fixtures__/re-exports/empty.js @@ -1 +1 @@ -export {}; +export const unused = 'unused'; diff --git a/packages/testkit/src/__fixtures__/sample-script.js b/packages/testkit/src/__fixtures__/sample-script.js index 888cae37a..7a4e8a723 100644 --- a/packages/testkit/src/__fixtures__/sample-script.js +++ b/packages/testkit/src/__fixtures__/sample-script.js @@ -1 +1 @@ -module.exports = 42; +export default 42; diff --git a/packages/testkit/src/__fixtures__/with-babelrc/.babelrc.js b/packages/testkit/src/__fixtures__/with-babelrc/.babelrc.js deleted file mode 100644 index a4531949f..000000000 --- a/packages/testkit/src/__fixtures__/with-babelrc/.babelrc.js +++ /dev/null @@ -1,14 +0,0 @@ -const path = require('path'); - -module.exports = { - "plugins": [ - [ - "module-resolver", - { - "alias": { - "_": "./src/__fixtures__" - } - } - ] - ] -} diff --git a/packages/testkit/src/__fixtures__/with-babelrc/wyw-in-js.config.cjs b/packages/testkit/src/__fixtures__/with-babelrc/wyw-in-js.config.cjs new file mode 100644 index 000000000..d7877ca5e --- /dev/null +++ b/packages/testkit/src/__fixtures__/with-babelrc/wyw-in-js.config.cjs @@ -0,0 +1,16 @@ +const path = require('path'); + +module.exports = { + eval: { + resolver: 'hybrid', + customResolver(specifier) { + if (!specifier.startsWith('_/')) { + return Promise.resolve(null); + } + + return Promise.resolve({ + id: require.resolve(path.resolve(__dirname, '..', specifier.slice(2))), + }); + }, + }, +}; diff --git a/packages/testkit/src/__snapshots__/babel.test.ts.snap b/packages/testkit/src/__snapshots__/babel.test.ts.snap index f8126e167..668064b53 100644 --- a/packages/testkit/src/__snapshots__/babel.test.ts.snap +++ b/packages/testkit/src/__snapshots__/babel.test.ts.snap @@ -49,7 +49,7 @@ exports[`strategy shaker cache should use cached value 2`] = ` CSS: -.text_t13jq05 {font-size: cached-foo1} +.text_t13jq05 {font-size: foo1} Dependencies: ./__fixtures__/foo-nonstatic @@ -61,7 +61,7 @@ exports[`strategy shaker cache should use cached value even if only part is requ CSS: -.text_t13jq05 {font-size: cached-foo1} +.text_t13jq05 {font-size: foo1} Dependencies: ./__fixtures__/foo-nonstatic @@ -195,8 +195,8 @@ exports[`strategy shaker compiles atomic styled with dynamic interpolations as u "/* @flow */ import { styled } from '@linaria/atomic'; -const _exp2 = () => props => props.color; -const _exp3 = () => props => props.backgroundColor; +const _exp2 = () => (props => props.color); +const _exp3 = () => (props => props.backgroundColor); const Component = /*#__PURE__*/styled('div')({ name: "Component", class: "atm_7l_15g95l5 atm_4b_15g95l5 atm_2d_1en4k16 Component_c13jq05", @@ -207,8 +207,8 @@ const Component = /*#__PURE__*/styled('div')({ }, atomic: true }); -const _exp4 = () => props => props.color; -const _exp5 = () => props => props.color || "black"; +const _exp4 = () => (props => props.color); +const _exp5 = () => (props => props.color || "black"); const Component2 = /*#__PURE__*/styled('div')({ name: "Component2", class: "atm_7l_15g95l5 atm_4b_1kgl01d Component2_c1vhermz", @@ -239,7 +239,7 @@ exports[`strategy shaker compiles atomic styled with plain css, static and dynam "/* @flow */ import { styled } from '@linaria/atomic'; -const _exp2 = () => props => props.color; +const _exp2 = () => (props => props.color); const Component = /*#__PURE__*/styled('div')({ name: "Component", class: "atm_7l_13q2bts atm_e2_12xxubj atm_gi_12am3vd atm_2d_15g95l5 Component_c13jq05", @@ -329,7 +329,7 @@ const Component = /*#__PURE__*/styled('div')({ propsAsIs: false, atomic: true }); -const _exp = () => Component; +const _exp = () => (Component); const ComponentCompositing = /*#__PURE__*/styled(_exp())({ name: "ComponentCompositing", class: "atm_26_5scuol atm_e2_1nzxncv ComponentCompositing_c1vhermz", @@ -357,7 +357,7 @@ exports[`strategy shaker compiles atoms that are shared between css and styled t import { styled } from '@linaria/atomic'; const x = "atm_26_5scuol atm_e2_12xxubj"; -const _exp2 = () => props => props.color; +const _exp2 = () => (props => props.color); const Component = /*#__PURE__*/styled('div')({ name: "Component", class: "atm_26_5scuol atm_e2_12xxubj atm_gi_19bvopo atm_7l_15g95l5 Component_c1vhermz", @@ -583,8 +583,8 @@ exports[`strategy shaker do not include in dependencies expressions from interpo "import { styled } from '@linaria/react'; import constant from './broken-dependency-1'; import modifier from './broken-dependency-2'; -const _exp = () => props => props.size + constant; -const _exp2 = () => props => modifier(props.size); +const _exp = () => (props => props.size + constant); +const _exp2 = () => (props => modifier(props.size)); export const Box = /*#__PURE__*/styled('div')({ name: "Box", class: "Box_b13jq05", @@ -799,7 +799,7 @@ Dependencies: ./__fixtures__/re-exports exports[`strategy shaker evaluates complex styles with functions and nested selectors 1`] = ` "export const bareIconClass = "bareIconClass_b13jq05"; export const SIZES = { - XS: "XS_x1vhermz" + XS: "XS_x1vhermz", };" `; @@ -815,9 +815,7 @@ Dependencies: NA `; exports[`strategy shaker evaluates component interpolations 1`] = ` -"const { - styled -} = require('@linaria/react'); +"const { styled } = require('@linaria/react'); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -851,7 +849,7 @@ exports[`strategy shaker evaluates dependencies with sequence expression 1`] = ` "import { styled } from '@linaria/react'; let external = 0; const color = (external, () => 'blue'); -const _exp = () => color; +const _exp = () => (color); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -987,7 +985,7 @@ Dependencies: ./__fixtures__/enums exports[`strategy shaker evaluates interpolations with sequence expression 1`] = ` "import { styled } from '@linaria/react'; -const _exp = () => (0, () => "blue"); +const _exp = () => ((0, () => "blue")); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -1078,7 +1076,7 @@ Dependencies: NA exports[`strategy shaker evaluates typescript enums 1`] = ` "import { styled } from '@linaria/react'; enum Colors { - BLUE = '#27509A', + BLUE = '#27509A' } export const Title = /*#__PURE__*/styled('h1')({ name: "Title", @@ -1263,7 +1261,7 @@ Dependencies: NA exports[`strategy shaker handles dashes in variableNameConfig 1`] = ` "import { styled as atomicStyled } from '@linaria/atomic'; import { styled } from '@linaria/react'; -const _exp = () => props => props.size; +const _exp = () => (props => props.size); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -1272,7 +1270,7 @@ export const Title = /*#__PURE__*/styled('h1')({ "t13jq05-0": [_exp(), "px"] } }); -const _exp2 = () => props => props.size; +const _exp2 = () => (props => props.size); export const Body = /*#__PURE__*/atomicStyled('h1')({ name: "Body", class: "atm_c8_trva6l Body_b1vhermz", @@ -1342,7 +1340,7 @@ Dependencies: NA exports[`strategy shaker handles fn passed in variableNameSlug 1`] = ` "import { styled as atomicStyled } from '@linaria/atomic'; import { styled } from '@linaria/react'; -const _exp = () => props => props.size; +const _exp = () => (props => props.size); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -1351,7 +1349,7 @@ export const Title = /*#__PURE__*/styled('h1')({ "_qqvhyq__Title__font-size": [_exp(), "px"] } }); -const _exp2 = () => props => props.size; +const _exp2 = () => (props => props.size); export const Body = /*#__PURE__*/atomicStyled('h1')({ name: "Body", class: "atm_c8_f3y1j4 Body_b1vhermz", @@ -1377,16 +1375,14 @@ Dependencies: NA `; exports[`strategy shaker handles indirect wrapping another styled component 1`] = ` -"const { - styled -} = require('@linaria/react'); +"const { styled } = require('@linaria/react'); const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", propsAsIs: false }); const hoc = Cmp => Cmp; -const _exp = () => hoc(Title); +const _exp = () => (hoc(Title)); export const CustomTitle = /*#__PURE__*/styled(_exp())({ name: "CustomTitle", class: "CustomTitle_c1vhermz", @@ -1415,21 +1411,13 @@ exports[`strategy shaker handles interpolation followed by unit 1`] = ` const size = () => 100; const shadow = () => 5; const unit = () => 1; -const _exp = () => size; -const _exp2 = () => shadow; -const _exp3 = () => size; -const _exp4 = () => props => props.width; -const _exp5 = () => props => { - if (true) { - return props.height; - } else { - return 200; - } -}; -const _exp7 = () => unit; -const _exp8 = () => function (props) { - return 200; -}; +const _exp = () => (size); +const _exp2 = () => (shadow); +const _exp3 = () => (size); +const _exp4 = () => (props => props.width); +const _exp5 = () => (props => { if (true) { return props.height; } else { return 200; } }); +const _exp7 = () => (unit); +const _exp8 = () => (function(props) { return 200; }); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -1467,7 +1455,7 @@ Dependencies: NA exports[`strategy shaker handles interpolation in css function followed by unit 1`] = ` "import { styled } from '@linaria/atomic'; -const _exp = () => props => props.$rotateDeg; +const _exp = () => (props => props.$rotateDeg); export const Container = /*#__PURE__*/styled('div')({ name: "Container", class: "atm_tr_18309cv atm_vy_uuw12j Container_c13jq05", @@ -1493,7 +1481,7 @@ Dependencies: NA exports[`strategy shaker handles nested blocks 1`] = ` "import { styled } from '@linaria/react'; const regular = () => "arial"; -const _exp = () => regular; +const _exp = () => (regular); export const Button = /*#__PURE__*/styled('button')({ name: "Button", class: "Button_b13jq05", @@ -1528,7 +1516,7 @@ exports[`strategy shaker handles objects with enums as keys 1`] = ` "import { TestEnum } from './__fixtures__/ts-data.ts'; export const object = { [TestEnum.FirstValue]: "TestEnum_FirstValue_t9vkbjs", - [TestEnum.SecondValue]: "TestEnum_SecondValue_t17e3x2d" + [TestEnum.SecondValue]: "TestEnum_SecondValue_t17e3x2d", };" `; @@ -1546,7 +1534,7 @@ Dependencies: NA exports[`strategy shaker handles objects with numeric keys 1`] = ` "export const object = { stringKey: "stringKey_s13jq05", - 42: "_2__1vhermz" + 42: "_2__1vhermz", };" `; @@ -1564,7 +1552,7 @@ Dependencies: NA exports[`strategy shaker handles raw in variableNameConfig 1`] = ` "import { styled as atomicStyled } from '@linaria/atomic'; import { styled } from '@linaria/react'; -const _exp = () => props => props.size; +const _exp = () => (props => props.size); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -1573,7 +1561,7 @@ export const Title = /*#__PURE__*/styled('h1')({ "t13jq05-0": [_exp(), "px"] } }); -const _exp2 = () => props => props.size; +const _exp2 = () => (props => props.size); export const Body = /*#__PURE__*/atomicStyled('h1')({ name: "Body", class: "atm_c8_1s69o7d Body_b1vhermz", @@ -1601,7 +1589,7 @@ Dependencies: NA exports[`strategy shaker handles val in variableNameConfig 1`] = ` "import { styled as atomicStyled } from '@linaria/atomic'; import { styled } from '@linaria/react'; -const _exp = () => props => props.size; +const _exp = () => (props => props.size); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -1610,7 +1598,7 @@ export const Title = /*#__PURE__*/styled('h1')({ "t13jq05-0": [_exp(), "px"] } }); -const _exp2 = () => props => props.size; +const _exp2 = () => (props => props.size); export const Body = /*#__PURE__*/atomicStyled('h1')({ name: "Body", class: "atm_c8_1g7eom2 Body_b1vhermz", @@ -1636,21 +1624,19 @@ Dependencies: NA `; exports[`strategy shaker handles wrapping another styled component 1`] = ` -"const { - styled -} = require('@linaria/react'); +"const { styled } = require('@linaria/react'); const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", propsAsIs: false }); -const _exp = () => Title; +const _exp = () => (Title); export const BlueTitle = /*#__PURE__*/styled(_exp())({ name: "BlueTitle", class: "BlueTitle_b1vhermz", propsAsIs: true }); -const _exp2 = () => BlueTitle; +const _exp2 = () => (BlueTitle); export const GreenTitle = /*#__PURE__*/styled(_exp2())({ name: "GreenTitle", class: "GreenTitle_g1egpet8", @@ -1703,7 +1689,7 @@ Dependencies: NA exports[`strategy shaker ignores external expressions 1`] = ` "import { styled } from '@linaria/react'; const generate = props => props.content; -const _exp = () => generate; +const _exp = () => (generate); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -1730,7 +1716,7 @@ Dependencies: NA exports[`strategy shaker ignores inline arrow function expressions 1`] = ` "import { styled } from '@linaria/react'; -const _exp = () => props => props.content; +const _exp = () => (props => props.content); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -1757,9 +1743,7 @@ Dependencies: NA exports[`strategy shaker ignores inline vanilla function expressions 1`] = ` "import { styled } from '@linaria/react'; -const _exp = () => function (props) { - return props.content; -}; +const _exp = () => (function(props) { return props.content; }); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -1960,8 +1944,8 @@ exports[`strategy shaker non-hoistable identifiers 1`] = ` exports[`strategy shaker outputs valid CSS classname 1`] = ` "import { styled } from '@linaria/react'; export const ΩPage$Title = /*#__PURE__*/styled('h1')({ - name: "\\u03A9Page$Title", - class: "\\u03A9Page_Title_\\u03C913jq05", + name: "ΩPage$Title", + class: "ΩPage_Title_ω13jq05", propsAsIs: false });" `; @@ -1982,8 +1966,8 @@ exports[`strategy shaker prevents class name collision 1`] = ` "import { styled } from '@linaria/react'; const size = () => 100; const regular = () => "arial"; -const _exp = () => size; -const _exp2 = () => props => props.color; +const _exp = () => (size); +const _exp2 = () => (props => props.color); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_twgemqq", @@ -1993,7 +1977,7 @@ export const Title = /*#__PURE__*/styled('h1')({ "twgemqq-1": [_exp2()] } }); -const _exp3 = () => regular; +const _exp3 = () => (regular); export function Something() { const Title = /*#__PURE__*/styled('h1')({ name: "Title", @@ -2044,7 +2028,7 @@ Dependencies: NA `; -exports[`strategy shaker respects module-resolver plugin and don't show waring 1`] = ` +exports[`strategy shaker respects explicit wyw config file custom resolver 1`] = ` "import { styled } from '@linaria/react'; export const H1 = /*#__PURE__*/styled('h1')({ name: "H1", @@ -2053,7 +2037,7 @@ export const H1 = /*#__PURE__*/styled('h1')({ });" `; -exports[`strategy shaker respects module-resolver plugin and don't show waring 2`] = ` +exports[`strategy shaker respects explicit wyw config file custom resolver 2`] = ` CSS: @@ -2061,11 +2045,11 @@ CSS: color: foo; } -Dependencies: ../re-exports +Dependencies: _/re-exports `; -exports[`strategy shaker respects module-resolver plugin and show waring 1`] = ` +exports[`strategy shaker respects inline hybrid custom resolver without config file fallback 1`] = ` "import { styled } from '@linaria/react'; export const H1 = /*#__PURE__*/styled('h1')({ name: "H1", @@ -2074,7 +2058,7 @@ export const H1 = /*#__PURE__*/styled('h1')({ });" `; -exports[`strategy shaker respects module-resolver plugin and show waring 2`] = ` +exports[`strategy shaker respects inline hybrid custom resolver without config file fallback 2`] = ` CSS: @@ -2082,7 +2066,7 @@ CSS: color: foo; } -Dependencies: ../re-exports +Dependencies: _/re-exports `; @@ -2117,7 +2101,7 @@ Dependencies: NA exports[`strategy shaker should eval component from a linaria library 1`] = ` "import { styled } from "@linaria/react"; import { Title } from "./__fixtures__/linaria-ui-library/components/index"; -const _exp = () => Title; +const _exp = () => (Title); export const StyledTitle = /*#__PURE__*/styled(_exp())({ name: "StyledTitle", class: "StyledTitle_s13jq05", @@ -2139,7 +2123,7 @@ exports[`strategy shaker should eval wrapped component from a linaria library 1` "import { styled } from "@linaria/react"; import { connect } from "./__fixtures__/linaria-ui-library/hocs"; import { Title } from "./__fixtures__/linaria-ui-library/components/index"; -const _exp = () => connect(Title); +const _exp = () => (connect(Title)); export const StyledTitle = /*#__PURE__*/styled(_exp())({ name: "StyledTitle", class: "StyledTitle_s13jq05", @@ -2195,7 +2179,7 @@ exports[`strategy shaker should import react as namespace 1`] = ` "import { styled } from "@linaria/react"; import * as React from "react"; const Cmp = React.memo(() => null); -const _exp = () => Cmp; +const _exp = () => (Cmp); export const StyledTitle = /*#__PURE__*/styled(_exp())({ name: "StyledTitle", class: "StyledTitle_s13jq05", @@ -2209,7 +2193,7 @@ CSS: .StyledTitle_s13jq05 {} -Dependencies: react +Dependencies: NA `; @@ -2264,7 +2248,7 @@ Dependencies: ./__fixtures__/reexports exports[`strategy shaker should not eval components from a non-linaria library 1`] = ` "import { styled } from "@linaria/react"; import { Title } from "./__fixtures__/non-linaria-ui-library/index"; -const _exp = () => Title; +const _exp = () => (Title); export const StyledTitle = /*#__PURE__*/styled(_exp())({ name: "StyledTitle", class: "StyledTitle_s13jq05", @@ -2285,7 +2269,7 @@ Dependencies: NA exports[`strategy shaker should not eval non-linaria component from a linaria library 1`] = ` "import { styled } from "@linaria/react"; import { Title } from "./__fixtures__/linaria-ui-library/non-linaria-components"; -const _exp = () => Title; +const _exp = () => (Title); export const StyledTitle = /*#__PURE__*/styled(_exp())({ name: "StyledTitle", class: "StyledTitle_s13jq05", @@ -2307,7 +2291,7 @@ exports[`strategy shaker should not eval wrapped component from a non-linaria li "import { styled } from "@linaria/react"; import { connect } from "./__fixtures__/linaria-ui-library/hocs"; import { Title } from "./__fixtures__/non-linaria-ui-library/index"; -const _exp = () => connect(Title); +const _exp = () => (connect(Title)); export const StyledTitle = /*#__PURE__*/styled(_exp())({ name: "StyledTitle", class: "StyledTitle_s13jq05", @@ -2329,19 +2313,14 @@ exports[`strategy shaker should not import types 1`] = ` "import { styled } from "@linaria/react"; import { Title } from "./__fixtures__/linaria-ui-library/components/index"; import { ComponentType } from "./__fixtures__/linaria-ui-library/types"; -const map = new Map().set('Title', Title); -const Gate = (props: { - type: ComponentType; - className: string; -}) => { - const { - className, - type - } = props; +const map = new Map() + .set('Title', Title); +const Gate = (props: { type: ComponentType, className: string }) => { + const { className, type } = props; const Component = map.get(type); - return ; + return ; }; -const _exp = () => Gate; +const _exp = () => (Gate); export const StyledTitle = /*#__PURE__*/styled(_exp())({ name: "StyledTitle", class: "StyledTitle_s18alru3", @@ -2364,7 +2343,7 @@ exports[`strategy shaker should process \`css\` calls inside components 1`] = ` export function Component() { const className = "className_c13jq05"; return React.createElement("div", { - className + className: className }); }" `; @@ -2384,13 +2363,18 @@ Dependencies: NA exports[`strategy shaker should process \`css\` calls referencing other \`css\` calls inside components 1`] = ` "import React from 'react'; export function Component() { - const outer = "outer_o13jq05"; - const inner = "inner_i1vhermz"; + const outer = "outer_o1vhermz"; + const inner = "inner_i1egpet8"; return React.createElement("div", { className: outer - }, "outer", React.createElement("div", { - className: inner - }, "inner")); + }, + "outer", + React.createElement("div", { + className: inner + }, + "inner" + ) + ); }" `; @@ -2398,12 +2382,15 @@ exports[`strategy shaker should process \`css\` calls referencing other \`css\` CSS: -.outer_o13jq05 { +._outer__13jq05 { color: red; } -.inner_i1vhermz { +.outer_o1vhermz { + color: red; + } +.inner_i1egpet8 { color: green; - .outer_o13jq05:hover & { + .outer_o1vhermz:hover & { color: blue; } } @@ -2415,9 +2402,9 @@ Dependencies: NA exports[`strategy shaker should process \`css\` calls with complex interpolation inside components 1`] = ` "import React from 'react'; export function Component() { - const className = "className_c1vhermz"; + const className = "className_c1egpet8"; return React.createElement("div", { - className + className: className }); }" `; @@ -2429,7 +2416,10 @@ CSS: .cell_c13jq05 { opacity: 0; } -.className_c1vhermz { +.cell_c1vhermz { + opacity: 0; + } +.className_c1egpet8 { opacity: 0.5; font-size: 42 font-size: 42 @@ -2470,11 +2460,11 @@ Dependencies: NA exports[`strategy shaker should process \`styled\` calls with complex interpolation inside components 1`] = ` "import React from 'react'; -import { styled } from '@linaria/react'; +import {styled} from '@linaria/react'; export function Component() { const MyComponent = /*#__PURE__*/styled('h1')({ name: "MyComponent", - class: "MyComponent_m1egpet8", + class: "MyComponent_mvc9xb3", propsAsIs: false }); return React.createElement(MyComponent); @@ -2491,7 +2481,10 @@ CSS: .cell_c1vhermz { opacity: 0; } -.MyComponent_m1egpet8 { +.cell_c1egpet8 { + opacity: 0; + } +.MyComponent_mvc9xb3 { opacity: 0.5; &:hover .cell_c1vhermz { @@ -2560,7 +2553,9 @@ Dependencies: ./__fixtures__/module-reexport `; exports[`strategy shaker should process unary expressions in interpolation 1`] = ` -"export const class1 = "class1_c13jq05"; +"let size = 1337; +size += 0; +export const class1 = "class1_c13jq05"; export const class2 = "class2_c1vhermz";" `; @@ -2585,7 +2580,7 @@ const Editor = () => { const initial: IModel = {}; return
; }; -const _exp = () => Editor; +const _exp = () => (Editor); export const StyledEditor = /*#__PURE__*/styled(_exp())({ name: "StyledEditor", class: "StyledEditor_s18alru3", @@ -2678,7 +2673,7 @@ CSS: } } -Dependencies: ./__fixtures__/complex-component +Dependencies: ./__fixtures__/complex-component, ./__fixtures__/complex-component `; @@ -2700,12 +2695,12 @@ exports[`strategy shaker should wrap memoized components 1`] = ` "import React from 'react'; import { styled } from '@linaria/react'; const MyComponent = React.memo(() =>
); -const _exp = () => MyComponent; +const _exp = () => (MyComponent); export default /*#__PURE__*/styled(_exp())({ name: "source0", class: "source0_swgemqq", propsAsIs: true -});" +})" `; exports[`strategy shaker should wrap memoized components 2`] = ` @@ -2716,7 +2711,7 @@ CSS: color: red; } -Dependencies: react +Dependencies: NA `; @@ -2724,28 +2719,28 @@ exports[`strategy shaker simplifies react components 1`] = ` "import React from 'react'; import { styled } from '@linaria/react'; import constant from './broken-dependency'; -const FuncComponent = props =>
{props.children + constant}
; +const FuncComponent = (props) =>
{props.children + constant}
; class ClassComponent extends React.PureComponent { method() { - return constant; + return constant; } render() { - return
{props.children + constant}
; + return
{props.children + constant}
; } } -const ComplexFunctionComponent = props => { +const ComplexFunctionComponent = (props) => { if (import.meta.env.PROD) { return
{props.children + constant}
; } return null; }; -const _exp = () => FuncComponent; +const _exp = () => (FuncComponent); export const StyledFunc = /*#__PURE__*/styled(_exp())({ name: "StyledFunc", class: "StyledFunc_swgemqq", propsAsIs: true }); -const _exp2 = () => ClassComponent; +const _exp2 = () => (ClassComponent); export const StyledClass = /*#__PURE__*/styled(_exp2())({ name: "StyledClass", class: "StyledClass_sjtmpns", @@ -2777,7 +2772,7 @@ import constant from './broken-dependency'; const A = () => ReactNS.createElement('div', {}, constant); const B = () => createElement(A, {}, constant); const C = () => React.createElement(FuncComponent, {}, constant); -const _exp = () => C; +const _exp = () => (C); export const D = /*#__PURE__*/styled(_exp())({ name: "D", class: "D_dwgemqq", @@ -2805,7 +2800,7 @@ var constant = require('./broken-dependency').default; const A = () => React.createElement('div', {}, constant); const B = () => React.createElement(A, {}, constant); const C = () => React.createElement(FuncComponent, {}, constant); -const _exp = () => C; +const _exp = () => (C); exports.D = /*#__PURE__*/styled(_exp())({ name: "source0", class: "source0_swgemqq", @@ -2984,7 +2979,7 @@ const StyledComponent = /*#__PURE__*/reactStyled('div')({ class: "StyledComponent_s13jq05", propsAsIs: false }); -const _exp = () => StyledComponent; +const _exp = () => (StyledComponent); const StyledComponent2 = /*#__PURE__*/reactStyled(_exp())({ name: "StyledComponent2", class: "StyledComponent2_s1vhermz", @@ -2996,7 +2991,7 @@ const AtomicComponent = /*#__PURE__*/atomicStyled('div')({ propsAsIs: false, atomic: true }); -const _exp2 = () => AtomicComponent; +const _exp2 = () => (AtomicComponent); const AtomicComponent2 = /*#__PURE__*/atomicStyled(_exp2())({ name: "AtomicComponent2", class: "atm_26_13q2bts AtomicComponent2_avc9xb3", @@ -3046,11 +3041,8 @@ Dependencies: NA exports[`strategy shaker transpiles styled template literal with TS component 1`] = ` "import { styled } from '@linaria/react'; -type Props = { - className?: string; - children?: React.ReactNode; -}; -export const Title = /*#__PURE__*/styled(() => {})({ +type Props = { className?: string; children?: React.ReactNode }; +export const Title = /*#__PURE__*/styled(() => { })({ name: "Title", class: "Title_t9vkbjs", propsAsIs: true @@ -3072,7 +3064,7 @@ Dependencies: NA exports[`strategy shaker transpiles styled template literal with function and component 1`] = ` "import { styled } from '@linaria/react'; const Heading = () => null; -const _exp = () => Heading; +const _exp = () => (Heading); export const Title = /*#__PURE__*/styled(_exp())({ name: "Title", class: "Title_t13jq05", @@ -3136,11 +3128,8 @@ Dependencies: NA exports[`strategy shaker transpiles with typed fn as interpolated value 1`] = ` "import { styled } from '@linaria/react'; -type Props = { - className?: string; - children?: React.ReactNode; -}; -const _exp = () => (props: Props) => props.className; +type Props = { className?: string; children?: React.ReactNode }; +const _exp = () => ((props: Props) => props.className); export const Title = /*#__PURE__*/styled('div')({ name: "Title", class: "Title_t9vkbjs", @@ -3166,8 +3155,8 @@ Dependencies: NA exports[`strategy shaker understands satisfies keyword 1`] = ` "interface ColorTokenMap { - primary: string; - secondary: string; + primary: string + secondary: string } export const text = "text_t9vkbjs";" `; @@ -3208,7 +3197,7 @@ Dependencies: NA exports[`strategy shaker uses string passed in variableNameSlug 1`] = ` "import { styled as atomicStyled } from '@linaria/atomic'; import { styled } from '@linaria/react'; -const _exp = () => props => props.size; +const _exp = () => (props => props.size); export const Title = /*#__PURE__*/styled('h1')({ name: "Title", class: "Title_t13jq05", @@ -3217,7 +3206,7 @@ export const Title = /*#__PURE__*/styled('h1')({ "Title_t13jq05_StyledProcessor_1qqvhyq_0": [_exp(), "px"] } }); -const _exp2 = () => props => props.size; +const _exp2 = () => (props => props.size); export const Body = /*#__PURE__*/atomicStyled('h1')({ name: "Body", class: "atm_c8_1cjuufw Body_b1vhermz", @@ -3244,7 +3233,7 @@ Dependencies: NA exports[`strategy shaker uses the same custom property for the same expression 1`] = ` "import { styled } from '@linaria/react'; -const _exp2 = () => props => props.size; +const _exp2 = () => (props => props.size); export const Box = /*#__PURE__*/styled('div')({ name: "Box", class: "Box_b13jq05", @@ -3271,7 +3260,7 @@ Dependencies: NA exports[`strategy shaker uses the same custom property for the same identifier 1`] = ` "import { styled } from '@linaria/react'; const size = () => 100; -const _exp2 = () => size; +const _exp2 = () => (size); export const Box = /*#__PURE__*/styled('div')({ name: "Box", class: "Box_b13jq05", diff --git a/packages/testkit/src/__utils__/linaria-snapshot-serializer.ts b/packages/testkit/src/__utils__/linaria-snapshot-serializer.ts index 9c4851c51..28c78c273 100644 --- a/packages/testkit/src/__utils__/linaria-snapshot-serializer.ts +++ b/packages/testkit/src/__utils__/linaria-snapshot-serializer.ts @@ -1,3 +1,5 @@ +import { extname, relative, resolve } from 'path'; + import type { WYWTransformMetadata } from '@wyw-in-js/transform'; import { withTransformMetadata } from '@wyw-in-js/transform'; @@ -6,6 +8,24 @@ type Serializer = { test: (value: unknown) => value is T; }; +const fixturesRoot = resolve(__dirname, '..'); + +const formatDependency = (dependency: string): string => { + if (!dependency.startsWith(fixturesRoot)) { + return dependency; + } + + const relativeDependency = `./${relative(fixturesRoot, dependency).replace( + /\\/g, + '/' + )}`; + const extension = extname(relativeDependency); + + return extension === '.js' + ? relativeDependency.slice(0, -extension.length) + : relativeDependency; +}; + export default { test: withTransformMetadata, serialize: ({ wywInJS }) => ` @@ -20,7 +40,9 @@ ${Object.keys(wywInJS.rules ?? {}) .join('\n')} Dependencies: ${ - wywInJS.dependencies?.length ? wywInJS.dependencies.join(', ') : 'NA' + wywInJS.dependencies?.length + ? wywInJS.dependencies.map(formatDependency).join(', ') + : 'NA' } `, } as Serializer<{ wywInJS: WYWTransformMetadata & { rules?: any } }>; diff --git a/packages/testkit/src/babel.test.ts b/packages/testkit/src/babel.test.ts index 6958e6ed4..4156b4893 100644 --- a/packages/testkit/src/babel.test.ts +++ b/packages/testkit/src/babel.test.ts @@ -4,10 +4,10 @@ import { stripVTControlCharacters as stripAnsi } from 'node:util'; import { dirname, join, resolve, sep } from 'path'; import * as babel from '@babel/core'; -import type { PluginItem } from '@babel/core'; import { logger } from '@wyw-in-js/shared'; import type { Evaluator, FeatureFlags } from '@wyw-in-js/shared'; import { + disposeEvalBroker, Entrypoint, EventEmitter, TransformCacheCollection, @@ -17,9 +17,11 @@ import { } from '@wyw-in-js/transform'; import type { EntrypointEvent, + IEvaluatedEntrypoint, OnEvent, OnActionStartArgs, OnActionFinishArgs, + Options as WywTransformOptions, PluginOptions, Stage, } from '@wyw-in-js/transform'; @@ -35,12 +37,18 @@ type PartialOptions = Partial> & { features?: Partial; }; +type TransformInvocationOptions = { + filename?: string; + inputSourceMap?: WywTransformOptions['inputSourceMap']; + root?: string; +}; + type Options = [ evaluator: Evaluator, linariaConfig?: PartialOptions, extension?: 'js' | 'ts' | 'jsx' | 'tsx', filename?: string, - babelConfig?: babel.TransformOptions, + transformOptions?: TransformInvocationOptions, ]; const asyncResolve = (what: string, importer: string, stack: string[]) => { @@ -52,32 +60,16 @@ const asyncResolve = (what: string, importer: string, stack: string[]) => { } }; -const getPresets = (extension: 'js' | 'ts' | 'jsx' | 'tsx') => { - const presets: PluginItem[] = []; - if (extension === 'ts' || extension === 'tsx') { - presets.push(require.resolve('@babel/preset-typescript')); - } - - if (extension === 'jsx' || extension === 'tsx') { - presets.push(require.resolve('@babel/preset-react')); - } - - return presets; -}; +const cachesForCleanup = new Set(); const getLinariaConfig = ( evaluator: Evaluator, linariaConfig: PartialOptions, - presets: PluginItem[], stage?: Stage ): PluginOptions => { const { features: customFeatures, ...restConfig } = linariaConfig; return loadWywOptions({ - babelOptions: { - presets, - plugins: [], - }, extensions: [ '.cjs', '.cts', @@ -93,11 +85,6 @@ const getLinariaConfig = ( rules: [ { action: evaluator, - babelOptions: { - plugins: [ - require.resolve('@babel/plugin-transform-modules-commonjs'), - ], - }, }, { test: /[\\/]node_modules[\\/](?!@linaria)/, @@ -130,24 +117,23 @@ async function transform( linariaPartialConfig = {}, extension = 'js', fullFilename = join(dirName, `${filename}.${extension}`), - babelPartialConfig = {}, + transformOptions = {}, ] = opts; - const presets = getPresets(extension); + const cacheStore = cache ?? new TransformCacheCollection(); + cachesForCleanup.add(cacheStore); const linariaConfig = getLinariaConfig( evaluator, linariaPartialConfig, - presets, 'collect' ); const services = { - babel, - cache, + cache: cacheStore, options: { - filename: babelPartialConfig.filename ?? fullFilename, - root: babelPartialConfig.root ?? undefined, - inputSourceMap: babelPartialConfig.inputSourceMap ?? undefined, + filename: transformOptions.filename ?? fullFilename, + root: transformOptions.root ?? undefined, + inputSourceMap: transformOptions.inputSourceMap ?? undefined, pluginOptions: linariaConfig, }, eventEmitter, @@ -167,6 +153,13 @@ async function transform( }; } +afterEach(() => { + cachesForCleanup.forEach((cacheStore) => { + disposeEvalBroker(cacheStore); + }); + cachesForCleanup.clear(); +}); + async function transformFile(filename: string, opts: Options) { const [evaluator, linariaPartialConfig = {}, extension = 'js'] = opts; const code = readFileSync(filename, 'utf8'); @@ -607,7 +600,7 @@ describe('strategy shaker', () => { [ evaluator, { - evaluate: false, + eval: { strategy: 'static' }, }, 'ts', ] @@ -632,7 +625,7 @@ describe('strategy shaker', () => { [ evaluator, { - evaluate: false, + eval: { strategy: 'static' }, }, 'ts', ] @@ -2904,42 +2897,39 @@ describe('strategy shaker', () => { ); }); - it('should fail because babelrc options is disabled', async () => { + it('requires explicit resolver config for aliased specifiers', async () => { const fn = () => transformFile( resolve(__dirname, './__fixtures__/with-babelrc/index.js'), - [ - evaluator, - { - features: { - useBabelConfigs: false, - }, - }, - ] + [evaluator] ); expect(fn).rejects.toThrowError(`Cannot find module '_/re-exports'`); }); - it('respects module-resolver plugin and show waring', async () => { + it('respects explicit wyw config file custom resolver', async () => { const warn = jest.spyOn(console, 'warn').mockImplementation(() => {}); const { code, metadata } = await transformFile( resolve(__dirname, './__fixtures__/with-babelrc/index.js'), - [evaluator] + [ + evaluator, + { + configFile: resolve( + __dirname, + './__fixtures__/with-babelrc/wyw-in-js.config.cjs' + ), + }, + ] ); - expect(warn).toHaveBeenCalledWith( - expect.stringContaining( - 'This works for now but will be an error in the future' - ) - ); + expect(warn).toHaveBeenCalledTimes(0); warn.mockRestore(); expect(code).toMatchSnapshot(); expect(metadata).toMatchSnapshot(); }); - it("respects module-resolver plugin and don't show waring", async () => { + it('respects inline hybrid custom resolver without config file fallback', async () => { const warn = jest.spyOn(console, 'warn').mockImplementation(() => {}); const { code, metadata } = await transformFile( @@ -2947,17 +2937,19 @@ describe('strategy shaker', () => { [ evaluator, { - babelOptions: { - plugins: [ - [ - 'module-resolver', - { - alias: { - _: './src/__fixtures__', - }, - }, - ], - ], + eval: { + resolver: 'hybrid', + customResolver: async (specifier) => { + if (!specifier.startsWith('_/')) { + return null; + } + + return { + id: require.resolve( + resolve(__dirname, `./__fixtures__/${specifier.slice(2)}`) + ), + }; + }, }, }, ] @@ -3260,14 +3252,16 @@ describe('strategy shaker', () => { expect(exports.foo2).toBe(undefined); }); - it('promotes statically evaluatable modules to "*"', async () => { - const filename = require.resolve(join(dirName, './__fixtures__/foo')); + it('resolves fully serializable static modules without eval cache materialization', async () => { + const filename = require.resolve( + join(dirName, './__fixtures__/foo-static') + ); const cache = new TransformCacheCollection(); await transform( dedent` import { css } from "@linaria/core"; - import { foo1 } from "./__fixtures__/foo"; + import { foo1 } from "./__fixtures__/foo-static"; export const text = css\`font-size: ${'${foo1}'}\`; `, @@ -3276,10 +3270,7 @@ describe('strategy shaker', () => { ); const cachedFoo = cache.get('entrypoints', filename); - expect(cachedFoo?.evaluatedOnly).toContain('*'); - - const exports = getCachedExports(cache, filename); - expect(exports.foo2).toBe('foo2'); + expect(cachedFoo).toBeUndefined(); }); const createCacheFor = async ( @@ -3296,16 +3287,27 @@ describe('strategy shaker', () => { exportsProxy[key] = exports[key]; }); - cache.add('entrypoints', filename, { + const cachedEntrypoint: IEvaluatedEntrypoint = { dependencies: new Map(), evaluated: true, evaluatedOnly: only, generation: 1, exports: exportsProxy, + hasTransformResult: false, + hasWywMetadata: false, ignored: false, + invalidationDependencies: new Map(), + invalidateOnDependencyChange: new Set(), log: logger, + name: filename, only, - }); + parents: [], + preevalResult: null, + seqId: -1, + transformResultCode: null, + }; + + cache.add('entrypoints', filename, cachedEntrypoint); return cache; }; @@ -3474,7 +3476,7 @@ describe('strategy shaker', () => { ) ) ) - ).rejects.toThrowError(/reading 'toLowerCase'/); + ).rejects.toThrowError(/does not provide an export named/); }); }); }); diff --git a/packages/testkit/src/transform.test.ts b/packages/testkit/src/transform.test.ts index a7550c2b9..4024b764d 100644 --- a/packages/testkit/src/transform.test.ts +++ b/packages/testkit/src/transform.test.ts @@ -141,10 +141,10 @@ it("doesn't rewrite an absolute path in url() declarations", async () => { expect(cssText).toMatchSnapshot(); }); -it('respects passed babel options', async () => { +it('parses JSX according to Oxc filename semantics', async () => { expect.assertions(2); - await expect(() => + await expect( transform( { options: { @@ -152,11 +152,6 @@ it('respects passed babel options', async () => { outputFilename, pluginOptions: { ...basePluginOptions, - babelOptions: { - babelrc: false, - configFile: false, - presets: [['@babel/preset-env', { loose: true }]], - }, }, }, }, @@ -167,26 +162,16 @@ it('respects passed babel options', async () => { `, asyncResolveFallback ) - ).rejects.toThrow( - /Support for the experimental syntax 'jsx' isn't currently enabled/ - ); + ).rejects.toThrow(/Unexpected (JSX expression|token)/); - await expect(() => + await expect( transform( { options: { - filename: './test.js', + filename: './test.jsx', outputFilename, pluginOptions: { ...basePluginOptions, - babelOptions: { - babelrc: false, - configFile: false, - presets: [ - ['@babel/preset-env', { loose: true }], - '@babel/preset-react', - ], - }, }, }, }, @@ -200,45 +185,11 @@ it('respects passed babel options', async () => { `, asyncResolveFallback ) - ).not.toThrow('Unexpected token'); -}); - -it("doesn't throw due to duplicate preset", async () => { - expect.assertions(1); - - expect(() => - transform( - { - options: { - filename: './test.js', - outputFilename, - pluginOptions: { - ...basePluginOptions, - babelOptions: { - babelrc: false, - configFile: false, - presets: [require.resolve('@linaria/babel-preset')], - plugins: [ - require.resolve('@babel/plugin-transform-modules-commonjs'), - ], - }, - }, - }, - }, - dedent` - import { styled } from '@linaria/react'; - - const Title = styled.h1\` color: blue; \`; - - const Article = styled.article\` - ${'${Title}'} { - font-size: 16px; - } - \`; - `, - asyncResolveFallback - ) - ).not.toThrow('Duplicate plugin/preset detected'); + ).resolves.toEqual( + expect.objectContaining({ + cssText: expect.stringContaining('background-image'), + }) + ); }); it('should return transformed code even when file only contains unused linaria code', async () => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28209a9f1..473b788f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -145,8 +145,8 @@ importers: specifier: workspace:^ version: link:../../packages/core '@wyw-in-js/vite': - specifier: ^1.0.6 - version: 1.0.6(vite@3.2.7(@types/node@25.0.10)(terser@5.39.0)) + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1(vite@3.2.7(@types/node@25.0.10)(terser@5.39.0)) astro: specifier: ^1.6.10 version: 1.6.10(@types/node@25.0.10)(terser@5.39.0) @@ -167,8 +167,8 @@ importers: version: link:../../website devDependencies: '@wyw-in-js/esbuild': - specifier: ^1.0.6 - version: 1.0.6(esbuild@0.15.16) + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1(esbuild@0.15.16) esbuild: specifier: ^0.15.16 version: 0.15.16 @@ -198,8 +198,8 @@ importers: specifier: ^15.2.1 version: 15.2.1(rollup@4.56.0) '@wyw-in-js/rollup': - specifier: ^1.0.6 - version: 1.0.6(rollup@4.56.0) + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1(rollup@4.56.0) rollup: specifier: ^4.0.0 version: 4.56.0 @@ -220,8 +220,8 @@ importers: specifier: ^2.1.0 version: 2.1.0(vite@3.2.10(@types/node@25.0.10)(terser@5.39.0)) '@wyw-in-js/vite': - specifier: ^1.0.6 - version: 1.0.6(vite@3.2.10(@types/node@25.0.10)(terser@5.39.0)) + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1(vite@3.2.10(@types/node@25.0.10)(terser@5.39.0)) vite: specifier: ^3.2.10 version: 3.2.10(@types/node@25.0.10)(terser@5.39.0) @@ -232,8 +232,8 @@ importers: specifier: workspace:^ version: link:../../packages/core '@wyw-in-js/vite': - specifier: ^1.0.6 - version: 1.0.6(vite@3.2.10(@types/node@25.0.10)(terser@5.39.0)) + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1(vite@3.2.10(@types/node@25.0.10)(terser@5.39.0)) babel-preset-solid: specifier: ^1.6.2 version: 1.6.3(@babel/core@7.23.5) @@ -271,8 +271,8 @@ importers: specifier: ^7.23.5 version: 7.23.5 '@wyw-in-js/webpack-loader': - specifier: ^1.0.6 - version: 1.0.6(webpack@5.98.0) + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1(webpack@5.98.0) babel-loader: specifier: ^9.1.0 version: 9.1.0(@babel/core@7.23.5)(webpack@5.98.0) @@ -307,11 +307,11 @@ importers: specifier: workspace:^ version: link:../react '@wyw-in-js/processor-utils': - specifier: ^1.0.4 - version: 1.0.4 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1 '@wyw-in-js/shared': - specifier: ^1.0.4 - version: 1.0.4 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1 known-css-properties: specifier: ^0.24.0 version: 0.24.0 @@ -341,8 +341,8 @@ importers: packages/core: dependencies: '@wyw-in-js/processor-utils': - specifier: ^1.0.4 - version: 1.0.4 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1 devDependencies: '@babel/traverse': specifier: ^7.23.5 @@ -430,11 +430,11 @@ importers: specifier: workspace:^ version: link:../core '@wyw-in-js/processor-utils': - specifier: ^1.0.4 - version: 1.0.4 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1 '@wyw-in-js/shared': - specifier: ^1.0.4 - version: 1.0.4 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1 minimatch: specifier: ^9.0.3 version: 9.0.3 @@ -483,11 +483,11 @@ importers: packages/stylelint: dependencies: '@wyw-in-js/shared': - specifier: ^1.0.4 - version: 1.0.4 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1 '@wyw-in-js/transform': - specifier: ^1.0.6 - version: 1.0.6 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) devDependencies: '@types/node': specifier: ^17.0.39 @@ -523,14 +523,14 @@ importers: specifier: ^1.3.20 version: 1.3.20 '@wyw-in-js/processor-utils': - specifier: ^1.0.4 - version: 1.0.4 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1 '@wyw-in-js/shared': - specifier: ^1.0.4 - version: 1.0.4 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1 '@wyw-in-js/transform': - specifier: ^1.0.6 - version: 1.0.6 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) debug: specifier: ^4.3.4 version: 4.3.4 @@ -660,11 +660,11 @@ importers: specifier: workspace:^ version: link:../packages/stylelint '@wyw-in-js/babel-preset': - specifier: ^1.0.6 - version: 1.0.6 + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1 '@wyw-in-js/webpack-loader': - specifier: ^1.0.6 - version: 1.0.6(webpack@5.98.0) + specifier: 2.0.0-alpha.1 + version: 2.0.0-alpha.1(webpack@5.98.0) babel-loader: specifier: ^8.2.5 version: 8.2.5(@babel/core@7.23.5)(webpack@5.98.0) @@ -922,6 +922,7 @@ packages: '@babel/plugin-proposal-explicit-resource-management@7.23.3': resolution: {integrity: sha512-f1FebOc7H/JZ4CBbj6dtdpJ0mj23HuEK0UnYJ6Jv+vqAVfHIj8Nxq/rCdyIL+52TKlQGDuh2cCoTIaV/4nYEmQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-explicit-resource-management instead. peerDependencies: '@babel/core': ^7.0.0-0 @@ -1581,20 +1582,24 @@ packages: '@effect/data@0.17.1': resolution: {integrity: sha512-QCYkLE5Y5Dm5Yax5R3GmW4ZIgTx7W+kSZ7yq5eqQ/mFWa8i4yxbLuu8cudqzdeZtRtTGZKlhDxfFfgVtMywXJg==} + deprecated: this package has been merged into the main effect package '@effect/io@0.38.0': resolution: {integrity: sha512-qlVC9ASxNC+L2NKX5qOV9672CE5wWizfwBSFaX2XLI7CC118WRvohCTIPQ52n50Bj5TmR20+na+U9C7e4VkqzA==} + deprecated: this package has been merged into the main effect package peerDependencies: '@effect/data': ^0.17.1 '@effect/match@0.32.0': resolution: {integrity: sha512-04QfnIgCcMnnNbGxTv2xa9/7q1c5kgpsBodqTUZ8eX86A/EdE8Czz+JkVarG00/xE+nYhQLXOXCN9Zj+dtqVkQ==} + deprecated: this package has been merged into the main effect package peerDependencies: '@effect/data': ^0.17.1 '@effect/schema': ^0.33.0 '@effect/schema@0.33.1': resolution: {integrity: sha512-h+fQInui4q3we8fegAygL0Cs5B2DD/+oC3JWthOh8eLcbKkbYM9smCD/PsHuyQ+BaeWiSP5JdvREGlP4Sg+Ysw==} + deprecated: this package has been merged into the main effect package peerDependencies: '@effect/data': ^0.17.1 '@effect/io': ^0.38.0 @@ -1608,6 +1613,15 @@ packages: '@emmetio/scanner@1.0.0': resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==} + '@emnapi/core@1.9.2': + resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + + '@emnapi/runtime@1.9.2': + resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@emotion/is-prop-valid@1.2.0': resolution: {integrity: sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==} @@ -1779,6 +1793,7 @@ packages: '@humanwhocodes/config-array@0.11.13': resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -1786,6 +1801,7 @@ packages: '@humanwhocodes/object-schema@2.0.1': resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + deprecated: Use @eslint/object-schema instead '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -1869,6 +1885,9 @@ packages: resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.1': resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} @@ -1911,6 +1930,12 @@ packages: '@marionebl/sander@0.6.1': resolution: {integrity: sha512-7f3zZddAk92G1opoX/glbDO6YbrzmMAJAw0RJAcvunnV7sR4L9llyBUAABptKoF1Jf37UQ1QTJy5p2H4J4rBNA==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} @@ -1929,6 +1954,347 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oxc-parser/binding-android-arm-eabi@0.127.0': + resolution: {integrity: sha512-0LC7ye4hvqbIKxAzThzvswgHLFu2AURKzYLeSVvLdu2TBOYWQDmHnTqPLeA597BcUCxiLqLsS4CJ5uoI5WYWCQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxc-parser/binding-android-arm64@0.127.0': + resolution: {integrity: sha512-b5jtVTH6AU5CJXHNdj7Jj9IEiR9yVjjnwHzPJhGyHGPdcsZSzBCkS9GBbV33niRMvKthDwQRFRJfI4a+k4PvYg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxc-parser/binding-darwin-arm64@0.127.0': + resolution: {integrity: sha512-obCE8B7ISKkJidjlhv9xRGJPOSDG2Yu6PRga9Ruaz35uintHxbp1Ki/Yc71wx4rj3Edrm0a1kzG1TAwit0wFpg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxc-parser/binding-darwin-x64@0.127.0': + resolution: {integrity: sha512-JL6Xb5IwPQT8rUzlpsX7E+AgfcdNklXNPFp8pjCQQ5MQOQo5rtEB2ui+3Hgg9Sn7Y9Egj6YOLLiHhLpdAe12Aw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxc-parser/binding-freebsd-x64@0.127.0': + resolution: {integrity: sha512-SDQ/3MQFw58fqQz3Z1PhSKFF3JoCF4gmlNjziDm8X02tTahCw0qJbd7FGPDKw1i4VTBZene9JPyC3mHtSvi+wA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': + resolution: {integrity: sha512-Av+D1MIqzV0YMGPT9we2SIZaMKD7Cxs4CvXSx/yxaWHewZjYEjScpOf5igc8IILASViw4WTnjlwUdI1KzVtDHQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': + resolution: {integrity: sha512-Cs2fdJ8cPpFdeebj6p4dag8A4+56hPvZ0AhQQzlaLswGz1tz7bXt1nETLeorrM9+AMcWFFkqxcXwDGfTVidY8g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm64-gnu@0.127.0': + resolution: {integrity: sha512-qdOfTcT6SY8gsJrrV92uyEUyjqMGPpIB5JZUG6QN5dukYd+7/j0kX6MwK1DgQj39jtUYixxPiaRUiEN1+0CXgQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxc-parser/binding-linux-arm64-musl@0.127.0': + resolution: {integrity: sha512-EoTCZneNFU/P2qrpEM+RHmQwt+CvDkyGESG6qhr7KaegXLZwePfbrkCDfAk8/rhxbDUVGsZILX+2tqPzFtoFWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': + resolution: {integrity: sha512-zALjmZYgxFLHjXeudcDF0xFGNydTAtkAeXAr2EuC17ywCyFxcmQra4w0BMde0Yi/re4Bi4iwEoEXtYN7l6eBLQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': + resolution: {integrity: sha512-fPP8M6zQLS7Jz7o9d5ArUSuAuSK3e+WCYVrCpdzeCOejidtZExJ9tjhDrAd3HEPqARBCPmdpqxESPFqy44vkBQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxc-parser/binding-linux-riscv64-musl@0.127.0': + resolution: {integrity: sha512-7IcC4Ao02oGpfnjt+X/oF4U2mllo2qoSkw5xxiXNKL9MCTsTiAC6616beOuehdxGcnz1bRoPC1RQ2f1GQDdN+g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxc-parser/binding-linux-s390x-gnu@0.127.0': + resolution: {integrity: sha512-pbXIhiNFHoqWeqDNLiJ9JkpHz1IM9k4DXa66x+1GTWMG7iLxtkXgE53iiuKSXwmk3zIYmaPVfBvgcAhS583K4Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxc-parser/binding-linux-x64-gnu@0.127.0': + resolution: {integrity: sha512-MYCguB9RvBvlSd6gbuNI7QwiLoCCAlGnlRJFPrzLI6U1/9wkC/WK6LtBAUln55H1Ctqw45PWmqrobKoMhsYQzQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxc-parser/binding-linux-x64-musl@0.127.0': + resolution: {integrity: sha512-5eY0B/bxf1xIUxb4NOTvOI3KWtBQfPWYyKAzgcrCt0mDibSZygVpO1Pz8bkeiSZ5Jj9+M09dkggG3H8I5d0Uyg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxc-parser/binding-openharmony-arm64@0.127.0': + resolution: {integrity: sha512-Gld0ajrFTUXNtdw20fVBuTQx66FA75nIVg+//pPfR3sXkuABB4mTBhl3r9JNzrJpgW//qiwxf0nWXUWGJSL3UQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-parser/binding-wasm32-wasi@0.127.0': + resolution: {integrity: sha512-T6KVD7rhLzFlwGRXMnxUFfkCZD8FHnb968wVXW1mXzgRFc5RNXOBY2mPPDZ77x5Ln76ltLMgtPg0cOkU1NSrEQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@oxc-parser/binding-win32-arm64-msvc@0.127.0': + resolution: {integrity: sha512-Ujvw4X+LD1CCGULcsQcvb4YNVoBGqt+JHgNNzGGaCImELiZLk477ifUH53gIbE7EKd933NdTi25JWEr9K2HwXw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxc-parser/binding-win32-ia32-msvc@0.127.0': + resolution: {integrity: sha512-0cwxKO7KHQQQfo4Uf4B2SQrhgm+cJaP9OvFFhx52Tkg4bezsacu83GB2/In5bC415Ueeym+kXdnge/57rbSfTw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxc-parser/binding-win32-x64-msvc@0.127.0': + resolution: {integrity: sha512-rOrnSQSCbhI2kowr9XxE7m9a8oQXnBHjnS6j95LxxAnEZ0+Fz20WlRXG4ondQb+ejjt2KOsa65sE6++L6kUd+w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxc-project/types@0.127.0': + resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} + + '@oxc-resolver/binding-android-arm-eabi@11.19.1': + resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==} + cpu: [arm] + os: [android] + + '@oxc-resolver/binding-android-arm64@11.19.1': + resolution: {integrity: sha512-oolbkRX+m7Pq2LNjr/kKgYeC7bRDMVTWPgxBGMjSpZi/+UskVo4jsMU3MLheZV55jL6c3rNelPl4oD60ggYmqA==} + cpu: [arm64] + os: [android] + + '@oxc-resolver/binding-darwin-arm64@11.19.1': + resolution: {integrity: sha512-nUC6d2i3R5B12sUW4O646qD5cnMXf2oBGPLIIeaRfU9doJRORAbE2SGv4eW6rMqhD+G7nf2Y8TTJTLiiO3Q/dQ==} + cpu: [arm64] + os: [darwin] + + '@oxc-resolver/binding-darwin-x64@11.19.1': + resolution: {integrity: sha512-cV50vE5+uAgNcFa3QY1JOeKDSkM/9ReIcc/9wn4TavhW/itkDGrXhw9jaKnkQnGbjJ198Yh5nbX/Gr2mr4Z5jQ==} + cpu: [x64] + os: [darwin] + + '@oxc-resolver/binding-freebsd-x64@11.19.1': + resolution: {integrity: sha512-xZOQiYGFxtk48PBKff+Zwoym7ScPAIVp4c14lfLxizO2LTTTJe5sx9vQNGrBymrf/vatSPNMD4FgsaaRigPkqw==} + cpu: [x64] + os: [freebsd] + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': + resolution: {integrity: sha512-lXZYWAC6kaGe/ky2su94e9jN9t6M0/6c+GrSlCqL//XO1cxi5lpAhnJYdyrKfm0ZEr/c7RNyAx3P7FSBcBd5+A==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': + resolution: {integrity: sha512-veG1kKsuK5+t2IsO9q0DErYVSw2azvCVvWHnfTOS73WE0STdLLB7Q1bB9WR+yHPQM76ASkFyRbogWo1GR1+WbQ==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': + resolution: {integrity: sha512-heV2+jmXyYnUrpUXSPugqWDRpnsQcDm2AX4wzTuvgdlZfoNYO0O3W2AVpJYaDn9AG4JdM6Kxom8+foE7/BcSig==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-musl@11.19.1': + resolution: {integrity: sha512-jvo2Pjs1c9KPxMuMPIeQsgu0mOJF9rEb3y3TdpsrqwxRM+AN6/nDDwv45n5ZrUnQMsdBy5gIabioMKnQfWo9ew==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': + resolution: {integrity: sha512-vLmdNxWCdN7Uo5suays6A/+ywBby2PWBBPXctWPg5V0+eVuzsJxgAn6MMB4mPlshskYbppjpN2Zg83ArHze9gQ==} + cpu: [ppc64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': + resolution: {integrity: sha512-/b+WgR+VTSBxzgOhDO7TlMXC1ufPIMR6Vj1zN+/x+MnyXGW7prTLzU9eW85Aj7Th7CCEG9ArCbTeqxCzFWdg2w==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': + resolution: {integrity: sha512-YlRdeWb9j42p29ROh+h4eg/OQ3dTJlpHSa+84pUM9+p6i3djtPz1q55yLJhgW9XfDch7FN1pQ/Vd6YP+xfRIuw==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': + resolution: {integrity: sha512-EDpafVOQWF8/MJynsjOGFThcqhRHy417sRyLfQmeiamJ8qVhSKAn2Dn2VVKUGCjVB9C46VGjhNo7nOPUi1x6uA==} + cpu: [s390x] + os: [linux] + + '@oxc-resolver/binding-linux-x64-gnu@11.19.1': + resolution: {integrity: sha512-NxjZe+rqWhr+RT8/Ik+5ptA3oz7tUw361Wa5RWQXKnfqwSSHdHyrw6IdcTfYuml9dM856AlKWZIUXDmA9kkiBQ==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-linux-x64-musl@11.19.1': + resolution: {integrity: sha512-cM/hQwsO3ReJg5kR+SpI69DMfvNCp+A/eVR4b4YClE5bVZwz8rh2Nh05InhwI5HR/9cArbEkzMjcKgTHS6UaNw==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-openharmony-arm64@11.19.1': + resolution: {integrity: sha512-QF080IowFB0+9Rh6RcD19bdgh49BpQHUW5TajG1qvWHvmrQznTZZjYlgE2ltLXyKY+qs4F/v5xuX1XS7Is+3qA==} + cpu: [arm64] + os: [openharmony] + + '@oxc-resolver/binding-wasm32-wasi@11.19.1': + resolution: {integrity: sha512-w8UCKhX826cP/ZLokXDS6+milN8y4X7zidsAttEdWlVoamTNf6lhBJldaWr3ukTDiye7s4HRcuPEPOXNC432Vg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': + resolution: {integrity: sha512-nJ4AsUVZrVKwnU/QRdzPCCrO0TrabBqgJ8pJhXITdZGYOV28TIYystV1VFLbQ7DtAcaBHpocT5/ZJnF78YJPtQ==} + cpu: [arm64] + os: [win32] + + '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': + resolution: {integrity: sha512-EW+ND5q2Tl+a3pH81l1QbfgbF3HmqgwLfDfVithRFheac8OTcnbXt/JxqD2GbDkb7xYEqy1zNaVFRr3oeG8npA==} + cpu: [ia32] + os: [win32] + + '@oxc-resolver/binding-win32-x64-msvc@11.19.1': + resolution: {integrity: sha512-6hIU3RQu45B+VNTY4Ru8ppFwjVS/S5qwYyGhBotmjxfEKk41I2DlGtRfGJndZ5+6lneE2pwloqunlOyZuX/XAw==} + cpu: [x64] + os: [win32] + + '@oxc-transform/binding-android-arm-eabi@0.127.0': + resolution: {integrity: sha512-jPnE3HfHJlA9NdPnE7UoY/D4USAoPD/DBx6S4HwFuuqub8ATIW5bCue4MriPuA5qotzMngCbvyrBELuCyM2HPA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxc-transform/binding-android-arm64@0.127.0': + resolution: {integrity: sha512-xB1TxtVUHmlv0VvK02fST227wH78Q2TrWv0gHrlmopEFISV2+A7hx2xkVPy/ESgDCGMPjjKxfZYPCv3BtZ2sPQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxc-transform/binding-darwin-arm64@0.127.0': + resolution: {integrity: sha512-pUZ5jHFe/DsZUQMWb/BOIEXbJg/vvRJU/SQyGT8Ik9pSThYOvioARBCBYwTJNG5ajddjQmcXpzENgLe07irvZA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxc-transform/binding-darwin-x64@0.127.0': + resolution: {integrity: sha512-d+2BJ/3JVW4L7cT6FAJIqOyds1t3ZHMBYT4MpFzzRjwxS0ToENa3gm3W3Mruq9G4DlNgfW0Mp8qZwqEXpvJbuQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxc-transform/binding-freebsd-x64@0.127.0': + resolution: {integrity: sha512-piZtLbhV0uaXkUW9IhGl0eW+qtBFQMvc8cuuvRtWhYit7sJcKKcL8AZaIq5Bwk/hDRBgoOyZMwX7qwS9X2PN1g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxc-transform/binding-linux-arm-gnueabihf@0.127.0': + resolution: {integrity: sha512-gxPAKRp3tWVnPul/z8cEZcZqkR12DOFx1vg7/yqYy/rh706xEpSw16aT4e5m3onctH/XKZeW1d4koa5vpriNFg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-transform/binding-linux-arm-musleabihf@0.127.0': + resolution: {integrity: sha512-U/bL7pzUbB4EVOmhkvdJn0lef4R5W+nRR8YLRaGXScapMxLcUdwNOiJRydoqnWJs6z4JU7chwGvR6Cs69eQ5Hw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-transform/binding-linux-arm64-gnu@0.127.0': + resolution: {integrity: sha512-YiPtyow694+IUBw8ZwN5CNXhz/89dW7XPiz+sTACN2sxvxCKlmcgEraFc9PizE9iKtcchA36konF+yGO8SMoQg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-arm64-musl@0.127.0': + resolution: {integrity: sha512-xBCF0HUiDFD9Uk9Zb95f9PkVM7uJlzHBjY4iT1UJupxg+ApqpUxRL0cfyO2anZcesqOM2GffLnLBT4gwdRv+bQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-ppc64-gnu@0.127.0': + resolution: {integrity: sha512-lKNIuNAdMBQBrQEh9FSloH+fE6EZY8U6ZUqAbPEjcIHiEBUO7mx7DwogCZ8gib1xffNppvQ6oz0hFI0fMWb4cQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxc-transform/binding-linux-riscv64-gnu@0.127.0': + resolution: {integrity: sha512-WPl6s7h+Q6nl4u09D4+WnFGDBNj7AMFD6QXBqd23F9/xl+li2WlpOUidldoUZVJLtARuhHQtO0PQugoRPaHKYA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxc-transform/binding-linux-riscv64-musl@0.127.0': + resolution: {integrity: sha512-/LD0ufzVWF5TMXs2enX9XLMF49LYz5kpVb0XDuHZ36UhjGrg7WvaxLJp+lwVpgpdoMC6Sydi/KGFgbhhYbkgtg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxc-transform/binding-linux-s390x-gnu@0.127.0': + resolution: {integrity: sha512-xL0Dmzv28ooYtB2440BnNEedsii0KO32I+gJTdFl0/RceqBXjSCE0cD9DxJA8ORJOyfyKUPTG3lZ+bjU0eEcUw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxc-transform/binding-linux-x64-gnu@0.127.0': + resolution: {integrity: sha512-klWVSHzEMMwXeTTZwalsbhIoJxl4GDjE/HIDUG+1O7cUojRx4WUnX0udfibc3RorMimakc4VWFU+x13lshfKgg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-linux-x64-musl@0.127.0': + resolution: {integrity: sha512-c4ELErkp2TqSZ/AQZZH80BHE6CY7lbFM2gEaOLeRkqXYMNw9U6wRwrdBMJtBv3ddD6HD1qLNhnEF+gpg/mDonw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-openharmony-arm64@0.127.0': + resolution: {integrity: sha512-1gGjYNSduyuaQ0q4+69StMlgQ7lhGePTq2hoTeeGngGMn8FcheFbW/M83CGh26R1PxyXPY5w/uPSahu4m2GpSw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-transform/binding-wasm32-wasi@0.127.0': + resolution: {integrity: sha512-Fvsh9QaBYiTK8Uq8Z0yR67aVf3Y+YXWq53sHTvnmpykj5rKslxBpbY3vwdWezsKcNWbnpmBlU9XKjAlyMdlqzg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@oxc-transform/binding-win32-arm64-msvc@0.127.0': + resolution: {integrity: sha512-9A4/Kbfk96PMR7FSpi68vy7+Sb6sQyN4jn4qYLafsEjKW1UuyBGsPclPFX0LlbtfpOyBo0DVhdScMiECTB7hrA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxc-transform/binding-win32-ia32-msvc@0.127.0': + resolution: {integrity: sha512-0nGodphAt3YGqlo4ZkU19sy3m6vD+q4L+y7GUdqmWdYjxE5if+ZA6vRzxQ/P1b8voiyhhHqPLBH+RHfNk/gKJw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxc-transform/binding-win32-x64-msvc@0.127.0': + resolution: {integrity: sha512-iOew3ViUfZMicYuaejgdV4GXVKQFX9tlXRqqv2gniZOdggtZCYzfVpOiKw/hzLXRJTWJ8fqkUks7E6nrk8JlTw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@pkgr/utils@2.4.2': resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -2208,6 +2574,9 @@ packages: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -2630,43 +2999,43 @@ packages: webpack-dev-server: optional: true - '@wyw-in-js/babel-preset@1.0.6': - resolution: {integrity: sha512-XPb8rnl/9mqsoeRuclHR4J2pUu8RNZFmsxR13BW2UgXXG4Iy+ymnpvJ8p1CGpvHq8wxGBhCMIocxNM1+1ytAjw==} - engines: {node: '>=20.0.0'} + '@wyw-in-js/babel-preset@2.0.0-alpha.1': + resolution: {integrity: sha512-VNOn/YL68IPXMktju5BH9wg5k/POIALRmh7AweoAiyDCoT/aBS677wUuJKVY3Dkz0bWqAhfQjmCxaMfStHw1tw==} + engines: {node: '>=22.0.0'} - '@wyw-in-js/esbuild@1.0.6': - resolution: {integrity: sha512-Y4bhaBtJalppGicO5w77Mf7IMnS3Pn8WpIKZhCmX6VUF8ufAJVOAS3zg5Kqxpcp0N7dlwri2gjSTA/JSvSKyiw==} - engines: {node: '>=20.0.0'} + '@wyw-in-js/esbuild@2.0.0-alpha.1': + resolution: {integrity: sha512-d/JqYkF49iJ1MUaRhNr0gl4glSECpOIidhezeMo5hsVZvMOgX5Va5NU75qfB0N/rzJA/ubn0TlVvvo4kSyh5wg==} + engines: {node: '>=22.0.0'} peerDependencies: esbuild: '>=0.12.0' - '@wyw-in-js/processor-utils@1.0.4': - resolution: {integrity: sha512-g9hfcK9qNRd+3aJfvMS0b/ek/SH9mio1zeQrPciOBNpDtXkJxUEzBHLDCrTgPzV7GYu7MljKRv/CfPlHrP3t/w==} - engines: {node: '>=20.0.0'} + '@wyw-in-js/processor-utils@2.0.0-alpha.1': + resolution: {integrity: sha512-GutN/v+UYGBLuefuXWcG9niWw93xwTiFv3pttLdOn9WQM9Q54di/6aRY54QaGEFoyxzWwjahdLM+o1f1Y41d4Q==} + engines: {node: '>=22.0.0'} - '@wyw-in-js/rollup@1.0.6': - resolution: {integrity: sha512-XzsCLEoSLg1OszTr02cx1weYzEh+JI1o6eVQPbUSmEDFifpqz0J1tWePb4V4HnGBrRII3bsllL2ywB2e+VnQhQ==} - engines: {node: '>=20.0.0'} + '@wyw-in-js/rollup@2.0.0-alpha.1': + resolution: {integrity: sha512-2++KwbQZe8cr8JXX0Oi8xdHRwaYtguFdpqnJyW4yClxr0D0FhVtaVYTJLGtj+9sK9U5QoLYUEhaCv8u1hwe8aA==} + engines: {node: '>=22.0.0'} peerDependencies: rollup: 1.20.0||^2.0.0||^3.0.0||^4.0.0 - '@wyw-in-js/shared@1.0.4': - resolution: {integrity: sha512-lH29Vy1HVo+os8slxTP/E1qZ8Mo48WhzyYR8dDyplyI2qXwOGHqwkkFmuFI4q1/J3vf1i8v8k/+gkP1T5fNTZA==} - engines: {node: '>=20.0.0'} + '@wyw-in-js/shared@2.0.0-alpha.1': + resolution: {integrity: sha512-iUx7kb8nRy7lSnaiCB33LkCdqSdQ9Ly6QZh6QpcmM0tikCFROrq4t0iHKQzPMPhID5iS5ICrm8GXhutKFAVbrA==} + engines: {node: '>=22.0.0'} - '@wyw-in-js/transform@1.0.6': - resolution: {integrity: sha512-fObTiuRgcOgl4K+cK1LuT+knCjbAWCoM/nrpHuFfwQqYLcUfM2WPFVvlXoTFxhI4svJrPBysmW7VryjwDYxEzw==} - engines: {node: '>=20.0.0'} + '@wyw-in-js/transform@2.0.0-alpha.1': + resolution: {integrity: sha512-DyUrsAhdY4LByD1/jaZinYHVv2YXQ5tLZ4BhKfhX2w58Fl6iTmZHqTRYfwEYT7/W1unoxAJtfXYiI9sMbk4iug==} + engines: {node: '>=22.0.0'} - '@wyw-in-js/vite@1.0.6': - resolution: {integrity: sha512-Q0u3UeIy/kluLTayGED6hDqJG8E1rU5KfJITRaOP6T1jTM02i0SOg5lD+T/j5b+lZ5kni9xaScTbx0vWruDClQ==} - engines: {node: '>=20.0.0'} + '@wyw-in-js/vite@2.0.0-alpha.1': + resolution: {integrity: sha512-32SEyeRredKxnFyY6orUzfY/VlFUw36gmdE+Qq4QiD1WDFlAxYjIEZF3WfZRlU919n94vLKkC6nHp2tb5l2Bew==} + engines: {node: '>=22.0.0'} peerDependencies: vite: '>=3.2.7' - '@wyw-in-js/webpack-loader@1.0.6': - resolution: {integrity: sha512-/EdKmzVYdN3ZD0W9kdT35ConT5fBSe/X0/C4gDrLrRL7TtnbxrxpcBWl0Of4158Yhplxm91hGkl+HRiYD9GJHQ==} - engines: {node: '>=20.0.0'} + '@wyw-in-js/webpack-loader@2.0.0-alpha.1': + resolution: {integrity: sha512-g0vxsCFnY55hLiWOSSL7iEtWlgZPhQm1Iy5NDymblPMSkWn0tZvoFc6ZGvr6WmhOucgI/b+x1KHPrvkovgbCQQ==} + engines: {node: '>=22.0.0'} peerDependencies: webpack: ^5.76.0 @@ -2803,6 +3172,7 @@ packages: are-we-there-yet@1.1.7: resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} + deprecated: This package is no longer supported. argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -3056,6 +3426,7 @@ packages: boolean@3.2.0: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. boxen@1.3.0: resolution: {integrity: sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==} @@ -4312,6 +4683,7 @@ packages: eslint@8.54.0: resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true espree@9.6.1: @@ -4591,6 +4963,7 @@ packages: fstream@1.0.12: resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} engines: {node: '>=0.6'} + deprecated: This package is no longer supported. function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -4604,6 +4977,7 @@ packages: gauge@2.7.4: resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} + deprecated: This package is no longer supported. gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -4680,13 +5054,16 @@ packages: glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me global-agent@3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} @@ -5036,6 +5413,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.3: resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} @@ -5648,6 +6026,7 @@ packages: keygrip@1.1.0: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. keyv@4.5.3: resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} @@ -5690,7 +6069,7 @@ packages: koa-router@7.4.0: resolution: {integrity: sha512-IWhaDXeAnfDBEpWS6hkGdZ1ablgr6Q6pGdXCyK38RbzuH4LkUOpPqPw+3f8l8aTDrQmBQ7xJc0bs2yV4dzcO+g==} engines: {node: '>= 4'} - deprecated: '**IMPORTANT 10x+ PERFORMANCE UPGRADE**: Please upgrade to v12.0.1+ as we have fixed an issue with debuglog causing 10x slower router benchmark performance, see https://github.com/koajs/router/pull/173' + deprecated: 'Please use @koa/router instead, starting from v9! ' koa-send@5.0.1: resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} @@ -6233,6 +6612,7 @@ packages: node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead node-fetch@2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} @@ -6398,6 +6778,17 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + oxc-parser@0.127.0: + resolution: {integrity: sha512-bkgD4qHlN7WxLdX8bLXdaU54TtQtAIg/ZBAfm0aje/mo3MRDo3P0hZSgr4U7O3xfX+fQmR5AP04JS/TGcZLcFA==} + engines: {node: ^20.19.0 || >=22.12.0} + + oxc-resolver@11.19.1: + resolution: {integrity: sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==} + + oxc-transform@0.127.0: + resolution: {integrity: sha512-NQOcL0m4mfYJyv3DRbjlQI0MOldnxOEqHwU53j7pI8UGThywfty+OkalWPmSGhHG8qhjxn9RJfWCm8O2UNPUcQ==} + engines: {node: ^20.19.0 || >=22.12.0} + p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -6786,6 +7177,10 @@ packages: q@1.5.1: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + deprecated: |- + You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} @@ -7109,10 +7504,12 @@ packages: rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true roarr@2.15.4: @@ -7380,6 +7777,7 @@ packages: source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} + deprecated: The work that was done in this beta branch won't be included in future versions sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} @@ -7656,6 +8054,7 @@ packages: tar@6.2.0: resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} engines: {node: '>=10'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me teeny-request@7.1.1: resolution: {integrity: sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==} @@ -9813,6 +10212,22 @@ snapshots: '@emmetio/scanner@1.0.0': {} + '@emnapi/core@1.9.2': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.6.2 + optional: true + + '@emnapi/runtime@1.9.2': + dependencies: + tslib: 2.6.2 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.6.2 + optional: true + '@emotion/is-prop-valid@1.2.0': dependencies: '@emotion/memoize': 0.8.0 @@ -10023,7 +10438,7 @@ snapshots: '@jest/test-result': 29.6.2 '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 '@types/node': 17.0.39 chalk: 4.1.2 collect-v8-coverage: 1.0.2 @@ -10051,7 +10466,7 @@ snapshots: '@jest/source-map@29.6.0': dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 @@ -10110,6 +10525,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.1': {} '@jridgewell/set-array@1.1.2': {} @@ -10118,8 +10538,8 @@ snapshots: '@jridgewell/source-map@0.3.2': dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/source-map@0.3.6': dependencies: @@ -10164,6 +10584,13 @@ snapshots: mkdirp: 0.5.6 rimraf: 2.7.1 + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@tybys/wasm-util': 0.10.1 + optional: true + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true @@ -10183,6 +10610,201 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + '@oxc-parser/binding-android-arm-eabi@0.127.0': + optional: true + + '@oxc-parser/binding-android-arm64@0.127.0': + optional: true + + '@oxc-parser/binding-darwin-arm64@0.127.0': + optional: true + + '@oxc-parser/binding-darwin-x64@0.127.0': + optional: true + + '@oxc-parser/binding-freebsd-x64@0.127.0': + optional: true + + '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': + optional: true + + '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': + optional: true + + '@oxc-parser/binding-linux-arm64-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-arm64-musl@0.127.0': + optional: true + + '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-musl@0.127.0': + optional: true + + '@oxc-parser/binding-linux-s390x-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.127.0': + optional: true + + '@oxc-parser/binding-openharmony-arm64@0.127.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.127.0': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.127.0': + optional: true + + '@oxc-parser/binding-win32-ia32-msvc@0.127.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.127.0': + optional: true + + '@oxc-project/types@0.127.0': {} + + '@oxc-resolver/binding-android-arm-eabi@11.19.1': + optional: true + + '@oxc-resolver/binding-android-arm64@11.19.1': + optional: true + + '@oxc-resolver/binding-darwin-arm64@11.19.1': + optional: true + + '@oxc-resolver/binding-darwin-x64@11.19.1': + optional: true + + '@oxc-resolver/binding-freebsd-x64@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-arm-musleabihf@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-arm64-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-arm64-musl@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-ppc64-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-riscv64-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-riscv64-musl@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-s390x-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-x64-gnu@11.19.1': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@11.19.1': + optional: true + + '@oxc-resolver/binding-openharmony-arm64@11.19.1': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + dependencies: + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': + optional: true + + '@oxc-resolver/binding-win32-ia32-msvc@11.19.1': + optional: true + + '@oxc-resolver/binding-win32-x64-msvc@11.19.1': + optional: true + + '@oxc-transform/binding-android-arm-eabi@0.127.0': + optional: true + + '@oxc-transform/binding-android-arm64@0.127.0': + optional: true + + '@oxc-transform/binding-darwin-arm64@0.127.0': + optional: true + + '@oxc-transform/binding-darwin-x64@0.127.0': + optional: true + + '@oxc-transform/binding-freebsd-x64@0.127.0': + optional: true + + '@oxc-transform/binding-linux-arm-gnueabihf@0.127.0': + optional: true + + '@oxc-transform/binding-linux-arm-musleabihf@0.127.0': + optional: true + + '@oxc-transform/binding-linux-arm64-gnu@0.127.0': + optional: true + + '@oxc-transform/binding-linux-arm64-musl@0.127.0': + optional: true + + '@oxc-transform/binding-linux-ppc64-gnu@0.127.0': + optional: true + + '@oxc-transform/binding-linux-riscv64-gnu@0.127.0': + optional: true + + '@oxc-transform/binding-linux-riscv64-musl@0.127.0': + optional: true + + '@oxc-transform/binding-linux-s390x-gnu@0.127.0': + optional: true + + '@oxc-transform/binding-linux-x64-gnu@0.127.0': + optional: true + + '@oxc-transform/binding-linux-x64-musl@0.127.0': + optional: true + + '@oxc-transform/binding-openharmony-arm64@0.127.0': + optional: true + + '@oxc-transform/binding-wasm32-wasi@0.127.0': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + optional: true + + '@oxc-transform/binding-win32-arm64-msvc@0.127.0': + optional: true + + '@oxc-transform/binding-win32-ia32-msvc@0.127.0': + optional: true + + '@oxc-transform/binding-win32-x64-msvc@0.127.0': + optional: true + '@pkgr/utils@2.4.2': dependencies: cross-spawn: 7.0.3 @@ -10287,7 +10909,7 @@ snapshots: '@rollup/pluginutils@5.3.0(rollup@4.56.0)': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: @@ -10423,9 +11045,14 @@ snapshots: '@tootallnate/once@1.1.2': {} + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.6.2 + optional: true + '@types/acorn@4.0.6': dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.8 '@types/babel__core@7.20.5': dependencies: @@ -10482,11 +11109,11 @@ snapshots: '@types/estree-jsx@0.0.1': dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.8 '@types/estree-jsx@1.0.0': dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.8 '@types/estree@1.0.1': {} @@ -10947,99 +11574,111 @@ snapshots: webpack: 5.98.0(@swc/core@1.3.20)(esbuild@0.18.20)(webpack-cli@5.0.0) webpack-cli: 5.0.0(webpack@5.98.0) - '@wyw-in-js/babel-preset@1.0.6': + '@wyw-in-js/babel-preset@2.0.0-alpha.1': dependencies: '@babel/core': 7.23.5 - '@wyw-in-js/transform': 1.0.6 + '@wyw-in-js/shared': 2.0.0-alpha.1 + '@wyw-in-js/transform': 2.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - bufferutil - supports-color - utf-8-validate - '@wyw-in-js/esbuild@1.0.6(esbuild@0.15.16)': + '@wyw-in-js/esbuild@2.0.0-alpha.1(esbuild@0.15.16)': dependencies: - '@wyw-in-js/shared': 1.0.4 - '@wyw-in-js/transform': 1.0.6 + '@wyw-in-js/shared': 2.0.0-alpha.1 + '@wyw-in-js/transform': 2.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) esbuild: 0.15.16 + oxc-transform: 0.127.0 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - bufferutil - supports-color - utf-8-validate - '@wyw-in-js/processor-utils@1.0.4': + '@wyw-in-js/processor-utils@2.0.0-alpha.1': dependencies: - '@babel/generator': 7.23.5 - '@wyw-in-js/shared': 1.0.4 + '@wyw-in-js/shared': 2.0.0-alpha.1 transitivePeerDependencies: - supports-color - '@wyw-in-js/rollup@1.0.6(rollup@4.56.0)': + '@wyw-in-js/rollup@2.0.0-alpha.1(rollup@4.56.0)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.56.0) - '@wyw-in-js/shared': 1.0.4 - '@wyw-in-js/transform': 1.0.6 + '@wyw-in-js/shared': 2.0.0-alpha.1 + '@wyw-in-js/transform': 2.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) rollup: 4.56.0 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - bufferutil - supports-color - utf-8-validate - '@wyw-in-js/shared@1.0.4': + '@wyw-in-js/shared@2.0.0-alpha.1': dependencies: debug: 4.3.4 find-up: 5.0.0 - minimatch: 9.0.3 + minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@wyw-in-js/transform@1.0.6': + '@wyw-in-js/transform@2.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: - '@babel/core': 7.23.5 - '@babel/generator': 7.23.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 - '@wyw-in-js/processor-utils': 1.0.4 - '@wyw-in-js/shared': 1.0.4 + '@jridgewell/remapping': 2.3.5 + '@wyw-in-js/processor-utils': 2.0.0-alpha.1 + '@wyw-in-js/shared': 2.0.0-alpha.1 cosmiconfig: 8.2.0 happy-dom: 20.3.7 minimatch: 9.0.5 + oxc-parser: 0.127.0 + oxc-resolver: 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + oxc-transform: 0.127.0 source-map: 0.7.4 stylis: 4.3.0 ts-invariant: 0.10.3 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - bufferutil - supports-color - utf-8-validate - '@wyw-in-js/vite@1.0.6(vite@3.2.10(@types/node@25.0.10)(terser@5.39.0))': + '@wyw-in-js/vite@2.0.0-alpha.1(vite@3.2.10(@types/node@25.0.10)(terser@5.39.0))': dependencies: - '@wyw-in-js/shared': 1.0.4 - '@wyw-in-js/transform': 1.0.6 + '@wyw-in-js/shared': 2.0.0-alpha.1 + '@wyw-in-js/transform': 2.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) vite: 3.2.10(@types/node@25.0.10)(terser@5.39.0) transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - bufferutil - supports-color - utf-8-validate - '@wyw-in-js/vite@1.0.6(vite@3.2.7(@types/node@25.0.10)(terser@5.39.0))': + '@wyw-in-js/vite@2.0.0-alpha.1(vite@3.2.7(@types/node@25.0.10)(terser@5.39.0))': dependencies: - '@wyw-in-js/shared': 1.0.4 - '@wyw-in-js/transform': 1.0.6 + '@wyw-in-js/shared': 2.0.0-alpha.1 + '@wyw-in-js/transform': 2.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) vite: 3.2.7(@types/node@25.0.10)(terser@5.39.0) transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - bufferutil - supports-color - utf-8-validate - '@wyw-in-js/webpack-loader@1.0.6(webpack@5.98.0)': + '@wyw-in-js/webpack-loader@2.0.0-alpha.1(webpack@5.98.0)': dependencies: - '@wyw-in-js/shared': 1.0.4 - '@wyw-in-js/transform': 1.0.6 - webpack: 5.98.0(@swc/core@1.3.20)(esbuild@0.18.20)(webpack-cli@5.0.0) + '@wyw-in-js/shared': 2.0.0-alpha.1 + '@wyw-in-js/transform': 2.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + webpack: 5.98.0(@swc/core@1.3.20)(esbuild@0.18.20)(webpack-cli@4.9.2) transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - bufferutil - supports-color - utf-8-validate @@ -12075,7 +12714,7 @@ snapshots: postcss-modules-values: 4.0.0(postcss@8.4.31) postcss-value-parser: 4.2.0 semver: 7.5.4 - webpack: 5.98.0(@swc/core@1.3.20)(esbuild@0.18.20)(webpack-cli@5.0.0) + webpack: 5.98.0(@swc/core@1.3.20)(esbuild@0.18.20)(webpack-cli@4.9.2) css-select@4.3.0: dependencies: @@ -15117,7 +15756,7 @@ snapshots: micromark-util-events-to-acorn@1.2.0: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.1 + '@types/estree': 1.0.8 estree-util-visit: 1.2.0 micromark-util-types: 1.0.2 uvu: 0.5.6 @@ -15199,7 +15838,7 @@ snapshots: mini-css-extract-plugin@2.7.0(webpack@5.98.0): dependencies: schema-utils: 4.0.0 - webpack: 5.98.0(@swc/core@1.3.20)(esbuild@0.18.20)(webpack-cli@5.0.0) + webpack: 5.98.0(@swc/core@1.3.20)(esbuild@0.18.20)(webpack-cli@4.9.2) mini-svg-data-uri@1.4.4: {} @@ -15499,6 +16138,80 @@ snapshots: outdent@0.5.0: {} + oxc-parser@0.127.0: + dependencies: + '@oxc-project/types': 0.127.0 + optionalDependencies: + '@oxc-parser/binding-android-arm-eabi': 0.127.0 + '@oxc-parser/binding-android-arm64': 0.127.0 + '@oxc-parser/binding-darwin-arm64': 0.127.0 + '@oxc-parser/binding-darwin-x64': 0.127.0 + '@oxc-parser/binding-freebsd-x64': 0.127.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.127.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.127.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.127.0 + '@oxc-parser/binding-linux-arm64-musl': 0.127.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.127.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.127.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.127.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.127.0 + '@oxc-parser/binding-linux-x64-gnu': 0.127.0 + '@oxc-parser/binding-linux-x64-musl': 0.127.0 + '@oxc-parser/binding-openharmony-arm64': 0.127.0 + '@oxc-parser/binding-wasm32-wasi': 0.127.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.127.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.127.0 + '@oxc-parser/binding-win32-x64-msvc': 0.127.0 + + oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2): + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.19.1 + '@oxc-resolver/binding-android-arm64': 11.19.1 + '@oxc-resolver/binding-darwin-arm64': 11.19.1 + '@oxc-resolver/binding-darwin-x64': 11.19.1 + '@oxc-resolver/binding-freebsd-x64': 11.19.1 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.19.1 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.19.1 + '@oxc-resolver/binding-linux-arm64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-arm64-musl': 11.19.1 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-riscv64-musl': 11.19.1 + '@oxc-resolver/binding-linux-s390x-gnu': 11.19.1 + '@oxc-resolver/binding-linux-x64-gnu': 11.19.1 + '@oxc-resolver/binding-linux-x64-musl': 11.19.1 + '@oxc-resolver/binding-openharmony-arm64': 11.19.1 + '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@oxc-resolver/binding-win32-arm64-msvc': 11.19.1 + '@oxc-resolver/binding-win32-ia32-msvc': 11.19.1 + '@oxc-resolver/binding-win32-x64-msvc': 11.19.1 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + + oxc-transform@0.127.0: + optionalDependencies: + '@oxc-transform/binding-android-arm-eabi': 0.127.0 + '@oxc-transform/binding-android-arm64': 0.127.0 + '@oxc-transform/binding-darwin-arm64': 0.127.0 + '@oxc-transform/binding-darwin-x64': 0.127.0 + '@oxc-transform/binding-freebsd-x64': 0.127.0 + '@oxc-transform/binding-linux-arm-gnueabihf': 0.127.0 + '@oxc-transform/binding-linux-arm-musleabihf': 0.127.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.127.0 + '@oxc-transform/binding-linux-arm64-musl': 0.127.0 + '@oxc-transform/binding-linux-ppc64-gnu': 0.127.0 + '@oxc-transform/binding-linux-riscv64-gnu': 0.127.0 + '@oxc-transform/binding-linux-riscv64-musl': 0.127.0 + '@oxc-transform/binding-linux-s390x-gnu': 0.127.0 + '@oxc-transform/binding-linux-x64-gnu': 0.127.0 + '@oxc-transform/binding-linux-x64-musl': 0.127.0 + '@oxc-transform/binding-openharmony-arm64': 0.127.0 + '@oxc-transform/binding-wasm32-wasi': 0.127.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.127.0 + '@oxc-transform/binding-win32-ia32-msvc': 0.127.0 + '@oxc-transform/binding-win32-x64-msvc': 0.127.0 + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -16990,7 +17703,7 @@ snapshots: schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.98.0(@swc/core@1.3.20)(esbuild@0.18.20)(webpack-cli@5.0.0) + webpack: 5.98.0(@swc/core@1.3.20)(esbuild@0.18.20)(webpack-cli@4.9.2) optionalDependencies: '@swc/core': 1.3.20 esbuild: 0.18.20 @@ -17449,7 +18162,7 @@ snapshots: v8-to-istanbul@9.1.0: dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.9.0 diff --git a/website/package.json b/website/package.json index 765e6c9db..ea6b84a7e 100644 --- a/website/package.json +++ b/website/package.json @@ -42,8 +42,8 @@ "@babel/cli": "^7.23.4", "@babel/core": "^7.23.5", "@linaria/stylelint": "workspace:^", - "@wyw-in-js/babel-preset": "^1.0.6", - "@wyw-in-js/webpack-loader": "^1.0.6", + "@wyw-in-js/babel-preset": "2.0.0-alpha.1", + "@wyw-in-js/webpack-loader": "2.0.0-alpha.1", "babel-loader": "^8.2.5", "babel-plugin-module-resolver": "^4.1.0", "cross-env": "^7.0.3",