mirror of
https://github.com/gadgethd/ukmesh.git
synced 2026-10-20 13:02:05 +00:00
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).
58 lines
2.7 KiB
JSON
58 lines
2.7 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",
|
|
"regions:rebuild": "node dist/tools/rebuildRegionParticipation.js",
|
|
"db:migrate": "node dist/tools/migrate.js",
|
|
"stats:backfill-rollups": "node dist/tools/backfillStatsRollups.js",
|
|
"stats:backfill-multibyte": "node dist/tools/backfillMultibytePathFacts.js",
|
|
"stats:seed-chart-snapshot": "node dist/tools/seedStatsChartSnapshot.js",
|
|
"db:lifecycle": "node dist/tools/dataLifecycle.js",
|
|
"owner-auth:inventory": "node dist/tools/inventoryOwnerAuthorization.js",
|
|
"owner-auth:revoke": "node dist/tools/revokeOwnerSessions.js",
|
|
"owner-packet-share:encrypt-secret": "node dist/tools/encryptPacketShareSecret.js",
|
|
"owner-packet-share:prepare-scotmesh": "node dist/tools/prepareScotmesh.js",
|
|
"owner-packet-share:provision-scotmesh": "node dist/tools/provisionScotmesh.js",
|
|
"analysis:cleanup-orphans": "node dist/tools/cleanupOrphanedAnalysisRuns.js",
|
|
"bench:decode": "tsx src/tools/benchmarkPacketDecode.ts",
|
|
"path:accuracy": "tsx src/tools/pathAccuracy.ts",
|
|
"load:realtime": "tsx src/tools/loadRealtime.ts",
|
|
"test": "node --import tsx --test $(find src -name '*.test.ts' ! -name '*.integration.test.ts' -print) && bash ../scripts/test-alert-receiver.sh",
|
|
"test:analysis-integration": "node --import tsx --test src/analysis/runState.integration.test.ts",
|
|
"test:ingest-integration": "timeout 300s node --import tsx --test src/db/packetBatch.integration.test.ts src/db/recentRead.integration.test.ts && timeout 90s node --import tsx --test src/ram/ram.integration.test.ts && timeout 60s node --import tsx --test src/ws/publicAuthorization.integration.test.ts",
|
|
"test:ram-operational": "timeout 300s node ../scripts/test-ram-redis-acl.mjs",
|
|
"typecheck": "tsc --noEmit",
|
|
"contract:generate": "tsx src/tools/generateOpenApi.ts",
|
|
"contract:check": "tsx src/tools/generateOpenApi.ts --check",
|
|
"start": "node dist/index.js"
|
|
},
|
|
"dependencies": {
|
|
"@michaelhart/meshcore-decoder": "^0.3.0",
|
|
"compression": "^1.8.2",
|
|
"cors": "^2.8.5",
|
|
"express": "^5.2.1",
|
|
"express-rate-limit": "^8.7.0",
|
|
"ioredis": "^6.0.0",
|
|
"mqtt": "^5.16.0",
|
|
"pg": "^8.23.0",
|
|
"prom-client": "^15.1.3",
|
|
"ws": "^8.22.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/compression": "^1.7.5",
|
|
"@types/cors": "^2.8.17",
|
|
"@types/express": "^5.0.6",
|
|
"@types/node": "^26.6.3",
|
|
"@types/pg": "^8.23.1",
|
|
"@types/ws": "^8.5.12",
|
|
"tsx": "^4.23.15",
|
|
"typescript": "^7.0.2"
|
|
}
|
|
}
|