fix(ci): 让质量门禁真正生效 —— 修两处「一直红所以等于没有」,并清零高危漏洞
## 发现 今天 8 次质量门禁运行**全部失败**(从今天第一个 commit 起就没绿过)。 一道长期红的门禁等于没有门禁 —— 没人会看它,也就保护不了任何东西。 两处独立原因: ### ① SCA:audit 打到了镜像 仓库 `.npmrc` 指向 `registry.npmmirror.com`(加速用),但**镜像不实现 audit 接口**, `pnpm audit` 必报 `ERR_PNPM_AUDIT_ENDPOINT_NOT_EXISTS`。 → 显式加 `--registry=https://registry.npmjs.org`。 ### ② typecheck:缺 build 顺序 各包 import 的是 `@nodeagent/protocol` 的**类型产物**(dist/*.d.ts)。 CI 全新检出没有 dist,直接 typecheck 集体报 `TS2307: Cannot find module '@nodeagent/protocol'` —— 而本地因为 dist 还在,看不出来 (典型「本地绿 / CI 红」)。 → 在 typecheck 前插入 `pnpm --filter @nodeagent/protocol build`(只建这一个包,够用且快)。 **注入验证**:把 `packages/protocol/dist` 移走 → 复现 TS2307 → 执行新增的 build 步骤 → typecheck 零错误。(先证明诊断对,再证明修复有效。) ## audit 通了以后暴露 2 个 high(之前被「假绿」掩盖) 1. **node-forge <=1.4.0**(路径 `apps/agent > selfsigned > node-forge`) 上游**无修复版本**(patched_versions: None)→ 只能移除依赖。 `selfsigned` 5.x 已整体改用 `@peculiar/x509` + pkijs,node-forge 被彻底删掉。 - 升级带来两处不兼容:`generate` 改为**异步**、`days` 改为 `notAfterDate` - `ensureCert()` 随之改 async(唯一调用点在 async 的 `main()` 里) 2. **@modelcontextprotocol/sdk <1.31.0**(OAuth 凭据可能被发往 MCP 服务器指定的授权服务器) → 升到 `^1.32.1` ## 证书不能只看编译通过(权威本上一条真机教训) 用临时数据目录起真被控端实测: - 证书 `notBefore=2026-10-17 / notAfter=2036-10-14`(10 年,换算正确) - key.pem 权限仍为 600 - 客户端握手成功:**52 项能力**,验收 **13 通过 / 0 失败** - 审计:`No known vulnerabilities found` 验证:`pnpm typecheck` 通过;`pnpm test:unit` **357 项全绿**; `pnpm install --frozen-lockfile` 通过(lock 与 manifest 一致)。
This commit is contained in:
1 parent
9f95560268
commit
141f479e4a
6 files changed
+253
-33
No files matched your search
@@ -49,7 +49,11 @@ jobs:
|
||||
|
||||
# 依赖漏洞:High 及以上阻断
|
||||
- name: 依赖漏洞扫描(SCA)
|
||||
run: pnpm audit --audit-level=high
|
||||
# ⚠️ 必须显式指定公共 registry(2026-10-17)
|
||||
# 仓库 `.npmrc` 指向 registry.npmmirror.com(镜像加速),但**镜像不实现
|
||||
# audit 接口**,`pnpm audit` 会直接报 ERR_PNPM_AUDIT_ENDPOINT_NOT_EXISTS。
|
||||
# 结果就是这道门禁从加上那天起**一直是红的**,等于没有门禁。
|
||||
run: pnpm audit --audit-level=high --registry=https://registry.npmjs.org
|
||||
|
||||
# ② 质量门禁:类型 + 覆盖率
|
||||
gate:
|
||||
@@ -72,6 +76,15 @@ jobs:
|
||||
|
||||
- run: pnpm install --frozen-lockfile
|
||||
|
||||
# ⚠️ 必须先构建 `@nodeagent/protocol` 再查类型(2026-10-17)
|
||||
# 各包 import 的是 `@nodeagent/protocol` 的**类型产物**(dist/*.d.ts)。
|
||||
# CI 里全新检出、没有 dist,直接 typecheck 会集体报
|
||||
# `TS2307: Cannot find module '@nodeagent/protocol'` —— 而本地因为 dist 还在,
|
||||
# 看不出问题(典型的「本地绿 / CI 红」)。
|
||||
# 只构建 protocol 而不跑全量 build:够用且快,全量 build 留给下一步。
|
||||
- name: 构建 protocol 类型产物
|
||||
run: pnpm --filter @nodeagent/protocol build
|
||||
|
||||
- run: pnpm typecheck
|
||||
|
||||
# 单测 import 的是 dist/(编译产物),必须先构建,否则覆盖率全空
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@nodeagent/protocol": "workspace:*",
|
||||
"selfsigned": "^2.4.1",
|
||||
"selfsigned": "^5.5.0",
|
||||
"ws": "^8.18.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
+11
-3
@@ -13,7 +13,7 @@ export interface TlsMaterial {
|
||||
* 确保自签证书存在(首次生成并缓存到 ~/.nodeagent/certs/)。
|
||||
* v1 用自签证书做传输加密;控制端可校验证书指纹或临时跳过校验。
|
||||
*/
|
||||
export function ensureCert(): TlsMaterial {
|
||||
export async function ensureCert(): Promise<TlsMaterial> {
|
||||
const dir = join(agentDir(), 'certs');
|
||||
const certPath = join(dir, 'cert.pem');
|
||||
const keyPath = join(dir, 'key.pem');
|
||||
@@ -23,8 +23,16 @@ export function ensureCert(): TlsMaterial {
|
||||
}
|
||||
|
||||
mkdirSync(dir, { recursive: true });
|
||||
const pems = selfsigned.generate([{ name: 'commonName', value: 'nodeagent' }], {
|
||||
days: 3650,
|
||||
// selfsigned 5.x:`generate` 改为**异步**(旧版同步返回)。
|
||||
// 升级动因不是追新,而是安全:2.x 依赖 node-forge 1.4.0,
|
||||
// 该版本有 high 级 advisory 且**上游无修复版本**(patched_versions: None);
|
||||
// 5.x 已整体换成 @peculiar/x509 + pkijs,node-forge 被彻底移除。
|
||||
// v5 把 `days` 换成了 `notAfterDate`(绝对时间),语义相同但必须换算 ——
|
||||
// 这是升级时的**静默不兼容点**:老写法编译期报 TS2353,能拦住;
|
||||
// 但若只改类型不改值,就会签出一个有效期不对的证书,运行期才暴露。
|
||||
const notAfterDate = new Date(Date.now() + 3650 * 24 * 60 * 60 * 1000);
|
||||
const pems = await selfsigned.generate([{ name: 'commonName', value: 'nodeagent' }], {
|
||||
notAfterDate,
|
||||
keySize: 2048,
|
||||
algorithm: 'sha256',
|
||||
});
|
||||
|
||||
@@ -144,7 +144,7 @@ async function main(): Promise<void> {
|
||||
});
|
||||
// v6:Hub 模式下不监听本地端口,改为主动外连 Hub(穿 NAT)
|
||||
const useHub = config.hub?.enabled === true;
|
||||
const tls = !useHub && config.tls ? ensureCert() : null;
|
||||
const tls = !useHub && config.tls ? await ensureCert() : null;
|
||||
const server = useHub ? null : await createAgentServer(config, tls);
|
||||
|
||||
let hubClient: HubClient | null = null;
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"start": "node dist/index.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@modelcontextprotocol/sdk": "^1.12.0",
|
||||
"@modelcontextprotocol/sdk": "^1.32.1",
|
||||
"@nodeagent/client": "workspace:*",
|
||||
"@nodeagent/protocol": "workspace:*"
|
||||
}
|
||||
|
||||
Generated
+225
-26
@@ -24,8 +24,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/protocol
|
||||
selfsigned:
|
||||
specifier: ^2.4.1
|
||||
version: 2.4.1
|
||||
specifier: ^5.5.0
|
||||
version: 5.5.0
|
||||
ws:
|
||||
specifier: ^8.18.0
|
||||
version: 8.21.3
|
||||
@@ -105,8 +105,8 @@ importers:
|
||||
apps/mcp:
|
||||
dependencies:
|
||||
'@modelcontextprotocol/sdk':
|
||||
specifier: ^1.12.0
|
||||
version: 1.30.1(zod@4.6.5)
|
||||
specifier: ^1.32.1
|
||||
version: 1.32.1(zod@4.6.5)
|
||||
'@nodeagent/client':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/client
|
||||
@@ -342,8 +342,8 @@ packages:
|
||||
'@juggle/resize-observer@3.4.0':
|
||||
resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
|
||||
|
||||
'@modelcontextprotocol/sdk@1.30.1':
|
||||
resolution: {integrity: sha512-H2HxLvC3HDNybePJaLdSrU1hhUK5iQw+WvV1b01myFyI7sdVGe1u/IPTE5D9fGCiJDVtgMV/lmFkQXLmQyIFYA==}
|
||||
'@modelcontextprotocol/sdk@1.32.1':
|
||||
resolution: {integrity: sha512-2DdE+SJDtzLEEWzY1ZjY7Q+VcPhcV1KisD3zI4u0XZyktsjHum1mwbMI+JaulUBi2OZk+KJAi2uPXzxichPkdw==}
|
||||
engines: {node: '>=18'}
|
||||
peerDependencies:
|
||||
'@cfworker/json-schema': ^4.1.1
|
||||
@@ -352,9 +352,60 @@ packages:
|
||||
'@cfworker/json-schema':
|
||||
optional: true
|
||||
|
||||
'@noble/hashes@1.8.0':
|
||||
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
|
||||
engines: {node: ^14.21.3 || >=16}
|
||||
|
||||
'@oxc-project/types@0.152.0':
|
||||
resolution: {integrity: sha512-oM/5rLBm2tPkg0iBgkH/FOeR3PCDpY19GTgAZjMFM8h9WI9VW7cLgzp6nwtarYKmovavIQZ+Fe/RKX/8C8O/Rw==}
|
||||
|
||||
'@peculiar/asn1-cms@2.11.0':
|
||||
resolution: {integrity: sha512-SlAiDoT/Cd8qaNmbTt78gqyaEvu2fQd6ML6KWJkdjXGrgDKnHHrusVkfQUelkfinL2p665IIADb0JBixtT8W1g==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/asn1-csr@2.11.0':
|
||||
resolution: {integrity: sha512-M/ED0yJ05qMK+UADPKnIa8vhAeewOJALSxTAZB7RQ/batRHhIJZkwznCcWAbFO5saHJ1yEQ+m4lncEcG9RnQSg==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/asn1-ecc@2.11.0':
|
||||
resolution: {integrity: sha512-jj1alGEKev7/un+cI+exyVK9m31lmP7cCBMCZuCb0wkFQH2zmKmJzNiG4wqXFNzlcP8timHLnzf3lV3OxBpb/Q==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/asn1-pfx@2.11.0':
|
||||
resolution: {integrity: sha512-ykSAWRu8KkmzU8LRpk9ZQC3zuLmBEtoSMjIv9XHVamD5W7amqreV5wttKqnvtjWOzzSJQxA/HVT8/tHwpEEGSQ==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/asn1-pkcs8@2.11.0':
|
||||
resolution: {integrity: sha512-lragjkjQGnQ5luxC+sxoAfAO/jBiQ7hOEGlDKJUk7MC5zY3AzjB2DU0GyPUH1Sswdv10t7DurY0zylOYMLb88w==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/asn1-pkcs9@2.11.0':
|
||||
resolution: {integrity: sha512-gDdFjpqV0weJjgNUvueUVf4D8uVbpq+VbG0TsxLAY2QGljAkJyL9qwQ7avol9j0jaYSJ7Ey7v7RZp0M3GTcQSA==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/asn1-rsa@2.11.0':
|
||||
resolution: {integrity: sha512-S2sBJmbfI09Kzdt9cEhE6pDNjHpVTkURs+811+PxS8AvsTLxC4woMNRhxHYaIbClkkNfAVt0tZxJdINVfUmzuA==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/asn1-schema@2.11.0':
|
||||
resolution: {integrity: sha512-8xh4avo53/vXO6UEv9yaoJ83hY581geaLTygf61NPIXP5AeIZCPjJhpTaYU23IZkG+NpLN/C9FYzWp7hphIT9A==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/asn1-x509-attr@2.11.0':
|
||||
resolution: {integrity: sha512-Fgvnd9REmLxEj/4cbDP54dNUNUXkzUksXLqEHqs1mHBuSRjSTCUSPM/WQIZYSvrdG7ND9CX1AQtPoIBekhgQSA==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/asn1-x509@2.11.0':
|
||||
resolution: {integrity: sha512-J1sHAwGNlk+8J+FeR1eLVc6Gq0T9f9ITc3HWyPYgJraoW6U8AJuQiWVJ3SCEpltfTdpOY7fHdHT5oKAsbK/jww==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@peculiar/utils@2.0.3':
|
||||
resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==}
|
||||
|
||||
'@peculiar/x509@1.14.3':
|
||||
resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@rolldown/binding-android-arm-eabi@1.2.12':
|
||||
resolution: {integrity: sha512-dB/a1214qKfHMXCpgqR4OZT+jS4kTyEXbQGJPqzobt5EwH5rX080pxE37alt3RzvR1bf1Yz/yGqRfrYAxuPw0A==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
@@ -542,9 +593,6 @@ packages:
|
||||
'@types/lodash@4.17.25':
|
||||
resolution: {integrity: sha512-+K1NIO8I+F9/wNulfVvu23QYd0Pe9/OCqRrim4NoYIf1VoEDL90Ve4ClzpyqBLc7NpGGWRvYNCKZ1BE/Jpf8dQ==}
|
||||
|
||||
'@types/node-forge@1.3.14':
|
||||
resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==}
|
||||
|
||||
'@types/node@22.20.4':
|
||||
resolution: {integrity: sha512-zJRE40jpHtKqE/C4fgHrAKQLJuSpzEnP9ff9Y7YtoR3Wd2pwqzlekDeEuUQXjRd+QCYnVnNwuJYmhdk9XV8gvA==}
|
||||
|
||||
@@ -643,6 +691,10 @@ packages:
|
||||
alien-signals@3.2.1:
|
||||
resolution: {integrity: sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==}
|
||||
|
||||
asn1js@3.1.0:
|
||||
resolution: {integrity: sha512-HWYi1THkOqguCiO+vwj09ZkQFD2kKEsejYHAYCtX0D80WVdoDnvRc9IukXX/jeb0T9NRWJnRtqwdbHltnFjwXA==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
ast-kit@2.2.0:
|
||||
resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==}
|
||||
engines: {node: '>=20.19.0'}
|
||||
@@ -665,6 +717,10 @@ packages:
|
||||
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
bytestreamjs@2.0.1:
|
||||
resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
|
||||
call-bind-apply-helpers@1.0.2:
|
||||
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -1052,10 +1108,6 @@ packages:
|
||||
resolution: {integrity: sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
node-forge@1.4.0:
|
||||
resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==}
|
||||
engines: {node: '>= 6.13.0'}
|
||||
|
||||
nostics@1.3.0:
|
||||
resolution: {integrity: sha512-wzRsrJwNlFbqIRQt8aCeL2WE8USip/uuvGSOZV1D02CxX8ABTMbw8IywKjH7yWHETMXbWJI4OBpihg9rmz2Vyg==}
|
||||
|
||||
@@ -1121,6 +1173,10 @@ packages:
|
||||
pkg-types@2.3.3:
|
||||
resolution: {integrity: sha512-j/lCFdcppV0JxWpCEITdbDltBxPP6cHT+yNJ6Go2OgoSA9518X847X9z0p6LtA4Nc16+eQzCZjRrWanTGvHJ5w==}
|
||||
|
||||
pkijs@3.4.1:
|
||||
resolution: {integrity: sha512-Oo/NZcSWccq8KyoG7gLE9fnltgHns+pNCjCAp/WmjsUySi+sX7y4z4Xqu4fVb42CDHzRPl33fjzT15V1wvcyhA==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
|
||||
postcss@8.5.29:
|
||||
resolution: {integrity: sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
@@ -1129,6 +1185,13 @@ packages:
|
||||
resolution: {integrity: sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==}
|
||||
engines: {node: '>= 0.10'}
|
||||
|
||||
pvtsutils@1.3.6:
|
||||
resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==}
|
||||
|
||||
pvutils@1.2.0:
|
||||
resolution: {integrity: sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
|
||||
qs@6.16.0:
|
||||
resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==}
|
||||
engines: {node: '>=0.6'}
|
||||
@@ -1148,6 +1211,9 @@ packages:
|
||||
resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==}
|
||||
engines: {node: '>= 20.19.0'}
|
||||
|
||||
reflect-metadata@0.2.2:
|
||||
resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
|
||||
|
||||
require-from-string@2.0.2:
|
||||
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -1170,9 +1236,9 @@ packages:
|
||||
seemly@0.3.10:
|
||||
resolution: {integrity: sha512-2+SMxtG1PcsL0uyhkumlOU6Qo9TAQ/WyH7tthnPIOQB05/12jz9naq6GZ6iZ6ApVsO3rr2gsnTf3++OV63kE1Q==}
|
||||
|
||||
selfsigned@2.4.1:
|
||||
resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
|
||||
engines: {node: '>=10'}
|
||||
selfsigned@5.5.0:
|
||||
resolution: {integrity: sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
send@1.2.1:
|
||||
resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==}
|
||||
@@ -1228,9 +1294,19 @@ packages:
|
||||
treemate@0.3.11:
|
||||
resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==}
|
||||
|
||||
tslib@1.14.1:
|
||||
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
|
||||
|
||||
tslib@2.3.0:
|
||||
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
|
||||
|
||||
tslib@2.8.1:
|
||||
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
|
||||
|
||||
tsyringe@4.10.0:
|
||||
resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==}
|
||||
engines: {node: '>= 6.0.0'}
|
||||
|
||||
type-is@2.1.0:
|
||||
resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==}
|
||||
engines: {node: '>= 18'}
|
||||
@@ -1554,7 +1630,7 @@ snapshots:
|
||||
|
||||
'@juggle/resize-observer@3.4.0': {}
|
||||
|
||||
'@modelcontextprotocol/sdk@1.30.1(zod@4.6.5)':
|
||||
'@modelcontextprotocol/sdk@1.32.1(zod@4.6.5)':
|
||||
dependencies:
|
||||
'@hono/node-server': 2.1.1(hono@4.13.9)
|
||||
ajv: 8.20.0
|
||||
@@ -1576,8 +1652,104 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@noble/hashes@1.8.0': {}
|
||||
|
||||
'@oxc-project/types@0.152.0': {}
|
||||
|
||||
'@peculiar/asn1-cms@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
'@peculiar/asn1-x509': 2.11.0
|
||||
'@peculiar/asn1-x509-attr': 2.11.0
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-csr@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
'@peculiar/asn1-x509': 2.11.0
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-ecc@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
'@peculiar/asn1-x509': 2.11.0
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-pfx@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-cms': 2.11.0
|
||||
'@peculiar/asn1-pkcs8': 2.11.0
|
||||
'@peculiar/asn1-rsa': 2.11.0
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-pkcs8@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
'@peculiar/asn1-x509': 2.11.0
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-pkcs9@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-cms': 2.11.0
|
||||
'@peculiar/asn1-pfx': 2.11.0
|
||||
'@peculiar/asn1-pkcs8': 2.11.0
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
'@peculiar/asn1-x509': 2.11.0
|
||||
'@peculiar/asn1-x509-attr': 2.11.0
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-rsa@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
'@peculiar/asn1-x509': 2.11.0
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-schema@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/utils': 2.0.3
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-x509-attr@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
'@peculiar/asn1-x509': 2.11.0
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/asn1-x509@2.11.0':
|
||||
dependencies:
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
'@peculiar/utils': 2.0.3
|
||||
asn1js: 3.1.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/utils@2.0.3':
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
|
||||
'@peculiar/x509@1.14.3':
|
||||
dependencies:
|
||||
'@peculiar/asn1-cms': 2.11.0
|
||||
'@peculiar/asn1-csr': 2.11.0
|
||||
'@peculiar/asn1-ecc': 2.11.0
|
||||
'@peculiar/asn1-pkcs9': 2.11.0
|
||||
'@peculiar/asn1-rsa': 2.11.0
|
||||
'@peculiar/asn1-schema': 2.11.0
|
||||
'@peculiar/asn1-x509': 2.11.0
|
||||
pvtsutils: 1.3.6
|
||||
reflect-metadata: 0.2.2
|
||||
tslib: 2.8.1
|
||||
tsyringe: 4.10.0
|
||||
|
||||
'@rolldown/binding-android-arm-eabi@1.2.12':
|
||||
optional: true
|
||||
|
||||
@@ -1684,10 +1856,6 @@ snapshots:
|
||||
|
||||
'@types/lodash@4.17.25': {}
|
||||
|
||||
'@types/node-forge@1.3.14':
|
||||
dependencies:
|
||||
'@types/node': 22.20.4
|
||||
|
||||
'@types/node@22.20.4':
|
||||
dependencies:
|
||||
undici-types: 6.21.0
|
||||
@@ -1823,6 +1991,12 @@ snapshots:
|
||||
|
||||
alien-signals@3.2.1: {}
|
||||
|
||||
asn1js@3.1.0:
|
||||
dependencies:
|
||||
pvtsutils: 1.3.6
|
||||
pvutils: 1.2.0
|
||||
tslib: 2.8.1
|
||||
|
||||
ast-kit@2.2.0:
|
||||
dependencies:
|
||||
'@babel/parser': 7.29.9
|
||||
@@ -1854,6 +2028,8 @@ snapshots:
|
||||
|
||||
bytes@3.1.2: {}
|
||||
|
||||
bytestreamjs@2.0.1: {}
|
||||
|
||||
call-bind-apply-helpers@1.0.2:
|
||||
dependencies:
|
||||
es-errors: 1.3.0
|
||||
@@ -2235,8 +2411,6 @@ snapshots:
|
||||
dependencies:
|
||||
content-type: 2.1.0
|
||||
|
||||
node-forge@1.4.0: {}
|
||||
|
||||
nostics@1.3.0: {}
|
||||
|
||||
object-assign@4.1.1: {}
|
||||
@@ -2289,6 +2463,15 @@ snapshots:
|
||||
exsolve: 1.1.3
|
||||
pathe: 2.0.3
|
||||
|
||||
pkijs@3.4.1:
|
||||
dependencies:
|
||||
'@noble/hashes': 1.8.0
|
||||
asn1js: 3.1.0
|
||||
bytestreamjs: 2.0.1
|
||||
pvtsutils: 1.3.6
|
||||
pvutils: 1.2.0
|
||||
tslib: 2.8.1
|
||||
|
||||
postcss@8.5.29:
|
||||
dependencies:
|
||||
nanoid: 3.3.20
|
||||
@@ -2300,6 +2483,12 @@ snapshots:
|
||||
forwarded: 0.2.0
|
||||
ipaddr.js: 1.9.1
|
||||
|
||||
pvtsutils@1.3.6:
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
|
||||
pvutils@1.2.0: {}
|
||||
|
||||
qs@6.16.0:
|
||||
dependencies:
|
||||
es-define-property: 1.0.1
|
||||
@@ -2318,6 +2507,8 @@ snapshots:
|
||||
|
||||
readdirp@5.1.1: {}
|
||||
|
||||
reflect-metadata@0.2.2: {}
|
||||
|
||||
require-from-string@2.0.2: {}
|
||||
|
||||
rolldown@1.2.12:
|
||||
@@ -2357,10 +2548,10 @@ snapshots:
|
||||
|
||||
seemly@0.3.10: {}
|
||||
|
||||
selfsigned@2.4.1:
|
||||
selfsigned@5.5.0:
|
||||
dependencies:
|
||||
'@types/node-forge': 1.3.14
|
||||
node-forge: 1.4.0
|
||||
'@peculiar/x509': 1.14.3
|
||||
pkijs: 3.4.1
|
||||
|
||||
send@1.2.1:
|
||||
dependencies:
|
||||
@@ -2436,8 +2627,16 @@ snapshots:
|
||||
|
||||
treemate@0.3.11: {}
|
||||
|
||||
tslib@1.14.1: {}
|
||||
|
||||
tslib@2.3.0: {}
|
||||
|
||||
tslib@2.8.1: {}
|
||||
|
||||
tsyringe@4.10.0:
|
||||
dependencies:
|
||||
tslib: 1.14.1
|
||||
|
||||
type-is@2.1.0:
|
||||
dependencies:
|
||||
content-type: 2.1.0
|
||||
|
||||
Reference in new issue
Block a user