Reimplements PR #86 independently (author abandoned it after change-requests), with the review feedback applied — the original tests asserted behavior the code never had. #84 — add @snowluma/common unit tests: - hex: toHex/toHexUpper/hexPreview boundary + fromHex round-trip & odd-length throw - log-summary: summarizeParams (top-level primitive is String()'d WITHOUT quotes; fields quoted; nested collapsed; total cap) and renderParamsVerbose (redaction, long-string marker is the Unicode ellipsis '…<N B>' not ASCII '...', circular guard) - request-context: nextRequestId monotonic; runWithRequestId sync/async + nested scopes - root scripts test:common/test:all/coverage; coverage/ gitignored #85 — Utf8Validator: the second surrogate check was unreachable (within the 0x80–0xBF continuation-byte guard, 'b & 0x20' is true iff 'b >= 0xA0'); merge to one check. No behavior change. common suite green (26 tests).
57 lines
1.9 KiB
JSON
57 lines
1.9 KiB
JSON
{
|
|
"license": "SEE LICENSE IN LICENSE",
|
|
"name": "snowluma-monorepo",
|
|
"version": "1.10.2",
|
|
"description": "SnowLuma monorepo workspace (pnpm)",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "pnpm --filter @snowluma/core build",
|
|
"build:sdk": "pnpm --filter @snowluma/sdk build",
|
|
"build:webui": "pnpm --filter webui 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",
|
|
"dev": "pnpm --filter @snowluma/core dev",
|
|
"dev:mode": "cd dist && cross-env SNOWLUMA_DEV_MODE=1 SNOWLUMA_DEV_WEBUI=1 node index.mjs",
|
|
"dev:web": "pnpm --filter webui dev",
|
|
"test": "pnpm --filter @snowluma/core test",
|
|
"test:watch": "pnpm --filter @snowluma/core test:watch",
|
|
"test:common": "pnpm --filter @snowluma/common test",
|
|
"test:all": "pnpm -r --if-present test",
|
|
"coverage": "pnpm --filter @snowluma/common test -- --coverage",
|
|
"typecheck": "pnpm -r --if-present typecheck",
|
|
"lint": "eslint .",
|
|
"lint:fix": "eslint . --fix",
|
|
"start": "node dist/index.mjs",
|
|
"bump": "node tools/bump-version.mjs",
|
|
"release": "node tools/release.mjs"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^10.0.1",
|
|
"@vitest/coverage-istanbul": "4.1.4",
|
|
"@vitest/coverage-v8": "^4.1.4",
|
|
"cross-env": "^10.1.0",
|
|
"eslint": "^10.2.0",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
"globals": "^17.5.0",
|
|
"jiti": "^2.6.1",
|
|
"typescript": "catalog:",
|
|
"typescript-eslint": "^8.58.2"
|
|
},
|
|
"pnpm": {
|
|
"peerDependencyRules": {
|
|
"allowedVersions": {
|
|
"eslint-plugin-react-hooks>eslint": "10"
|
|
}
|
|
},
|
|
"onlyBuiltDependencies": [
|
|
"better-sqlite3"
|
|
]
|
|
},
|
|
"packageManager": "pnpm@10.28.0",
|
|
"engines": {
|
|
"node": ">=22"
|
|
}
|
|
}
|