mirror of
https://github.com/gadgethd/ukmesh.git
synced 2026-09-16 20:12:35 +00:00
* Fix map node freshness consistency * Harden output, ingest, caches, and WebSocket limits * Enforce public visibility across derived data * Harden proxy and operator deployment boundary * Make owner grants authoritative and reconcile ACLs safely * Bound path, spam, and statistics analysis * Make link and coverage jobs crash-safe * Implement strategic security remediation * Fix production cutover configuration * Fix disabled viewshed worker health signal * Serve stale stats during background refresh * Retain stale stats through refresh windows * Bound analytics work to protect ingestion * Prioritize summary warmup over chart scans * Throttle path history rebuilds * Bound path history result memory * Stream path history aggregation * Give bounded path rebuild one CPU * Serve stale charts during bounded refresh * Prioritize startup stats before chart scans * Bound path history segment cardinality * Pin path rebuild context to privacy generation * Self-host original frontend fonts * Allow bounded path rebuild to complete * Improve live map UI and low-latency group feed - Dock node details on the right with selection highlight and collapsible layers - Add node legend, 24h activity sparkline, copy-link, and layout/overlap fixes - Keep all repeaters visible during Live Path focus - Send GroupText feed packets immediately over WebSocket (no batch delay) - Cache expensive stats/observer activity more aggressively to protect ingest - Remove stale local planning/audit markdown from the tree * fix(ci): supply OPERATOR_SITE_TOKEN for compose validation Workers/Compose CI failed because docker-compose requires OPERATOR_SITE_TOKEN. Add CI placeholders for that and MQTT_PASSWORD.
44 lines
1.3 KiB
JSON
44 lines
1.3 KiB
JSON
{
|
|
"name": "meshcore-analytics-backend",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"dev": "tsx watch src/index.ts",
|
|
"spam:recompute": "node dist/tools/recomputeSpamSuspects.js",
|
|
"spam:messages": "node dist/tools/recomputeSpamMessages.js",
|
|
"db:migrate": "node dist/tools/migrate.js",
|
|
"stats:backfill-rollups": "node dist/tools/backfillStatsRollups.js",
|
|
"owner-auth:inventory": "node dist/tools/inventoryOwnerAuthorization.js",
|
|
"bench:decode": "tsx src/tools/benchmarkPacketDecode.ts",
|
|
"load:realtime": "tsx src/tools/loadRealtime.ts",
|
|
"test": "node --import tsx --test $(find src -name '*.test.ts' -print)",
|
|
"typecheck": "tsc --noEmit",
|
|
"start": "node dist/index.js"
|
|
},
|
|
"dependencies": {
|
|
"@michaelhart/meshcore-decoder": "^0.3.0",
|
|
"compression": "^1.7.4",
|
|
"cors": "^2.8.5",
|
|
"dockerode": "^5.0.1",
|
|
"express": "^4.19.2",
|
|
"express-rate-limit": "^7.4.1",
|
|
"ioredis": "^5.4.1",
|
|
"mqtt": "^5.10.1",
|
|
"pg": "^8.13.1",
|
|
"ws": "^8.18.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/compression": "^1.7.5",
|
|
"@types/cors": "^2.8.17",
|
|
"@types/dockerode": "^4.0.1",
|
|
"@types/express": "^4.17.21",
|
|
"@types/node": "^20.17.6",
|
|
"@types/pg": "^8.11.10",
|
|
"@types/ws": "^8.5.12",
|
|
"tsx": "^4.19.1",
|
|
"typescript": "^5.6.3"
|
|
}
|
|
}
|