chore(repo): standardize cross-platform development

Make line endings deterministic across macOS, Windows, and Linux while preserving the native checkout format required by Windows launchers.

Pin the tested application runtime and Node type baseline, add a shared startup preflight, and keep independently published packages on their existing compatibility ranges.

Align local scripts, pull request validation, complete package builds, dependency metadata, and contributor documentation around the same Node and pnpm contract. The root test command now covers every tested workspace package while a focused Core command remains available for local iteration.
This commit is contained in:
DrSmoothl
2026-07-31 13:09:02 +08:00
parent 8dd986a565
commit 9544aa7761
33 changed files with 217 additions and 185 deletions
+8 -2
View File
@@ -2,7 +2,7 @@ root = true
[*] [*]
charset = utf-8 charset = utf-8
end_of_line = crlf end_of_line = lf
indent_style = space indent_style = space
indent_size = 2 indent_size = 2
insert_final_newline = true insert_final_newline = true
@@ -11,5 +11,11 @@ trim_trailing_whitespace = true
[*.{json,yml,yaml,md}] [*.{json,yml,yaml,md}]
indent_size = 2 indent_size = 2
[*.py]
indent_size = 4
[*.bat]
end_of_line = crlf
[*.md] [*.md]
trim_trailing_whitespace = false trim_trailing_whitespace = false
+14
View File
@@ -0,0 +1,14 @@
* text=auto eol=lf
*.bat text eol=crlf
*.node binary
*.dll binary
*.so binary
*.dylib binary
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.woff2 binary
+13 -5
View File
@@ -4,9 +4,8 @@
# unnoticed — and did (protocol's oidb-service rejection path, plus an external # unnoticed — and did (protocol's oidb-service rejection path, plus an external
# contributor PR). This gates every PR on the whole suite. # contributor PR). This gates every PR on the whole suite.
# #
# `pnpm -r --no-bail --if-present test` runs each package's `test` script # The root validation commands are the same ones contributors run locally.
# (skipping packages without one); --no-bail means one failing package still # Keep this workflow as the executable source of truth for pull requests.
# reports the rest, and the run as a whole still fails if any package fails.
name: CI name: CI
on: on:
@@ -33,14 +32,23 @@ jobs:
- uses: actions/setup-node@v6 - uses: actions/setup-node@v6
with: with:
node-version: '22' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
run: pnpm install --frozen-lockfile run: pnpm install --frozen-lockfile
- name: Type check all packages
run: pnpm typecheck
- name: Lint managed source files
run: pnpm lint
- name: Run all package tests - name: Run all package tests
run: pnpm -r --no-bail --if-present test run: pnpm test
- name: Build release inputs
run: pnpm run build:all
# The MCP test suite regenerates the action catalog (catalog.ts + the # The MCP test suite regenerates the action catalog (catalog.ts + the
# catalog.json the docs site consumes). Fail if the committed snapshot # catalog.json the docs site consumes). Fail if the committed snapshot
+3 -3
View File
@@ -78,7 +78,7 @@ jobs:
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v6 uses: actions/setup-node@v6
with: with:
node-version: '22' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
@@ -121,7 +121,7 @@ jobs:
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v6 uses: actions/setup-node@v6
with: with:
node-version: '22' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
@@ -145,7 +145,7 @@ jobs:
# Naming convention: # Naming convention:
# SnowLuma-dev-<arch>.zip|tar.gz – zero-install (node bundled) # SnowLuma-dev-<arch>.zip|tar.gz – zero-install (node bundled)
# SnowLuma-dev-<arch>-lite.zip|tar.gz – user provides Node >= 22 # SnowLuma-dev-<arch>-lite.zip|tar.gz – user provides Node 22.13+ (23.x requires 23.4+)
- name: Package (windows) - name: Package (windows)
if: matrix.os == 'windows-latest' if: matrix.os == 'windows-latest'
shell: pwsh shell: pwsh
+1 -1
View File
@@ -40,7 +40,7 @@ jobs:
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v6 uses: actions/setup-node@v6
with: with:
node-version: '22' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'
+3 -3
View File
@@ -39,7 +39,7 @@ jobs:
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v6 uses: actions/setup-node@v6
with: with:
node-version: '22' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
@@ -60,7 +60,7 @@ jobs:
# Naming convention: # Naming convention:
# SnowLuma-<tag>-<arch>.zip|tar.gz – zero-install (node bundled) # SnowLuma-<tag>-<arch>.zip|tar.gz – zero-install (node bundled)
# SnowLuma-<tag>-<arch>-lite.zip|tar.gz – user provides Node >= 22 # SnowLuma-<tag>-<arch>-lite.zip|tar.gz – user provides Node 22.13+ (23.x requires 23.4+)
- name: Package (windows) - name: Package (windows)
if: matrix.os == 'windows-latest' if: matrix.os == 'windows-latest'
shell: pwsh shell: pwsh
@@ -127,7 +127,7 @@ jobs:
## 选择下载 ## 选择下载
| 平台 | 完整版(内置 Node.js,推荐) | Lite(需 Node.js 22+) | | 平台 | 完整版(内置 Node.js,推荐) | Lite(Node.js 22.13+;23 系需 23.4+) |
| --- | --- | --- | | --- | --- | --- |
| Windows x64 | \`SnowLuma-${tag}-win-x64.zip\` | \`SnowLuma-${tag}-win-x64-lite.zip\` | | Windows x64 | \`SnowLuma-${tag}-win-x64.zip\` | \`SnowLuma-${tag}-win-x64-lite.zip\` |
| Linux x64 | \`SnowLuma-${tag}-linux-x64.tar.gz\` | \`SnowLuma-${tag}-linux-x64-lite.tar.gz\` | | Linux x64 | \`SnowLuma-${tag}-linux-x64.tar.gz\` | \`SnowLuma-${tag}-linux-x64-lite.tar.gz\` |
+1 -1
View File
@@ -37,7 +37,7 @@ jobs:
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v6 uses: actions/setup-node@v6
with: with:
node-version: '22' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'
+1 -1
View File
@@ -38,7 +38,7 @@ jobs:
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v6 uses: actions/setup-node@v6
with: with:
node-version: '22' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
+1 -1
View File
@@ -37,7 +37,7 @@ jobs:
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v6 uses: actions/setup-node@v6
with: with:
node-version: '22' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'
+1
View File
@@ -0,0 +1 @@
22.13.0
+1 -10
View File
@@ -1,13 +1,4 @@
registry=https://registry.npmmirror.com/ registry=https://registry.npmmirror.com/
@moonrepo:registry=https://registry.npmmirror.com/
# Mirrors for binary downloads (sharp, esbuild, swc, electron etc.)
disturl=https://npmmirror.com/dist
electron_mirror=https://npmmirror.com/mirrors/electron/
sass_binary_site=https://npmmirror.com/mirrors/node-sass/
sharp_binary_host=https://npmmirror.com/mirrors/sharp
sharp_libvips_binary_host=https://npmmirror.com/mirrors/sharp-libvips
puppeteer_download_host=https://npmmirror.com/mirrors
auto-install-peers=true auto-install-peers=true
strict-peer-dependencies=false strict-peer-dependencies=false
engine-strict=true
+14 -7
View File
@@ -43,10 +43,14 @@ SnowLuma 处于开发早期,迭代速度很快,**接口与目录结构随时
### 系统要求 ### 系统要求
- **Node.js ≥ 22**(`engines` 字段强制,低版本会报错) - **Node.js 22.13+(23 系需 23.4+)**(项目使用默认启用的 `node:sqlite`)
- **pnpm 10.28.0+**(项目通过 `packageManager` 字段锁定,建议用 `corepack enable` 安装匹配版本) - **pnpm 10.28.0**(项目通过 `packageManager` 与 CI 统一版本)
- macOS / Linux / Windows 均可。如果要构建原生产物,需要对应平台的工具链。 - macOS / Linux / Windows 均可。如果要构建原生产物,需要对应平台的工具链。
如果系统提供 Corepack,可执行 `corepack enable pnpm`;没有 Corepack 时可执行
`npm install -g pnpm@10.28.0`。进入仓库后,`node --version` 与
`pnpm --version` 应满足上述版本要求,否则安装会直接失败。
### 拉代码、装依赖、跑起来 ### 拉代码、装依赖、跑起来
```bash ```bash
@@ -57,13 +61,13 @@ cd SnowLuma
# 2. 切到 dev 分支(所有开发都基于 dev,不是 main) # 2. 切到 dev 分支(所有开发都基于 dev,不是 main)
git checkout dev git checkout dev
# 3. 安装依赖 # 3. 按锁文件安装依赖
pnpm install pnpm install --frozen-lockfile
# 4. 跑类型检查,确认环境 OK # 4. 跑类型检查,确认环境 OK
pnpm typecheck pnpm typecheck
# 5. 跑测试 # 5. 跑全工作区测试
pnpm test pnpm test
# 6. 启动开发模式 # 6. 启动开发模式
@@ -96,14 +100,17 @@ git checkout -b fix/onebot-mention-encoding
- **写测试**:修 bug 时优先写一个能复现该 bug 的测试,确认它会 fail,再让它 pass。新增功能至少补上 happy path 的测试。 - **写测试**:修 bug 时优先写一个能复现该 bug 的测试,确认它会 fail,再让它 pass。新增功能至少补上 happy path 的测试。
- **不要添加无意义的注释**:标识符已经说清楚的事情不需要再写一遍。注释应当解释"为什么",而不是"做了什么"。 - **不要添加无意义的注释**:标识符已经说清楚的事情不需要再写一遍。注释应当解释"为什么",而不是"做了什么"。
提交之前请本地跑一遍: 提交之前请运行与 PR CI 相同的验证入口:
```bash ```bash
pnpm typecheck pnpm typecheck
pnpm lint
pnpm test pnpm test
pnpm run build:all
``` ```
CI 上跑的是同一套检查,本地通过几乎能保证 CI 通过。 `pnpm test` 会运行所有声明了测试脚本的工作区包;只验证 Core 时可使用
`pnpm test:core`。CI 会重新执行上述完整检查。
### 3. 提交信息 ### 3. 提交信息
+5 -3
View File
@@ -51,7 +51,7 @@ SnowLuma 将会话接入、协议解析、身份映射、OneBot 转换和网络
前往 [Releases](https://github.com/SnowLuma/SnowLuma/releases) 下载与你的平台匹配的版本: 前往 [Releases](https://github.com/SnowLuma/SnowLuma/releases) 下载与你的平台匹配的版本:
| 平台 | 完整版(内置 Node.js,推荐) | Lite(需要 Node.js 22+) | | 平台 | 完整版(内置 Node.js,推荐) | Lite(Node.js 22.13+;23 系需 23.4+) |
| --- | --- | --- | | --- | --- | --- |
| Windows x64 | `SnowLuma-vX.Y.Z-win-x64.zip` | `SnowLuma-vX.Y.Z-win-x64-lite.zip` | | Windows x64 | `SnowLuma-vX.Y.Z-win-x64.zip` | `SnowLuma-vX.Y.Z-win-x64-lite.zip` |
| Linux x64 | `SnowLuma-vX.Y.Z-linux-x64.tar.gz` | `SnowLuma-vX.Y.Z-linux-x64-lite.tar.gz` | | Linux x64 | `SnowLuma-vX.Y.Z-linux-x64.tar.gz` | `SnowLuma-vX.Y.Z-linux-x64-lite.tar.gz` |
@@ -117,15 +117,17 @@ WebUI 的“系统设置 → 存储管理”可查看受管数据占用、调整
## 开发与贡献 ## 开发与贡献
本地开发需要 Node.js 22+ 与项目锁定版本的 pnpm。所有日常开发基于 `dev` 分支: 本地开发需要 Node.js 22.13+(23 系需 23.4+)与项目锁定的 pnpm 10.28.0。所有日常开发基于 `dev` 分支:
```bash ```bash
git clone https://github.com/SnowLuma/SnowLuma.git git clone https://github.com/SnowLuma/SnowLuma.git
cd SnowLuma cd SnowLuma
git checkout dev git checkout dev
pnpm install pnpm install --frozen-lockfile
pnpm typecheck pnpm typecheck
pnpm lint
pnpm test pnpm test
pnpm run build:all
``` ```
- 先读 [`CONTEXT.md`](CONTEXT.md) 了解模块边界与项目词汇。 - 先读 [`CONTEXT.md`](CONTEXT.md) 了解模块边界与项目词汇。
+3
View File
@@ -14,9 +14,12 @@ export default defineConfig([
'**/coverage/**', '**/coverage/**',
'**/.turbo/**', '**/.turbo/**',
'**/.vite/**', '**/.vite/**',
'.claude/**',
'dev/**',
'**/*.tsbuildinfo', '**/*.tsbuildinfo',
'**/test/fixtures/**', '**/test/fixtures/**',
'packages/runtime/native/**', 'packages/runtime/native/**',
'packages/mcp/src/generated/**',
]), ]),
{ {
files: ['**/*.{js,mjs,cjs,ts,tsx}'], files: ['**/*.{js,mjs,cjs,ts,tsx}'],
+6 -7
View File
@@ -10,14 +10,15 @@
"build:sdk": "pnpm --filter @snowluma/sdk build", "build:sdk": "pnpm --filter @snowluma/sdk build",
"build:webui": "pnpm --filter webui build", "build:webui": "pnpm --filter webui build",
"build:mcp": "pnpm --filter @snowluma/mcp build", "build:mcp": "pnpm --filter @snowluma/mcp build",
"build:all": "pnpm --filter @snowluma/core build:all && pnpm --filter @snowluma/sdk build && pnpm --filter @snowluma/mcp build && pnpm --filter webui build", "build:all": "pnpm --filter @snowluma/core build:all && pnpm --filter @snowluma/sdk build && pnpm --filter @snowluma/mcp build && pnpm --filter @snowluma/ui build && pnpm --filter webui build",
"dev": "pnpm --filter @snowluma/core dev", "dev": "pnpm --filter @snowluma/core dev",
"dev:mode": "cd dist && cross-env SNOWLUMA_DEV_MODE=1 SNOWLUMA_DEV_WEBUI=1 node index.mjs", "dev:mode": "cd dist && cross-env SNOWLUMA_DEV_MODE=1 SNOWLUMA_DEV_WEBUI=1 node index.mjs",
"dev:web": "pnpm --filter webui dev", "dev:web": "pnpm --filter webui dev",
"test": "pnpm --filter @snowluma/core test", "test": "pnpm -r --no-bail --if-present test",
"test:core": "pnpm --filter @snowluma/core test",
"test:watch": "pnpm --filter @snowluma/core test:watch", "test:watch": "pnpm --filter @snowluma/core test:watch",
"test:common": "pnpm --filter @snowluma/common test", "test:common": "pnpm --filter @snowluma/common test",
"test:all": "pnpm -r --if-present test", "test:all": "pnpm test",
"test:native": "pnpm -r --if-present test:native", "test:native": "pnpm -r --if-present test:native",
"coverage": "pnpm --filter @snowluma/common test -- --coverage", "coverage": "pnpm --filter @snowluma/common test -- --coverage",
"typecheck": "pnpm -r --if-present typecheck", "typecheck": "pnpm -r --if-present typecheck",
@@ -46,9 +47,6 @@
"eslint-plugin-react-hooks>eslint": "10" "eslint-plugin-react-hooks>eslint": "10"
} }
}, },
"onlyBuiltDependencies": [
"better-sqlite3"
],
"overrides": { "overrides": {
"esbuild@<0.28.1": "^0.28.1", "esbuild@<0.28.1": "^0.28.1",
"@babel/core@<7.29.6": "^7.29.6" "@babel/core@<7.29.6": "^7.29.6"
@@ -56,6 +54,7 @@
}, },
"packageManager": "pnpm@10.28.0", "packageManager": "pnpm@10.28.0",
"engines": { "engines": {
"node": ">=22" "node": "^22.13.0 || >=23.4.0",
"pnpm": "10.28.0"
} }
} }
+1 -1
View File
@@ -53,7 +53,7 @@
"@snowluma/common": "workspace:*" "@snowluma/common": "workspace:*"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^24.12.2", "@types/node": "catalog:",
"typescript": "catalog:", "typescript": "catalog:",
"vite": "catalog:", "vite": "catalog:",
"vitest": "^4.1.4" "vitest": "^4.1.4"
+1 -1
View File
@@ -70,7 +70,7 @@
"test": "vitest run" "test": "vitest run"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^24.12.2", "@types/node": "catalog:",
"typescript": "catalog:", "typescript": "catalog:",
"vitest": "^4.1.4" "vitest": "^4.1.4"
} }
+1 -1
View File
@@ -52,7 +52,7 @@
"devDependencies": { "devDependencies": {
"@hono/node-server": "^1.19.14", "@hono/node-server": "^1.19.14",
"@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-node-resolve": "^16.0.3",
"@types/node": "^24.12.2", "@types/node": "catalog:",
"cross-env": "^10.1.0", "cross-env": "^10.1.0",
"hono": "^4.12.25", "hono": "^4.12.25",
"tsx": "^4.21.0", "tsx": "^4.21.0",
@@ -0,0 +1,28 @@
import { createRequire } from 'node:module';
import { describe, expect, it } from 'vitest';
const require = createRequire(import.meta.url);
const {
SUPPORTED_NODE_RANGE,
isSupportedNodeVersion,
} = require('../../runtime/check-node-version.cjs') as {
SUPPORTED_NODE_RANGE: string;
isSupportedNodeVersion: (version: string) => boolean;
};
describe('runtime Node.js preflight', () => {
it('accepts the documented minimum and newer versions', () => {
expect(SUPPORTED_NODE_RANGE).toBe('^22.13.0 || >=23.4.0');
expect(isSupportedNodeVersion('22.13.0')).toBe(true);
expect(isSupportedNodeVersion('22.13.1')).toBe(true);
expect(isSupportedNodeVersion('23.4.0')).toBe(true);
expect(isSupportedNodeVersion('24.0.0')).toBe(true);
});
it('rejects older and malformed versions', () => {
expect(isSupportedNodeVersion('22.12.99')).toBe(false);
expect(isSupportedNodeVersion('23.3.99')).toBe(false);
expect(isSupportedNodeVersion('21.99.99')).toBe(false);
expect(isSupportedNodeVersion('not-a-version')).toBe(false);
});
});
+1 -1
View File
@@ -43,7 +43,7 @@ const [targetPlatform, targetArch] = targetTriple.split('-');
// Runtime scaffolding files copied into dist/. Windows and Linux use different // Runtime scaffolding files copied into dist/. Windows and Linux use different
// launchers, while both targets ship their matching QQ integration binaries. // launchers, while both targets ship their matching QQ integration binaries.
const runtimeDistFiles = ['package.json', const runtimeDistFiles = ['package.json', 'check-node-version.cjs',
targetPlatform === 'win32' ? 'launcher.bat' : 'launcher.sh', targetPlatform === 'win32' ? 'launcher.bat' : 'launcher.sh',
]; ];
+1 -1
View File
@@ -45,7 +45,7 @@
"devDependencies": { "devDependencies": {
"@snowluma/onebot": "workspace:*", "@snowluma/onebot": "workspace:*",
"@snowluma/proton": "workspace:*", "@snowluma/proton": "workspace:*",
"@types/node": "^24.12.2", "@types/node": "catalog:",
"typescript": "catalog:", "typescript": "catalog:",
"vite": "catalog:", "vite": "catalog:",
"vitest": "^4.1.4" "vitest": "^4.1.4"
+1 -1
View File
@@ -115,7 +115,7 @@
"@snowluma/websocket": "workspace:*" "@snowluma/websocket": "workspace:*"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^24.12.2", "@types/node": "catalog:",
"typescript": "catalog:", "typescript": "catalog:",
"vite": "catalog:", "vite": "catalog:",
"vitest": "^4.1.4" "vitest": "^4.1.4"
+1 -1
View File
@@ -72,7 +72,7 @@
"@snowluma/proton": "workspace:*" "@snowluma/proton": "workspace:*"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^24.12.2", "@types/node": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
+1 -1
View File
@@ -101,7 +101,7 @@
"@snowluma/proton": "workspace:*" "@snowluma/proton": "workspace:*"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^24.12.2", "@types/node": "catalog:",
"typescript": "catalog:", "typescript": "catalog:",
"vite": "catalog:", "vite": "catalog:",
"vitest": "^4.1.4" "vitest": "^4.1.4"
+1 -1
View File
@@ -36,7 +36,7 @@
} }
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^24.12.2", "@types/node": "catalog:",
"tsup": "^8.5.0", "tsup": "^8.5.0",
"vite": "catalog:", "vite": "catalog:",
"vitest": "^4.1.4" "vitest": "^4.1.4"
+27
View File
@@ -0,0 +1,27 @@
'use strict';
const SUPPORTED_NODE_RANGE = '^22.13.0 || >=23.4.0';
function parseNodeVersion(version) {
const match = /^(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/.exec(version);
return match ? match.slice(1, 4).map(Number) : null;
}
function isSupportedNodeVersion(version) {
const actual = parseNodeVersion(version);
if (!actual) return false;
const [major, minor] = actual;
if (major === 22) return minor >= 13;
if (major === 23) return minor >= 4;
return major > 23;
}
if (require.main === module && !isSupportedNodeVersion(process.versions.node)) {
console.error(
`error: SnowLuma requires Node.js ${SUPPORTED_NODE_RANGE}; found ${process.versions.node}.`,
);
process.exitCode = 1;
}
module.exports = { SUPPORTED_NODE_RANGE, isSupportedNodeVersion };
+6 -1
View File
@@ -1,2 +1,7 @@
node .\check-node-version.cjs
if errorlevel 1 (
pause
exit /b 1
)
node ./index.mjs node ./index.mjs
pause pause
+2 -1
View File
@@ -8,9 +8,10 @@ if [[ -x "./node" ]]; then
else else
NODE_BIN="$(command -v node || true)" NODE_BIN="$(command -v node || true)"
if [[ -z "$NODE_BIN" ]]; then if [[ -z "$NODE_BIN" ]]; then
echo "error: 'node' not found on PATH and no bundled ./node; install Node.js >= 22." >&2 echo "error: 'node' not found on PATH and no bundled ./node; install Node.js 22.13+ (Node 23 requires 23.4+)." >&2
exit 127 exit 127
fi fi
fi fi
"$NODE_BIN" ./check-node-version.cjs
exec "$NODE_BIN" ./index.mjs "$@" exec "$NODE_BIN" ./index.mjs "$@"
+1 -1
View File
@@ -88,7 +88,7 @@
"node": ">=22" "node": ">=22"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^24.12.2", "@types/node": "catalog:",
"typescript": "catalog:", "typescript": "catalog:",
"vitest": "^4.1.4" "vitest": "^4.1.4"
} }
+1 -1
View File
@@ -17,7 +17,7 @@
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^24.12.2", "@types/node": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
+1 -1
View File
@@ -37,7 +37,7 @@
"devDependencies": { "devDependencies": {
"@eslint/js": "^10.0.1", "@eslint/js": "^10.0.1",
"@tailwindcss/vite": "^4.2.2", "@tailwindcss/vite": "^4.2.2",
"@types/node": "^25.6.0", "@types/node": "catalog:",
"@types/react": "^19.2.14", "@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3", "@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1", "@vitejs/plugin-react": "^6.0.1",
+66 -127
View File
@@ -6,6 +6,9 @@ settings:
catalogs: catalogs:
default: default:
'@types/node':
specifier: 22.13.0
version: 22.13.0
typescript: typescript:
specifier: ~6.0.2 specifier: ~6.0.2
version: 6.0.2 version: 6.0.2
@@ -62,29 +65,29 @@ importers:
version: link:../common version: link:../common
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
typescript: typescript:
specifier: 'catalog:' specifier: 'catalog:'
version: 6.0.2 version: 6.0.2
vite: vite:
specifier: 'catalog:' specifier: 'catalog:'
version: 8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) version: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
vitest: vitest:
specifier: ^4.1.4 specifier: ^4.1.4
version: 4.1.4(@types/node@24.12.2)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
packages/common: packages/common:
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
typescript: typescript:
specifier: 'catalog:' specifier: 'catalog:'
version: 6.0.2 version: 6.0.2
vitest: vitest:
specifier: ^4.1.4 specifier: ^4.1.4
version: 4.1.4(@types/node@24.12.2)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
packages/core: packages/core:
dependencies: dependencies:
@@ -117,8 +120,8 @@ importers:
specifier: ^16.0.3 specifier: ^16.0.3
version: 16.0.3(rollup@4.60.4) version: 16.0.3(rollup@4.60.4)
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
cross-env: cross-env:
specifier: ^10.1.0 specifier: ^10.1.0
version: 10.1.0 version: 10.1.0
@@ -133,13 +136,13 @@ importers:
version: 6.0.2 version: 6.0.2
vite: vite:
specifier: 'catalog:' specifier: 'catalog:'
version: 8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) version: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
vite-plugin-cp: vite-plugin-cp:
specifier: ^6.0.3 specifier: ^6.0.3
version: 6.0.3 version: 6.0.3
vitest: vitest:
specifier: ^4.1.4 specifier: ^4.1.4
version: 4.1.4(@types/node@24.12.2)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
packages/mcp: packages/mcp:
dependencies: dependencies:
@@ -154,17 +157,17 @@ importers:
specifier: workspace:* specifier: workspace:*
version: link:../proton version: link:../proton
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
typescript: typescript:
specifier: 'catalog:' specifier: 'catalog:'
version: 6.0.2 version: 6.0.2
vite: vite:
specifier: 'catalog:' specifier: 'catalog:'
version: 8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) version: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
vitest: vitest:
specifier: ^4.1.4 specifier: ^4.1.4
version: 4.1.4(@types/node@24.12.2)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
packages/onebot: packages/onebot:
dependencies: dependencies:
@@ -188,17 +191,17 @@ importers:
version: link:../websocket version: link:../websocket
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
typescript: typescript:
specifier: 'catalog:' specifier: 'catalog:'
version: 6.0.2 version: 6.0.2
vite: vite:
specifier: 'catalog:' specifier: 'catalog:'
version: 8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) version: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
vitest: vitest:
specifier: ^4.1.4 specifier: ^4.1.4
version: 4.1.4(@types/node@24.12.2)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
packages/proto-defs: packages/proto-defs:
dependencies: dependencies:
@@ -207,8 +210,8 @@ importers:
version: link:../proton version: link:../proton
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
typescript: typescript:
specifier: 'catalog:' specifier: 'catalog:'
version: 6.0.2 version: 6.0.2
@@ -226,17 +229,17 @@ importers:
version: link:../proton version: link:../proton
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
typescript: typescript:
specifier: 'catalog:' specifier: 'catalog:'
version: 6.0.2 version: 6.0.2
vite: vite:
specifier: 'catalog:' specifier: 'catalog:'
version: 8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) version: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
vitest: vitest:
specifier: ^4.1.4 specifier: ^4.1.4
version: 4.1.4(@types/node@24.12.2)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
packages/proton: packages/proton:
dependencies: dependencies:
@@ -245,31 +248,31 @@ importers:
version: 6.0.2 version: 6.0.2
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
tsup: tsup:
specifier: ^8.5.0 specifier: ^8.5.0
version: 8.5.1(jiti@2.6.1)(postcss@8.5.15)(tsx@4.21.0)(typescript@6.0.2) version: 8.5.1(jiti@2.6.1)(postcss@8.5.15)(tsx@4.21.0)(typescript@6.0.2)
vite: vite:
specifier: 'catalog:' specifier: 'catalog:'
version: 8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) version: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
vitest: vitest:
specifier: ^4.1.4 specifier: ^4.1.4
version: 4.1.4(@types/node@24.12.2)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
packages/runtime: {} packages/runtime: {}
packages/sdk: packages/sdk:
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
typescript: typescript:
specifier: 'catalog:' specifier: 'catalog:'
version: 6.0.2 version: 6.0.2
vitest: vitest:
specifier: ^4.1.4 specifier: ^4.1.4
version: 4.1.4(@types/node@24.12.2)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
packages/ui: packages/ui:
dependencies: dependencies:
@@ -347,8 +350,8 @@ importers:
packages/websocket: packages/websocket:
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^24.12.2 specifier: 'catalog:'
version: 24.12.2 version: 22.13.0
typescript: typescript:
specifier: 'catalog:' specifier: 'catalog:'
version: 6.0.2 version: 6.0.2
@@ -421,10 +424,10 @@ importers:
version: 10.0.1(eslint@10.2.0(jiti@2.6.1)) version: 10.0.1(eslint@10.2.0(jiti@2.6.1))
'@tailwindcss/vite': '@tailwindcss/vite':
specifier: ^4.2.2 specifier: ^4.2.2
version: 4.2.2(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.2.2(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
'@types/node': '@types/node':
specifier: ^25.6.0 specifier: 'catalog:'
version: 25.6.0 version: 22.13.0
'@types/react': '@types/react':
specifier: ^19.2.14 specifier: ^19.2.14
version: 19.2.14 version: 19.2.14
@@ -433,7 +436,7 @@ importers:
version: 19.2.3(@types/react@19.2.14) version: 19.2.3(@types/react@19.2.14)
'@vitejs/plugin-react': '@vitejs/plugin-react':
specifier: ^6.0.1 specifier: ^6.0.1
version: 6.0.1(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 6.0.1(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
eslint: eslint:
specifier: ^10.2.0 specifier: ^10.2.0
version: 10.2.0(jiti@2.6.1) version: 10.2.0(jiti@2.6.1)
@@ -460,10 +463,10 @@ importers:
version: 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) version: 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)
vite: vite:
specifier: 'catalog:' specifier: 'catalog:'
version: 8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) version: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
vitest: vitest:
specifier: ^4.1.4 specifier: ^4.1.4
version: 4.1.4(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) version: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
packages: packages:
@@ -1904,11 +1907,8 @@ packages:
'@types/ms@2.1.0': '@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
'@types/node@24.12.2': '@types/node@22.13.0':
resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==} resolution: {integrity: sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==}
'@types/node@25.6.0':
resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==}
'@types/react-dom@19.2.3': '@types/react-dom@19.2.3':
resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
@@ -3221,11 +3221,8 @@ packages:
ufo@1.6.4: ufo@1.6.4:
resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==}
undici-types@7.16.0: undici-types@6.20.0:
resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
undici-types@7.19.2:
resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==}
universalify@2.0.1: universalify@2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
@@ -4533,12 +4530,12 @@ snapshots:
'@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2
'@tailwindcss/oxide-win32-x64-msvc': 4.2.2 '@tailwindcss/oxide-win32-x64-msvc': 4.2.2
'@tailwindcss/vite@4.2.2(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))': '@tailwindcss/vite@4.2.2(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))':
dependencies: dependencies:
'@tailwindcss/node': 4.2.2 '@tailwindcss/node': 4.2.2
'@tailwindcss/oxide': 4.2.2 '@tailwindcss/oxide': 4.2.2
tailwindcss: 4.2.2 tailwindcss: 4.2.2
vite: 8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) vite: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
'@tanstack/history@1.161.6': {} '@tanstack/history@1.161.6': {}
@@ -4598,23 +4595,19 @@ snapshots:
'@types/fs-extra@11.0.4': '@types/fs-extra@11.0.4':
dependencies: dependencies:
'@types/jsonfile': 6.1.4 '@types/jsonfile': 6.1.4
'@types/node': 25.6.0 '@types/node': 22.13.0
'@types/json-schema@7.0.15': {} '@types/json-schema@7.0.15': {}
'@types/jsonfile@6.1.4': '@types/jsonfile@6.1.4':
dependencies: dependencies:
'@types/node': 25.6.0 '@types/node': 22.13.0
'@types/ms@2.1.0': {} '@types/ms@2.1.0': {}
'@types/node@24.12.2': '@types/node@22.13.0':
dependencies: dependencies:
undici-types: 7.16.0 undici-types: 6.20.0
'@types/node@25.6.0':
dependencies:
undici-types: 7.19.2
'@types/react-dom@19.2.3(@types/react@19.2.14)': '@types/react-dom@19.2.3(@types/react@19.2.14)':
dependencies: dependencies:
@@ -4717,10 +4710,10 @@ snapshots:
'@typescript-eslint/types': 8.58.2 '@typescript-eslint/types': 8.58.2
eslint-visitor-keys: 5.0.1 eslint-visitor-keys: 5.0.1
'@vitejs/plugin-react@6.0.1(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))': '@vitejs/plugin-react@6.0.1(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))':
dependencies: dependencies:
'@rolldown/pluginutils': 1.0.0-rc.7 '@rolldown/pluginutils': 1.0.0-rc.7
vite: 8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) vite: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
'@vitest/coverage-istanbul@4.1.4(vitest@4.1.4)': '@vitest/coverage-istanbul@4.1.4(vitest@4.1.4)':
dependencies: dependencies:
@@ -4734,7 +4727,7 @@ snapshots:
magicast: 0.5.3 magicast: 0.5.3
obug: 2.1.1 obug: 2.1.1
tinyrainbow: 3.1.0 tinyrainbow: 3.1.0
vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) vitest: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -4750,7 +4743,7 @@ snapshots:
obug: 2.1.1 obug: 2.1.1
std-env: 4.1.0 std-env: 4.1.0
tinyrainbow: 3.1.0 tinyrainbow: 3.1.0
vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) vitest: 4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
'@vitest/expect@4.1.4': '@vitest/expect@4.1.4':
dependencies: dependencies:
@@ -4761,21 +4754,13 @@ snapshots:
chai: 6.2.2 chai: 6.2.2
tinyrainbow: 3.1.0 tinyrainbow: 3.1.0
'@vitest/mocker@4.1.4(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))': '@vitest/mocker@4.1.4(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))':
dependencies: dependencies:
'@vitest/spy': 4.1.4 '@vitest/spy': 4.1.4
estree-walker: 3.0.3 estree-walker: 3.0.3
magic-string: 0.30.21 magic-string: 0.30.21
optionalDependencies: optionalDependencies:
vite: 8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) vite: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
'@vitest/mocker@4.1.4(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))':
dependencies:
'@vitest/spy': 4.1.4
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
vite: 8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
'@vitest/pretty-format@4.1.4': '@vitest/pretty-format@4.1.4':
dependencies: dependencies:
@@ -5972,9 +5957,7 @@ snapshots:
ufo@1.6.4: {} ufo@1.6.4: {}
undici-types@7.16.0: {} undici-types@6.20.0: {}
undici-types@7.19.2: {}
universalify@2.0.1: {} universalify@2.0.1: {}
@@ -6020,7 +6003,7 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0): vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0):
dependencies: dependencies:
lightningcss: 1.32.0 lightningcss: 1.32.0
picomatch: 4.0.4 picomatch: 4.0.4
@@ -6028,32 +6011,17 @@ snapshots:
rolldown: 1.1.3 rolldown: 1.1.3
tinyglobby: 0.2.17 tinyglobby: 0.2.17
optionalDependencies: optionalDependencies:
'@types/node': 24.12.2 '@types/node': 22.13.0
esbuild: 0.28.1 esbuild: 0.28.1
fsevents: 2.3.3 fsevents: 2.3.3
jiti: 2.6.1 jiti: 2.6.1
sass: 1.99.0 sass: 1.99.0
tsx: 4.21.0 tsx: 4.21.0
vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0): vitest@4.1.4(@types/node@22.13.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)):
dependencies:
lightningcss: 1.32.0
picomatch: 4.0.4
postcss: 8.5.15
rolldown: 1.1.3
tinyglobby: 0.2.17
optionalDependencies:
'@types/node': 25.6.0
esbuild: 0.28.1
fsevents: 2.3.3
jiti: 2.6.1
sass: 1.99.0
tsx: 4.21.0
vitest@4.1.4(@types/node@24.12.2)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)):
dependencies: dependencies:
'@vitest/expect': 4.1.4 '@vitest/expect': 4.1.4
'@vitest/mocker': 4.1.4(vite@8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)) '@vitest/mocker': 4.1.4(vite@8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
'@vitest/pretty-format': 4.1.4 '@vitest/pretty-format': 4.1.4
'@vitest/runner': 4.1.4 '@vitest/runner': 4.1.4
'@vitest/snapshot': 4.1.4 '@vitest/snapshot': 4.1.4
@@ -6070,39 +6038,10 @@ snapshots:
tinyexec: 1.1.1 tinyexec: 1.1.1
tinyglobby: 0.2.16 tinyglobby: 0.2.16
tinyrainbow: 3.1.0 tinyrainbow: 3.1.0
vite: 8.1.0(@types/node@24.12.2)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0) vite: 8.1.0(@types/node@22.13.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
why-is-node-running: 2.3.0 why-is-node-running: 2.3.0
optionalDependencies: optionalDependencies:
'@types/node': 24.12.2 '@types/node': 22.13.0
'@vitest/coverage-istanbul': 4.1.4(vitest@4.1.4)
'@vitest/coverage-v8': 4.1.4(vitest@4.1.4)
transitivePeerDependencies:
- msw
vitest@4.1.4(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.4)(@vitest/coverage-v8@4.1.4)(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)):
dependencies:
'@vitest/expect': 4.1.4
'@vitest/mocker': 4.1.4(vite@8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0))
'@vitest/pretty-format': 4.1.4
'@vitest/runner': 4.1.4
'@vitest/snapshot': 4.1.4
'@vitest/spy': 4.1.4
'@vitest/utils': 4.1.4
es-module-lexer: 2.0.0
expect-type: 1.3.0
magic-string: 0.30.21
obug: 2.1.1
pathe: 2.0.3
picomatch: 4.0.4
std-env: 4.1.0
tinybench: 2.9.0
tinyexec: 1.1.1
tinyglobby: 0.2.16
tinyrainbow: 3.1.0
vite: 8.1.0(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.6.1)(sass@1.99.0)(tsx@4.21.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 25.6.0
'@vitest/coverage-istanbul': 4.1.4(vitest@4.1.4) '@vitest/coverage-istanbul': 4.1.4(vitest@4.1.4)
'@vitest/coverage-v8': 4.1.4(vitest@4.1.4) '@vitest/coverage-v8': 4.1.4(vitest@4.1.4)
transitivePeerDependencies: transitivePeerDependencies:
+1
View File
@@ -2,6 +2,7 @@ packages:
- 'packages/*' - 'packages/*'
catalog: catalog:
'@types/node': 22.13.0
vite: ^8.0.16 vite: ^8.0.16
typescript: ~6.0.2 typescript: ~6.0.2