Files
lobehub__lobehub/packages/utils/package.json
Innei 6b85e332f1 🐛 fix(desktop): pin bundled npm deps through the Desktop lockfile (#19462)
* 🐛 fix(desktop): pin bundled npm deps through the Desktop lockfile

The main hash accepted any npm module that happened to resolve inside apps/desktop/node_modules, so a module linked from outside the frozen install (or from a stale store entry) could enter the renderer OTA hash without the lockfile ever pinning it.

Resolve each bundled module to its package name@version and require apps/desktop/pnpm-lock.yaml to pin it, keeping the file:/link:/git/tarball escape hatch for specifiers that pin by resolution instead of version.

partial-json is imported by packages/utils and packages/context-engine but was never declared, so the Desktop lockfile could not pin it: declare it in both packages and record it in apps/desktop/pnpm-lock.yaml.

* 🔊 chore(desktop): name the changed bundles before a dev restart

The dev orchestrator logged only that a main/preload bundle changed, which cannot distinguish the debounced restart from an unrelated vite rebuild. Collect every file reported by the watcher during the debounce window and print it with its event type, size and mtime.

* 📝 docs(acceptance): publish the round from the session's own observations

A delivery verified on the real product earlier in the session still had to re-run the plan and checker stage to obtain a published round. Document that those observations and artifacts are the evidence: write plan[] and cases[] from them, disclose anything never captured, and ingest.
2026-09-12 12:35:36 +08:00

49 lines
1.2 KiB
JSON

{
"name": "@lobechat/utils",
"version": "1.0.0",
"private": true,
"exports": {
".": "./src/index.ts",
"./server": "./src/server/index.ts",
"./client": "./src/client/index.ts",
"./object": "./src/object.ts",
"./*": "./src/*.ts"
},
"scripts": {
"test": "vitest",
"test:coverage": "vitest --coverage --silent='passed-only'"
},
"dependencies": {
"@lobechat/const": "workspace:*",
"@lobechat/ssrf-safe-fetch": "workspace:*",
"@lobechat/types": "workspace:*",
"@vercel/functions": "^3.7.4",
"brotli-wasm": "^3.0.1",
"chroma-js": "^3.2.0",
"countries-and-timezones": "^3.9.0",
"dayjs": "^1.11.21",
"debug": "^4.4.3",
"dompurify": "^3.4.11",
"es-toolkit": "^1.50.0",
"fast-deep-equal": "^3.1.3",
"file-type": "^21.3.4",
"mime": "^4.1.0",
"model-bank": "workspace:*",
"nanoid": "^5.1.16",
"numeral": "^2.0.6",
"partial-json": "^0.1.7",
"pure-rand": "^7.0.1",
"remark": "^15.0.1",
"remark-gfm": "^4.0.1",
"remark-html": "^16.0.1",
"superjson": "^2.2.6",
"tokenx": "^1.3.0",
"ua-parser-js": "^1.0.41",
"uuid": "^14.0.1",
"yaml": "^2.9.0"
},
"devDependencies": {
"vitest-canvas-mock": "^1.1.4"
}
}