Files
open-design/package.json
T
yinjialuandGitHub e94acc2702 add cross-app import boundary check to pnpm guard (#4069)
* feat(guard): enforce the cross-app import boundary in pnpm guard

Adds a cross-app import check that scans apps/* sources for imports
reaching into another app (relative paths, @open-design/<app> package
specifiers, or apps/-rooted paths) and fails pnpm guard with the
offending file:line. The web/daemon integration boundary (HTTP APIs +
packages/contracts) was previously enforced only by human review.

The deliberate packaged -> desktop ./main export is allowlisted with a
documented reason; further exceptions must be added the same way.

* fix(guard): harden cross-app import scanning

Generated-By: looper 0.9.6 (runner=fixer, agent=codex)

* fix(guard): fail on unreadable app manifests

Generated-By: looper 0.9.6 (runner=fixer, agent=codex)

* fix(guard): reject unnamed app manifests

Generated-By: looper 0.9.6 (runner=fixer, agent=codex)

* fix(guard): catch require.resolve app imports

Generated-By: looper 0.9.6 (runner=fixer, agent=codex)

* fix(guard): detect createRequire app imports

Generated-By: looper 0.9.6 (runner=fixer, agent=codex)

* fix(guard): catch CommonJS node module createRequire

Generated-By: looper 0.9.6 (runner=fixer, agent=codex)
2026-06-10 11:40:31 +00:00

66 lines
2.5 KiB
JSON

{
"name": "open-design",
"version": "0.10.0",
"private": true,
"packageManager": "pnpm@10.33.2",
"type": "module",
"description": "Local-first design product: detects your installed code-agent CLI, runs design skills + design systems, streams artifacts into a sandboxed preview.",
"license": "Apache-2.0",
"bin": {
"od": "./apps/daemon/bin/od.mjs"
},
"scripts": {
"postinstall": "node ./scripts/postinstall.mjs",
"tools-dev": "pnpm exec tools-dev",
"tools-pack": "pnpm exec tools-pack",
"tools-serve": "pnpm exec tools-serve",
"nix:update-hash": "node --experimental-strip-types ./scripts/update-nix-pnpm-deps-hash.ts",
"guard": "tsx ./scripts/guard.ts && node --import tsx --test scripts/style-policy.test.ts scripts/product-neutrality.test.ts scripts/check-cross-app-imports.test.ts scripts/approve-fork-pr-workflows.test.ts scripts/postinstall.test.ts",
"i18n:check": "tsx ./scripts/i18n-check.ts",
"i18n:coverage": "tsx ./scripts/i18n-coverage-report.ts",
"sync:community-pets": "node --experimental-strip-types scripts/sync-community-pets.ts",
"bake:community-pets": "node --experimental-strip-types scripts/bake-community-pets.ts",
"seed:test-projects": "node --experimental-strip-types scripts/seed-test-projects.ts",
"seed:curated-design-skills": "node --experimental-strip-types scripts/seed-curated-design-skills.ts",
"backfill:failed-runs": "node --experimental-strip-types scripts/backfill-failed-runs-with-artifacts.ts",
"typecheck": "pnpm -r --workspace-concurrency=4 --if-present run typecheck && tsc -p scripts/tsconfig.json --noEmit"
},
"devDependencies": {
"@open-design/components": "workspace:*",
"@open-design/daemon": "workspace:*",
"@open-design/tools-dev": "workspace:*",
"@open-design/tools-pack": "workspace:*",
"@open-design/tools-serve": "workspace:*",
"@types/node": "20.19.39",
"tsx": "4.22.3",
"typescript": "5.9.3"
},
"engines": {
"node": "~24",
"pnpm": ">=10.33.2 <11"
},
"pnpm": {
"overrides": {
"brace-expansion": "5.0.6",
"devalue": "5.8.1",
"fast-uri": "3.1.2",
"hono": "4.12.19",
"ip-address": "10.2.0",
"postcss": "8.5.15",
"protobufjs": "8.4.0",
"qs": "6.15.2",
"tmp": "0.2.7",
"yaml": "2.9.0"
},
"onlyBuiltDependencies": [
"better-sqlite3",
"core-js",
"electron",
"electron-winstaller",
"esbuild",
"protobufjs",
"sharp"
]
}
}