Files
pulse/frontend-modern/package.json
T
rcourtman 2f8a4ec629 Require a Status line on planning documents
Any *_SPEC.md, *_PLAN.md, or *_CONTRACT.md under docs/ must now carry a
Status: line (or a ## Status section) in its header, enforced by the
pre-push lint. A spec, plan, or contract is a record of a decision, not
demand; the 2026-09-01 Home wall case showed what happens when a stale
handoff spec reads as a current signal. Subsystem contract markdown is
governed separately and is not scanned.

The commercial cancellation/reactivation e2e test plan gets the one
missing line so the existing set passes.
2026-09-01 20:52:25 +01:00

98 lines
3.9 KiB
JSON

{
"name": "pulse-modern",
"version": "1.0.0",
"description": "Modern type-safe frontend for Pulse monitoring",
"type": "module",
"author": "rcourtman",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/rcourtman/Pulse.git"
},
"bugs": {
"url": "https://github.com/rcourtman/Pulse/issues"
},
"homepage": "https://github.com/rcourtman/Pulse",
"scripts": {
"dev": "npm --prefix .. run dev",
"dev:lab": "npm --prefix .. run dev:lab",
"dev:logs": "npm --prefix .. run dev:logs",
"dev:restart": "npm --prefix .. run dev:restart",
"dev:restart:lab": "npm --prefix .. run dev:restart:lab",
"dev:backend-restart": "npm --prefix .. run dev:backend-restart",
"dev:status": "npm --prefix .. run dev:status",
"dev:status:lab": "npm --prefix .. run dev:status:lab",
"dev:stop": "npm --prefix .. run dev:stop",
"dev:verify": "npm --prefix .. run dev:verify",
"dev:verify:lab": "npm --prefix .. run dev:verify:lab",
"dev:foreground": "npm --prefix .. run dev:foreground",
"dev:foreground:lab": "npm --prefix .. run dev:foreground:lab",
"dev:frontend-only": "vite",
"build": "node scripts/build-embed-assets.mjs",
"preview": "vite preview",
"generate-types": "cd ../scripts && go run generate-types.go",
"test": "vitest run",
"test:coverage": "vitest run --coverage --coverage.provider=v8 --coverage.include=src/**/*.ts --coverage.include=src/**/*.tsx --coverage.exclude=src/index.tsx",
"test:coverage:ai": "vitest run --coverage --coverage.provider=v8 --coverage.thresholds.100 --coverage.thresholds.perFile --coverage.include=src/components/AI/aiChatUtils.ts",
"type-check": "tsc --noEmit",
"lint": "npm run lint:eslint && npm run lint:theme && npm run lint:copy && npm run lint:canonical-platforms && npm run lint:form-labels && npm run lint:external-domains && npm run lint:planning-docs",
"lint:canonical-platforms": "node scripts/canonical-platform-audit.mjs",
"lint:eslint": "eslint \"src/**/*.{ts,tsx}\"",
"lint:copy": "node scripts/copy-style-audit.mjs",
"lint:form-labels": "node scripts/form-label-audit.mjs",
"lint:external-domains": "node scripts/external-domain-audit.mjs",
"lint:planning-docs": "node scripts/planning-doc-status-audit.mjs",
"lint:theme": "node scripts/theme-audit.mjs",
"lint:headers": "node scripts/header-audit.mjs",
"lint:fix": "eslint \"src/**/*.{ts,tsx}\" --fix",
"lint:cpd": "jscpd",
"format": "prettier --write \"src/**/*.{ts,tsx,css,json}\"",
"format:check": "prettier --check \"src/**/*.{ts,tsx,css,json}\"",
"check:bundlesize": "node scripts/check-bundle-size.mjs"
},
"dependencies": {
"@solidjs/router": "^0.10.10",
"dompurify": "^3.4.13",
"highlight.js": "^11.11.1",
"lucide-solid": "^0.545.0",
"marked": "^17.0.1",
"qrcode": "^1.5.4",
"solid-js": "^1.8.0"
},
"overrides": {
"esbuild": "0.28.1",
"form-data": "^4.0.6",
"seroval": "^1.4.1",
"seroval-plugins": "^1.4.1",
"@babel/core": "^7.29.6",
"js-yaml": "^4.2.0"
},
"devDependencies": {
"@eslint/js": "^9.39.2",
"@solidjs/testing-library": "^0.8.5",
"@tailwindcss/typography": "^0.5.19",
"@testing-library/jest-dom": "^6.5.0",
"@types/node": "^20.10.0",
"@types/qrcode": "^1.5.6",
"@typescript-eslint/eslint-plugin": "^8.24.0",
"@typescript-eslint/parser": "^8.24.0",
"@vitest/coverage-v8": "^3.2.6",
"autoprefixer": "^10.4.0",
"eslint": "^9.20.0",
"eslint-config-prettier": "^10.0.0",
"eslint-plugin-solid": "^0.14.5",
"globals": "^17.3.0",
"jscpd": "^4.0.8",
"jsdom": "^24.1.0",
"postcss": "^8.5.13",
"prettier": "3.9.6",
"tailwindcss": "^3.4.18",
"typescript": "^5.3.0",
"typescript-eslint": "^8.54.0",
"vite": "^6.4.3",
"vite-plugin-solid": "^2.8.0",
"vite-plugin-sri-gen": "^1.3.2",
"vitest": "^3.2.6"
}
}