Files
ukmesh/frontend/package.json
gadgethd 1d243222ef chore(sync): reconcile with production deploy tree — features, docs, plans gitignored
Bring main up to date with the live UKMesh production tree, reconciled
per-file (tree-wins for deployed features; main-wins where main evolved
past the tree's lineage; hand-merges for mixed files). Verified locally
on the deploy host: backend + frontend typechecks, backend unit suite
(543 pass / 0 fail), frontend suite (147 pass / 0 fail), OpenAPI
contract check, frontend production build, scripts typecheck.

Highlights:
- Deployed features land: tags + recent tags, owner public feed,
  Viterbi path prewarm and prior rebuilds, region participation,
  owner packet-sharing JWT scope, pathing docs, README updates.
- Main-side hardening retained: CI RAM steps + smoke cleanup trap,
  hardened scripts, gitleaks/logging rules, stale-MQTT observer
  protections, alert-receiver queue module, health-status refactor
  with tree retention additions (owner_packet_share_deliveries +
  public_feed_deliveries @30d, node_status_samples @30d — matching
  live TimescaleDB policies).
- Credential-generation client close restored on the tree's ownerAccess
  so the operator revocation tool (owner-auth:revoke) keeps working.
- Migrations renumbered to follow main's 058/059 ledger migrations:
  055_public_feed, 060_region_scope_participation,
  061_packet_share_owner_scope_and_jwt; migration-registry test
  assertions updated to the final numbering.
- Planning/report artifacts removed from the repo; local plans/, *.bak*
  patterns gitignored (deploy tree tidied to match).
2026-10-14 01:48:11 +00:00

48 lines
1.4 KiB
JSON

{
"name": "meshcore-analytics-frontend",
"version": "1.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"budget": "node scripts/check-performance-budgets.mjs",
"lint:css": "node scripts/check-css-structure.mjs",
"soak:production": "node scripts/soak-production.mjs",
"preview": "vite preview",
"test": "tsx --test $(find src -name '*.test.ts' -print)",
"test:e2e": "playwright test --project=public-desktop --project=dashboard-desktop --project=dashboard-mobile",
"test:mobile": "playwright test mobile.spec.ts --project=mobile-regression"
},
"dependencies": {
"@deck.gl/aggregation-layers": "^9.4.0",
"@deck.gl/core": "^9.4.0",
"@deck.gl/layers": "^9.3.10",
"@deck.gl/mapbox": "^9.4.0",
"fuse.js": "^7.5.0",
"maplibre-gl": "^6.11.2",
"polygon-clipping": "^0.15.7",
"react": "19.3.0",
"react-aria-components": "^1.21.1",
"react-dom": "19.3.0",
"react-is": "^19.3.0",
"react-router": "8.4.0",
"recharts": "^3.10.1",
"zustand": "^5.0.15"
},
"devDependencies": {
"@axe-core/playwright": "^4.13.0",
"@playwright/test": "^1.63.0",
"@types/react": "^19.3.0",
"@types/react-dom": "^19.3.0",
"@vitejs/plugin-react": "^6.1.1",
"postcss": "8.5.28",
"tsx": "^4.23.15",
"typescript": "^7.0.2",
"vite": "^8.3.1"
},
"overrides": {
"postcss": "8.5.28"
}
}