From 9edfaed9424a836a609c5f9c0645097eb84a99b7 Mon Sep 17 00:00:00 2001 From: XGHeaven Date: Tue, 10 Mar 2026 11:26:38 +0800 Subject: [PATCH] feat: improve rolldown engine --- .changeset/two-gifts-doubt.md | 5 + examples/rolldown-react/README.md | 3 + examples/rolldown-react/build.config.mts | 26 + examples/rolldown-react/package.json | 64 + examples/rolldown-react/src/a.cts | 10 + examples/rolldown-react/src/b.cjs | 3 + examples/rolldown-react/src/c.mts | 3 + .../src/components/Button/index.scss | 23 + .../src/components/Button/index.tsx | 47 + .../src/components/Input/index.less | 14 + .../src/components/Input/index.tsx | 24 + .../src/components/Test/index.css | 8 + .../src/components/Test/index.jsx | 53 + examples/rolldown-react/src/d.mjs | 4 + examples/rolldown-react/src/index.ts | 3 + examples/rolldown-react/src/typings.d.ts | 5 + examples/rolldown-react/tsconfig.json | 19 + packages/pkg/package.json | 10 +- packages/pkg/src/core/init.ts | 5 - packages/pkg/src/engine/rolldown/build.ts | 31 + packages/pkg/src/engine/rolldown/options.ts | 133 +- packages/pkg/src/engine/rollup/build.ts | 60 + packages/pkg/src/engine/rollup/options.ts | 143 +- .../shared/define.ts} | 4 +- packages/pkg/src/engine/shared/external.ts | 49 + packages/pkg/src/engine/shared/outputs.ts | 89 ++ .../shared/swcConfig.ts} | 4 +- packages/pkg/src/helpers/dts.ts | 2 +- packages/pkg/src/tasks/bundle.ts | 75 +- packages/pkg/tsconfig.json | 3 +- pnpm-lock.yaml | 1330 +++++++++-------- tests/helpers/run.ts | 87 +- .../__snapshots__/index.test.ts.snap | 52 + tests/integration/bundle-asset/index.test.ts | 17 + tests/integration/bundle-asset/package.json | 10 + .../integration/bundle-asset/src/favicon.png | Bin 0 -> 2719 bytes tests/integration/bundle-asset/src/index.ts | 7 + tests/integration/bundle-asset/src/test.json | 4 + tests/integration/bundle-asset/src/test.less | 3 + tests/integration/bundle-asset/src/test.scss | 5 + tests/integration/bundle-asset/src/test.svg | 3 + tests/integration/bundle-asset/tsconfig.json | 3 + .../__snapshots__/index.test.ts.snap | 48 + .../integration/bundle-browser/index.test.ts | 3 + .../default/__snapshots__/index.test.ts.snap | 2 +- .../react/__snapshots__/index.test.ts.snap | 2 +- tests/integration/tsconfig.common.json | 3 +- tests/package.json | 3 + 48 files changed, 1580 insertions(+), 924 deletions(-) create mode 100644 .changeset/two-gifts-doubt.md create mode 100644 examples/rolldown-react/README.md create mode 100644 examples/rolldown-react/build.config.mts create mode 100644 examples/rolldown-react/package.json create mode 100644 examples/rolldown-react/src/a.cts create mode 100644 examples/rolldown-react/src/b.cjs create mode 100644 examples/rolldown-react/src/c.mts create mode 100644 examples/rolldown-react/src/components/Button/index.scss create mode 100644 examples/rolldown-react/src/components/Button/index.tsx create mode 100644 examples/rolldown-react/src/components/Input/index.less create mode 100644 examples/rolldown-react/src/components/Input/index.tsx create mode 100644 examples/rolldown-react/src/components/Test/index.css create mode 100644 examples/rolldown-react/src/components/Test/index.jsx create mode 100644 examples/rolldown-react/src/d.mjs create mode 100644 examples/rolldown-react/src/index.ts create mode 100644 examples/rolldown-react/src/typings.d.ts create mode 100644 examples/rolldown-react/tsconfig.json create mode 100644 packages/pkg/src/engine/rolldown/build.ts create mode 100644 packages/pkg/src/engine/rollup/build.ts rename packages/pkg/src/{helpers/getDefaultDefineValues.ts => engine/shared/define.ts} (58%) create mode 100644 packages/pkg/src/engine/shared/outputs.ts rename packages/pkg/src/{helpers/defaultSwcConfig.ts => engine/shared/swcConfig.ts} (96%) create mode 100644 tests/integration/bundle-asset/__snapshots__/index.test.ts.snap create mode 100644 tests/integration/bundle-asset/index.test.ts create mode 100644 tests/integration/bundle-asset/package.json create mode 100644 tests/integration/bundle-asset/src/favicon.png create mode 100644 tests/integration/bundle-asset/src/index.ts create mode 100644 tests/integration/bundle-asset/src/test.json create mode 100644 tests/integration/bundle-asset/src/test.less create mode 100644 tests/integration/bundle-asset/src/test.scss create mode 100644 tests/integration/bundle-asset/src/test.svg create mode 100644 tests/integration/bundle-asset/tsconfig.json diff --git a/.changeset/two-gifts-doubt.md b/.changeset/two-gifts-doubt.md new file mode 100644 index 00000000..20c90caa --- /dev/null +++ b/.changeset/two-gifts-doubt.md @@ -0,0 +1,5 @@ +--- +'@ice/pkg': minor +--- + +feat: improve rolldown engine diff --git a/examples/rolldown-react/README.md b/examples/rolldown-react/README.md new file mode 100644 index 00000000..1ab57ddc --- /dev/null +++ b/examples/rolldown-react/README.md @@ -0,0 +1,3 @@ +# Rolldown React Example + +Rolldown React Example, for show less/scss/jsx/tsx usage. diff --git a/examples/rolldown-react/build.config.mts b/examples/rolldown-react/build.config.mts new file mode 100644 index 00000000..204e39d6 --- /dev/null +++ b/examples/rolldown-react/build.config.mts @@ -0,0 +1,26 @@ +import { defineConfig } from '@ice/pkg'; + +// https://pkg.ice.work/reference/config-list +export default defineConfig({ + pkgs: [ + 'esm', 'es2017', 'cjs', + // '!esm', '!es2017', '!umd', + { extends: ['!esm'] }, + {extends: ['!es2017']}, + {extends: ['!umd']} + ], + plugins: [ + ['@ice/pkg-plugin-jsx-plus'], + ], + jsxRuntime: 'classic', + sourceMaps: false, + bundle: { + engine: 'rolldown' + }, + declaration: { + generator: 'oxc', + }, + alias: { + '@': './src', + }, +}); diff --git a/examples/rolldown-react/package.json b/examples/rolldown-react/package.json new file mode 100644 index 00000000..54c8f730 --- /dev/null +++ b/examples/rolldown-react/package.json @@ -0,0 +1,64 @@ +{ + "name": "@ice/pkg-examples-rolldown-react", + "version": "0.0.0", + "private": true, + "files": [ + "esm", + "cjs", + "es2017", + "dist", + "build" + ], + "exports": { + ".": { + "es2017": { + "types": "./es2017/index.d.ts", + "default": "./es2017/index.js" + }, + "default": { + "types": "./esm/index.d.ts", + "default": "./esm/index.js" + } + }, + "./*": "./*" + }, + "sideEffects": [ + "dist/*", + "*.scss", + "*.less", + "*.css" + ], + "scripts": { + "start": "ice-pkg start", + "build": "ice-pkg build", + "prepublishOnly": "npm run build", + "vitest": "vitest", + "jest": "jest" + }, + "dependencies": { + "@ice/jsx-runtime": "^0.2.0", + "@swc/helpers": "^0.5.13", + "babel-runtime-jsx-plus": "^0.1.5", + "core-js": "^3.38.1" + }, + "devDependencies": { + "@ice/pkg": "workspace:*", + "@ice/pkg-plugin-jsx-plus": "workspace:*", + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", + "identity-obj-proxy": "^3.0.0", + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "catalog:", + "sass-loader": "catalog:", + "style-unit": "^3.0.4" + }, + "peerDependencies": { + "react": "^17 || ^18" + }, + "publishConfig": { + "access": "public" + }, + "license": "MIT" +} diff --git a/examples/rolldown-react/src/a.cts b/examples/rolldown-react/src/a.cts new file mode 100644 index 00000000..4b257a32 --- /dev/null +++ b/examples/rolldown-react/src/a.cts @@ -0,0 +1,10 @@ +export interface Person { + age: number; + name: string; +} + +export const p: Person = { age: 3, name: 'ice' }; + +const { ...rest } = p; + +console.log(rest); diff --git a/examples/rolldown-react/src/b.cjs b/examples/rolldown-react/src/b.cjs new file mode 100644 index 00000000..a9f1e4d4 --- /dev/null +++ b/examples/rolldown-react/src/b.cjs @@ -0,0 +1,3 @@ +module.exports = function () { + console.log(123); +}; diff --git a/examples/rolldown-react/src/c.mts b/examples/rolldown-react/src/c.mts new file mode 100644 index 00000000..951b7c7c --- /dev/null +++ b/examples/rolldown-react/src/c.mts @@ -0,0 +1,3 @@ +export default function () { + console.log('c'); +} diff --git a/examples/rolldown-react/src/components/Button/index.scss b/examples/rolldown-react/src/components/Button/index.scss new file mode 100644 index 00000000..e4f0039e --- /dev/null +++ b/examples/rolldown-react/src/components/Button/index.scss @@ -0,0 +1,23 @@ +.pkg-btn { + border-radius: 6px; + height: 32px; + padding: 4px 15px; + font-size: 14px; + text-align: center; + border: 1px solid transparent; + cursor: pointer; + font-weight: 400; + +} + +.pkg-btn-primary { + color: #fff; + background-color: #1677ff; + box-shadow: 0 2px 0 rgb(5 145 255 / 10%); +} + +.pkg-btn-default { + background-color: #fff; + border-color: #d9d9d9; + box-shadow: 0 2px 0 rgb(0 0 0 / 2%); +} \ No newline at end of file diff --git a/examples/rolldown-react/src/components/Button/index.tsx b/examples/rolldown-react/src/components/Button/index.tsx new file mode 100644 index 00000000..76c56e41 --- /dev/null +++ b/examples/rolldown-react/src/components/Button/index.tsx @@ -0,0 +1,47 @@ +import * as React from 'react'; +import './index.scss'; +import Input from '@/components/Input'; + +console.log('input', Input); + +interface ButtonProps { + /** + * 设置按钮类型 + */ + type?: 'primary' | 'default'; + /** + * 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 + */ + href?: string; + /** + * 显式加载状态 + */ + loading: boolean; + /** + * 点击按钮时的回调 + */ + onClick?: React.MouseEventHandler; +} + +export const app: Application = { add: () => Promise.resolve(1) }; + +const Button: React.FunctionComponent> = (props: ButtonProps) => { + const { type = 'default' } = props; + const typeCssSelector = { + primary: 'pkg-btn-primary', + default: 'pkg-btn-default', + }; + return ( + + ); +}; + +Button.defaultProps = { + type: 'default', + onClick: () => {}, + href: undefined, +}; + +export default Button; diff --git a/examples/rolldown-react/src/components/Input/index.less b/examples/rolldown-react/src/components/Input/index.less new file mode 100644 index 00000000..83ae51b3 --- /dev/null +++ b/examples/rolldown-react/src/components/Input/index.less @@ -0,0 +1,14 @@ +input { + padding: 8px 10px; + border: 1px solid #dcdfe6; + border-radius: 4px; +} + +input:hover { + border-color: #a0cfff; +} + +input:focus { + border-color: #409eff; + outline: none; +} diff --git a/examples/rolldown-react/src/components/Input/index.tsx b/examples/rolldown-react/src/components/Input/index.tsx new file mode 100644 index 00000000..c3b45472 --- /dev/null +++ b/examples/rolldown-react/src/components/Input/index.tsx @@ -0,0 +1,24 @@ +import * as React from 'react'; +import PropTypes from 'prop-types'; +import './index.less'; + +export default class Input extends React.Component { + render() { + return ( + <> + + + ); + } +} + +Input.propTypes = { + /** + * 输入框的 id + */ + id: PropTypes.string, + /** + * 设置校验状态 + */ + status: PropTypes.string, +}; diff --git a/examples/rolldown-react/src/components/Test/index.css b/examples/rolldown-react/src/components/Test/index.css new file mode 100644 index 00000000..cde17967 --- /dev/null +++ b/examples/rolldown-react/src/components/Test/index.css @@ -0,0 +1,8 @@ +/* This is comment */ +.title { + color: red; +} + +.btn { + width: 50rpx; +} diff --git a/examples/rolldown-react/src/components/Test/index.jsx b/examples/rolldown-react/src/components/Test/index.jsx new file mode 100644 index 00000000..70c622f4 --- /dev/null +++ b/examples/rolldown-react/src/components/Test/index.jsx @@ -0,0 +1,53 @@ +import PropTypes from 'prop-types'; +import * as React from 'react'; +import './index.css'; +/** + * Test component + */ +const Test = ({ title }) => { + console.log(__DEV__); + console.log(process.env.NODE_ENV); + + const [visible, setVisible] = React.useState(false); + return ( +
+

+ {title} +

