Files
photo-live/packages/contracts/package.json
T

48 lines
1.7 KiB
JSON
Raw Normal View History

{
"name": "@photo/contracts",
"version": "0.1.0",
"private": true,
"type": "module",
"description": "API contract single source of truth (OpenAPI 3.1 + error codes); types generated via openapi-typescript and committed under src/generated/. Subpaths ./constants and ./errors are the browser-safe entries (root index re-exports internal-sync with node:crypto — browser apps like viewer must import runtime values from those; errors.ts is pure TS).",
"//": "lint runs `eslint .` against the root flat config (Task 7). test is ts-jest with full type-checking (Task 6 type tests).",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
},
"./constants": {
"types": "./dist/constants.d.ts",
"default": "./dist/constants.js"
},
"./errors": {
"types": "./dist/errors.d.ts",
"default": "./dist/errors.js"
},
"./realtime": {
"types": "./dist/realtime.d.ts",
"default": "./dist/realtime.js"
},
2026-09-17 17:31:11 +08:00
"./openapi.yaml": "./openapi.yaml",
"./package.json": "./package.json"
},
"scripts": {
"gen": "openapi-typescript openapi.yaml -o src/generated/openapi.d.ts",
"lint:api": "redocly lint openapi.yaml",
"build": "tsc -p tsconfig.json && node -e \"require('fs').cpSync('src/generated', 'dist/generated', { recursive: true })\"",
"typecheck": "tsc --noEmit",
"test": "jest",
"lint": "eslint ."
},
"devDependencies": {
"@redocly/cli": "^1.0.0",
"@types/jest": "^29.5.0",
"@types/node": "^22.10.0",
"jest": "^29.7.0",
"openapi-typescript": "^7.0.0",
"ts-jest": "^29.2.0",
"typescript": "^5.6.0"
}
}