From 5b9ebc0e562626ddedf121da1c2d6bbc8d341f78 Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 1 Sep 2026 18:55:50 +0800 Subject: [PATCH 1/4] chore: migrate to Rstack CLI --- .agents/skills/rstack-cli-docs/SKILL.md | 25 + .claude/skills/rstack-cli-docs | 1 + .github/workflows/ci.yml | 4 +- .prettierrc | 3 - .rstack/hooks/pre-commit | 1 + .vscode/extensions.json | 2 +- AGENTS.md | 22 +- package.json | 18 +- pnpm-lock.yaml | 618 ++++++++++++++---------- rslib.config.ts | 10 - rslint.config.ts | 14 - rstack.config.ts | 37 ++ skills-lock.json | 11 + src/index.ts | 4 +- tests/prebundle.test.ts | 2 +- 15 files changed, 466 insertions(+), 306 deletions(-) create mode 100644 .agents/skills/rstack-cli-docs/SKILL.md create mode 120000 .claude/skills/rstack-cli-docs delete mode 100644 .prettierrc create mode 100644 .rstack/hooks/pre-commit delete mode 100644 rslib.config.ts delete mode 100644 rslint.config.ts create mode 100644 rstack.config.ts create mode 100644 skills-lock.json diff --git a/.agents/skills/rstack-cli-docs/SKILL.md b/.agents/skills/rstack-cli-docs/SKILL.md new file mode 100644 index 0000000..811b1ae --- /dev/null +++ b/.agents/skills/rstack-cli-docs/SKILL.md @@ -0,0 +1,25 @@ +--- +name: rstack-cli-docs +description: Consult installed, version-matched Rstack docs only for user-facing `rs` command behavior, `rstack.config.*` semantics, or public `rstack` APIs. Do not use for purely internal implementation, tests, performance, or repository maintenance. +--- + +# Rstack CLI docs + +Rstack CLI is the `rstack` package, exposed through the `rs` binaries. It provides one CLI, one +config file, and a consistent workflow for the Rstack JavaScript toolchain. + +It covers web app, library, docs, test, lint, formatting, Git hook, and staged-file workflows. + +## Read installed docs when this skill applies + +When this skill applies, find and read the relevant Markdown documentation shipped with the installed `rstack` package. + +Model knowledge can be outdated; the installed documentation is the source of truth for the project's Rstack version. + +1. Start with `node_modules/rstack/docs/llms.txt`, then read only the linked pages relevant to the task before proposing or making changes. + +2. For exact CLI flags and behavior, also run `rs -h` or `rs -h` when supported. + +If the bundled docs are not available at that path, locate the installed `rstack` package. + +If they are still unavailable, verify that `rstack` is installed, and use CLI help plus the online [Rstack documentation](https://rstack.rs/) as a fallback. diff --git a/.claude/skills/rstack-cli-docs b/.claude/skills/rstack-cli-docs new file mode 120000 index 0000000..4abdb1d --- /dev/null +++ b/.claude/skills/rstack-cli-docs @@ -0,0 +1 @@ +../../.agents/skills/rstack-cli-docs \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d0695df..7917d03 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,8 +33,8 @@ jobs: with: run_install: true - - name: Run lint - run: pnpm lint + - name: Run checks + run: pnpm check - name: Build Packages run: pnpm build diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 544138b..0000000 --- a/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "singleQuote": true -} diff --git a/.rstack/hooks/pre-commit b/.rstack/hooks/pre-commit new file mode 100644 index 0000000..8890b96 --- /dev/null +++ b/.rstack/hooks/pre-commit @@ -0,0 +1 @@ +rs staged diff --git a/.vscode/extensions.json b/.vscode/extensions.json index bd7f071..72d54ca 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,3 @@ { - "recommendations": ["rstack.rslint"] + "recommendations": ["rstack.rstack"] } diff --git a/AGENTS.md b/AGENTS.md index 1dc9806..10a242a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,31 +1,37 @@ # Repository Guidelines ## Project Structure & Module Organization + - `src/` hosts all TypeScript sources (`index.ts`, `prebundle.ts`, helpers, shared `types.ts`); export public symbols through `src/index.ts`. -- `dist/` holds `rslib` output and must stay generated-only, while `compiled/` stores bundled dependencies produced by the CLI; never edit either manually. -- `bin.js` is the CAC-based CLI entry; root configs (`prebundle.config.ts`, `rslib.config.ts`, `tsconfig.json`) govern build targets and should evolve together. -- `tests/` contains `@rstest/core` suites plus fixture configs under `tests/fixtures/` used to exercise the CLI. +- `dist/` holds `rs lib` output and must stay generated-only, while `compiled/` stores bundled dependencies produced by the CLI; never edit either manually. +- `bin.js` is the CAC-based CLI entry; root configs (`prebundle.config.ts`, `rstack.config.ts`, `tsconfig.json`) govern build targets and should evolve together. +- `tests/` contains `rstack/test` suites plus fixture configs under `tests/fixtures/` used to exercise the CLI. ## Build, Test, and Development Commands + - `pnpm install` respects `pnpm-lock.yaml`; mixing package managers is forbidden to avoid dependency drift. -- `pnpm dev` runs `rslib -w` for tight feedback while hacking on `src/`. -- `pnpm build` generates production artifacts and doubles as a pre-publish smoke test; run it before every PR or release. -- `pnpm test` triggers `pnpm build && rstest`, which runs the CLI integration suite. +- `pnpm dev` runs `rs lib -w` for tight feedback while hacking on `src/`. +- `pnpm build` runs `rs lib` to generate production artifacts and doubles as a pre-publish smoke test; run it before every PR or release. +- `pnpm check` runs Rstack lint and formatting checks; `pnpm format` writes formatting changes. +- `pnpm test` runs the Rstack CLI test command and executes the CLI integration suite. - `pnpm prebundle [pkg1 pkg2 ...] --config path/to/config` executes the CLI for all configured dependencies or a filtered subset; use `--config` to point at custom fixtures. - `pnpm bump` wraps `npx bumpp` for releases; only call after `dist/` and configs are committed. ## Coding Style & Naming Conventions + - The repo is pure ESM (`type: module`), so keep relative imports with explicit `.js` extensions that mirror emitted files. -- Apply `Prettier` defaults (2-space indent, single quotes, trailing commas) before committing; configure your editor to format on save. +- Apply the Rstack formatter defaults (2-space indent, single quotes, trailing commas) with `pnpm format` before committing; configure your editor to format on save. - Prefer `camelCase` for functions, `PascalCase` for types/interfaces, and SCREAMING_SNAKE_CASE for constants stored in `constant.ts`. - Keep modules focused; common utilities belong in `helper.ts`, and shared configuration goes through `src/types.ts` for better type inference. ## Testing Guidelines -- Automated coverage uses `@rstest/core` in `tests/prebundle.test.ts` to snapshot bundled output and execute the emitted modules; add new cases there or create additional suites under `tests/`. + +- Automated coverage uses `rstack/test` in `tests/prebundle.test.ts` to verify bundled output and execute the emitted modules; add new cases there or create additional suites under `tests/`. - Prefer end-to-end checks that run `bin.js --config ` so the CLI path stays covered across platforms. - When adding manual validation steps (e.g., testing new dependencies), document the exact `pnpm prebundle ...` invocation and observed artifacts in the PR description. ## Commit & Pull Request Guidelines + - Follow Conventional Commits mirroring existing history (`feat:`, `fix(deps):`, `chore:`); add scopes like `feat(cli):` when touching a specific module. - Each PR should describe the motivation, list the commands you ran (`pnpm build`, `pnpm prebundle commander`, etc.), and reference related issues. - Separate mechanical refactors from behavior changes to keep diffs reviewable, and ensure CI or manual checks are linked before requesting review. diff --git a/package.json b/package.json index 30db2c1..2128666 100644 --- a/package.json +++ b/package.json @@ -16,13 +16,15 @@ "compiled" ], "scripts": { - "build": "rslib", - "dev": "rslib -w", - "lint": "rslint", - "lint:write": "rslint --fix", - "prebundle": "node ./bin.js", + "build": "rs lib", "bump": "npx bumpp", - "test": "rstest" + "check": "rs check", + "dev": "rs lib -w", + "format": "rs fmt", + "lint": "rs lint", + "prebundle": "node ./bin.js", + "prepare": "rs hooks", + "test": "rs test" }, "dependencies": { "@vercel/ncc": "0.45.0", @@ -34,16 +36,14 @@ }, "devDependencies": { "@astrojs/sitemap": "^3.7.3", - "@rslib/core": "0.23.2", - "@rslint/core": "^0.9.0", "@rstackjs/test-utils": "^0.2.0", - "@rstest/core": "^0.11.11", "@types/fs-extra": "^11.0.4", "@types/node": "24.13.3", "chalk": "^6.0.0", "fast-glob": "^3.3.3", "fs-extra": "^11.4.0", "rslog": "^2.3.0", + "rstack": "^0.7.1", "typescript": "^6.0.3" }, "packageManager": "pnpm@11.24.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7f2df38..4248ff7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,18 +30,9 @@ importers: '@astrojs/sitemap': specifier: ^3.7.3 version: 3.7.3 - '@rslib/core': - specifier: 0.23.2 - version: 0.23.2(typescript@6.0.3) - '@rslint/core': - specifier: ^0.9.0 - version: 0.9.0 '@rstackjs/test-utils': specifier: ^0.2.0 version: 0.2.0 - '@rstest/core': - specifier: ^0.11.11 - version: 0.11.11 '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -60,72 +51,75 @@ importers: rslog: specifier: ^2.3.0 version: 2.3.0 + rstack: + specifier: ^0.7.1 + version: 0.7.1(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 packages: - '@ast-grep/napi-darwin-arm64@0.37.0': - resolution: {integrity: sha512-QAiIiaAbLvMEg/yBbyKn+p1gX2/FuaC0SMf7D7capm/oG4xGMzdeaQIcSosF4TCxxV+hIH4Bz9e4/u7w6Bnk3Q==} + '@ast-grep/napi-darwin-arm64@0.45.1': + resolution: {integrity: sha512-CthYcA0H3z5A2EHKH4rhSuFzpYUtxqUMnohmejxtMS6wiAgriKhOCopxN8XKclspYMtQyX2GC/PbvcU3dIbQHw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@ast-grep/napi-darwin-x64@0.37.0': - resolution: {integrity: sha512-zvcvdgekd4ySV3zUbUp8HF5nk5zqwiMXTuVzTUdl/w08O7JjM6XPOIVT+d2o/MqwM9rsXdzdergY5oY2RdhSPA==} + '@ast-grep/napi-darwin-x64@0.45.1': + resolution: {integrity: sha512-PhlXMDEEH5fMjXjYcrbeNgGqrojj4zN8C7eMQC6M4pVkuW74uPhrblD4KUbNunp5I2LkWCdKOs36jhBaZe1iPw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@ast-grep/napi-linux-arm64-gnu@0.37.0': - resolution: {integrity: sha512-L7Sj0lXy8X+BqSMgr1LB8cCoWk0rericdeu+dC8/c8zpsav5Oo2IQKY1PmiZ7H8IHoFBbURLf8iklY9wsD+cyA==} + '@ast-grep/napi-linux-arm64-gnu@0.45.1': + resolution: {integrity: sha512-XScjs95/SrsV6kLl9MnF2qbqwKU79bcBA3JHi6xUu+hf0uZ0lc6MsZ595cEy5yw9PYRhgqwrT3wta9p4qU4jpg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@ast-grep/napi-linux-arm64-musl@0.37.0': - resolution: {integrity: sha512-LF9sAvYy6es/OdyJDO3RwkX3I82Vkfsng1sqUBcoWC1jVb1wX5YVzHtpQox9JrEhGl+bNp7FYxB4Qba9OdA5GA==} + '@ast-grep/napi-linux-arm64-musl@0.45.1': + resolution: {integrity: sha512-qjH5CN5KIUdJW2dHfp8W57QsP6H0mA6E/rboKEzAxw6Ant1q2ZKqE3bLHUZMDoZXOBGdCODSZm0bTDcctiP49g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@ast-grep/napi-linux-x64-gnu@0.37.0': - resolution: {integrity: sha512-TViz5/klqre6aSmJzswEIjApnGjJzstG/SE8VDWsrftMBMYt2PTu3MeluZVwzSqDao8doT/P+6U11dU05UOgxw==} + '@ast-grep/napi-linux-x64-gnu@0.45.1': + resolution: {integrity: sha512-nPP0y5EnehCgmYqvVDKSvH4vHbEFdAi8L+Kq2Sz94vK32yv4eOWf9vWhgoPscWpw76GWuwhpDvME8SZARnS3DQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@ast-grep/napi-linux-x64-musl@0.37.0': - resolution: {integrity: sha512-/BcCH33S9E3ovOAEoxYngUNXgb+JLg991sdyiNP2bSoYd30a9RHrG7CYwW6fMgua3ijQ474eV6cq9yZO1bCpXg==} + '@ast-grep/napi-linux-x64-musl@0.45.1': + resolution: {integrity: sha512-sg50LKH7TskWd/boWVFp9gwKc3Jd8sg0f8P6T2VQemX/EOj+OFaMJ2+y7Ok17WI/dODkrZgAPUwq7RAvMzLtqg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@ast-grep/napi-win32-arm64-msvc@0.37.0': - resolution: {integrity: sha512-TjQA4cFoIEW2bgjLkaL9yqT4XWuuLa5MCNd0VCDhGRDMNQ9+rhwi9eLOWRaap3xzT7g+nlbcEHL3AkVCD2+b3A==} + '@ast-grep/napi-win32-arm64-msvc@0.45.1': + resolution: {integrity: sha512-wnTmD34OD9bUpdBVTb58P0y+YPb/2C2g07zj96LSk5R4pdcEMrCFsrWZlaNwtEV4q7L9BfLgrxq3MBGI8c6doA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@ast-grep/napi-win32-ia32-msvc@0.37.0': - resolution: {integrity: sha512-uNmVka8fJCdYsyOlF9aZqQMLTatEYBynjChVTzUfFMDfmZ0bihs/YTqJVbkSm8TZM7CUX82apvn50z/dX5iWRA==} + '@ast-grep/napi-win32-ia32-msvc@0.45.1': + resolution: {integrity: sha512-gRyJwRPY1mWRtnJ6AMncV2pNU+B2indjLCb9z/+aZrUN5u/gOxYryEzvRatyC9rVUMeQGJD+k0htpsqIwgXVbA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@ast-grep/napi-win32-x64-msvc@0.37.0': - resolution: {integrity: sha512-vCiFOT3hSCQuHHfZ933GAwnPzmL0G04JxQEsBRfqONywyT8bSdDc/ECpAfr3S9VcS4JZ9/F6tkePKW/Om2Dq2g==} + '@ast-grep/napi-win32-x64-msvc@0.45.1': + resolution: {integrity: sha512-mzfMmCO7tSNks+NGkGkSnDBKxBjHoOLAMJt2IbAkMYATxHC0RqfBoN7Qtd02VGhHWEfwWLPv/wU6MrvweZ3jdQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@ast-grep/napi@0.37.0': - resolution: {integrity: sha512-Hb4o6h1Pf6yRUAX07DR4JVY7dmQw+RVQMW5/m55GoiAT/VRoKCWBtIUPPOnqDVhbx1Cjfil9b6EDrgJsUAujEQ==} + '@ast-grep/napi@0.45.1': + resolution: {integrity: sha512-4cmGQEHoP9GLHEhGvd1vgSzO3Y6KF7FczDk4+q/VfXV9/9sNxNVgNHC8t3BglhIADDcoHrCMc9aw4lHG+M240A==} engines: {node: '>= 10'} '@astrojs/sitemap@3.7.3': @@ -139,21 +133,12 @@ packages: resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==} engines: {node: ^22.18.0 || >=24.11.0} - '@emnapi/core@1.11.1': - resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} - '@emnapi/core@1.11.3': resolution: {integrity: sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==} - '@emnapi/runtime@1.11.1': - resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} - '@emnapi/runtime@1.11.3': resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} - '@emnapi/wasi-threads@1.2.2': - resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} - '@emnapi/wasi-threads@1.2.3': resolution: {integrity: sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==} @@ -344,16 +329,6 @@ packages: cpu: [x64] os: [win32] - '@rsbuild/core@2.1.5': - resolution: {integrity: sha512-7TW4U1SH7VxQZzSTIOzvwj5lo9uNTmGpsmTXFr4axQAE4giLDKP3kVUA1ZW4P3/Mz4QQJJyvZP29mVcb8kZCfg==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - core-js: '>= 3.0.0' - peerDependenciesMeta: - core-js: - optional: true - '@rsbuild/core@2.2.1': resolution: {integrity: sha512-JcGtG4bo7PBihj6fBL6gaxaJihqLf7nGWW/t4zEmXpMJkV6XNdr1jAo9B0xI4mLAOmtFeva8cUbn9SE2ZEmAIw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -364,13 +339,13 @@ packages: core-js: optional: true - '@rslib/core@0.23.2': - resolution: {integrity: sha512-KxSp+/y0BJ1O4oKwxX4ydBY7/ZVeJCUpWAmQniCIct8mTxIQFPGO/ibKbKq2IxZYqRuRpM8g+Dtyq0VbEQf9HQ==} + '@rslib/core@1.0.0-rc.2': + resolution: {integrity: sha512-6Bex+f8THioCRtfVg8cswHWR4T1xwY+VxRXoOXIgGBROTMlCuoS2/TzcLwYHmU1q1FXfXM8zAs0XuEnUAoDXzQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@microsoft/api-extractor': ^7 - typescript: ^5 || ^6 || ^7.0.1-0 + typescript: ^5 || ^6 || ^7 peerDependenciesMeta: '@microsoft/api-extractor': optional: true @@ -430,44 +405,22 @@ packages: cpu: [x64] os: [win32] - '@rspack/binding-darwin-arm64@2.1.3': - resolution: {integrity: sha512-oOGI0RSL89Ehu9T22rugmfUY9OC2eBqLMeWRYsu7bhlUrjoXeVfGBBSEXCse666BQ1sAiM8hD/k7nqVria/okQ==} - cpu: [arm64] - os: [darwin] - '@rspack/binding-darwin-arm64@2.2.1': resolution: {integrity: sha512-Y/Naw/7V76QiUYdYRuBzBZtzRjt/3fjDUuF8GK0+/BO7BP1RrpY4tk1ln+iiqegRUD8u9uGn08fi8No1rwfyUg==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@2.1.3': - resolution: {integrity: sha512-sVqWXNiFTMXAyN362y6IA+eJc8LXZKfHdhEJ/zDuMmRp+u2IvhgaF8tk3vX/OmeB9jydVjySijuiqk8No/FoCA==} - cpu: [x64] - os: [darwin] - '@rspack/binding-darwin-x64@2.2.1': resolution: {integrity: sha512-rTIG/xZIW7RbEEuMR9hnNn5dv3fDBpX0N4FAQUwfhUYy3tN2+3vibTTq/Nj1Sd9Vn4yWydbWIEwBX6m/aGejig==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@2.1.3': - resolution: {integrity: sha512-aCy9Zli/2Qf+Ee5otXfFQ6mhv5fEyn0wIoBVmouqtJoqOO21et6UTtJ+LHLsMDolwGLyHERAljeSFSmYX3/O5A==} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@rspack/binding-linux-arm64-gnu@2.2.1': resolution: {integrity: sha512-53rAMU6Hqiat21IMU1hTt4Si2F33h+ZbXOt+Y18W39AFjcwmleIBId2u7beqJeGXLJuBgIAm31jcbJj/PN7mWQ==} cpu: [arm64] os: [linux] libc: [glibc] - '@rspack/binding-linux-arm64-musl@2.1.3': - resolution: {integrity: sha512-flIE7eluz0d21Fn28EVm3vPwoJooOSqtmjLFVSuOMcoCbwV9clfor195oIrAppp/W7dL/3XquFuVfrsa01Jy8Q==} - cpu: [arm64] - os: [linux] - libc: [musl] - '@rspack/binding-linux-arm64-musl@2.2.1': resolution: {integrity: sha512-o7zFiWkt4MqSfSdTbxUdF27fcrWKpRizcuVB8H3yd2G6xW9V2OfYbhVGQnOlbKi+GK74RkCmoJtANB+QboIqKQ==} cpu: [arm64] @@ -480,24 +433,12 @@ packages: os: [linux] libc: [glibc] - '@rspack/binding-linux-riscv64-gnu@2.1.3': - resolution: {integrity: sha512-yojg8elye1nhsNeGncw0NrZ4pMGF7NVebR80CLg72TXyzfYwFJlFTdU5yUYb1Gy+JXIvrSCwzQt2QkyiEvmkfg==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - '@rspack/binding-linux-riscv64-gnu@2.2.1': resolution: {integrity: sha512-WQ6P94Wz2tgwOsgifTWP2/bV63iZH5+rkxngQwF22FC8KmIXXy/Yug7lyMH1ld8Hzg4p1qXjBBr4i1cCyJTR+w==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rspack/binding-linux-riscv64-musl@2.1.3': - resolution: {integrity: sha512-6PvbXb3FOK4X3S5QGvoSW/sqExmsvAoPnQ/YSFrXvTphkXFezA7wnobmGBHT8JQP31hcFRzJHIZSIOKktzSzzg==} - cpu: [riscv64] - os: [linux] - libc: [musl] - '@rspack/binding-linux-riscv64-musl@2.2.1': resolution: {integrity: sha512-GEFUFHQkjKU7OYyHXnrIo8wWcUHM7jeKov5z6Lxd3i+3hKo11yBOgb7b+uD94Rx2tPuWF4jyFdWmcNu46Njb/A==} cpu: [riscv64] @@ -510,86 +451,40 @@ packages: os: [linux] libc: [glibc] - '@rspack/binding-linux-x64-gnu@2.1.3': - resolution: {integrity: sha512-lMXjoGKf0SnviH596fmTszgtnXLHmWOoE90G8grG9MvKVa3pelRmfps5ewZL9s8ENf3NXRfOxIhIf/M9as6MqA==} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rspack/binding-linux-x64-gnu@2.2.1': resolution: {integrity: sha512-QX+gRxg2CS9ri2fUG5eNurdsrOCWoJ56SsD2O7kcVGiRm+S2+muNb/QhkdkAdt/u/m++7Ve5TMIpHTnaKYCpCw==} cpu: [x64] os: [linux] libc: [glibc] - '@rspack/binding-linux-x64-musl@2.1.3': - resolution: {integrity: sha512-0esT35v7pW2ZsJTMc/zDUHwpNXlPqyUCyuiLJvrAAUcdENrgOVe4DmFrgVJ2hwqI4GjeN1VBnGRJ8c+edAHH5w==} - cpu: [x64] - os: [linux] - libc: [musl] - '@rspack/binding-linux-x64-musl@2.2.1': resolution: {integrity: sha512-mBZQl1NdGbEB3y5M9d0tkuF7RL1GLz3Hb3gqFa3QRZBymP9PCV83Jiji8s2PJimNUJIVcdZRIw8+VGYs/35c2A==} cpu: [x64] os: [linux] libc: [musl] - '@rspack/binding-wasm32-wasi@2.1.3': - resolution: {integrity: sha512-UsrDjD59UEP0mhfN/Z+uTc3vLgiUvIr+mn92WC1sbQi9gtZohTYvaQYFhWuMkBqsACGcmZp704JAbbSrVrVYCA==} - cpu: [wasm32] - '@rspack/binding-wasm32-wasi@2.2.1': resolution: {integrity: sha512-/d2ImKDS+lT+FJ07MxKBeUkTat84tr2Nm2+nIRt8HmZK7/N8odkQml9vb4MHr8E7oYOp4B+jm6W5frdRzKrkJQ==} cpu: [wasm32] - '@rspack/binding-win32-arm64-msvc@2.1.3': - resolution: {integrity: sha512-42RS/SwKBTkNvXIPZXqTn0yEFN8zwGRfRe/ly0GDvPp/KxpLMFWxJmLxgtoLompU+0UCGvV4KpcBENt3oWs6BA==} - cpu: [arm64] - os: [win32] - '@rspack/binding-win32-arm64-msvc@2.2.1': resolution: {integrity: sha512-TfmaKPF3KC7uoZb6A+8ZUbLS8g8P5EdeXFGLCaJ+UgdkJ20TsapcfJXZXWNnKzFEkV8dUO/t5oNxNLYy2URusw==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@2.1.3': - resolution: {integrity: sha512-thk43H1JHHbetNF3txcsGXeOwZi2m6Luf/uVUqNORXjxr5VV8woHAgaAx4QXVZRg70z1VDjd8mBWnHBnKI0FGA==} - cpu: [ia32] - os: [win32] - '@rspack/binding-win32-ia32-msvc@2.2.1': resolution: {integrity: sha512-rdBXayngvpQFMSUIC4b71FDZrSBJszSHNEkln/Nis3a17DMAE7IkgJcqe7SqLWbk2OPF/N920AOWmBEDQQCaMg==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@2.1.3': - resolution: {integrity: sha512-ObaUcj+BHo/aBL1weyM3orApaHyAR5Phr3YNEpQEifxjZbNKM1iO5X5prN4OqEv3H+7o5e/Wh9Fy3N7Vvd+psA==} - cpu: [x64] - os: [win32] - '@rspack/binding-win32-x64-msvc@2.2.1': resolution: {integrity: sha512-l3K4s7nrQJc+3LacPFjZGjX8Jk1sf8Q4TK6IXAsdSucOjTqYSpD8PMl2NUXCBDXOl8T2V4v323z1LfxwW8BPmA==} cpu: [x64] os: [win32] - '@rspack/binding@2.1.3': - resolution: {integrity: sha512-4UGXJqUHmm36tWG1GgFZz3p8sQ5JuSgWI+gq1xPPoihS41uYJL3cXuJnirTeWsmVrusmYZTQhgU3tl3VYGcJYg==} - '@rspack/binding@2.2.1': resolution: {integrity: sha512-56TqztuEMd+aHGv1jDXnkJQGSLTb4NoO146flFxJqPG8931UdXPO2pNR9M0Q2Pz+GvmO0fLHGPLYBHoRVrRlHw==} - '@rspack/core@2.1.3': - resolution: {integrity: sha512-1iGnxLrP+iyY0ZSjLZeQTaxrISpQz4yLyqJPmaF/l4uw27/dBcrloszAeLOJQ9jiv7EJtU0T5zB+LOFPpivIxA==} - engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - '@module-federation/runtime-tools': ^0.24.1 || ^2.0.0 - '@swc/helpers': ^0.5.23 - peerDependenciesMeta: - '@module-federation/runtime-tools': - optional: true - '@swc/helpers': - optional: true - '@rspack/core@2.2.1': resolution: {integrity: sha512-EHFX2oWCY1HkHJkG/Ev8HXCcl4gQzgETyairdIlBkKaypuW8i7kowBxUFzpHHg/ObF70vB3focToel9Wwg4MRA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -602,6 +497,92 @@ packages: '@swc/helpers': optional: true + '@rstackjs/cli-darwin-arm64@0.7.1': + resolution: {integrity: sha512-sRTBY2qZXatWYRPre26FLIKEa0RQjBeQKZrcVxA2At7VE39D4i3Wyv/ukhKZaVI94TJniSdYwHXAcJjsktbvww==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [arm64] + os: [darwin] + + '@rstackjs/cli-darwin-x64@0.7.1': + resolution: {integrity: sha512-L9S60Rjbf/rsLkROpOBwsPpr4ufAFiakATf4d7+WWc+hCTqy3oWDjYT6yJKNNE7xtDsbYk6iYLojdJVHSEN9uQ==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [x64] + os: [darwin] + + '@rstackjs/cli-linux-arm64-gnu@0.7.1': + resolution: {integrity: sha512-RPS8z9ydbfajyh+xBRZzu0XIlCm519EY2O7mAZhYdFX24+2EAAlVPp3xqVNiBg/wdDmOHWflgQjujxWdZRartw==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rstackjs/cli-linux-arm64-musl@0.7.1': + resolution: {integrity: sha512-/yCaFh4BiN5lr0io+7dDMUnAj3T7uKhR6Vv2DcPWwf9vodLS/swmcVYsxTVKE6wPsm6ityUQIxRRTlOb8aQeZQ==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rstackjs/cli-linux-ppc64-gnu@0.7.1': + resolution: {integrity: sha512-lyBvTntv8tpr9uebh/rj+uquU2+M9eZlQQrDYrSSI63lkWwrGG/QmFziB8h60kr4DirMouH+gQVqhJ43wgBcEg==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rstackjs/cli-linux-riscv64-gnu@0.7.1': + resolution: {integrity: sha512-uzrI+m5FiQOhhKoPWhFWR3aXQkbB6Nt8MpJKB1ZXU3G40icNQ2fxNTNOJoQyQZBOqWxMs1QYY9MH4LQjkPVtXw==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rstackjs/cli-linux-riscv64-musl@0.7.1': + resolution: {integrity: sha512-PMpM8U8qgTJAaUssWsyUVXH7PAlJw/rfW6CyUkLESuzqvuXQrwptw9wBFFgs9q19f8tmIHii7C6Ep8K0VklbOw==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rstackjs/cli-linux-s390x-gnu@0.7.1': + resolution: {integrity: sha512-AzyL+xCk9OPYtWiZBhHMxCzByt8qBSrF6firgnKlfD+5UtE9XyScDJh12zR7OiO84TyVQicz2mWewl8dAmZqNA==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rstackjs/cli-linux-x64-gnu@0.7.1': + resolution: {integrity: sha512-xc/9nSql1uwpwO2vHJCB+X0etIevgYm1Wz0cxRBW7X9BbbU6V9Lu/BuF9Jsx8Z/6Qd63xim6mZig8QNR1tFGwg==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rstackjs/cli-linux-x64-musl@0.7.1': + resolution: {integrity: sha512-Rp1GHTfgJfB8Pcmymf4AgKQ1Yg9NXHCPd6tPBDmr9LAsSwA5k2uY5Ca56rSA6YI0ZZrIdBGSGV+o79a2BLND9Q==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rstackjs/cli-win32-arm64-msvc@0.7.1': + resolution: {integrity: sha512-Xk2MwC1Ql+Fb8ThvSupRk9C+rZqtgTHSxRsxyjnoS0UZbYuzwUp8TtTiNBb+NZz8YVv2Ouabk6CoSxwqjf9A/A==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [arm64] + os: [win32] + + '@rstackjs/cli-win32-ia32-msvc@0.7.1': + resolution: {integrity: sha512-Ka0lPt6H5ZIoqaXPEFwuXPmgTwGNVKAeIFL//oyp/snME7fxtTA3DuPqe51biFc452pJpYM3YtZXb2Am7kDTjw==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [ia32] + os: [win32] + + '@rstackjs/cli-win32-x64-msvc@0.7.1': + resolution: {integrity: sha512-ot5aDRTSuOSef2/xb9bummjHqJCXicfFpazrX3bxY3MLhLMePKLOzCvIZF0ZXFsAMIWmz1dy4QnN3b7NBMngdg==} + engines: {node: ^22.18.0 || >=24.3.0} + cpu: [x64] + os: [win32] + '@rstackjs/test-utils@0.2.0': resolution: {integrity: sha512-P+LOo1WE3xYeGkHmEthyq2cIpN69k4LhiB/4UBSceD+nW9hDlhWv8MC0LTLWokZXccWl4ntcfOBjQFllkcBlPA==} @@ -649,6 +630,75 @@ packages: resolution: {integrity: sha512-8zPi1yO2mHpoKTD+e+Bf0ZT3e+sWHSOyGapm9s7b5R0gxJi3CiFTqmeQiMEyu6ejrz2s09M8JkEoUaTWjBJPQQ==} hasBin: true + '@yuku-parser/binding-android-arm64@0.9.1': + resolution: {integrity: sha512-AohsA9tsg7xQkYnPNlP/upeXbVGXyVwSFNmDNictfNqiMaqks82H7wsz7zF/5yFYTren/mLGWVrzJ9vFw7ovrg==} + cpu: [arm64] + os: [android] + + '@yuku-parser/binding-darwin-arm64@0.9.1': + resolution: {integrity: sha512-EMJbDXAR6CwOmq54SLKVr6fh3a9JaBQu8UNJKpUihClR2GpW2f4rF8qAgvOci07Q5AUJp00/FWZp8uZkNXj9eg==} + cpu: [arm64] + os: [darwin] + + '@yuku-parser/binding-darwin-x64@0.9.1': + resolution: {integrity: sha512-HFMB34UzToIqELUU71D5arkJDSOUiPuVGCt3a/p0n6YMUEHmlNGZntVkG0Gf70Qss7EECU75hx7fKWEtAmFLSQ==} + cpu: [x64] + os: [darwin] + + '@yuku-parser/binding-freebsd-x64@0.9.1': + resolution: {integrity: sha512-xw0O3G93kosvM+Byclp9W6ssHz6ngfduJDPuNki7rAG4OQ0nz1rZp/Zj4mAk8I8fR31vzwLuCH1qT1j1kv+09Q==} + cpu: [x64] + os: [freebsd] + + '@yuku-parser/binding-linux-arm-gnu@0.9.1': + resolution: {integrity: sha512-ZZ3a/sKzEpsQGa9cFL3XjYc0ylVohiXK3cW/hHdg0cMU9es8Vtck94pQ/K8xwlX1kncjUn40XutFuAXx8Ow8vA==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@yuku-parser/binding-linux-arm-musl@0.9.1': + resolution: {integrity: sha512-dtKTQ5CybtIAzll0EoN/jyUPvhgbcDCcoLSWcm9YsguTiW8LkHySe78Mnir3DS//QqwrO59O8C2NADtv21wnxg==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@yuku-parser/binding-linux-arm64-gnu@0.9.1': + resolution: {integrity: sha512-csRtiN90U9Gfy/OnYvC/XR32eSd3E/+1GUIM2UmsEnTwnZ2mAd4VxW2CgbuCQCMNSEaeQzeueh5cu2dKEId1Pg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@yuku-parser/binding-linux-arm64-musl@0.9.1': + resolution: {integrity: sha512-HGmIyK1B8ve7EOPM/VCAq03LPWpWFsKW29lxQWQxlXryqGMs16m73EurMu+d+RgWmEQQLAj5gSoj1KVD+P4epw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@yuku-parser/binding-linux-x64-gnu@0.9.1': + resolution: {integrity: sha512-pp/acGgrUokF4KSh+EECfz4Nqwx3J23g24IM+Rh91pkCUj0/QfW7C6KwB2/ZhyuN6qWEZ8s1j+DAddcAXWtBBQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@yuku-parser/binding-linux-x64-musl@0.9.1': + resolution: {integrity: sha512-XdBOP/a5Jx5C36w7XBrGsZKRy45oSrD6ZMyCR6xBHEnL3TihKadH9o+UExPGOh0dLnQ8vZ/6sWwU+CTsGzay0g==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@yuku-parser/binding-win32-arm64@0.9.1': + resolution: {integrity: sha512-sVA1I57uWAQsDD2ND6loFZXnMynxtCEcsR9L4O31lVd5/xCoGSOo5v+rbqJU2cDPSyAZTFBAFQLzipcYfwUO4w==} + cpu: [arm64] + os: [win32] + + '@yuku-parser/binding-win32-x64@0.9.1': + resolution: {integrity: sha512-hNzy7ZE4iFW4gkhYiHBB05BJPS6NE+oOw9oddyvBiBi9s+xP1keli3ZHxII8l7Qedh/3pNc8X43wo6UPoNarrw==} + cpu: [x64] + os: [win32] + + '@yuku-toolchain/types@0.9.3': + resolution: {integrity: sha512-rFE+5P4g2wxko5C85MugJOlVjBHEQq87dIkhLkniLXLp63PEtgaFjD954i5HXlfnyzLxPcZHsSOVDVgmo1HToA==} + acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -774,19 +824,16 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rsbuild-plugin-dts@0.23.2: - resolution: {integrity: sha512-Ve8WOSPyTBjxH40O/6fChJtflL7yqcUtt5zbF0eHDM4hIt35jqLocRlSdCxFJdQm0blTjl6+hkmPa/vNI06ArA==} + rsbuild-plugin-dts@1.0.0-rc.2: + resolution: {integrity: sha512-Mqalmu3j7UcDLUl3O5Y502V5Id6cbKyNn/nUxQIxar7gK2KjdPyw58WRfMQ7/4r4oHmeBeIgeSCb50M648ysoA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: '@microsoft/api-extractor': ^7 - '@rsbuild/core': ^1.0.0 || ^2.0.0-0 - '@typescript/native-preview': ^7.0.0-0 - typescript: ^5 || ^6 || ^7.0.1-0 + '@rsbuild/core': ^2.0.0 + typescript: ^5 || ^6 || ^7 peerDependenciesMeta: '@microsoft/api-extractor': optional: true - '@typescript/native-preview': - optional: true typescript: optional: true @@ -794,6 +841,16 @@ packages: resolution: {integrity: sha512-g2wW/ermwzGTLlzGdJBDRc4YKz2/yPBjf57w9g5CvhtpZ91Xq95OaWku0oNHYi+XsuV6v8QrCo2oJJR/pCUR8g==} engines: {node: ^20.19.0 || >=22.12.0} + rstack@0.7.1: + resolution: {integrity: sha512-/bInr/2dBshFVLXADduvjunK0HHaVUdhxQmq3nnrgJMhudsnFBLE1braGcSYi9NiohauL6ZkN+ChSC3R1Bs7Dg==} + engines: {node: ^22.18.0 || >=24.3.0} + hasBin: true + peerDependencies: + '@rspress/core': ^2.0.17 + peerDependenciesMeta: + '@rspress/core': + optional: true + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -820,6 +877,10 @@ packages: engines: {node: '>=10'} hasBin: true + tinypool@2.1.2: + resolution: {integrity: sha512-9YodfrxS9g9IbFr/KOjE5bAeJ0p61n3bW6mqvy0jtoeKd1kTW1Cxm0oulm6KX2lyM9Gl6WIe8nEbY7LWv5ZJww==} + engines: {node: ^20.0.0 || >=22.0.0} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -839,49 +900,55 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + yuku-ast@0.9.3: + resolution: {integrity: sha512-Kt0PXlPCXdKF1fWFTl7N3DaxsVk6DHF8VAXHJMkwPtJnWYgbx20pYgGSweuC/86mIM7k1NUITQ4JffgOLUWTCw==} + + yuku-parser@0.9.1: + resolution: {integrity: sha512-N4YmuFq7fPTaxhti0mC73nsmxYe30DKHlAxZdTYr4A88NAT3BckilMkuuusHofrfFSeswAdxfixcYy8MMhkvcQ==} + zod@4.3.6: resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} snapshots: - '@ast-grep/napi-darwin-arm64@0.37.0': + '@ast-grep/napi-darwin-arm64@0.45.1': optional: true - '@ast-grep/napi-darwin-x64@0.37.0': + '@ast-grep/napi-darwin-x64@0.45.1': optional: true - '@ast-grep/napi-linux-arm64-gnu@0.37.0': + '@ast-grep/napi-linux-arm64-gnu@0.45.1': optional: true - '@ast-grep/napi-linux-arm64-musl@0.37.0': + '@ast-grep/napi-linux-arm64-musl@0.45.1': optional: true - '@ast-grep/napi-linux-x64-gnu@0.37.0': + '@ast-grep/napi-linux-x64-gnu@0.45.1': optional: true - '@ast-grep/napi-linux-x64-musl@0.37.0': + '@ast-grep/napi-linux-x64-musl@0.45.1': optional: true - '@ast-grep/napi-win32-arm64-msvc@0.37.0': + '@ast-grep/napi-win32-arm64-msvc@0.45.1': optional: true - '@ast-grep/napi-win32-ia32-msvc@0.37.0': + '@ast-grep/napi-win32-ia32-msvc@0.45.1': optional: true - '@ast-grep/napi-win32-x64-msvc@0.37.0': + '@ast-grep/napi-win32-x64-msvc@0.45.1': optional: true - '@ast-grep/napi@0.37.0': + '@ast-grep/napi@0.45.1': optionalDependencies: - '@ast-grep/napi-darwin-arm64': 0.37.0 - '@ast-grep/napi-darwin-x64': 0.37.0 - '@ast-grep/napi-linux-arm64-gnu': 0.37.0 - '@ast-grep/napi-linux-arm64-musl': 0.37.0 - '@ast-grep/napi-linux-x64-gnu': 0.37.0 - '@ast-grep/napi-linux-x64-musl': 0.37.0 - '@ast-grep/napi-win32-arm64-msvc': 0.37.0 - '@ast-grep/napi-win32-ia32-msvc': 0.37.0 - '@ast-grep/napi-win32-x64-msvc': 0.37.0 + '@ast-grep/napi-darwin-arm64': 0.45.1 + '@ast-grep/napi-darwin-x64': 0.45.1 + '@ast-grep/napi-linux-arm64-gnu': 0.45.1 + '@ast-grep/napi-linux-arm64-musl': 0.45.1 + '@ast-grep/napi-linux-x64-gnu': 0.45.1 + '@ast-grep/napi-linux-x64-musl': 0.45.1 + '@ast-grep/napi-win32-arm64-msvc': 0.45.1 + '@ast-grep/napi-win32-ia32-msvc': 0.45.1 + '@ast-grep/napi-win32-x64-msvc': 0.45.1 '@astrojs/sitemap@3.7.3': dependencies: @@ -898,33 +965,17 @@ snapshots: '@babel/helper-validator-identifier@8.0.4': optional: true - '@emnapi/core@1.11.1': - dependencies: - '@emnapi/wasi-threads': 1.2.2 - tslib: 2.8.0 - optional: true - '@emnapi/core@1.11.3': dependencies: '@emnapi/wasi-threads': 1.2.3 tslib: 2.8.0 optional: true - '@emnapi/runtime@1.11.1': - dependencies: - tslib: 2.8.0 - optional: true - '@emnapi/runtime@1.11.3': dependencies: tslib: 2.8.0 optional: true - '@emnapi/wasi-threads@1.2.2': - dependencies: - tslib: 2.8.0 - optional: true - '@emnapi/wasi-threads@1.2.3': dependencies: tslib: 2.8.0 @@ -960,13 +1011,6 @@ snapshots: '@napi-rs/lzma-linux-x64-gnu@1.5.1': optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': - dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@tybys/wasm-util': 0.10.3 - optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)': dependencies: '@emnapi/core': 1.11.3 @@ -1061,13 +1105,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.63.1': optional: true - '@rsbuild/core@2.1.5': - dependencies: - '@rspack/core': 2.1.3(@swc/helpers@0.5.23) - '@swc/helpers': 0.5.23 - transitivePeerDependencies: - - '@module-federation/runtime-tools' - '@rsbuild/core@2.2.1': dependencies: '@rspack/core': 2.2.1(@swc/helpers@0.5.23) @@ -1075,15 +1112,14 @@ snapshots: transitivePeerDependencies: - '@module-federation/runtime-tools' - '@rslib/core@0.23.2(typescript@6.0.3)': + '@rslib/core@1.0.0-rc.2(typescript@6.0.3)': dependencies: - '@rsbuild/core': 2.1.5 - rsbuild-plugin-dts: 0.23.2(@rsbuild/core@2.1.5)(typescript@6.0.3) + '@rsbuild/core': 2.2.1 + rsbuild-plugin-dts: 1.0.0-rc.2(@rsbuild/core@2.2.1)(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - '@module-federation/runtime-tools' - - '@typescript/native-preview' - core-js '@rslint/core@0.9.0': @@ -1123,67 +1159,36 @@ snapshots: '@rslint/native-win32-x64-msvc@0.9.0': optional: true - '@rspack/binding-darwin-arm64@2.1.3': - optional: true - '@rspack/binding-darwin-arm64@2.2.1': optional: true - '@rspack/binding-darwin-x64@2.1.3': - optional: true - '@rspack/binding-darwin-x64@2.2.1': optional: true - '@rspack/binding-linux-arm64-gnu@2.1.3': - optional: true - '@rspack/binding-linux-arm64-gnu@2.2.1': optional: true - '@rspack/binding-linux-arm64-musl@2.1.3': - optional: true - '@rspack/binding-linux-arm64-musl@2.2.1': optional: true '@rspack/binding-linux-ppc64-gnu@2.2.1': optional: true - '@rspack/binding-linux-riscv64-gnu@2.1.3': - optional: true - '@rspack/binding-linux-riscv64-gnu@2.2.1': optional: true - '@rspack/binding-linux-riscv64-musl@2.1.3': - optional: true - '@rspack/binding-linux-riscv64-musl@2.2.1': optional: true '@rspack/binding-linux-s390x-gnu@2.2.1': optional: true - '@rspack/binding-linux-x64-gnu@2.1.3': - optional: true - '@rspack/binding-linux-x64-gnu@2.2.1': optional: true - '@rspack/binding-linux-x64-musl@2.1.3': - optional: true - '@rspack/binding-linux-x64-musl@2.2.1': optional: true - '@rspack/binding-wasm32-wasi@2.1.3': - dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) - optional: true - '@rspack/binding-wasm32-wasi@2.2.1': dependencies: '@emnapi/core': 1.11.3 @@ -1191,39 +1196,15 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3) optional: true - '@rspack/binding-win32-arm64-msvc@2.1.3': - optional: true - '@rspack/binding-win32-arm64-msvc@2.2.1': optional: true - '@rspack/binding-win32-ia32-msvc@2.1.3': - optional: true - '@rspack/binding-win32-ia32-msvc@2.2.1': optional: true - '@rspack/binding-win32-x64-msvc@2.1.3': - optional: true - '@rspack/binding-win32-x64-msvc@2.2.1': optional: true - '@rspack/binding@2.1.3': - optionalDependencies: - '@rspack/binding-darwin-arm64': 2.1.3 - '@rspack/binding-darwin-x64': 2.1.3 - '@rspack/binding-linux-arm64-gnu': 2.1.3 - '@rspack/binding-linux-arm64-musl': 2.1.3 - '@rspack/binding-linux-riscv64-gnu': 2.1.3 - '@rspack/binding-linux-riscv64-musl': 2.1.3 - '@rspack/binding-linux-x64-gnu': 2.1.3 - '@rspack/binding-linux-x64-musl': 2.1.3 - '@rspack/binding-wasm32-wasi': 2.1.3 - '@rspack/binding-win32-arm64-msvc': 2.1.3 - '@rspack/binding-win32-ia32-msvc': 2.1.3 - '@rspack/binding-win32-x64-msvc': 2.1.3 - '@rspack/binding@2.2.1': optionalDependencies: '@rspack/binding-darwin-arm64': 2.2.1 @@ -1241,18 +1222,51 @@ snapshots: '@rspack/binding-win32-ia32-msvc': 2.2.1 '@rspack/binding-win32-x64-msvc': 2.2.1 - '@rspack/core@2.1.3(@swc/helpers@0.5.23)': - dependencies: - '@rspack/binding': 2.1.3 - optionalDependencies: - '@swc/helpers': 0.5.23 - '@rspack/core@2.2.1(@swc/helpers@0.5.23)': dependencies: '@rspack/binding': 2.2.1 optionalDependencies: '@swc/helpers': 0.5.23 + '@rstackjs/cli-darwin-arm64@0.7.1': + optional: true + + '@rstackjs/cli-darwin-x64@0.7.1': + optional: true + + '@rstackjs/cli-linux-arm64-gnu@0.7.1': + optional: true + + '@rstackjs/cli-linux-arm64-musl@0.7.1': + optional: true + + '@rstackjs/cli-linux-ppc64-gnu@0.7.1': + optional: true + + '@rstackjs/cli-linux-riscv64-gnu@0.7.1': + optional: true + + '@rstackjs/cli-linux-riscv64-musl@0.7.1': + optional: true + + '@rstackjs/cli-linux-s390x-gnu@0.7.1': + optional: true + + '@rstackjs/cli-linux-x64-gnu@0.7.1': + optional: true + + '@rstackjs/cli-linux-x64-musl@0.7.1': + optional: true + + '@rstackjs/cli-win32-arm64-msvc@0.7.1': + optional: true + + '@rstackjs/cli-win32-ia32-msvc@0.7.1': + optional: true + + '@rstackjs/cli-win32-x64-msvc@0.7.1': + optional: true + '@rstackjs/test-utils@0.2.0': {} '@rstest/core@0.11.11': @@ -1300,6 +1314,44 @@ snapshots: '@vercel/ncc@0.45.0': {} + '@yuku-parser/binding-android-arm64@0.9.1': + optional: true + + '@yuku-parser/binding-darwin-arm64@0.9.1': + optional: true + + '@yuku-parser/binding-darwin-x64@0.9.1': + optional: true + + '@yuku-parser/binding-freebsd-x64@0.9.1': + optional: true + + '@yuku-parser/binding-linux-arm-gnu@0.9.1': + optional: true + + '@yuku-parser/binding-linux-arm-musl@0.9.1': + optional: true + + '@yuku-parser/binding-linux-arm64-gnu@0.9.1': + optional: true + + '@yuku-parser/binding-linux-arm64-musl@0.9.1': + optional: true + + '@yuku-parser/binding-linux-x64-gnu@0.9.1': + optional: true + + '@yuku-parser/binding-linux-x64-musl@0.9.1': + optional: true + + '@yuku-parser/binding-win32-arm64@0.9.1': + optional: true + + '@yuku-parser/binding-win32-x64@0.9.1': + optional: true + + '@yuku-toolchain/types@0.9.3': {} + acorn@8.15.0: {} arg@5.0.2: {} @@ -1432,15 +1484,47 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.63.1 fsevents: 2.3.3 - rsbuild-plugin-dts@0.23.2(@rsbuild/core@2.1.5)(typescript@6.0.3): + rsbuild-plugin-dts@1.0.0-rc.2(@rsbuild/core@2.2.1)(typescript@6.0.3): dependencies: - '@ast-grep/napi': 0.37.0 - '@rsbuild/core': 2.1.5 + '@ast-grep/napi': 0.45.1 + '@rsbuild/core': 2.2.1 optionalDependencies: typescript: 6.0.3 rslog@2.3.0: {} + rstack@0.7.1(typescript@6.0.3): + dependencies: + '@rsbuild/core': 2.2.1 + '@rslib/core': 1.0.0-rc.2(typescript@6.0.3) + '@rslint/core': 0.9.0 + '@rstest/core': 0.11.11 + prettier: 3.9.6 + tinypool: 2.1.2 + yuku-parser: 0.9.1 + optionalDependencies: + '@rstackjs/cli-darwin-arm64': 0.7.1 + '@rstackjs/cli-darwin-x64': 0.7.1 + '@rstackjs/cli-linux-arm64-gnu': 0.7.1 + '@rstackjs/cli-linux-arm64-musl': 0.7.1 + '@rstackjs/cli-linux-ppc64-gnu': 0.7.1 + '@rstackjs/cli-linux-riscv64-gnu': 0.7.1 + '@rstackjs/cli-linux-riscv64-musl': 0.7.1 + '@rstackjs/cli-linux-s390x-gnu': 0.7.1 + '@rstackjs/cli-linux-x64-gnu': 0.7.1 + '@rstackjs/cli-linux-x64-musl': 0.7.1 + '@rstackjs/cli-win32-arm64-msvc': 0.7.1 + '@rstackjs/cli-win32-ia32-msvc': 0.7.1 + '@rstackjs/cli-win32-x64-msvc': 0.7.1 + transitivePeerDependencies: + - '@microsoft/api-extractor' + - '@module-federation/runtime-tools' + - core-js + - happy-dom + - jiti + - jsdom + - typescript + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -1470,6 +1554,8 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + tinypool@2.1.2: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -1482,4 +1568,26 @@ snapshots: universalify@2.0.1: {} + yuku-ast@0.9.3: + dependencies: + '@yuku-toolchain/types': 0.9.3 + + yuku-parser@0.9.1: + dependencies: + '@yuku-toolchain/types': 0.9.3 + yuku-ast: 0.9.3 + optionalDependencies: + '@yuku-parser/binding-android-arm64': 0.9.1 + '@yuku-parser/binding-darwin-arm64': 0.9.1 + '@yuku-parser/binding-darwin-x64': 0.9.1 + '@yuku-parser/binding-freebsd-x64': 0.9.1 + '@yuku-parser/binding-linux-arm-gnu': 0.9.1 + '@yuku-parser/binding-linux-arm-musl': 0.9.1 + '@yuku-parser/binding-linux-arm64-gnu': 0.9.1 + '@yuku-parser/binding-linux-arm64-musl': 0.9.1 + '@yuku-parser/binding-linux-x64-gnu': 0.9.1 + '@yuku-parser/binding-linux-x64-musl': 0.9.1 + '@yuku-parser/binding-win32-arm64': 0.9.1 + '@yuku-parser/binding-win32-x64': 0.9.1 + zod@4.3.6: {} diff --git a/rslib.config.ts b/rslib.config.ts deleted file mode 100644 index e81e6f1..0000000 --- a/rslib.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { defineConfig } from '@rslib/core'; - -export default defineConfig({ - lib: [{ syntax: 'es2021', dts: { bundle: false } }], - tools: { - rspack: { - externals: [/[\\/]compiled[\\/]/], - }, - }, -}); diff --git a/rslint.config.ts b/rslint.config.ts deleted file mode 100644 index 0b80ac8..0000000 --- a/rslint.config.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { defineConfig, js, ts } from '@rslint/core'; - -export default defineConfig([ - { - ignores: ['compiled/**'], - }, - js.configs.recommended, - ts.configs.recommended, - { - rules: { - 'no-undef': 'off', - }, - }, -]); diff --git a/rstack.config.ts b/rstack.config.ts new file mode 100644 index 0000000..e3e18a7 --- /dev/null +++ b/rstack.config.ts @@ -0,0 +1,37 @@ +// Configuration guide: https://rstack.rs/config +import { define } from 'rstack'; + +define.lib({ + dts: { + bundle: false, + }, + syntax: 'es2021', + tools: { + rspack: { + externals: [/[\\/]compiled[\\/]/], + }, + }, +}); + +define.fmt({ + ignorePatterns: ['compiled/**'], + singleQuote: true, +}); + +define.staged({ + '*.{js,jsx,ts,tsx,mjs,cjs,mts,cts}': ['rs lint', 'rs fmt'], + '*.{json,md,mdx,css,scss,less,html,yml,yaml}': 'rs fmt', +}); + +define.lint(({ js, ts }) => [ + { + ignores: ['compiled/**'], + }, + js.configs.recommended, + ts.configs.recommended, + { + rules: { + 'no-undef': 'off', + }, + }, +]); diff --git a/skills-lock.json b/skills-lock.json new file mode 100644 index 0000000..8687fc7 --- /dev/null +++ b/skills-lock.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "skills": { + "rstack-cli-docs": { + "source": "rstackjs/rstack-cli", + "sourceType": "github", + "skillPath": ".agents/skills/rstack-cli-docs/SKILL.md", + "computedHash": "8b5451af88d29195dc2f257543013ad66aa14a7791e401ab4cffdb11941cf27a" + } + } +} diff --git a/src/index.ts b/src/index.ts index 897cc53..91eeb21 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,9 +9,7 @@ export interface RunOptions { export async function run(options: RunOptions = {}) { const config = await resolveConfig(options.config); const parsedTasks = parseTasks(config.dependencies, config.prettier); - const filters = options.packages?.length - ? new Set(options.packages) - : null; + const filters = options.packages?.length ? new Set(options.packages) : null; for (const task of parsedTasks) { if (filters && !filters.has(task.depName)) { diff --git a/tests/prebundle.test.ts b/tests/prebundle.test.ts index 6511550..0ff2921 100644 --- a/tests/prebundle.test.ts +++ b/tests/prebundle.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, it } from '@rstest/core'; +import { afterAll, beforeAll, describe, expect, it } from 'rstack/test'; import { prepareDist } from '@rstackjs/test-utils'; import { execFile } from 'node:child_process'; import { readdirSync } from 'node:fs'; From 6fae7efd6f8ea9382b76d319d1af2caa9f8a59d8 Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 1 Sep 2026 19:00:56 +0800 Subject: [PATCH 2/4] chore: remove Claude skill link --- .claude/skills/rstack-cli-docs | 1 - 1 file changed, 1 deletion(-) delete mode 120000 .claude/skills/rstack-cli-docs diff --git a/.claude/skills/rstack-cli-docs b/.claude/skills/rstack-cli-docs deleted file mode 120000 index 4abdb1d..0000000 --- a/.claude/skills/rstack-cli-docs +++ /dev/null @@ -1 +0,0 @@ -../../.agents/skills/rstack-cli-docs \ No newline at end of file From 3c482ee566fb7248dea36abd912e45f047de621f Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 1 Sep 2026 19:04:39 +0800 Subject: [PATCH 3/4] fix --- .vscode/settings.json | 4 ++++ rstack.config.ts | 5 ----- 2 files changed, 4 insertions(+), 5 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8455616 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "search.useIgnoreFiles": true, + "editor.defaultFormatter": "rstack.rstack" +} diff --git a/rstack.config.ts b/rstack.config.ts index e3e18a7..6110be2 100644 --- a/rstack.config.ts +++ b/rstack.config.ts @@ -29,9 +29,4 @@ define.lint(({ js, ts }) => [ }, js.configs.recommended, ts.configs.recommended, - { - rules: { - 'no-undef': 'off', - }, - }, ]); From 104363fc4cc6be965476bf4a4d85b163851cca1b Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 1 Sep 2026 20:44:16 +0800 Subject: [PATCH 4/4] ci: run checks in a separate workflow --- .github/workflows/ci.yml | 3 --- .github/workflows/lint.yml | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/lint.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7917d03..61fab54 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,9 +33,6 @@ jobs: with: run_install: true - - name: Run checks - run: pnpm check - - name: Build Packages run: pnpm build diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..42b373d --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,34 @@ +name: Lint + +on: + push: + branches: + - main + - master + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + + - name: Setup Node.js + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: 24.19.0 + package-manager-cache: false + + - name: Install Pnpm + uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 + with: + run_install: true + + - name: Run Check + run: node --run check