+ + +
+
Hello
+
World
+
+
+ ); +}; + +Test.propTypes = { + /** + * + */ + title: PropTypes.string, + /** + * + */ + baz: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + + /** + * + */ + bar(props, propName, componentName) { + // ... + }, +}; + +Test.defaultProps = { + title: 'Hello World', + bar: () => {}, + baz: 'baz', +}; + +export default Test; diff --git a/examples/rolldown-react/src/d.mjs b/examples/rolldown-react/src/d.mjs new file mode 100644 index 00000000..7050eb16 --- /dev/null +++ b/examples/rolldown-react/src/d.mjs @@ -0,0 +1,4 @@ +export default function () { + console.log('d'); + return 'd'; +} diff --git a/examples/rolldown-react/src/index.ts b/examples/rolldown-react/src/index.ts new file mode 100644 index 00000000..8a934aba --- /dev/null +++ b/examples/rolldown-react/src/index.ts @@ -0,0 +1,3 @@ +export { default as Button } from '@/components/Button'; +export { default as Test } from '@/components/Test'; +export { default as Input } from '@/components/Input'; diff --git a/examples/rolldown-react/src/typings.d.ts b/examples/rolldown-react/src/typings.d.ts new file mode 100644 index 00000000..5a99ac40 --- /dev/null +++ b/examples/rolldown-react/src/typings.d.ts @@ -0,0 +1,5 @@ +/// + +interface Application { + add: () => Promise; +} diff --git a/examples/rolldown-react/tsconfig.json b/examples/rolldown-react/tsconfig.json new file mode 100644 index 00000000..6e75ccde --- /dev/null +++ b/examples/rolldown-react/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "ESNext", + "target": "ESNext", + "jsx": "react", + "moduleResolution": "node", + "lib": ["ESNext", "DOM", "DOM.Iterable"], + "strict": true, + "skipLibCheck": true, + "paths": { + "@/*": ["./src/*"], + "example-pkg-react-component": ["./src"], + "example-pkg-react-component/*": ["./src/*"] + }, + "declaration": true, + "isolatedDeclarations": true + }, + "include": ["src"] +} diff --git a/packages/pkg/package.json b/packages/pkg/package.json index e0bdebea..db1b3f0f 100644 --- a/packages/pkg/package.json +++ b/packages/pkg/package.json @@ -66,14 +66,14 @@ "gzip-size": "^7.0.0", "http-proxy-middleware": "^3.0.5", "magic-string": "^0.25.7", - "oxc-transform": "~0.89.0", + "oxc-transform": "^0.114.0", "picocolors": "^1.0.0", "postcss": "^8.4.31", "postcss-plugin-rpx2vw": "^1.0.0", - "rolldown": "^0.15.1", + "rolldown": "^1.0.0-rc.8", "rollup": "^4.0.0", - "rollup-plugin-styler": "^1.8.0", - "rollup-plugin-visualizer": "^5.12.0", + "rollup-plugin-styler": "^2.0.0", + "rollup-plugin-visualizer": "^5.14.0", "semver": "^7.5.2", "tsc-alias": "1.8.13", "typescript": "^5.0.0", @@ -87,7 +87,7 @@ "@types/express": "^5.0.6", "@types/fs-extra": "^9.0.13", "@types/semver": "^7.7.1", - "cssnano": "^5.1.15", + "cssnano": "^7.0.0", "jest": "^29.4.3", "sass": "catalog:", "source-map": "0.6.1" diff --git a/packages/pkg/src/core/init.ts b/packages/pkg/src/core/init.ts index 08b29ee3..00fff7e3 100644 --- a/packages/pkg/src/core/init.ts +++ b/packages/pkg/src/core/init.ts @@ -1,6 +1,5 @@ import { AliasBundleFormatString, BuildTask, BundleUserConfig, Context, DeclarationUserConfig } from '../types.js'; import { formatEntry, getTransformDefaultOutputDir } from '../helpers/getTaskIO.js'; -import getDefaultDefineValues from '../helpers/getDefaultDefineValues.js'; import { stringifyObject } from '../utils.js'; import { merge, mergeWith, omit } from 'es-toolkit/object'; import path, { resolve } from 'node:path'; @@ -60,10 +59,6 @@ function initSharedTask(buildTask: BuildTask, options: InitTaskOptions) { config.alias ??= mergeDefaults({ ...pkg?.alias }, userConfig.alias ?? {}); // Configure define config.define = Object.assign( - // Note: The define values in bundle mode will be defined (according to the `modes` value) - // in generating rollup options. But when the command is test, we don't need to get the rollup options. - // So in test, we assume the mode is 'development'. - command === 'test' ? getDefaultDefineValues('development') : {}, stringifyObject(userConfig.define ?? {}), stringifyObject(pkg?.define ?? {}), stringifyObject(config.define ?? {}), diff --git a/packages/pkg/src/engine/rolldown/build.ts b/packages/pkg/src/engine/rolldown/build.ts new file mode 100644 index 00000000..b4295527 --- /dev/null +++ b/packages/pkg/src/engine/rolldown/build.ts @@ -0,0 +1,31 @@ +import type { OutputFile, OutputResult, TaskRunnerContext } from '../../types.js'; +import { BuildOptions, build as rolldownBuild } from 'rolldown'; + +export async function build(options: BuildOptions[], taskRunnerContext: TaskRunnerContext): Promise { + const { buildTask } = taskRunnerContext; + const { name: taskName } = buildTask; + + const outputs = await rolldownBuild(options); + + const outputFiles: OutputFile[] = []; + + for (let i = 0; i < outputs.length; i++) { + const output = outputs[i]; + output.output.forEach((chunk) => { + outputFiles.push({ + absolutePath: 'facadeModuleId' in chunk ? chunk.facadeModuleId! : undefined, + // dest: path.join(distDir ?? '', chunk.fileName ?? ''), + filename: chunk.fileName, + code: chunk.type === 'chunk' ? chunk.code : chunk.source, + }); + }); + } + + return { + taskName, + // modules: outputs.cache?.modules, + // TODO: correct type + outputs: outputs.map((o) => o.output) as any[], + outputFiles, + }; +} diff --git a/packages/pkg/src/engine/rolldown/options.ts b/packages/pkg/src/engine/rolldown/options.ts index 7e75c3f5..89fc5ac3 100644 --- a/packages/pkg/src/engine/rolldown/options.ts +++ b/packages/pkg/src/engine/rolldown/options.ts @@ -1,9 +1,10 @@ -import { RolldownOptions, Plugin, OutputOptions } from 'rolldown'; +import { Plugin, OutputOptions, BuildOptions } from 'rolldown'; import { Context, StylesRollupPluginOptions, TaskRunnerContext, PackageJson } from '../../types.js'; -import { getExternalsAndGlobals, getRollupOutputs } from '../rollup/options.js'; +import { getExternalsAndGlobals } from '../shared/external.js'; +import { getOutputs } from '../shared/outputs.js'; import { assertTaskBundleConfig } from '../../helpers/taskConfig.js'; import path from 'node:path'; -import getDefaultDefineValues from '../../helpers/getDefaultDefineValues.js'; +import getDefaultDefineValues from '../shared/define.js'; import styles from 'rollup-plugin-styler'; import image from '@rollup/plugin-image'; import autoprefixer from 'autoprefixer'; @@ -12,27 +13,24 @@ import { visualizer } from 'rollup-plugin-visualizer'; import { JSX_RUNTIME_SOURCE } from '../../constants.js'; import { RollupOptions } from 'rollup'; -export function getRolldownOptions(context: Context, taskRunnerContext: TaskRunnerContext): RolldownOptions { +export function getRolldownOptions(context: Context, taskRunnerContext: TaskRunnerContext): BuildOptions[] { const { pkg, commandArgs, command, rootDir } = context; const { buildTask } = taskRunnerContext; const { name: taskName, config: taskConfig } = buildTask; assertTaskBundleConfig(taskConfig); - const options: RolldownOptions = {}; - const [external, globals] = getExternalsAndGlobals(taskConfig, pkg as PackageJson); - options.input = taskConfig.entry; - options.external = external; // TODO: should warning if output is multiple - options.output = getRollupOutputs({ + const outputs = getOutputs({ + engine: 'rolldown', globals, bundleTaskConfig: taskConfig, pkg: pkg as PackageJson, mode: taskRunnerContext.mode, command, - })[0] as OutputOptions; + }) as OutputOptions[]; const alias: Record = {}; if (taskConfig.alias) { @@ -44,56 +42,75 @@ export function getRolldownOptions(context: Context, taskRunnerContext: TaskRunn } } - const plugins: Plugin[] = []; - - options.resolve = { - alias, - }; - options.define = { - ...getDefaultDefineValues(taskRunnerContext.mode), - // User define can override above. - ...taskConfig.define, - }; - - options.jsx = { - mode: taskConfig.jsxRuntime ?? 'automatic', - jsxImportSource: JSX_RUNTIME_SOURCE, - }; - - const cssMinify = taskConfig.cssMinify!(taskRunnerContext.mode, command); - const defaultStylesOptions: StylesRollupPluginOptions = { - plugins: [autoprefixer(), PostcssPluginRpxToVw], - mode: 'extract', - autoModules: true, - minimize: typeof cssMinify === 'boolean' ? cssMinify : cssMinify.options, - sourceMap: taskConfig.sourcemap, - }; - - plugins.push( - styles( - (taskConfig.modifyStylesOptions ?? [(options) => options]).reduce( - (prevStylesOptions, modifyStylesOptions) => modifyStylesOptions(prevStylesOptions), - defaultStylesOptions, - ), - ) as unknown as Plugin, - image() as unknown as Plugin, - ); - - if (commandArgs.analyzer) { + return outputs.map((output) => { + const options: BuildOptions = { + // disable module type of css + moduleTypes: { + '.css': 'js', + }, + output, + }; + + options.input = taskConfig.entry; + options.external = external; + + const plugins: Plugin[] = []; + + options.resolve = { + alias: { + ...alias, + }, + }; + + options.platform = taskConfig.browser ? 'browser' : 'node'; + + options.transform = { + define: { + ...getDefaultDefineValues(taskRunnerContext.mode), + // User define can override above. + ...taskConfig.define, + }, + jsx: { + runtime: taskConfig.jsxRuntime ?? 'automatic', + importSource: JSX_RUNTIME_SOURCE, + }, + }; + + const cssMinify = taskConfig.cssMinify!(taskRunnerContext.mode, command); + const defaultStylesOptions: StylesRollupPluginOptions = { + plugins: [autoprefixer(), PostcssPluginRpxToVw], + mode: 'extract', + autoModules: true, + minimize: typeof cssMinify === 'boolean' ? cssMinify : cssMinify.options, + sourceMap: taskConfig.sourcemap, + }; + plugins.push( - visualizer({ - title: `Rollup Visualizer(${taskName})`, - open: true, - filename: `${taskName}-stats.html`, - }) as unknown as Plugin, + styles( + (taskConfig.modifyStylesOptions ?? [(options) => options]).reduce( + (prevStylesOptions, modifyStylesOptions) => modifyStylesOptions(prevStylesOptions), + defaultStylesOptions, + ), + ) as unknown as Plugin, + image() as unknown as Plugin, ); - } - options.plugins = plugins; + if (commandArgs.analyzer) { + plugins.push( + visualizer({ + title: `Rollup Visualizer(${taskName})`, + open: true, + filename: `${taskName}-stats.html`, + }) as unknown as Plugin, + ); + } + + options.plugins = plugins; - return (taskConfig.modifyRollupOptions ?? [(options) => options]).reduce( - (prevOptions, modifyRollupOptions) => - modifyRollupOptions(prevOptions as unknown as RollupOptions) as RolldownOptions, - options, - ); + return (taskConfig.modifyRollupOptions ?? [(options) => options]).reduce( + (prevOptions, modifyRollupOptions) => + modifyRollupOptions(prevOptions as unknown as RollupOptions) as BuildOptions, + options, + ); + }); } diff --git a/packages/pkg/src/engine/rollup/build.ts b/packages/pkg/src/engine/rollup/build.ts new file mode 100644 index 00000000..0a7cf178 --- /dev/null +++ b/packages/pkg/src/engine/rollup/build.ts @@ -0,0 +1,60 @@ +import * as path from 'path'; +import * as rollup from 'rollup'; +import { toArray } from '../../utils.js'; +import type { + OutputAsset as RollupOutputAsset, + OutputChunk as RollupOutputChunk, + OutputOptions, + RollupBuild, + RollupOptions, + RollupOutput, +} from 'rollup'; +import type { OutputFile, OutputResult, TaskRunnerContext } from '../../types.js'; + +export async function build(rollupOptions: RollupOptions, taskRunnerContext: TaskRunnerContext): Promise { + const rollupOutputOptions = toArray(rollupOptions.output); + const { buildTask } = taskRunnerContext; + const { name: taskName } = buildTask; + + const bundle = await rollup.rollup(rollupOptions); + + const buildResult = await writeFiles( + (rollupOutputOptions as OutputOptions[]).filter(Boolean), + bundle.write.bind(bundle), + ); + + await bundle.close(); + + return { + taskName, + modules: bundle.cache?.modules, + ...buildResult, + }; +} + +export async function writeFiles( + rollupOutputOptions: OutputOptions[], + write: RollupBuild['write'], +): Promise> { + const outputFiles: OutputFile[] = []; + const outputs: Array = []; + + for (let o = 0; o < rollupOutputOptions.length; ++o) { + const writeResult = await write(rollupOutputOptions[o]); + const distDir = rollupOutputOptions[o].dir ?? ''; + writeResult.output.forEach((chunk: RollupOutputChunk | RollupOutputAsset) => { + outputFiles.push({ + absolutePath: 'facadeModuleId' in chunk ? chunk.facadeModuleId! : undefined, + dest: path.join(distDir ?? '', chunk.fileName ?? ''), + filename: chunk.fileName, + code: chunk.type === 'chunk' ? chunk.code : chunk.source, + }); + }); + outputs.push(writeResult.output); + } + + return { + outputs, + outputFiles, + }; +} diff --git a/packages/pkg/src/engine/rollup/options.ts b/packages/pkg/src/engine/rollup/options.ts index 9f6b7452..f559d562 100644 --- a/packages/pkg/src/engine/rollup/options.ts +++ b/packages/pkg/src/engine/rollup/options.ts @@ -5,27 +5,19 @@ import autoprefixer from 'autoprefixer'; import PostcssPluginRpxToVw from 'postcss-plugin-rpx2vw'; import json from '@rollup/plugin-json'; import swcPlugin from '../../rollupPlugins/swc.js'; -import minifyPlugin from '../../rollupPlugins/minify.js'; import babelPlugin from '../../rollupPlugins/babel.js'; import image from '@rollup/plugin-image'; import { visualizer } from 'rollup-plugin-visualizer'; import replace from '@rollup/plugin-replace'; -import getDefaultDefineValues from '../../helpers/getDefaultDefineValues.js'; +import getDefaultDefineValues from '../shared/define.js'; import transformAliasPlugin from '../../rollupPlugins/alias.js'; import bundleAliasPlugin from '@rollup/plugin-alias'; -import { - BundleTaskConfig, - Context, - NodeEnvMode, - PackageJson, - StylesRollupPluginOptions, - TaskRunnerContext, -} from '../../types.js'; -import type { OutputOptions, Plugin, RollupOptions } from 'rollup'; +import { Context, PackageJson, StylesRollupPluginOptions, TaskRunnerContext } from '../../types.js'; +import type { Plugin, RollupOptions } from 'rollup'; import path from 'path'; -import { BUILTIN_EXTERNAL_MAP } from '../shared/external.js'; -import { getFilenameConfig } from '../shared/filename.js'; -import { getTaskSwcOptions } from '../../helpers/defaultSwcConfig.js'; +import { getExternalsAndGlobals } from '../shared/external.js'; +import { getOutputs } from '../shared/outputs.js'; +import { getTaskSwcOptions } from '../shared/swcConfig.js'; import { assertTaskBuildableConfig } from '../../helpers/taskConfig.js'; export function getRollupOptions(context: Context, taskRunnerContext: TaskRunnerContext) { @@ -68,7 +60,8 @@ export function getRollupOptions(context: Context, taskRunnerContext: TaskRunner const [external, globals] = getExternalsAndGlobals(taskConfig, pkg as PackageJson); rollupOptions.input = taskConfig.entry ?? ''; rollupOptions.external = external; - rollupOptions.output = getRollupOutputs({ + rollupOptions.output = getOutputs({ + engine: 'rollup', globals: globals ?? {}, bundleTaskConfig: taskConfig, pkg: pkg as PackageJson, @@ -160,123 +153,3 @@ export function getRollupOptions(context: Context, taskRunnerContext: TaskRunner rollupOptions, ); } - -interface GetRollupOutputsOptions { - bundleTaskConfig: BundleTaskConfig; - globals: Record; - pkg: PackageJson; - mode: NodeEnvMode; - command: Context['command']; -} - -export function getRollupOutputs({ - globals, - bundleTaskConfig, - pkg, - mode, - command, -}: GetRollupOutputsOptions): OutputOptions[] { - const { outputDir, vendorName = 'vendor' } = bundleTaskConfig; - - const outputFormats = bundleTaskConfig.formats ?? []; - - const name = bundleTaskConfig.name ?? pkg.name; - const minify = bundleTaskConfig.jsMinify!(mode, command); - - return outputFormats.map((format) => { - const filenameConfig = getFilenameConfig(format, mode); - return { - name, - format: format.module, - globals, - sourcemap: bundleTaskConfig.sourcemap, - exports: 'auto', - dir: outputDir, - assetFileNames: filenameConfig.asset, - entryFileNames: filenameConfig.js, - chunkFileNames: filenameConfig.js, - manualChunks: - format.module !== 'umd' && bundleTaskConfig.codeSplitting !== false - ? (id, { getModuleInfo }) => { - if (/node_modules/.test(id)) { - return vendorName; - } - - const entryPoints: string[] = []; - - const moduleInfo = getModuleInfo(id); - if (!moduleInfo) return; - const idsToHandle = new Set(moduleInfo.importers); - - for (const moduleId of idsToHandle) { - const info = getModuleInfo(moduleId); - if (!info) continue; - const { isEntry, importers } = info; - if (isEntry) { - entryPoints.push(moduleId); - } - - for (const importerId of importers) { - idsToHandle.add(importerId); - } - } - // For multiple entries, we put it into a "shared code" bundle - if (entryPoints.length > 1) { - return vendorName; - } - } - : undefined, - plugins: [ - minify && minifyPlugin(bundleTaskConfig.sourcemap, typeof minify === 'boolean' ? {} : minify.options), - ].filter(Boolean), - }; - }); -} - -export function getExternalsAndGlobals( - bundleTaskConfig: BundleTaskConfig, - pkg: PackageJson, -): [(id: string) => boolean, Record] { - // TODO: unique externals after all pushed - const exactExternals: string[] = []; - const regexpExternals: RegExp[] = []; - const globals: Record = {}; - - const userExternals = bundleTaskConfig.externals ?? false; - - if (userExternals === true) { - exactExternals.push( - ...BUILTIN_EXTERNAL_MAP['builtin:normal'], - ...BUILTIN_EXTERNAL_MAP['builtin:node'], - ...Object.keys(pkg.dependencies ?? {}), - ...Object.keys(pkg.peerDependencies ?? {}), - ); - } else if (userExternals === false) { - // do nothing - } else if (Array.isArray(userExternals)) { - for (const item of userExternals) { - if (typeof item === 'string') { - if (item in BUILTIN_EXTERNAL_MAP) { - exactExternals.push(...BUILTIN_EXTERNAL_MAP[item]); - } else { - exactExternals.push(item); - } - } else if (item instanceof RegExp) { - regexpExternals.push(item); - } else if (typeof item === 'object') { - exactExternals.push(...Object.keys(item)); - Object.assign(globals, item); - } - } - } else if (typeof userExternals === 'object') { - exactExternals.push(...Object.keys(userExternals)); - Object.assign(globals, userExternals); - } - - const externalFun = - !exactExternals.length && !regexpExternals.length - ? () => false - : (id: string) => exactExternals.includes(id) || regexpExternals.some((reg) => reg.test(id)); - - return [externalFun, globals]; -} diff --git a/packages/pkg/src/helpers/getDefaultDefineValues.ts b/packages/pkg/src/engine/shared/define.ts similarity index 58% rename from packages/pkg/src/helpers/getDefaultDefineValues.ts rename to packages/pkg/src/engine/shared/define.ts index 143651b3..3b20b907 100644 --- a/packages/pkg/src/helpers/getDefaultDefineValues.ts +++ b/packages/pkg/src/engine/shared/define.ts @@ -1,8 +1,8 @@ -import { NodeEnvMode } from '../types.js'; +import { NodeEnvMode } from '../../types.js'; export default function getDefaultDefineValues(mode: NodeEnvMode) { return { - __DEV__: JSON.stringify(mode === 'development'), + __DEV__: JSON.stringify(mode !== 'production'), 'process.env.NODE_ENV': JSON.stringify(mode), }; } diff --git a/packages/pkg/src/engine/shared/external.ts b/packages/pkg/src/engine/shared/external.ts index 456b9945..9acaf71a 100644 --- a/packages/pkg/src/engine/shared/external.ts +++ b/packages/pkg/src/engine/shared/external.ts @@ -1,6 +1,55 @@ import { builtinNodeModules } from './builtinModules.js'; +import { BundleTaskConfig, PackageJson } from '../../types.js'; export const BUILTIN_EXTERNAL_MAP: Record = { 'builtin:normal': ['core-js', 'regenerator-runtime'], 'builtin:node': builtinNodeModules, }; + +export function getExternalsAndGlobals( + bundleTaskConfig: BundleTaskConfig, + pkg: PackageJson, +): [(id: string) => boolean, Record] { + // TODO: unique externals after all pushed + const exactExternals: string[] = []; + const regexpExternals: RegExp[] = []; + const globals: Record = {}; + + const userExternals = bundleTaskConfig.externals ?? false; + + if (userExternals === true) { + exactExternals.push( + ...BUILTIN_EXTERNAL_MAP['builtin:normal'], + ...BUILTIN_EXTERNAL_MAP['builtin:node'], + ...Object.keys(pkg.dependencies ?? {}), + ...Object.keys(pkg.peerDependencies ?? {}), + ); + } else if (userExternals === false) { + // do nothing + } else if (Array.isArray(userExternals)) { + for (const item of userExternals) { + if (typeof item === 'string') { + if (item in BUILTIN_EXTERNAL_MAP) { + exactExternals.push(...BUILTIN_EXTERNAL_MAP[item]); + } else { + exactExternals.push(item); + } + } else if (item instanceof RegExp) { + regexpExternals.push(item); + } else if (typeof item === 'object') { + exactExternals.push(...Object.keys(item)); + Object.assign(globals, item); + } + } + } else if (typeof userExternals === 'object') { + exactExternals.push(...Object.keys(userExternals)); + Object.assign(globals, userExternals); + } + + const externalFun = + !exactExternals.length && !regexpExternals.length + ? () => false + : (id: string) => exactExternals.includes(id) || regexpExternals.some((reg) => reg.test(id)); + + return [externalFun, globals]; +} diff --git a/packages/pkg/src/engine/shared/outputs.ts b/packages/pkg/src/engine/shared/outputs.ts new file mode 100644 index 00000000..7ebcf99b --- /dev/null +++ b/packages/pkg/src/engine/shared/outputs.ts @@ -0,0 +1,89 @@ +import { BundleTaskConfig, Context, NodeEnvMode, PackageJson } from '../../types.js'; +import type { OutputOptions } from 'rollup'; +import type { OutputOptions as RolldownOutputOptions } from 'rolldown'; +import { getFilenameConfig } from './filename.js'; +import minifyPlugin from '../../rollupPlugins/minify.js'; + +interface GetOutputsOptions { + engine: 'rollup' | 'rolldown'; + bundleTaskConfig: BundleTaskConfig; + globals: Record; + pkg: PackageJson; + mode: NodeEnvMode; + command: Context['command']; +} + +export function getOutputs({ + globals, + bundleTaskConfig, + pkg, + mode, + command, + engine, +}: GetOutputsOptions): OutputOptions[] { + const { outputDir, vendorName = 'vendor' } = bundleTaskConfig; + + const outputFormats = bundleTaskConfig.formats ?? []; + + const name = bundleTaskConfig.name ?? pkg.name; + const minify = bundleTaskConfig.jsMinify!(mode, command); + + return outputFormats.map((format) => { + const filenameConfig = getFilenameConfig(format, mode); + const options: OutputOptions = { + name, + format: format.module, + globals, + sourcemap: bundleTaskConfig.sourcemap, + exports: 'auto', + dir: outputDir, + assetFileNames: filenameConfig.asset, + entryFileNames: filenameConfig.js, + chunkFileNames: filenameConfig.js, + manualChunks: + format.module !== 'umd' && bundleTaskConfig.codeSplitting !== false + ? (id, { getModuleInfo }) => { + if (/node_modules/.test(id)) { + return vendorName; + } + + const entryPoints: string[] = []; + + const moduleInfo = getModuleInfo(id); + if (!moduleInfo) return; + const idsToHandle = new Set(moduleInfo.importers); + + for (const moduleId of idsToHandle) { + const info = getModuleInfo(moduleId); + if (!info) continue; + const { isEntry, importers } = info; + if (isEntry) { + entryPoints.push(moduleId); + } + + for (const importerId of importers) { + idsToHandle.add(importerId); + } + } + // For multiple entries, we put it into a "shared code" bundle + if (entryPoints.length > 1) { + return vendorName; + } + } + : undefined, + }; + + if (engine === 'rollup') { + if (minify) { + options.plugins = [minifyPlugin(bundleTaskConfig.sourcemap, typeof minify === 'boolean' ? {} : minify.options)]; + } + } else if (engine === 'rolldown') { + const rolldownOuptut = options as RolldownOutputOptions; + if (minify) { + rolldownOuptut.minify = typeof minify === 'boolean' ? minify : minify.options; + } + } + + return options; + }); +} diff --git a/packages/pkg/src/helpers/defaultSwcConfig.ts b/packages/pkg/src/engine/shared/swcConfig.ts similarity index 96% rename from packages/pkg/src/helpers/defaultSwcConfig.ts rename to packages/pkg/src/engine/shared/swcConfig.ts index fef40d1d..dafa3c33 100644 --- a/packages/pkg/src/helpers/defaultSwcConfig.ts +++ b/packages/pkg/src/engine/shared/swcConfig.ts @@ -1,6 +1,6 @@ -import { BundleTaskConfig, TransformTaskConfig, NodeEnvMode } from '../types.js'; +import { BundleTaskConfig, TransformTaskConfig, NodeEnvMode } from '../../types.js'; import type { Config, ModuleConfig } from '@swc/core'; -import getDefaultDefineValues from './getDefaultDefineValues.js'; +import getDefaultDefineValues from './define.js'; // https://github.com/ice-lab/ice-next/issues/54#issuecomment-1083263523 const LEGACY_BROWSER_TARGETS = { diff --git a/packages/pkg/src/helpers/dts.ts b/packages/pkg/src/helpers/dts.ts index 399f7194..2fd2bc7e 100644 --- a/packages/pkg/src/helpers/dts.ts +++ b/packages/pkg/src/helpers/dts.ts @@ -216,7 +216,7 @@ async function compileFromOxc( const dtsFiles: Record = {}; for (const file of absFiles) { const fileContent = fse.readFileSync(file.filePath, 'utf-8'); - const { code } = oxc.isolatedDeclaration(file.filePath, fileContent, { + const { code } = await oxc.isolatedDeclaration(file.filePath, fileContent, { sourcemap: false, }); diff --git a/packages/pkg/src/tasks/bundle.ts b/packages/pkg/src/tasks/bundle.ts index ece18a20..75bedd11 100644 --- a/packages/pkg/src/tasks/bundle.ts +++ b/packages/pkg/src/tasks/bundle.ts @@ -1,24 +1,14 @@ import * as path from 'path'; -import * as rollup from 'rollup'; import { Watcher } from 'rollup/dist/shared/watch.js'; import { toArray } from '../utils.js'; import EventEmitter from 'node:events'; -import type { EngineType, OutputFile, OutputResult, TaskRunnerContext, WatchChangedFile } from '../types.js'; -import type { - OutputChunk as RollupOutputChunk, - OutputAsset as RollupOutputAsset, - RollupWatcherEvent, - RollupBuild, - RollupOutput, - OutputOptions, - RollupOptions, - AwaitedEventListener, -} from 'rollup'; +import type { EngineType, OutputResult, TaskRunnerContext, WatchChangedFile } from '../types.js'; +import type { RollupWatcherEvent, RollupBuild, OutputOptions, RollupOptions, AwaitedEventListener } from 'rollup'; import type { FSWatcher } from 'chokidar'; import type { RslibConfig, rsbuild } from '@rslib/core'; import { getRollupOptions } from '../engine/rollup/options.js'; import { Runner } from '../helpers/runner.js'; -import { RolldownOptions } from 'rolldown'; +import type { BuildOptions as RolldownBuildOptions } from 'rolldown'; import { noop } from 'es-toolkit'; import { consola } from 'consola'; @@ -29,7 +19,7 @@ export function createBundleTask(taskRunningContext: TaskRunnerContext) { export class BundleRunner extends Runner { private rollupOptions?: RollupOptions; private rslibConfig?: RslibConfig; - private rolldownOptions?: RolldownOptions; + private rolldownOptions?: RolldownBuildOptions[]; private engine: EngineType; private watcher: Watcher | null = null; private result: Error | OutputResult | null = null; @@ -69,6 +59,7 @@ export class BundleRunner extends Runner { private async handleRollupBuild(changedFiles: WatchChangedFile[]): Promise { const { context } = this; + const { build: rawBuild, writeFiles } = await import('../engine/rollup/build.js'); if (!this.rollupOptions) { this.rollupOptions = getRollupOptions(context.buildContext, context); } @@ -200,19 +191,12 @@ export class BundleRunner extends Runner { private async handleRolldownBuild(changedFiles: WatchChangedFile[]): Promise { const { context } = this; - const { build } = await import('rolldown'); + const { build } = await import('../engine/rolldown/build.js'); if (!this.rolldownOptions) { const { getRolldownOptions } = await import('../engine/rolldown/options.js'); this.rolldownOptions = getRolldownOptions(context.buildContext, context); } - const bundle = await build(this.rolldownOptions); - - return { - taskName: context.buildTask.name, - // TODO: correct type and value - outputs: bundle.output as any, - outputFiles: bundle.output as any, - }; + return await build(this.rolldownOptions!, this.context); } } @@ -325,48 +309,3 @@ class FileWatcher { this.watcher.unwatch(id); } } - -async function rawBuild(rollupOptions: RollupOptions, taskRunnerContext: TaskRunnerContext): Promise { - const rollupOutputOptions = toArray(rollupOptions.output); - const { buildTask } = taskRunnerContext; - const { name: taskName } = buildTask; - - const bundle = await rollup.rollup(rollupOptions); - - const buildResult = await writeFiles((rollupOutputOptions as OutputOptions[]).filter(Boolean), bundle.write.bind(bundle)); - - await bundle.close(); - - return { - taskName, - modules: (bundle.cache as any)?.modules, - ...buildResult, - }; -} - -async function writeFiles( - rollupOutputOptions: OutputOptions[], - write: RollupBuild['write'], -): Promise> { - const outputFiles: OutputFile[] = []; - const outputs: Array = []; - - for (let o = 0; o < rollupOutputOptions.length; ++o) { - const writeResult = await write(rollupOutputOptions[o]); - const distDir = rollupOutputOptions[o].dir ?? ''; - writeResult.output.forEach((chunk: RollupOutputChunk | RollupOutputAsset) => { - outputFiles.push({ - absolutePath: 'facadeModuleId' in chunk ? chunk['facadeModuleId']! : undefined, - dest: path.join(distDir ?? '', chunk.fileName ?? ''), - filename: chunk.fileName, - code: chunk.type === 'chunk' ? chunk.code : (chunk as any).source, - }); - }); - outputs.push(writeResult.output); - } - - return { - outputs, - outputFiles, - }; -} diff --git a/packages/pkg/tsconfig.json b/packages/pkg/tsconfig.json index e8c25ac7..f6a32480 100644 --- a/packages/pkg/tsconfig.json +++ b/packages/pkg/tsconfig.json @@ -4,7 +4,8 @@ "baseUrl": "./", "rootDir": "src", "outDir": "lib", - "noImplicitOverride": true + "noImplicitOverride": true, + "sourceMap": false }, "include": ["src"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c39a42d4..def8f98d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -225,6 +225,55 @@ importers: specifier: ^3.0.4 version: 3.0.5 + examples/rolldown-react: + dependencies: + '@ice/jsx-runtime': + specifier: ^0.2.0 + version: 0.2.0(react@18.2.0) + '@swc/helpers': + specifier: ^0.5.13 + version: 0.5.17 + babel-runtime-jsx-plus: + specifier: ^0.1.5 + version: 0.1.5 + core-js: + specifier: ^3.38.1 + version: 3.42.0 + devDependencies: + '@ice/pkg': + specifier: workspace:* + version: link:../../packages/pkg + '@ice/pkg-plugin-jsx-plus': + specifier: workspace:* + version: link:../../packages/plugin-jsx-plus + '@types/react': + specifier: ^18.0.0 + version: 18.0.15 + '@types/react-dom': + specifier: ^18.0.0 + version: 18.0.10 + identity-obj-proxy: + specifier: ^3.0.0 + version: 3.0.0 + prop-types: + specifier: ^15.8.1 + version: 15.8.1 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + sass: + specifier: 'catalog:' + version: 1.94.0 + sass-loader: + specifier: 'catalog:' + version: 13.2.0(sass-embedded@1.89.2)(sass@1.94.0)(webpack@5.102.1(@swc/core@1.15.7(@swc/helpers@0.5.17))) + style-unit: + specifier: ^3.0.4 + version: 3.0.5 + packages/create-pkg: dependencies: '@iceworks/generate-material': @@ -419,8 +468,8 @@ importers: specifier: ^0.25.7 version: 0.25.9 oxc-transform: - specifier: ~0.89.0 - version: 0.89.0 + specifier: ^0.114.0 + version: 0.114.0 picocolors: specifier: ^1.0.0 version: 1.1.1 @@ -431,17 +480,17 @@ importers: specifier: ^1.0.0 version: 1.0.0(postcss@8.5.6) rolldown: - specifier: ^0.15.1 - version: 0.15.1(@babel/runtime@7.28.4) + specifier: ^1.0.0-rc.8 + version: 1.0.0-rc.8 rollup: specifier: ^4.0.0 version: 4.53.2 rollup-plugin-styler: - specifier: ^1.8.0 - version: 1.8.0(rollup@4.53.2)(typescript@5.9.2) + specifier: ^2.0.0 + version: 2.0.0(rollup@4.53.2)(typescript@5.9.2) rollup-plugin-visualizer: - specifier: ^5.12.0 - version: 5.12.0(rollup@4.53.2) + specifier: ^5.14.0 + version: 5.14.0(rolldown@1.0.0-rc.8)(rollup@4.53.2) semver: specifier: ^7.5.2 version: 7.6.3 @@ -477,8 +526,8 @@ importers: specifier: ^7.7.1 version: 7.7.1 cssnano: - specifier: ^5.1.15 - version: 5.1.15(postcss@8.5.6) + specifier: ^7.0.0 + version: 7.1.3(postcss@8.5.6) jest: specifier: ^29.4.3 version: 29.4.3(@types/node@20.19.25)(ts-node@10.8.2(@swc/core@1.15.7(@swc/helpers@0.5.17))(@types/node@20.19.25)(typescript@5.9.2)) @@ -518,6 +567,10 @@ importers: version: link:../pkg tests: + dependencies: + es-toolkit: + specifier: ^1.32.0 + version: 1.32.0 devDependencies: '@ice/pkg': specifier: workspace:* @@ -535,6 +588,15 @@ importers: specifier: workspace:* version: link:../../../packages/pkg + tests/integration/bundle-asset: + dependencies: + '@ice/pkg': + specifier: workspace:* + version: link:../../../packages/pkg + es-toolkit: + specifier: ^1.32.0 + version: 1.32.0 + tests/integration/bundle-browser: dependencies: '@ice/pkg': @@ -2094,11 +2156,11 @@ packages: react: ^16.14.0 || ^17 || ^18 || ^19 react-dom: ^16.14.0 || 17 || ^18 || ^19 - '@emnapi/core@1.7.0': - resolution: {integrity: sha512-pJdKGq/1iquWYtv1RRSljZklxHCOCAJFJrImO5ZLKPJVJlVUcs8yFwNQlqS0Lo8xT1VAXXTCZocF9n26FWEKsw==} + '@emnapi/core@1.8.1': + resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} - '@emnapi/runtime@1.7.0': - resolution: {integrity: sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q==} + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} @@ -2540,11 +2602,8 @@ packages: '@module-federation/webpack-bundler-runtime@0.14.0': resolution: {integrity: sha512-POWS6cKBicAAQ3DNY5X7XEUSfOfUsRaBNxbuwEfSGlrkTE9UcWheO06QP2ndHi8tHQuUKcIHi2navhPkJ+k5xg==} - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - - '@napi-rs/wasm-runtime@1.0.7': - resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + '@napi-rs/wasm-runtime@1.1.1': + resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} '@node-rs/jieba-android-arm-eabi@1.6.1': resolution: {integrity: sha512-R1YQfsPr7sK3Tq1sM0//6lNAGJK9RnMT0ShITT+7EJYr5OufUBb38lf/mRhrLxR0NF1pycEsMjdCAwrWrHd8rA==} @@ -2644,92 +2703,125 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@oxc-transform/binding-android-arm64@0.89.0': - resolution: {integrity: sha512-ClAT3Uwuo++nxwJxKpxiav3jKIRzMSc0mHBoEvBFQgY4rjjwNe13N6ktFwJH6paslQNfJ8NhrzbCgUcj9sFpvQ==} - engines: {node: '>=14.0.0'} + '@oxc-project/types@0.115.0': + resolution: {integrity: sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==} + + '@oxc-transform/binding-android-arm-eabi@0.114.0': + resolution: {integrity: sha512-8Kfcjo66OU3Y9UxfMoa629/UT37ogOWbwqcUKXb3wD6bcAA3Gez8I0qnOJQOwtLr4ZOhP9jvYFTwiVyGO8s7Hg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxc-transform/binding-android-arm64@0.114.0': + resolution: {integrity: sha512-Z4REVcSbf6VK5ygKL5QPfz6cdq3A2MOi7p+V63k1usWKbV71otHG32bNrdJ4Djpkcimt4x/6cntwno2Wxna4pQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-transform/binding-darwin-arm64@0.89.0': - resolution: {integrity: sha512-p8ZPY/9A/sbxEZnpFhpFXcmBKESyeGsM+W0uHcP/y2q+esy7aXx4UZlT64zdxqgtepPK7e2LFYYS4RdJTLdM0w==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-darwin-arm64@0.114.0': + resolution: {integrity: sha512-aeilskCknKFFYrT72TjzNe7zvNfRykDPegtstiDovHqGJfOimIVXbEilnYGXMWQp7mfRhMU/w8gWL22T6SeuSw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-transform/binding-darwin-x64@0.89.0': - resolution: {integrity: sha512-GvR99rtmk90Jk9HjxVEHrtndldVaQ2FxJaESzg/zaQaCAN50R1WR8mzfIQN5Pdi5ZFM3dUgxVhVbWmSc6SbpmQ==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-darwin-x64@0.114.0': + resolution: {integrity: sha512-V8YtbjLFHS8IyRG/c2eYv7yOUSWKgfyKO/EjaJQ1SjM55Eqdxt0INuknscDBteLanL0tg6iKAMxZt4BDom05GQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-transform/binding-freebsd-x64@0.89.0': - resolution: {integrity: sha512-wCNAlWW6ylqQxFFwcOkrQ77HeVaxrsHlKH+POXB1ercbb+OXARhAQaZG7crGGad8RTn1HwkudAl4W7XwcwW8ng==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-freebsd-x64@0.114.0': + resolution: {integrity: sha512-9G8MpVmfCZ/aMVykKh/mrt6Q2CjyPkUdKml5AMXd2E8UK7q10m3hgPtLVlGLBtZy19/vo5yvOh3MwgHGhuMfpg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-transform/binding-linux-arm-gnueabihf@0.89.0': - resolution: {integrity: sha512-7nfOV49v/NsKkcRaMf0RXtnTtYZV+DXgptaBdkGBrqJAtUQ6uvDERJLzRMMiHKfl8qXpvguMjLwCPELDMtLaqA==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-arm-gnueabihf@0.114.0': + resolution: {integrity: sha512-X3WkZ58FzEEeWpl6vH/jL2zXJvdwlpe9rmD4gxIFS62O2P4rXn9S+CHQnwIGxvLpwWosesBeyOyGNcmTEWW8hQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-transform/binding-linux-arm-musleabihf@0.89.0': - resolution: {integrity: sha512-lOSBrPpTTpF2Jr3in2JL4WymKm8V5hPnniVTwhZcpecaBBKmK+qYW88FJJuHkO3uZYx7ZwfkEb0FN7S81hQ2Fw==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-arm-musleabihf@0.114.0': + resolution: {integrity: sha512-VeAKu6l83VQ0YqLXAbDjR2VGHK4dJuahliR4GeB54CwPUCA0TcuIA86jcez9b1Pw0o7FSkFab/JkLrmglw/ZJw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-transform/binding-linux-arm64-gnu@0.89.0': - resolution: {integrity: sha512-fDI14uxb+sm0lcbrRdtm5cvitxNwQ+271hMVqeMm5gUkDCbY0agGvdvbEq/hBuMaMh7BL2uU9fmxOmdRgfmAqg==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-arm64-gnu@0.114.0': + resolution: {integrity: sha512-PRu2TmmkwuFQg646grmUbsbEqvfX9aUwWvMsILvHv7HbCBmD7VxqURLR0UyH8jaj0/qcXezjUsc0o5DOLBIYvQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-arm64-musl@0.89.0': - resolution: {integrity: sha512-9OACjq3oRywMaSW5SQDz6Y2AS62EQ0nkLor7P2YSdnte1LbrciwfqMYm8v6HRJ8Pqif2iqtAc9YlU8OtefSvkA==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-arm64-musl@0.114.0': + resolution: {integrity: sha512-g17OTcSLuhehKuyfTWWzW/V4xFlOqhyCPWyCjxFOAYFEgNL0B+606pCkjnggpQCb+7YbGmFOuHAJS37H09ewbg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-riscv64-gnu@0.89.0': - resolution: {integrity: sha512-or2lJ/Uhjaj/Hbz3f741cZM+FKZNwKL20wELOro0xraL7NwThHTHEZGQrSHlJ/VkRdJPuo+UC3xB9OgdY6vvFw==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-ppc64-gnu@0.114.0': + resolution: {integrity: sha512-ubYwfTMWh28xUmuzOHK2dPBPmr8g0RB5H37tp/mXmWXjflQWhIzE+aAuLHZXlVDCRx9dfVwqCvRGBbGzdBprDg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxc-transform/binding-linux-riscv64-gnu@0.114.0': + resolution: {integrity: sha512-+tzWB5DLK9ia9UQiHjKmFSsihnbfhjEmHjnmm2I3YYhBzb6QJ5bfbHswbompqNGPD7c4VkdSzJo4eGXbbMmaZw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxc-transform/binding-linux-s390x-gnu@0.89.0': - resolution: {integrity: sha512-HdC3Z3CTveXgMu13wF6qqjpnH7/Ds9BeOEYU5xGPXAFkTLMxL6miYiLN+kgTekTZeYPphM3Dnx/+Fwrmi1ukDw==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-riscv64-musl@0.114.0': + resolution: {integrity: sha512-TwsluoXc0520G07ZOaqYx0xzjEveIaIwbHjiXBG9S5yJ5m79oeeK6h1ER5IfZRGPXvItT50k0wnZ7q4E6Cxqfw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxc-transform/binding-linux-s390x-gnu@0.114.0': + resolution: {integrity: sha512-cjdg8vVEUM6e7KzHlG4u2UiTelPio7dvoGj0GJVlFN/cUi3eprp7eLEELFQ/pFWhxlZUNkFJ+SY7p+KCwj2O2g==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxc-transform/binding-linux-x64-gnu@0.89.0': - resolution: {integrity: sha512-w5xtFpVyUEPo0/gLInZ+NbP5pT6+CG1ukoyZYr3Y+J8cz+xezNokzjeAu4p7MmG6XG63DKBG60dlBVL1HCgtWA==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-x64-gnu@0.114.0': + resolution: {integrity: sha512-cJabHBy/gVQKYxFKbP6qdwnsuqqkqLG5Axk7gkh6YzDnVXuFPBJpH8W1OeIBPPgxUW9/KPoG+oc+bsxUT6GqJg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-transform/binding-linux-x64-musl@0.89.0': - resolution: {integrity: sha512-MxtHJp0HwH1F6gfAnAtr8W9gD03Hnj9DIlaFcqCXYCEvvzpxo/8kG5E3Y2UCOfR1h2rV2haX4k7+o5Swr+/dMw==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-x64-musl@0.114.0': + resolution: {integrity: sha512-4+EIl4rJ7To2dASvBTyHIr+6ylXEhoakUeoLy9OADmtScZI+vy1ugdptXQz6g0XAbg8S7r3+XK3HlTImJQYy4Q==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-transform/binding-wasm32-wasi@0.89.0': - resolution: {integrity: sha512-YPkhOluELfgPgY02RqGwc0Q17HGVNSw3bHJ60pc4IppXAbigXwX+IpWYYowcMtWOr6zAawUAxakUEeLb5yv3pg==} + '@oxc-transform/binding-openharmony-arm64@0.114.0': + resolution: {integrity: sha512-onpjJMw48IUtsUV+2BlXNtGgq/zT7p9NFNv5E/4pMhgaDySoNoKJ8vJrY93DAf1m3ScnR847qFCCA074sbBdTw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-transform/binding-wasm32-wasi@0.114.0': + resolution: {integrity: sha512-L9rLIqYhAXwzcGM8k3GfDdJf87D+MGJjhV4rHV1TP6WKcTy2nEmhYs7O4bpj6uVKRZ8K+/P2t98tF8/EXUmN+w==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-transform/binding-win32-arm64-msvc@0.89.0': - resolution: {integrity: sha512-gsuSbYzBcqfKx7X7c1rZJGskmXDlLMkwm4JmhCVBG91L14j+9eFIOdXk3U6E5/OtiFMtr4WIDlSApEfhDh78Rw==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-win32-arm64-msvc@0.114.0': + resolution: {integrity: sha512-lB/ZvO3H3JJQcyS2iXVm2J9FKJG7cWiWIL4NzUNPTQe9Nl9nrbROvvS5oU2BGuf3/ZsIzNNTVW+HlumT3dgVmA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-transform/binding-win32-x64-msvc@0.89.0': - resolution: {integrity: sha512-5HYV5lUVQ/3NJw4QVtgCaPy+6us+YlVxKWE934ulGGlnwZvTgMvsSXiwNdJwkgWhLcfv7Y1NtkFvcMDBi1Gpzg==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-win32-ia32-msvc@0.114.0': + resolution: {integrity: sha512-j9C5vbs803+wbtpjEoic/jFdgM2YpNkXlSVmGDqdlTKpnXUZ/Tka7gSNCk6YdPIjgedROPpfH2E0pGNyjasLVA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxc-transform/binding-win32-x64-msvc@0.114.0': + resolution: {integrity: sha512-hkDBn4l8dc0t3mpEI0BQhzHN7KdgUoXJhsw6VWsUlewMIICc4pL38MS9ke/PenU4O9Z0L8AePWJ5IYub+gNVgg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -2834,66 +2926,98 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@rolldown/binding-darwin-arm64@0.15.1': - resolution: {integrity: sha512-eHszEW3Tpf2MNCOB3Qq+ypXBJl5MY+QNmb32AfUkcjGLtS6A84CkzjLLRBCIAJJ07WR0dD2EbOEjFXyp9JpdxA==} + '@rolldown/binding-android-arm64@1.0.0-rc.8': + resolution: {integrity: sha512-5bcmMQDWEfWUq3m79Mcf/kbO6e5Jr6YjKSsA1RnpXR6k73hQ9z1B17+4h93jXpzHvS18p7bQHM1HN/fSd+9zog==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.0.0-rc.8': + resolution: {integrity: sha512-dcHPd5N4g9w2iiPRJmAvO0fsIWzF2JPr9oSuTjxLL56qu+oML5aMbBMNwWbk58Mt3pc7vYs9CCScwLxdXPdRsg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@0.15.1': - resolution: {integrity: sha512-0IczkPBKzftwezo19wR/W7b2uXrPIgU5sDpic2DGndqZwcqtO0LBg1SvRoTUFzs0sSqIK/e2fo0VUzOe1wShLQ==} + '@rolldown/binding-darwin-x64@1.0.0-rc.8': + resolution: {integrity: sha512-mw0VzDvoj8AuR761QwpdCFN0sc/jspuc7eRYJetpLWd+XyansUrH3C7IgNw6swBOgQT9zBHNKsVCjzpfGJlhUA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@0.15.1': - resolution: {integrity: sha512-yad0CKnx9H3NQZCfV4gTzsfTQxqFEJvJSzyXxxA/RhGa6nq/3S/JugQAis37xjaVmQ39NMRrRQ7NokbagHlJVA==} + '@rolldown/binding-freebsd-x64@1.0.0-rc.8': + resolution: {integrity: sha512-xNrRa6mQ9NmMIJBdJtPMPG8Mso0OhM526pDzc/EKnRrIrrkHD1E0Z6tONZRmUeJElfsQ6h44lQQCcDilSNIvSQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@0.15.1': - resolution: {integrity: sha512-B4YuHSz18yvZ7ng0qy7ZhzWe+IyeZ1EUAIvBH7O7Fg69oDUp3TqCkh/nnY7mLNPoA2BCwwweIMAOX7U778J1Ww==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.8': + resolution: {integrity: sha512-WgCKoO6O/rRUwimWfEJDeztwJJmuuX0N2bYLLRxmXDTtCwjToTOqk7Pashl/QpQn3H/jHjx0b5yCMbcTVYVpNg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@0.15.1': - resolution: {integrity: sha512-2v4ZE/a75XA96f7Hmw8RibVIHktpREHTvAG/jG+0718UAVl0XS1o3gCcfJHOzq0vxRM6JrJxL0An6Blqx0zo/g==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.8': + resolution: {integrity: sha512-tOHgTOQa8G4Z3ULj4G3NYOGGJEsqPHR91dT72u63OtVsZ7B6wFJKOx+ZKv+pvwzxWz92/I2ycaqi2/Ll4l+rlg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@0.15.1': - resolution: {integrity: sha512-ICZANEBNJxpaZPspK3Xd5+pG6CO/0pEOMPJEBiUi67Gy6NexyN9ILPwXoF3ZWEmBMizcURt52xkqoUuEGpJMQg==} + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.8': + resolution: {integrity: sha512-oRbxcgDujCi2Yp1GTxoUFsIFlZsuPHU4OV4AzNc3/6aUmR4lfm9FK0uwQu82PJsuUwnF2jFdop3Ep5c1uK7Uxg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-x64-gnu@0.15.1': - resolution: {integrity: sha512-PldpjbytgMM0eKmnRAvKM6F4bwpRS3aoFr5AAOtbdIxC08ABG/ab+xXuwjdVyo2xxM3nTItbma76verU8lkCgA==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.8': + resolution: {integrity: sha512-oaLRyUHw8kQE5M89RqrDJZ10GdmGJcMeCo8tvaE4ukOofqgjV84AbqBSH6tTPjeT2BHv+xlKj678GBuIb47lKA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.8': + resolution: {integrity: sha512-1hjSKFrod5MwBBdLOOA0zpUuSfSDkYIY+QqcMcIU1WOtswZtZdUkcFcZza9b2HcAb0bnpmmyo0LZcaxLb2ov1g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.8': + resolution: {integrity: sha512-a1+F0aV4Wy9tT3o+cHl3XhOy6aFV+B8Ll+/JFj98oGkb6lGk3BNgrxd+80RwYRVd23oLGvj3LwluKYzlv1PEuw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@0.15.1': - resolution: {integrity: sha512-ydIgDOKQi92RQjgFFuMeO09IWe0fWLcmhv7opAjutcGwEgqediamlhgmDW2eRJTqHwhT56zMVpivvejMR2KT8g==} + '@rolldown/binding-linux-x64-musl@1.0.0-rc.8': + resolution: {integrity: sha512-bGyXCFU11seFrf7z8PcHSwGEiFVkZ9vs+auLacVOQrVsI8PFHJzzJROF3P6b0ODDmXr0m6Tj5FlDhcXVk0Jp8w==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-wasm32-wasi@0.15.1': - resolution: {integrity: sha512-tNE0tEX+h0WmFx2hL3s1zZOrJtB3hVJkyrMMdyCGwB+ockaeBpinqLsbWzd130RODODLXnMIDXKZcFA8yATMpg==} - engines: {node: '>=14.21.3'} + '@rolldown/binding-openharmony-arm64@1.0.0-rc.8': + resolution: {integrity: sha512-n8d+L2bKgf9G3+AM0bhHFWdlz9vYKNim39ujRTieukdRek0RAo2TfG2uEnV9spa4r4oHUfL9IjcY3M9SlqN1gw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.8': + resolution: {integrity: sha512-4R4iJDIk7BrJdteAbEAICXPoA7vZoY/M0OBfcRlQxzQvUYMcEp2GbC/C8UOgQJhu2TjGTpX1H8vVO1xHWcRqQA==} + engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@0.15.1': - resolution: {integrity: sha512-/t1r1tT95cZ2Qt+GO+9pCmgwSNzBRQnX9TL+FJOi9js2PYTnftGq7oU7/VbITpAvwd3bsuWoVncCBnOhgRjxRw==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.8': + resolution: {integrity: sha512-3lwnklba9qQOpFnQ7EW+A1m4bZTWXZE4jtehsZ0YOl2ivW1FQqp5gY7X2DLuKITggesyuLwcmqS11fA7NtrmrA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-ia32-msvc@0.15.1': - resolution: {integrity: sha512-x/IImodHRMXeUVUg/BslxYfbBCVTyR1vToEkBiyDt7QVdWBOVAnn/hHOwDRNXBsLLhNB8s74EGzwCihC0TZRgw==} - cpu: [ia32] - os: [win32] - - '@rolldown/binding-win32-x64-msvc@0.15.1': - resolution: {integrity: sha512-8h55cfyhl2WVXZz+FRFhcBAS7cZUZscZ9Uu5lTq+21+wC7LShiBTe8slbACZDNShSW1vskx/bvOQ4PienU1ovA==} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.8': + resolution: {integrity: sha512-VGjCx9Ha1P/r3tXGDZyG0Fcq7Q0Afnk64aaKzr1m40vbn1FL8R3W0V1ELDvPgzLXaaqK/9PnsqSaLWXfn6JtGQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] + '@rolldown/pluginutils@1.0.0-rc.8': + resolution: {integrity: sha512-wzJwL82/arVfeSP3BLr1oTy40XddjtEdrdgtJ4lLRBu06mP3q/8HGM6K0JRlQuTA3XB0pNJx2so/nmpY4xyOew==} + '@rollup/plugin-alias@5.0.1': resolution: {integrity: sha512-JObvbWdOHoMy9W7SU0lvGhDtWq9PllP5mjpAy+TUslZG/WzOId9u80Hsqq1vCUn9pFJ0cxpdcnAv+QzU2zFH3Q==} engines: {node: '>=14.0.0'} @@ -3492,9 +3616,6 @@ packages: '@types/http-proxy@1.17.17': resolution: {integrity: sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==} - '@types/http-proxy@1.17.9': - resolution: {integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==} - '@types/inquirer@9.0.9': resolution: {integrity: sha512-/mWx5136gts2Z2e5izdoRCo46lPp5TMs9R15GTSsgg/XnZyxDWVqoVU3R9lWnccKpqwsJLvRoxbCjoJtZB7DSw==} @@ -4185,8 +4306,9 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.8.27: - resolution: {integrity: sha512-2CXFpkjVnY2FT+B6GrSYxzYf65BJWEqz5tIRHCvNsZZ2F3CmsCB37h8SpYgKG7y9C4YAeTipIPWG7EmFmhAeXA==} + baseline-browser-mapping@2.10.0: + resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} + engines: {node: '>=6.0.0'} hasBin: true batch@0.6.1: @@ -4241,8 +4363,8 @@ packages: breakword@1.0.5: resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} - browserslist@4.28.0: - resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4339,8 +4461,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001754: - resolution: {integrity: sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==} + caniuse-lite@1.0.30001777: + resolution: {integrity: sha512-tmN+fJxroPndC74efCdp12j+0rk0RHwV5Jwa1zWaFVyw2ZxAuPeG8ZgWC3Wz7uSjT3qMRQ5XHZ4COgQmsCMJAQ==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -4530,6 +4652,10 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + commander@13.1.0: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} engines: {node: '>=18'} @@ -4714,12 +4840,6 @@ packages: peerDependencies: postcss: ^8.4 - css-declaration-sorter@6.3.1: - resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 - css-declaration-sorter@7.2.0: resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} engines: {node: ^14 || ^16 || >=18} @@ -4785,10 +4905,6 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} - css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -4822,23 +4938,17 @@ packages: peerDependencies: postcss: ^8.4.31 - cssnano-preset-default@5.2.14: - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - cssnano-preset-default@6.1.2: resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - cssnano-utils@3.1.0: - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} + cssnano-preset-default@7.0.11: + resolution: {integrity: sha512-waWlAMuCakP7//UCY+JPrQS1z0OSLeOXk2sKWJximKWGupVxre50bzPlvpbUwZIDylhf/ptf0Pk+Yf7C+hoa3g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 cssnano-utils@4.0.2: resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} @@ -4846,11 +4956,11 @@ packages: peerDependencies: postcss: ^8.4.31 - cssnano@5.1.15: - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} + cssnano-utils@5.0.1: + resolution: {integrity: sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 cssnano@6.1.2: resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} @@ -4858,9 +4968,11 @@ packages: peerDependencies: postcss: ^8.4.31 - csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} + cssnano@7.1.3: + resolution: {integrity: sha512-mLFHQAzyapMVFLiJIn7Ef4C2UCEvtlTlbyILR6B5ZsUAV3D/Pa761R5uC1YPhyBkRd3eqaDm2ncaNrD7R4mTRg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} @@ -5140,8 +5252,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.250: - resolution: {integrity: sha512-/5UMj9IiGDMOFBnN4i7/Ry5onJrAGSbOGo3s9FEKmwobGq6xw832ccET0CE3CkkMBZ8GJSlUIesZofpyurqDXw==} + electron-to-chromium@1.5.307: + resolution: {integrity: sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -5898,6 +6010,7 @@ packages: git-raw-commits@2.0.11: resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} engines: {node: '>=10'} + deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. hasBin: true github-slugger@1.5.0: @@ -5922,11 +6035,12 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + 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@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} + 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-dirs@0.1.1: resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} @@ -6965,10 +7079,6 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} - engines: {node: '>=10'} - lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -7197,9 +7307,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} @@ -7404,10 +7511,6 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime-types@3.0.1: - resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} - engines: {node: '>= 0.6'} - mime-types@3.0.2: resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} engines: {node: '>=18'} @@ -7584,10 +7687,6 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - normalize-url@8.1.0: resolution: {integrity: sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==} engines: {node: '>=14.16'} @@ -7729,9 +7828,9 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-transform@0.89.0: - resolution: {integrity: sha512-65rusuqi/g5tBB0gcZjM/U9/tSGvaiapus55RXE1AmnTPPEAljSF0z0sm4xDPwCskDPRcvSiJ/cdracCJQ17Sg==} - engines: {node: '>=14.0.0'} + oxc-transform@0.114.0: + resolution: {integrity: sha512-fT7QcS2FqvGBKNiyA+aQIAJkMCCVHfvNpPzBXgqrsBdvc5jFF2ZRqdXZUrjUNDwDthsIiJI7EGxPC6tFR3i1Og==} + engines: {node: ^20.19.0 || >=22.12.0} p-cancelable@3.0.0: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} @@ -7781,9 +7880,9 @@ packages: resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} - p-queue@7.4.1: - resolution: {integrity: sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==} - engines: {node: '>=12'} + p-queue@8.1.1: + resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==} + engines: {node: '>=18'} p-retry@6.2.1: resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} @@ -7793,9 +7892,9 @@ packages: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} - p-timeout@5.1.0: - resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} - engines: {node: '>=12'} + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + engines: {node: '>=14.16'} p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} @@ -7961,10 +8060,11 @@ packages: peerDependencies: postcss: ^8.4 - postcss-calc@8.2.4: - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + postcss-calc@10.1.1: + resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} + engines: {node: ^18.12 || ^20.9 || >=22.0} peerDependencies: - postcss: ^8.2.2 + postcss: ^8.4.38 postcss-calc@9.0.1: resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} @@ -7996,23 +8096,17 @@ packages: peerDependencies: postcss: ^8.4 - postcss-colormin@5.3.1: - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - postcss-colormin@6.1.0: resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-convert-values@5.1.3: - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-colormin@7.0.6: + resolution: {integrity: sha512-oXM2mdx6IBTRm39797QguYzVEWzbdlFiMNfq88fCCN1Wepw3CYmJ/1/Ifa/KjWo+j5ZURDl2NTldLJIw51IeNQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-convert-values@6.1.0: resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} @@ -8020,6 +8114,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-convert-values@7.0.9: + resolution: {integrity: sha512-l6uATQATZaCa0bckHV+r6dLXfWtUBKXxO3jK+AtxxJJtgMPD+VhhPCCx51I4/5w8U5uHV67g3w7PXj+V3wlMlg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-custom-media@11.0.6: resolution: {integrity: sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==} engines: {node: '>=18'} @@ -8044,23 +8144,17 @@ packages: peerDependencies: postcss: ^8.4 - postcss-discard-comments@5.1.2: - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - postcss-discard-comments@6.0.2: resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-discard-duplicates@5.1.0: - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-discard-comments@7.0.6: + resolution: {integrity: sha512-Sq+Fzj1Eg5/CPf1ERb0wS1Im5cvE2gDXCE+si4HCn1sf+jpQZxDI4DXEp8t77B/ImzDceWE2ebJQFXdqZ6GRJw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-discard-duplicates@6.0.3: resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} @@ -8068,11 +8162,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-discard-empty@5.1.1: - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-discard-duplicates@7.0.2: + resolution: {integrity: sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-discard-empty@6.0.3: resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} @@ -8080,11 +8174,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-discard-overridden@5.1.0: - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-discard-empty@7.0.1: + resolution: {integrity: sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-discard-overridden@6.0.2: resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} @@ -8092,6 +8186,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-discard-overridden@7.0.1: + resolution: {integrity: sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-discard-unused@6.0.5: resolution: {integrity: sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==} engines: {node: ^14 || ^16 || >=18.0} @@ -8167,23 +8267,17 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-merge-longhand@5.1.7: - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - postcss-merge-longhand@6.0.5: resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-merge-rules@5.1.4: - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-merge-longhand@7.0.5: + resolution: {integrity: sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-merge-rules@6.1.1: resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} @@ -8191,11 +8285,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-minify-font-values@5.1.0: - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-merge-rules@7.0.8: + resolution: {integrity: sha512-BOR1iAM8jnr7zoQSlpeBmCsWV5Uudi/+5j7k05D0O/WP3+OFMPD86c1j/20xiuRtyt45bhxw/7hnhZNhW2mNFA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-minify-font-values@6.1.0: resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} @@ -8203,11 +8297,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-minify-gradients@5.1.1: - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-minify-font-values@7.0.1: + resolution: {integrity: sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-minify-gradients@6.0.3: resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} @@ -8215,11 +8309,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-minify-params@5.1.4: - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-minify-gradients@7.0.1: + resolution: {integrity: sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-minify-params@6.1.0: resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} @@ -8227,11 +8321,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-minify-selectors@5.2.1: - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-minify-params@7.0.6: + resolution: {integrity: sha512-YOn02gC68JijlaXVuKvFSCvQOhTpblkcfDre2hb/Aaa58r2BIaK4AtE/cyZf2wV7YKAG+UlP9DT+By0ry1E4VQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-minify-selectors@6.0.4: resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} @@ -8239,6 +8333,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-minify-selectors@7.0.6: + resolution: {integrity: sha512-lIbC0jy3AAwDxEgciZlBullDiMBeBCT+fz5G8RcA9MWqh/hfUkpOI3vNDUNEZHgokaoiv0juB9Y8fGcON7rU/A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-modules-extract-imports@3.1.0: resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} engines: {node: ^10 || ^12 || >= 14} @@ -8269,23 +8369,17 @@ packages: peerDependencies: postcss: ^8.4 - postcss-normalize-charset@5.1.0: - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - postcss-normalize-charset@6.0.2: resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-normalize-display-values@5.1.0: - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-charset@7.0.1: + resolution: {integrity: sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-normalize-display-values@6.0.2: resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} @@ -8293,11 +8387,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-normalize-positions@5.1.1: - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-display-values@7.0.1: + resolution: {integrity: sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-normalize-positions@6.0.2: resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} @@ -8305,11 +8399,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-normalize-repeat-style@5.1.1: - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-positions@7.0.1: + resolution: {integrity: sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-normalize-repeat-style@6.0.2: resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} @@ -8317,11 +8411,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-normalize-string@5.1.0: - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-repeat-style@7.0.1: + resolution: {integrity: sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-normalize-string@6.0.2: resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} @@ -8329,11 +8423,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-normalize-timing-functions@5.1.0: - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-string@7.0.1: + resolution: {integrity: sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-normalize-timing-functions@6.0.2: resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} @@ -8341,11 +8435,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-normalize-unicode@5.1.1: - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-timing-functions@7.0.1: + resolution: {integrity: sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-normalize-unicode@6.1.0: resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} @@ -8353,11 +8447,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-normalize-url@5.1.0: - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-unicode@7.0.6: + resolution: {integrity: sha512-z6bwTV84YW6ZvvNoaNLuzRW4/uWxDKYI1iIDrzk6D2YTL7hICApy+Q1LP6vBEsljX8FM7YSuV9qI79XESd4ddQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-normalize-url@6.0.2: resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} @@ -8365,11 +8459,11 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-normalize-whitespace@5.1.1: - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-url@7.0.1: + resolution: {integrity: sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-normalize-whitespace@6.0.2: resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} @@ -8377,24 +8471,30 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-normalize-whitespace@7.0.1: + resolution: {integrity: sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-opacity-percentage@3.0.0: resolution: {integrity: sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - postcss-ordered-values@5.1.3: - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - postcss-ordered-values@6.0.2: resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + postcss-ordered-values@7.0.2: + resolution: {integrity: sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-overflow-shorthand@6.0.0: resolution: {integrity: sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==} engines: {node: '>=18'} @@ -8435,23 +8535,17 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-reduce-initial@5.1.2: - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - postcss-reduce-initial@6.1.0: resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 - postcss-reduce-transforms@5.1.0: - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-reduce-initial@7.0.6: + resolution: {integrity: sha512-G6ZyK68AmrPdMB6wyeA37ejnnRG2S8xinJrZJnOv+IaRKf6koPAVbQsiC7MfkmXaGmF1UO+QCijb27wfpxuRNg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-reduce-transforms@6.0.2: resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} @@ -8459,6 +8553,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-reduce-transforms@7.0.1: + resolution: {integrity: sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-replace-overflow-wrap@4.0.0: resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: @@ -8489,8 +8589,8 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} postcss-sort-media-queries@5.2.0: @@ -8499,23 +8599,17 @@ packages: peerDependencies: postcss: ^8.4.23 - postcss-svgo@5.1.0: - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - postcss-svgo@6.0.3: resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.4.31 - postcss-unique-selectors@5.1.1: - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-svgo@7.1.1: + resolution: {integrity: sha512-zU9H9oEDrUFKa0JB7w+IYL7Qs9ey1mZyjhbf0KLxwJDdDRtoPvCmaEfknzqfHj44QS9VD6c5sJnBAVYTLRg/Sg==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.32 postcss-unique-selectors@6.0.4: resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} @@ -8523,6 +8617,12 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss-unique-selectors@7.0.5: + resolution: {integrity: sha512-3QoYmEt4qg/rUWDn6Tc8+ZVPmbp4G1hXDtCNWDx0st8SjtCbRcxRXDDM1QrEiXGG3A45zscSJFb4QH90LViyxg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -8646,9 +8746,9 @@ packages: resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} engines: {node: '>=0.6'} - query-string@8.2.0: - resolution: {integrity: sha512-tUZIw8J0CawM5wyGBiDOAp7ObdRQh4uBor/fUR9ZjmbZVvw95OD9If4w3MQxr99rg0DJZ/9CIORcpEqU5hQG7g==} - engines: {node: '>=14.16'} + query-string@9.3.1: + resolution: {integrity: sha512-5fBfMOcDi5SA9qj5jZhWAcTtDfKF5WFdd2uD9nVNlbxVv1baq65aALy6qofpNEGELHvisjjasxQp7BlM9gvMzw==} + engines: {node: '>=18'} querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -8964,28 +9064,27 @@ packages: engines: {node: '>=14'} hasBin: true - rolldown@0.15.1: - resolution: {integrity: sha512-i368PJXHjqyYm9ZXdnI0j/etPF2euP5OG/C0RnhO/bHkZEo4WmorWbaYfeRqe6MEo/H3wkXxGz/y1Vnaq5FiuQ==} + rolldown@1.0.0-rc.8: + resolution: {integrity: sha512-RGOL7mz/aoQpy/y+/XS9iePBfeNRDUdozrhCEJxdpJyimW8v6yp4c30q6OviUU5AnUJVLRL9GP//HUs6N3ALrQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - peerDependencies: - '@babel/runtime': '>=7' - peerDependenciesMeta: - '@babel/runtime': - optional: true - rollup-plugin-styler@1.8.0: - resolution: {integrity: sha512-RbPfWydOTE/X/4h7NpIVY0IhP46tzJI/nylCEf6ICpJwvE/7v7Y9sfQnRW/kfXIesbsAVkZl1vEhSGW+elyCFA==} + rollup-plugin-styler@2.0.0: + resolution: {integrity: sha512-u96KK3hfA5RDeZFuE1kW0mu7FKS6sDu0RlGx9vijqQbzlmrzkhkBtge5gXZ6wF0CnTgcn7CfkwKOwIcWVZU/VQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: rollup: ^2.63.0 || ^3.0.0 || ^4.0.0 - rollup-plugin-visualizer@5.12.0: - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} + rollup-plugin-visualizer@5.14.0: + resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} + engines: {node: '>=18'} hasBin: true peerDependencies: + rolldown: 1.x rollup: 2.x || 3.x || 4.x peerDependenciesMeta: + rolldown: + optional: true rollup: optional: true @@ -9176,8 +9275,9 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + sax@1.5.0: + resolution: {integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==} + engines: {node: '>=11.0.0'} saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} @@ -9449,10 +9549,6 @@ packages: resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} engines: {node: '>=12'} - stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -9605,18 +9701,18 @@ packages: style-unit@3.0.5: resolution: {integrity: sha512-xL+kev1W1dPthdhpQqZs9Qk1zenQiHKyy9oy2/VasW4z6wi7m7qQvMe67foPsr99JSs0115X0TCN1ch1n0XqSw==} - stylehacks@5.1.1: - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - stylehacks@6.1.1: resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 + stylehacks@7.0.8: + resolution: {integrity: sha512-I3f053GBLIiS5Fg6OMFhq/c+yW+5Hc2+1fgq7gElDMMSqwlRb3tBf2ef6ucLStYRpId4q//bQO1FjcyNyy4yDQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + stylelint-less@3.0.1: resolution: {integrity: sha512-6GkZ4jhmReXxX61IiNaniZFuyTzYTTC4HvRLNNok883d1ux/wUodM1uik+iAHZM1VSCwNASaj0Th6ZX46WZLMw==} peerDependencies: @@ -9660,16 +9756,16 @@ packages: svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true - svgo@3.3.2: resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} engines: {node: '>=14.0.0'} hasBin: true + svgo@4.0.1: + resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} + engines: {node: '>=16'} + hasBin: true + swr@2.3.6: resolution: {integrity: sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==} peerDependencies: @@ -9701,6 +9797,7 @@ packages: tar@6.1.11: resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} 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 term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} @@ -10053,8 +10150,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - update-browserslist-db@1.1.4: - resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -10321,10 +10418,12 @@ packages: whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} @@ -10529,9 +10628,6 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@3.24.2: - resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} - zod@4.1.12: resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} @@ -10793,7 +10889,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.5 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.0 + browserslist: 4.28.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -11865,9 +11961,9 @@ snapshots: '@csstools/postcss-cascade-layers@5.0.2(postcss@8.5.6)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 '@csstools/postcss-color-function-display-p3-linear@1.0.1(postcss@8.5.6)': dependencies: @@ -11973,9 +12069,9 @@ snapshots: '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.6)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 '@csstools/postcss-light-dark-function@2.0.11(postcss@8.5.6)': dependencies: @@ -12067,7 +12163,7 @@ snapshots: '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.6)': dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.6)': dependencies: @@ -12100,13 +12196,13 @@ snapshots: dependencies: postcss: 8.5.6 - '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.0)': + '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.1)': dependencies: - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)': dependencies: - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 '@csstools/utilities@2.0.0(postcss@8.5.6)': dependencies: @@ -12935,13 +13031,13 @@ snapshots: - utf-8-validate - webpack-cli - '@emnapi/core@1.7.0': + '@emnapi/core@1.8.1': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.7.0': + '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 optional: true @@ -13487,17 +13583,10 @@ snapshots: '@module-federation/runtime': 0.14.0 '@module-federation/sdk': 0.14.0 - '@napi-rs/wasm-runtime@0.2.12': + '@napi-rs/wasm-runtime@1.1.1': dependencies: - '@emnapi/core': 1.7.0 - '@emnapi/runtime': 1.7.0 - '@tybys/wasm-util': 0.10.1 - optional: true - - '@napi-rs/wasm-runtime@1.0.7': - dependencies: - '@emnapi/core': 1.7.0 - '@emnapi/runtime': 1.7.0 + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 '@tybys/wasm-util': 0.10.1 optional: true @@ -13570,51 +13659,68 @@ snapshots: '@opentelemetry/api@1.9.0': {} - '@oxc-transform/binding-android-arm64@0.89.0': + '@oxc-project/types@0.115.0': {} + + '@oxc-transform/binding-android-arm-eabi@0.114.0': + optional: true + + '@oxc-transform/binding-android-arm64@0.114.0': + optional: true + + '@oxc-transform/binding-darwin-arm64@0.114.0': + optional: true + + '@oxc-transform/binding-darwin-x64@0.114.0': + optional: true + + '@oxc-transform/binding-freebsd-x64@0.114.0': optional: true - '@oxc-transform/binding-darwin-arm64@0.89.0': + '@oxc-transform/binding-linux-arm-gnueabihf@0.114.0': optional: true - '@oxc-transform/binding-darwin-x64@0.89.0': + '@oxc-transform/binding-linux-arm-musleabihf@0.114.0': optional: true - '@oxc-transform/binding-freebsd-x64@0.89.0': + '@oxc-transform/binding-linux-arm64-gnu@0.114.0': optional: true - '@oxc-transform/binding-linux-arm-gnueabihf@0.89.0': + '@oxc-transform/binding-linux-arm64-musl@0.114.0': optional: true - '@oxc-transform/binding-linux-arm-musleabihf@0.89.0': + '@oxc-transform/binding-linux-ppc64-gnu@0.114.0': optional: true - '@oxc-transform/binding-linux-arm64-gnu@0.89.0': + '@oxc-transform/binding-linux-riscv64-gnu@0.114.0': optional: true - '@oxc-transform/binding-linux-arm64-musl@0.89.0': + '@oxc-transform/binding-linux-riscv64-musl@0.114.0': optional: true - '@oxc-transform/binding-linux-riscv64-gnu@0.89.0': + '@oxc-transform/binding-linux-s390x-gnu@0.114.0': optional: true - '@oxc-transform/binding-linux-s390x-gnu@0.89.0': + '@oxc-transform/binding-linux-x64-gnu@0.114.0': optional: true - '@oxc-transform/binding-linux-x64-gnu@0.89.0': + '@oxc-transform/binding-linux-x64-musl@0.114.0': optional: true - '@oxc-transform/binding-linux-x64-musl@0.89.0': + '@oxc-transform/binding-openharmony-arm64@0.114.0': optional: true - '@oxc-transform/binding-wasm32-wasi@0.89.0': + '@oxc-transform/binding-wasm32-wasi@0.114.0': dependencies: - '@napi-rs/wasm-runtime': 1.0.7 + '@napi-rs/wasm-runtime': 1.1.1 + optional: true + + '@oxc-transform/binding-win32-arm64-msvc@0.114.0': optional: true - '@oxc-transform/binding-win32-arm64-msvc@0.89.0': + '@oxc-transform/binding-win32-ia32-msvc@0.114.0': optional: true - '@oxc-transform/binding-win32-x64-msvc@0.89.0': + '@oxc-transform/binding-win32-x64-msvc@0.114.0': optional: true '@parcel/watcher-android-arm64@2.5.1': @@ -13694,44 +13800,55 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@rolldown/binding-darwin-arm64@0.15.1': + '@rolldown/binding-android-arm64@1.0.0-rc.8': optional: true - '@rolldown/binding-darwin-x64@0.15.1': + '@rolldown/binding-darwin-arm64@1.0.0-rc.8': optional: true - '@rolldown/binding-freebsd-x64@0.15.1': + '@rolldown/binding-darwin-x64@1.0.0-rc.8': optional: true - '@rolldown/binding-linux-arm-gnueabihf@0.15.1': + '@rolldown/binding-freebsd-x64@1.0.0-rc.8': optional: true - '@rolldown/binding-linux-arm64-gnu@0.15.1': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.8': optional: true - '@rolldown/binding-linux-arm64-musl@0.15.1': + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.8': optional: true - '@rolldown/binding-linux-x64-gnu@0.15.1': + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.8': optional: true - '@rolldown/binding-linux-x64-musl@0.15.1': + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.8': optional: true - '@rolldown/binding-wasm32-wasi@0.15.1': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.8': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.8': optional: true - '@rolldown/binding-win32-arm64-msvc@0.15.1': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.8': + optional: true + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.8': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.8': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 optional: true - '@rolldown/binding-win32-ia32-msvc@0.15.1': + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.8': optional: true - '@rolldown/binding-win32-x64-msvc@0.15.1': + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.8': optional: true + '@rolldown/pluginutils@1.0.0-rc.8': {} + '@rollup/plugin-alias@5.0.1(rollup@4.53.2)': dependencies: slash: 4.0.0 @@ -13929,7 +14046,7 @@ snapshots: '@module-federation/runtime-tools': 0.14.0 '@rspack/binding': 1.3.12 '@rspack/lite-tapable': 1.0.1 - caniuse-lite: 1.0.30001754 + caniuse-lite: 1.0.30001777 optionalDependencies: '@swc/helpers': 0.5.17 @@ -14222,7 +14339,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.7 + '@types/express-serve-static-core': 5.1.1 '@types/node': 20.19.25 '@types/connect@3.4.35': @@ -14308,10 +14425,6 @@ snapshots: dependencies: '@types/node': 20.19.25 - '@types/http-proxy@1.17.9': - dependencies: - '@types/node': 20.19.25 - '@types/inquirer@9.0.9': dependencies: '@types/through': 0.0.33 @@ -14442,7 +14555,7 @@ snapshots: '@types/serve-index@1.9.4': dependencies: - '@types/express': 4.17.25 + '@types/express': 5.0.6 '@types/serve-static@1.15.10': dependencies: @@ -14757,7 +14870,7 @@ snapshots: accepts@2.0.0: dependencies: - mime-types: 3.0.1 + mime-types: 3.0.2 negotiator: 1.0.0 acorn-globals@7.0.1: @@ -15002,8 +15115,8 @@ snapshots: autoprefixer@10.4.22(postcss@8.5.6): dependencies: - browserslist: 4.28.0 - caniuse-lite: 1.0.30001754 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001777 fraction.js: 5.3.4 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -15135,7 +15248,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.8.27: {} + baseline-browser-mapping@2.10.0: {} batch@0.6.1: {} @@ -15175,7 +15288,7 @@ snapshots: bytes: 3.1.2 content-type: 1.0.5 debug: 4.4.3 - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 qs: 6.14.1 @@ -15230,13 +15343,13 @@ snapshots: dependencies: wcwidth: 1.0.1 - browserslist@4.28.0: + browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.8.27 - caniuse-lite: 1.0.30001754 - electron-to-chromium: 1.5.250 + baseline-browser-mapping: 2.10.0 + caniuse-lite: 1.0.30001777 + electron-to-chromium: 1.5.307 node-releases: 2.0.27 - update-browserslist-db: 1.1.4(browserslist@4.28.0) + update-browserslist-db: 1.2.3(browserslist@4.28.1) bs-logger@0.2.6: dependencies: @@ -15354,12 +15467,12 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.28.0 - caniuse-lite: 1.0.30001754 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001777 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001754: {} + caniuse-lite@1.0.30001777: {} ccount@2.0.1: {} @@ -15545,6 +15658,8 @@ snapshots: commander@10.0.1: {} + commander@11.1.0: {} + commander@13.1.0: {} commander@2.20.3: {} @@ -15668,7 +15783,7 @@ snapshots: core-js-compat@3.46.0: dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 core-js-pure@3.46.0: {} @@ -15736,11 +15851,7 @@ snapshots: css-blank-pseudo@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 - - css-declaration-sorter@6.3.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + postcss-selector-parser: 7.1.1 css-declaration-sorter@7.2.0(postcss@8.5.6): dependencies: @@ -15750,9 +15861,9 @@ snapshots: css-has-pseudo@7.0.3(postcss@8.5.6): dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 css-loader@6.11.0(@rspack/core@1.3.12(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.15.7(@swc/helpers@0.5.17))): @@ -15815,11 +15926,6 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 - css-tree@1.1.3: - dependencies: - mdn-data: 2.0.14 - source-map: 0.6.1 - css-tree@2.2.1: dependencies: mdn-data: 2.0.28 @@ -15846,7 +15952,7 @@ snapshots: cssnano-preset-advanced@6.1.2(postcss@8.5.6): dependencies: autoprefixer: 10.4.22(postcss@8.5.6) - browserslist: 4.28.0 + browserslist: 4.28.1 cssnano-preset-default: 6.1.2(postcss@8.5.6) postcss: 8.5.6 postcss-discard-unused: 6.0.5(postcss@8.5.6) @@ -15854,42 +15960,9 @@ snapshots: postcss-reduce-idents: 6.0.3(postcss@8.5.6) postcss-zindex: 6.0.2(postcss@8.5.6) - cssnano-preset-default@5.2.14(postcss@8.5.6): - dependencies: - css-declaration-sorter: 6.3.1(postcss@8.5.6) - cssnano-utils: 3.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-calc: 8.2.4(postcss@8.5.6) - postcss-colormin: 5.3.1(postcss@8.5.6) - postcss-convert-values: 5.1.3(postcss@8.5.6) - postcss-discard-comments: 5.1.2(postcss@8.5.6) - postcss-discard-duplicates: 5.1.0(postcss@8.5.6) - postcss-discard-empty: 5.1.1(postcss@8.5.6) - postcss-discard-overridden: 5.1.0(postcss@8.5.6) - postcss-merge-longhand: 5.1.7(postcss@8.5.6) - postcss-merge-rules: 5.1.4(postcss@8.5.6) - postcss-minify-font-values: 5.1.0(postcss@8.5.6) - postcss-minify-gradients: 5.1.1(postcss@8.5.6) - postcss-minify-params: 5.1.4(postcss@8.5.6) - postcss-minify-selectors: 5.2.1(postcss@8.5.6) - postcss-normalize-charset: 5.1.0(postcss@8.5.6) - postcss-normalize-display-values: 5.1.0(postcss@8.5.6) - postcss-normalize-positions: 5.1.1(postcss@8.5.6) - postcss-normalize-repeat-style: 5.1.1(postcss@8.5.6) - postcss-normalize-string: 5.1.0(postcss@8.5.6) - postcss-normalize-timing-functions: 5.1.0(postcss@8.5.6) - postcss-normalize-unicode: 5.1.1(postcss@8.5.6) - postcss-normalize-url: 5.1.0(postcss@8.5.6) - postcss-normalize-whitespace: 5.1.1(postcss@8.5.6) - postcss-ordered-values: 5.1.3(postcss@8.5.6) - postcss-reduce-initial: 5.1.2(postcss@8.5.6) - postcss-reduce-transforms: 5.1.0(postcss@8.5.6) - postcss-svgo: 5.1.0(postcss@8.5.6) - postcss-unique-selectors: 5.1.1(postcss@8.5.6) - cssnano-preset-default@6.1.2(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 css-declaration-sorter: 7.2.0(postcss@8.5.6) cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 @@ -15921,20 +15994,47 @@ snapshots: postcss-svgo: 6.0.3(postcss@8.5.6) postcss-unique-selectors: 6.0.4(postcss@8.5.6) - cssnano-utils@3.1.0(postcss@8.5.6): + cssnano-preset-default@7.0.11(postcss@8.5.6): dependencies: + browserslist: 4.28.1 + css-declaration-sorter: 7.2.0(postcss@8.5.6) + cssnano-utils: 5.0.1(postcss@8.5.6) postcss: 8.5.6 + postcss-calc: 10.1.1(postcss@8.5.6) + postcss-colormin: 7.0.6(postcss@8.5.6) + postcss-convert-values: 7.0.9(postcss@8.5.6) + postcss-discard-comments: 7.0.6(postcss@8.5.6) + postcss-discard-duplicates: 7.0.2(postcss@8.5.6) + postcss-discard-empty: 7.0.1(postcss@8.5.6) + postcss-discard-overridden: 7.0.1(postcss@8.5.6) + postcss-merge-longhand: 7.0.5(postcss@8.5.6) + postcss-merge-rules: 7.0.8(postcss@8.5.6) + postcss-minify-font-values: 7.0.1(postcss@8.5.6) + postcss-minify-gradients: 7.0.1(postcss@8.5.6) + postcss-minify-params: 7.0.6(postcss@8.5.6) + postcss-minify-selectors: 7.0.6(postcss@8.5.6) + postcss-normalize-charset: 7.0.1(postcss@8.5.6) + postcss-normalize-display-values: 7.0.1(postcss@8.5.6) + postcss-normalize-positions: 7.0.1(postcss@8.5.6) + postcss-normalize-repeat-style: 7.0.1(postcss@8.5.6) + postcss-normalize-string: 7.0.1(postcss@8.5.6) + postcss-normalize-timing-functions: 7.0.1(postcss@8.5.6) + postcss-normalize-unicode: 7.0.6(postcss@8.5.6) + postcss-normalize-url: 7.0.1(postcss@8.5.6) + postcss-normalize-whitespace: 7.0.1(postcss@8.5.6) + postcss-ordered-values: 7.0.2(postcss@8.5.6) + postcss-reduce-initial: 7.0.6(postcss@8.5.6) + postcss-reduce-transforms: 7.0.1(postcss@8.5.6) + postcss-svgo: 7.1.1(postcss@8.5.6) + postcss-unique-selectors: 7.0.5(postcss@8.5.6) cssnano-utils@4.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - cssnano@5.1.15(postcss@8.5.6): + cssnano-utils@5.0.1(postcss@8.5.6): dependencies: - cssnano-preset-default: 5.2.14(postcss@8.5.6) - lilconfig: 2.0.6 postcss: 8.5.6 - yaml: 1.10.2 cssnano@6.1.2(postcss@8.5.6): dependencies: @@ -15942,9 +16042,11 @@ snapshots: lilconfig: 3.1.3 postcss: 8.5.6 - csso@4.2.0: + cssnano@7.1.3(postcss@8.5.6): dependencies: - css-tree: 1.1.3 + cssnano-preset-default: 7.0.11(postcss@8.5.6) + lilconfig: 3.1.3 + postcss: 8.5.6 csso@5.0.5: dependencies: @@ -16192,7 +16294,7 @@ snapshots: dependencies: jake: 10.8.5 - electron-to-chromium@1.5.250: {} + electron-to-chromium@1.5.307: {} emittery@0.13.1: {} @@ -16833,9 +16935,9 @@ snapshots: etag: 1.8.1 finalhandler: 2.1.1 fresh: 2.0.0 - http-errors: 2.0.0 + http-errors: 2.0.1 merge-descriptors: 2.0.0 - mime-types: 3.0.1 + mime-types: 3.0.2 on-finished: 2.4.1 once: 1.4.0 parseurl: 1.3.3 @@ -16845,7 +16947,7 @@ snapshots: router: 2.2.0 send: 1.2.1 serve-static: 2.2.1 - statuses: 2.0.1 + statuses: 2.0.2 type-is: 2.0.1 vary: 1.1.2 transitivePeerDependencies: @@ -16958,7 +17060,7 @@ snapshots: escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color @@ -17527,7 +17629,7 @@ snapshots: http-proxy-middleware@2.0.9(@types/express@4.17.25)(debug@4.4.3): dependencies: - '@types/http-proxy': 1.17.9 + '@types/http-proxy': 1.17.17 http-proxy: 1.18.1(debug@4.4.3) is-glob: 4.0.3 is-plain-obj: 3.0.0 @@ -18525,8 +18627,6 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@2.0.6: {} - lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -18893,8 +18993,6 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - mdn-data@2.0.14: {} - mdn-data@2.0.28: {} mdn-data@2.0.30: {} @@ -19272,10 +19370,6 @@ snapshots: dependencies: mime-db: 1.52.0 - mime-types@3.0.1: - dependencies: - mime-db: 1.54.0 - mime-types@3.0.2: dependencies: mime-db: 1.54.0 @@ -19368,7 +19462,7 @@ snapshots: dependencies: debug: 3.2.7 iconv-lite: 0.6.3 - sax: 1.2.4 + sax: 1.5.0 transitivePeerDependencies: - supports-color optional: true @@ -19420,8 +19514,6 @@ snapshots: normalize-range@0.1.2: {} - normalize-url@6.1.0: {} - normalize-url@8.1.0: {} npm-run-all@4.1.5: @@ -19603,23 +19695,28 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-transform@0.89.0: + oxc-transform@0.114.0: optionalDependencies: - '@oxc-transform/binding-android-arm64': 0.89.0 - '@oxc-transform/binding-darwin-arm64': 0.89.0 - '@oxc-transform/binding-darwin-x64': 0.89.0 - '@oxc-transform/binding-freebsd-x64': 0.89.0 - '@oxc-transform/binding-linux-arm-gnueabihf': 0.89.0 - '@oxc-transform/binding-linux-arm-musleabihf': 0.89.0 - '@oxc-transform/binding-linux-arm64-gnu': 0.89.0 - '@oxc-transform/binding-linux-arm64-musl': 0.89.0 - '@oxc-transform/binding-linux-riscv64-gnu': 0.89.0 - '@oxc-transform/binding-linux-s390x-gnu': 0.89.0 - '@oxc-transform/binding-linux-x64-gnu': 0.89.0 - '@oxc-transform/binding-linux-x64-musl': 0.89.0 - '@oxc-transform/binding-wasm32-wasi': 0.89.0 - '@oxc-transform/binding-win32-arm64-msvc': 0.89.0 - '@oxc-transform/binding-win32-x64-msvc': 0.89.0 + '@oxc-transform/binding-android-arm-eabi': 0.114.0 + '@oxc-transform/binding-android-arm64': 0.114.0 + '@oxc-transform/binding-darwin-arm64': 0.114.0 + '@oxc-transform/binding-darwin-x64': 0.114.0 + '@oxc-transform/binding-freebsd-x64': 0.114.0 + '@oxc-transform/binding-linux-arm-gnueabihf': 0.114.0 + '@oxc-transform/binding-linux-arm-musleabihf': 0.114.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.114.0 + '@oxc-transform/binding-linux-arm64-musl': 0.114.0 + '@oxc-transform/binding-linux-ppc64-gnu': 0.114.0 + '@oxc-transform/binding-linux-riscv64-gnu': 0.114.0 + '@oxc-transform/binding-linux-riscv64-musl': 0.114.0 + '@oxc-transform/binding-linux-s390x-gnu': 0.114.0 + '@oxc-transform/binding-linux-x64-gnu': 0.114.0 + '@oxc-transform/binding-linux-x64-musl': 0.114.0 + '@oxc-transform/binding-openharmony-arm64': 0.114.0 + '@oxc-transform/binding-wasm32-wasi': 0.114.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.114.0 + '@oxc-transform/binding-win32-ia32-msvc': 0.114.0 + '@oxc-transform/binding-win32-x64-msvc': 0.114.0 p-cancelable@3.0.0: {} @@ -19664,10 +19761,10 @@ snapshots: eventemitter3: 4.0.7 p-timeout: 3.2.0 - p-queue@7.4.1: + p-queue@8.1.1: dependencies: eventemitter3: 5.0.1 - p-timeout: 5.1.0 + p-timeout: 6.1.4 p-retry@6.2.1: dependencies: @@ -19679,7 +19776,7 @@ snapshots: dependencies: p-finally: 1.0.0 - p-timeout@5.1.0: {} + p-timeout@6.1.4: {} p-try@2.2.0: {} @@ -19820,12 +19917,12 @@ snapshots: postcss-attribute-case-insensitive@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 - postcss-calc@8.2.4(postcss@8.5.6): + postcss-calc@10.1.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 postcss-calc@9.0.1(postcss@8.5.6): @@ -19860,31 +19957,31 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-colormin@5.3.1(postcss@8.5.6): + postcss-colormin@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-colormin@6.1.0(postcss@8.5.6): + postcss-colormin@7.0.6(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-convert-values@5.1.3(postcss@8.5.6): + postcss-convert-values@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-convert-values@6.1.0(postcss@8.5.6): + postcss-convert-values@7.0.9(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -19911,30 +20008,27 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-dir-pseudo-class@9.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 - - postcss-discard-comments@5.1.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + postcss-selector-parser: 7.1.1 postcss-discard-comments@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-duplicates@5.1.0(postcss@8.5.6): + postcss-discard-comments@7.0.6(postcss@8.5.6): dependencies: postcss: 8.5.6 + postcss-selector-parser: 7.1.1 postcss-discard-duplicates@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-empty@5.1.1(postcss@8.5.6): + postcss-discard-duplicates@7.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -19942,7 +20036,7 @@ snapshots: dependencies: postcss: 8.5.6 - postcss-discard-overridden@5.1.0(postcss@8.5.6): + postcss-discard-empty@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -19950,6 +20044,10 @@ snapshots: dependencies: postcss: 8.5.6 + postcss-discard-overridden@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-discard-unused@6.0.5(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -19965,12 +20063,12 @@ snapshots: postcss-focus-visible@10.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-focus-within@9.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-font-variant@5.0.0(postcss@8.5.6): dependencies: @@ -20022,48 +20120,41 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-merge-longhand@5.1.7(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.5.6) - postcss-merge-longhand@6.0.5(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 stylehacks: 6.1.1(postcss@8.5.6) - postcss-merge-rules@5.1.4(postcss@8.5.6): + postcss-merge-longhand@7.0.5(postcss@8.5.6): dependencies: - browserslist: 4.28.0 - caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.5.6) postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.8(postcss@8.5.6) postcss-merge-rules@6.1.1(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@5.1.0(postcss@8.5.6): + postcss-merge-rules@7.0.8(postcss@8.5.6): dependencies: + browserslist: 4.28.1 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.1(postcss@8.5.6) postcss: 8.5.6 - postcss-value-parser: 4.2.0 + postcss-selector-parser: 7.1.1 postcss-minify-font-values@6.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-gradients@5.1.1(postcss@8.5.6): + postcss-minify-font-values@7.0.1(postcss@8.5.6): dependencies: - colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20074,30 +20165,38 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-params@5.1.4(postcss@8.5.6): + postcss-minify-gradients@7.0.1(postcss@8.5.6): dependencies: - browserslist: 4.28.0 - cssnano-utils: 3.1.0(postcss@8.5.6) + colord: 2.9.3 + cssnano-utils: 5.0.1(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 postcss-minify-params@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-selectors@5.2.1(postcss@8.5.6): + postcss-minify-params@7.0.6(postcss@8.5.6): dependencies: + browserslist: 4.28.1 + cssnano-utils: 5.0.1(postcss@8.5.6) postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 postcss-minify-selectors@6.0.4(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 + postcss-minify-selectors@7.0.6(postcss@8.5.6): + dependencies: + cssesc: 3.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.1 + postcss-modules-extract-imports@3.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -20112,7 +20211,7 @@ snapshots: postcss-modules-scope@3.2.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-modules-values@4.0.0(postcss@8.5.6): dependencies: @@ -20121,30 +20220,25 @@ snapshots: postcss-nesting@13.0.2(postcss@8.5.6): dependencies: - '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 - - postcss-normalize-charset@5.1.0(postcss@8.5.6): - dependencies: + '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.1) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) postcss: 8.5.6 + postcss-selector-parser: 7.1.1 postcss-normalize-charset@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-normalize-display-values@5.1.0(postcss@8.5.6): + postcss-normalize-charset@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-value-parser: 4.2.0 postcss-normalize-display-values@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-positions@5.1.1(postcss@8.5.6): + postcss-normalize-display-values@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20154,7 +20248,7 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@5.1.1(postcss@8.5.6): + postcss-normalize-positions@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20164,7 +20258,7 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-string@5.1.0(postcss@8.5.6): + postcss-normalize-repeat-style@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20174,7 +20268,7 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@5.1.0(postcss@8.5.6): + postcss-normalize-string@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20184,21 +20278,20 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@5.1.1(postcss@8.5.6): + postcss-normalize-timing-functions@7.0.1(postcss@8.5.6): dependencies: - browserslist: 4.28.0 postcss: 8.5.6 postcss-value-parser: 4.2.0 postcss-normalize-unicode@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-url@5.1.0(postcss@8.5.6): + postcss-normalize-unicode@7.0.6(postcss@8.5.6): dependencies: - normalize-url: 6.1.0 + browserslist: 4.28.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20207,7 +20300,7 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@5.1.1(postcss@8.5.6): + postcss-normalize-url@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20217,15 +20310,14 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-opacity-percentage@3.0.0(postcss@8.5.6): + postcss-normalize-whitespace@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 + postcss-value-parser: 4.2.0 - postcss-ordered-values@5.1.3(postcss@8.5.6): + postcss-opacity-percentage@3.0.0(postcss@8.5.6): dependencies: - cssnano-utils: 3.1.0(postcss@8.5.6) postcss: 8.5.6 - postcss-value-parser: 4.2.0 postcss-ordered-values@6.0.2(postcss@8.5.6): dependencies: @@ -20233,6 +20325,12 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-ordered-values@7.0.2(postcss@8.5.6): + dependencies: + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-overflow-shorthand@6.0.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -20290,7 +20388,7 @@ snapshots: '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.6) '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.6) autoprefixer: 10.4.22(postcss@8.5.6) - browserslist: 4.28.0 + browserslist: 4.28.1 css-blank-pseudo: 7.0.1(postcss@8.5.6) css-has-pseudo: 7.0.3(postcss@8.5.6) css-prefers-color-scheme: 10.0.0(postcss@8.5.6) @@ -20325,31 +20423,31 @@ snapshots: postcss-pseudo-class-any-link@10.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-reduce-idents@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-reduce-initial@5.1.2(postcss@8.5.6): + postcss-reduce-initial@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 caniuse-api: 3.0.0 postcss: 8.5.6 - postcss-reduce-initial@6.1.0(postcss@8.5.6): + postcss-reduce-initial@7.0.6(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 caniuse-api: 3.0.0 postcss: 8.5.6 - postcss-reduce-transforms@5.1.0(postcss@8.5.6): + postcss-reduce-transforms@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-reduce-transforms@6.0.2(postcss@8.5.6): + postcss-reduce-transforms@7.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -20371,14 +20469,14 @@ snapshots: postcss-selector-not@8.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.0: + postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -20388,27 +20486,27 @@ snapshots: postcss: 8.5.6 sort-css-media-queries: 2.2.0 - postcss-svgo@5.1.0(postcss@8.5.6): + postcss-svgo@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - svgo: 2.8.0 + svgo: 3.3.2 - postcss-svgo@6.0.3(postcss@8.5.6): + postcss-svgo@7.1.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - svgo: 3.3.2 + svgo: 4.0.1 - postcss-unique-selectors@5.1.1(postcss@8.5.6): + postcss-unique-selectors@6.0.4(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-unique-selectors@6.0.4(postcss@8.5.6): + postcss-unique-selectors@7.0.5(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 7.1.1 postcss-value-parser@4.2.0: {} @@ -20519,7 +20617,7 @@ snapshots: dependencies: side-channel: 1.1.0 - query-string@8.2.0: + query-string@9.3.1: dependencies: decode-uri-component: 0.4.1 filter-obj: 5.1.0 @@ -20924,40 +21022,43 @@ snapshots: dependencies: glob: 9.3.5 - rolldown@0.15.1(@babel/runtime@7.28.4): + rolldown@1.0.0-rc.8: dependencies: - zod: 3.24.2 + '@oxc-project/types': 0.115.0 + '@rolldown/pluginutils': 1.0.0-rc.8 optionalDependencies: - '@babel/runtime': 7.28.4 - '@rolldown/binding-darwin-arm64': 0.15.1 - '@rolldown/binding-darwin-x64': 0.15.1 - '@rolldown/binding-freebsd-x64': 0.15.1 - '@rolldown/binding-linux-arm-gnueabihf': 0.15.1 - '@rolldown/binding-linux-arm64-gnu': 0.15.1 - '@rolldown/binding-linux-arm64-musl': 0.15.1 - '@rolldown/binding-linux-x64-gnu': 0.15.1 - '@rolldown/binding-linux-x64-musl': 0.15.1 - '@rolldown/binding-wasm32-wasi': 0.15.1 - '@rolldown/binding-win32-arm64-msvc': 0.15.1 - '@rolldown/binding-win32-ia32-msvc': 0.15.1 - '@rolldown/binding-win32-x64-msvc': 0.15.1 - - rollup-plugin-styler@1.8.0(rollup@4.53.2)(typescript@5.9.2): + '@rolldown/binding-android-arm64': 1.0.0-rc.8 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.8 + '@rolldown/binding-darwin-x64': 1.0.0-rc.8 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.8 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.8 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.8 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.8 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.8 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.8 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.8 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.8 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.8 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.8 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.8 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.8 + + rollup-plugin-styler@2.0.0(rollup@4.53.2)(typescript@5.9.2): dependencies: '@rollup/pluginutils': 5.1.3(rollup@4.53.2) cosmiconfig: 8.3.6(typescript@5.9.2) - cssnano: 6.1.2(postcss@8.5.6) + cssnano: 7.1.3(postcss@8.5.6) fs-extra: 11.2.0 icss-utils: 5.1.0(postcss@8.5.6) mime-types: 2.1.35 - p-queue: 7.4.1 + p-queue: 8.1.1 postcss: 8.5.6 postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) postcss-modules-local-by-default: 4.0.5(postcss@8.5.6) postcss-modules-scope: 3.2.1(postcss@8.5.6) postcss-modules-values: 4.0.0(postcss@8.5.6) postcss-value-parser: 4.2.0 - query-string: 8.2.0 + query-string: 9.3.1 resolve: 1.22.11 resolve.exports: 2.0.0 rollup: 4.53.2 @@ -20966,13 +21067,14 @@ snapshots: transitivePeerDependencies: - typescript - rollup-plugin-visualizer@5.12.0(rollup@4.53.2): + rollup-plugin-visualizer@5.14.0(rolldown@1.0.0-rc.8)(rollup@4.53.2): dependencies: open: 8.4.0 - picomatch: 2.3.1 + picomatch: 4.0.3 source-map: 0.7.4 yargs: 17.5.1 optionalDependencies: + rolldown: 1.0.0-rc.8 rollup: 4.53.2 rollup@4.53.2: @@ -21161,7 +21263,7 @@ snapshots: optionalDependencies: '@parcel/watcher': 2.5.1 - sax@1.2.4: {} + sax@1.5.0: {} saxes@6.0.0: dependencies: @@ -21387,7 +21489,7 @@ snapshots: '@types/node': 17.0.45 '@types/sax': 1.2.4 arg: 5.0.2 - sax: 1.2.4 + sax: 1.5.0 skin-tone@2.0.0: dependencies: @@ -21507,8 +21609,6 @@ snapshots: srcset@4.0.0: {} - stable@0.1.8: {} - stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -21685,17 +21785,17 @@ snapshots: '@babel/runtime': 7.28.4 universal-env: 3.3.3 - stylehacks@5.1.1(postcss@8.5.6): + stylehacks@6.1.1(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 postcss: 8.5.6 postcss-selector-parser: 6.1.2 - stylehacks@6.1.1(postcss@8.5.6): + stylehacks@7.0.8(postcss@8.5.6): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 7.1.1 stylelint-less@3.0.1(postcss@8.5.6)(stylelint@16.25.0(typescript@5.9.2)): dependencies: @@ -21712,7 +21812,7 @@ snapshots: mdn-data: 2.25.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 stylelint: 16.25.0(typescript@5.9.2) @@ -21721,7 +21821,7 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) '@dual-bundle/import-meta-resolve': 4.2.1 balanced-match: 2.0.0 colord: 2.9.3 @@ -21748,7 +21848,7 @@ snapshots: postcss: 8.5.6 postcss-resolve-nested-selector: 0.1.6 postcss-safe-parser: 7.0.1(postcss@8.5.6) - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -21783,25 +21883,25 @@ snapshots: svg-tags@1.0.0: {} - svgo@2.8.0: + svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 - css-select: 4.3.0 - css-tree: 1.1.3 - csso: 4.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 picocolors: 1.1.1 - stable: 0.1.8 - svgo@3.3.2: + svgo@4.0.1: dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 + commander: 11.1.0 css-select: 5.1.0 - css-tree: 2.3.1 + css-tree: 3.1.0 css-what: 6.1.0 csso: 5.0.5 picocolors: 1.1.1 + sax: 1.5.0 swr@2.3.6(react@18.2.0): dependencies: @@ -22063,7 +22163,7 @@ snapshots: dependencies: content-type: 1.0.5 media-typer: 1.1.0 - mime-types: 3.0.1 + mime-types: 3.0.2 typed-array-buffer@1.0.3: dependencies: @@ -22196,9 +22296,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.4(browserslist@4.28.0): + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 @@ -22412,7 +22512,7 @@ snapshots: dependencies: colorette: 2.0.20 memfs: 4.51.0 - mime-types: 3.0.1 + mime-types: 3.0.2 on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.3 @@ -22481,7 +22581,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.28.0 + browserslist: 4.28.1 chrome-trace-event: 1.0.3 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -22513,7 +22613,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.28.0 + browserslist: 4.28.1 chrome-trace-event: 1.0.3 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -22702,7 +22802,7 @@ snapshots: xml-js@1.6.11: dependencies: - sax: 1.2.4 + sax: 1.5.0 xml-name-validator@4.0.0: {} @@ -22775,8 +22875,6 @@ snapshots: dependencies: zod: 4.1.12 - zod@3.24.2: {} - zod@4.1.12: {} zwitch@2.0.4: {} diff --git a/tests/helpers/run.ts b/tests/helpers/run.ts index d6c5e2b2..0ac5e7ab 100644 --- a/tests/helpers/run.ts +++ b/tests/helpers/run.ts @@ -4,14 +4,13 @@ import * as url from 'node:url'; import * as fse from 'fs-extra'; import fs from 'fs-extra'; import { execSync } from 'node:child_process'; -import { UserConfig } from '@ice/pkg'; +import { EngineType, UserConfig } from '@ice/pkg'; import stringifyJavascript from 'serialize-javascript'; const CHECK_DIRS = ['es2017', 'esm', 'dist', 'cjs']; -export interface ProjectTestUserConfig { +export interface ProjectTestUserConfigBase { name: string; - config?: string | UserConfig; mode?: 'build' | 'start'; /** * How to snapshot file @@ -25,33 +24,51 @@ export interface ProjectTestUserConfig { only?: boolean; } +export interface ProjectTestUserConfigObject extends ProjectTestUserConfigBase { + config: UserConfig; + engine?: EngineType[]; +} + +export interface ProjectTestUserConfigString extends ProjectTestUserConfigBase { + config: string; +} + +export type ProjectTestUserConfig = ProjectTestUserConfigObject | ProjectTestUserConfigString; + export type ProjectTestConfig = Required; export type ProjectTestConfigs = ProjectTestUserConfig[]; +function isStringUserConfig(config: ProjectTestUserConfig): config is ProjectTestUserConfigString { + return typeof config.config === 'string'; +} + export function runProjectTest(fileUrl: string, userConfigs: ProjectTestUserConfig[]) { const projectPath = path.dirname(url.fileURLToPath(fileUrl)); const configs: ProjectTestConfig[] = []; - for (const userConfig of userConfigs) { - let config: ProjectTestUserConfig; - - if (typeof userConfig === 'string') { - config = { name: userConfig }; - } else { - config = userConfig; - } - - configs.push({ + for (const config of userConfigs) { + const baseConfig: Required = { name: config.name, - config: config.config, mode: config?.mode ?? 'build', snapshot: config?.snapshot ?? 'full', snapshotFolders: config?.snapshotFolders ?? CHECK_DIRS, skip: config.skip ?? false, only: config.only ?? false, - }); + }; + if (isStringUserConfig(config)) { + configs.push({ + ...baseConfig, + config: config.config, + }); + } else { + configs.push({ + ...baseConfig, + config: config.config, + engine: config.engine ?? ['rollup'], + }); + } } async function resetProject(config: ProjectTestConfig) { @@ -60,14 +77,24 @@ export function runProjectTest(fileUrl: string, userConfigs: ProjectTestUserConf } } - async function runBuild(config: ProjectTestConfig) { + async function runBuild(config: ProjectTestConfig, engine: EngineType) { let configPath: string; if (typeof config.config === 'string') { configPath = config.config; } else { configPath = 'build.config.for-test.mts'; - await fse.writeFile(path.join(projectPath, configPath), buildIcePkgConfigScript(config.config), 'utf8'); + const withEngineConfig = + engine !== 'rollup' + ? { + ...config.config, + bundle: { + ...config.config.bundle, + engine, + }, + } + : config.config; + await fse.writeFile(path.join(projectPath, configPath), buildIcePkgConfigScript(withEngineConfig), 'utf8'); } execSync(`./node_modules/.bin/ice-pkg build --config ${configPath}`, { @@ -98,17 +125,21 @@ export function runProjectTest(fileUrl: string, userConfigs: ProjectTestUserConf for (const config of configs) { const test = config.only ? it.only : config.skip ? it.skip : it; - test( - `Run config ${config.name}`, - { - timeout: 30 * 1000, - }, - async () => { - await resetProject(config); - await runBuild(config); - await runSnapshot(config); - }, - ); + const engines = 'engine' in config ? config.engine : (['rollup'] as EngineType[]); + for (const engine of engines) { + const name = engine !== 'rollup' ? `${config.name}-${engine}` : config.name; + test( + `Run config ${name}`, + { + timeout: 30 * 1000, + }, + async () => { + await resetProject(config); + await runBuild(config, engine); + await runSnapshot(config); + }, + ); + } } } diff --git a/tests/integration/bundle-asset/__snapshots__/index.test.ts.snap b/tests/integration/bundle-asset/__snapshots__/index.test.ts.snap new file mode 100644 index 00000000..22bff1e6 --- /dev/null +++ b/tests/integration/bundle-asset/__snapshots__/index.test.ts.snap @@ -0,0 +1,52 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Run config default > cjs structure 1`] = `null`; + +exports[`Run config default > dist structure 1`] = ` +{ + "files": [ + { + "name": "index.esm.es5.production.css", + }, + { + "name": "index.esm.es5.production.js", + }, + ], + "name": "dist", +} +`; + +exports[`Run config default > es2017 structure 1`] = `null`; + +exports[`Run config default > esm structure 1`] = `null`; + +exports[`Run config default > file content dist/index.esm.es5.production.css 1`] = `".mock-less{color:#333}.mock-scss{color:#666}"`; + +exports[`Run config default > file content dist/index.esm.es5.production.js 1`] = ` +"console.log({mock:!0,name:"test-json"},"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3e %3crect width='10' height='10' fill='%23999' /%3e%3c/svg%3e","data:image/png;base64,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"); +" +`; + +exports[`Run config default-rolldown > cjs structure 1`] = `null`; + +exports[`Run config default-rolldown > dist structure 1`] = ` +{ + "files": [ + { + "name": "index.esm.es5.production.css", + }, + { + "name": "index.esm.es5.production.js", + }, + ], + "name": "dist", +} +`; + +exports[`Run config default-rolldown > es2017 structure 1`] = `null`; + +exports[`Run config default-rolldown > esm structure 1`] = `null`; + +exports[`Run config default-rolldown > file content dist/index.esm.es5.production.css 1`] = `".mock-less{color:#333}.mock-scss{color:#666}"`; + +exports[`Run config default-rolldown > file content dist/index.esm.es5.production.js 1`] = `"console.log({mock:!0,name:\`test-json\`},\`data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3e %3crect width='10' height='10' fill='%23999' /%3e%3c/svg%3e\`,\`data:image/png;base64,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\`);export{};"`; diff --git a/tests/integration/bundle-asset/index.test.ts b/tests/integration/bundle-asset/index.test.ts new file mode 100644 index 00000000..37fc7b08 --- /dev/null +++ b/tests/integration/bundle-asset/index.test.ts @@ -0,0 +1,17 @@ +import { runProjectTest } from '../../helpers/run'; + +runProjectTest(import.meta.url, [ + { + name: 'default', + config: { + entry: './src/index.ts', + transform: { + formats: [], + }, + bundle: { + formats: ['esm'], + }, + }, + engine: ['rollup', 'rolldown'], + }, +]); diff --git a/tests/integration/bundle-asset/package.json b/tests/integration/bundle-asset/package.json new file mode 100644 index 00000000..5227f346 --- /dev/null +++ b/tests/integration/bundle-asset/package.json @@ -0,0 +1,10 @@ +{ + "name": "@ice/pkg-tests-bundle-dep", + "version": "0.0.0", + "description": "test for static asset like .json .png .svg etc", + "private": true, + "dependencies": { + "@ice/pkg": "workspace:*", + "es-toolkit": "^1.32.0" + } +} diff --git a/tests/integration/bundle-asset/src/favicon.png b/tests/integration/bundle-asset/src/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..a2605c57e9d85aabd689ff5c565286dee148ab6d GIT binary patch literal 2719 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 literal 0 HcmV?d00001 diff --git a/tests/integration/bundle-asset/src/index.ts b/tests/integration/bundle-asset/src/index.ts new file mode 100644 index 00000000..b841ae31 --- /dev/null +++ b/tests/integration/bundle-asset/src/index.ts @@ -0,0 +1,7 @@ +import './test.less'; +import './test.scss'; +import data from './test.json'; +import svg from './test.svg'; +import icon from './favicon.png'; + +console.log(data, svg, icon); diff --git a/tests/integration/bundle-asset/src/test.json b/tests/integration/bundle-asset/src/test.json new file mode 100644 index 00000000..fd45980d --- /dev/null +++ b/tests/integration/bundle-asset/src/test.json @@ -0,0 +1,4 @@ +{ + "mock": true, + "name": "test-json" +} diff --git a/tests/integration/bundle-asset/src/test.less b/tests/integration/bundle-asset/src/test.less new file mode 100644 index 00000000..f6836909 --- /dev/null +++ b/tests/integration/bundle-asset/src/test.less @@ -0,0 +1,3 @@ +.mock-less { + color: #333; +} diff --git a/tests/integration/bundle-asset/src/test.scss b/tests/integration/bundle-asset/src/test.scss new file mode 100644 index 00000000..f6c2d287 --- /dev/null +++ b/tests/integration/bundle-asset/src/test.scss @@ -0,0 +1,5 @@ +$mock-color: #666; + +.mock-scss { + color: $mock-color; +} diff --git a/tests/integration/bundle-asset/src/test.svg b/tests/integration/bundle-asset/src/test.svg new file mode 100644 index 00000000..8567ca0e --- /dev/null +++ b/tests/integration/bundle-asset/src/test.svg @@ -0,0 +1,3 @@ + + + diff --git a/tests/integration/bundle-asset/tsconfig.json b/tests/integration/bundle-asset/tsconfig.json new file mode 100644 index 00000000..cbd80dfb --- /dev/null +++ b/tests/integration/bundle-asset/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../tsconfig.common.json" +} diff --git a/tests/integration/bundle-browser/__snapshots__/index.test.ts.snap b/tests/integration/bundle-browser/__snapshots__/index.test.ts.snap index faccc015..5a94f83d 100644 --- a/tests/integration/bundle-browser/__snapshots__/index.test.ts.snap +++ b/tests/integration/bundle-browser/__snapshots__/index.test.ts.snap @@ -30,6 +30,30 @@ exports[`Run config default > file content dist/index.esm.es5.production.js 1`] " `; +exports[`Run config default-rolldown > cjs structure 1`] = `null`; + +exports[`Run config default-rolldown > dist structure 1`] = ` +{ + "files": [ + { + "name": "index.cjs.es5.production.js", + }, + { + "name": "index.esm.es5.production.js", + }, + ], + "name": "dist", +} +`; + +exports[`Run config default-rolldown > es2017 structure 1`] = `null`; + +exports[`Run config default-rolldown > esm structure 1`] = `null`; + +exports[`Run config default-rolldown > file content dist/index.cjs.es5.production.js 1`] = `"console.log(\`main\`);"`; + +exports[`Run config default-rolldown > file content dist/index.esm.es5.production.js 1`] = `"console.log(\`main\`);export{};"`; + exports[`Run config enable-browser > cjs structure 1`] = `null`; exports[`Run config enable-browser > dist structure 1`] = ` @@ -59,3 +83,27 @@ exports[`Run config enable-browser > file content dist/index.esm.es5.production. "console.log("browser"); " `; + +exports[`Run config enable-browser-rolldown > cjs structure 1`] = `null`; + +exports[`Run config enable-browser-rolldown > dist structure 1`] = ` +{ + "files": [ + { + "name": "index.cjs.es5.production.js", + }, + { + "name": "index.esm.es5.production.js", + }, + ], + "name": "dist", +} +`; + +exports[`Run config enable-browser-rolldown > es2017 structure 1`] = `null`; + +exports[`Run config enable-browser-rolldown > esm structure 1`] = `null`; + +exports[`Run config enable-browser-rolldown > file content dist/index.cjs.es5.production.js 1`] = `"console.log(\`browser\`);"`; + +exports[`Run config enable-browser-rolldown > file content dist/index.esm.es5.production.js 1`] = `"console.log(\`browser\`);"`; diff --git a/tests/integration/bundle-browser/index.test.ts b/tests/integration/bundle-browser/index.test.ts index a6188cf4..0cafe560 100644 --- a/tests/integration/bundle-browser/index.test.ts +++ b/tests/integration/bundle-browser/index.test.ts @@ -9,6 +9,8 @@ runProjectTest(import.meta.url, [ formats: ['esm', 'cjs'], }, }, + // FIXME: for rolldown, resolution is different for rollup, so we need to update it later + engine: ['rollup', 'rolldown'], }, { name: 'enable-browser', @@ -19,5 +21,6 @@ runProjectTest(import.meta.url, [ browser: true, }, }, + engine: ['rollup', 'rolldown'], }, ]); diff --git a/tests/integration/default/__snapshots__/index.test.ts.snap b/tests/integration/default/__snapshots__/index.test.ts.snap index daa01279..a7c8329c 100644 --- a/tests/integration/default/__snapshots__/index.test.ts.snap +++ b/tests/integration/default/__snapshots__/index.test.ts.snap @@ -69,7 +69,7 @@ exports[`Run config bundle-rolldown > es2017 structure 1`] = `null`; exports[`Run config bundle-rolldown > esm structure 1`] = `null`; -exports[`Run config bundle-rolldown > file content dist/index.esm.es2017.production.js 1`] = `"let o=1;export{o as foo};"`; +exports[`Run config bundle-rolldown > file content dist/index.esm.es2017.production.js 1`] = `"const e=1;export{e as foo};"`; exports[`Run config bundle-with-dev-mode > cjs structure 1`] = `null`; diff --git a/tests/integration/react/__snapshots__/index.test.ts.snap b/tests/integration/react/__snapshots__/index.test.ts.snap index f56e3fe5..01ca7bf8 100644 --- a/tests/integration/react/__snapshots__/index.test.ts.snap +++ b/tests/integration/react/__snapshots__/index.test.ts.snap @@ -123,4 +123,4 @@ exports[`Run config rolldown > dist structure 1`] = ` } `; -exports[`Run config rolldown > file content dist/index.esm.es2017.production.js 1`] = `"import"react";import{jsx as e}from"@ice/jsx-runtime/jsx-runtime";var r=()=>e("div",{className:"common-class-name",children:"Hello World"});export{r as default};"`; +exports[`Run config rolldown > file content dist/index.esm.es2017.production.js 1`] = `"import"react";import{jsx as e}from"@ice/jsx-runtime/jsx-runtime";var t=()=>e(\`div\`,{className:\`common-class-name\`,children:\`Hello World\`});export{t as default};"`; diff --git a/tests/integration/tsconfig.common.json b/tests/integration/tsconfig.common.json index 6e2aa66e..47dc1516 100644 --- a/tests/integration/tsconfig.common.json +++ b/tests/integration/tsconfig.common.json @@ -1,6 +1,7 @@ { "compilerOptions": { "strict": true, - "module": "esnext" + "module": "esnext", + "resolveJsonModule": true } } diff --git a/tests/package.json b/tests/package.json index e461c762..b696e3a6 100644 --- a/tests/package.json +++ b/tests/package.json @@ -8,5 +8,8 @@ "@ice/pkg": "workspace:*", "@types/serialize-javascript": "^5.0.4", "serialize-javascript": "^6.0.2" + }, + "dependencies": { + "es-toolkit": "^1.32.0" } }