{ "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" } }