Reject inline JavaScript strategy payloads before backtest execution, both at the API boundary and inside runBacktest, so saved profiles and direct internal calls cannot route unsandboxed code into replay handling. Refs: docs/AUDIT_REDESIGN.md item C1. Co-Authored-By: GPT-5 Codex <noreply@openai.com>
86 lines
5.7 KiB
JSON
86 lines
5.7 KiB
JSON
{
|
|
"name": "@bytelyst/trading-backend",
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"description": "ByteLyst Trading backend and execution control service",
|
|
"main": "index.js",
|
|
"scripts": {
|
|
"test": "npm run check:websocket-contract && npm run check:session-rule-normalization && npm run check:api-contract && npm run check:audit-repository && npm run check:market-data-endpoints && npm run check:fmp-cache && npm run check:backtest-strategy-safety",
|
|
"dev": "node --import tsx src/bootstrap.ts",
|
|
"build": "tsc",
|
|
"typecheck": "tsc --noEmit",
|
|
"start": "node dist/backend/src/bootstrap.js",
|
|
"check:schema-contract": "node --import tsx verifySchemaContract.ts",
|
|
"check:rls-policies": "node --import tsx verifyRlsPolicies.ts",
|
|
"check:secret-hygiene": "node --import tsx verifySecretHygiene.ts",
|
|
"check:security-guards": "node --import tsx verifySecurityGuards.ts",
|
|
"check:tenant-isolation": "node --import tsx verifyTenantIsolation.ts",
|
|
"check:trade-executor-lifecycle": "node --import tsx testTradeExecutorLifecycle.ts",
|
|
"check:lifecycle-regressions": "node --import tsx testLifecycleRegressions.ts",
|
|
"check:order-sync-regressions": "node --import tsx testOrderStatusSyncRegressions.ts",
|
|
"check:supabase-order-persistence-regressions": "node --import tsx testSupabaseOrderPersistenceRegressions.ts",
|
|
"check:failure-injection": "node --import tsx testFailureInjection.ts",
|
|
"check:alpaca-subtag": "node --import tsx testAlpacaSubTag.ts",
|
|
"check:strict-capital-guard": "node --import tsx testStrictCapitalGuard.ts",
|
|
"check:reconciliation-parity-heartbeat": "node --import tsx testReconciliationParityHeartbeat.ts",
|
|
"check:reconciliation-watchdog-auto-resume": "node --import tsx testReconciliationWatchdogAutoResume.ts",
|
|
"check:reconciliation-exit-backfill-evidence-guard": "node --import tsx testReconciliationExitBackfillEvidenceGuard.ts",
|
|
"check:backtest-isolation": "node --import tsx testBacktestIsolation.ts",
|
|
"check:session-rule-normalization": "node --import tsx testSessionRuleNormalization.ts",
|
|
"check:api-contract": "node --import tsx verifyApiContract.ts",
|
|
"check:audit-repository": "node --import tsx verifyAuditRepository.ts",
|
|
"check:market-data-endpoints": "node --import tsx verifyMarketDataEndpoints.ts",
|
|
"check:fmp-cache": "node --import tsx testFmpCache.ts",
|
|
"check:backtest-strategy-safety": "node --import tsx testBacktestStrategySafety.ts",
|
|
"check:websocket-contract": "node --import tsx src/scripts/verifyWebsocketContract.ts",
|
|
"coverage:run": "node --loader ts-node/esm runCoverageSuite.ts",
|
|
"coverage:full": "npm run coverage:integration",
|
|
"coverage:integration": "c8 --all --include=src/**/*.ts --exclude=src/index.ts --exclude=src/scripts/** --reporter=text-summary --reporter=json-summary --reporter=lcov node --loader ts-node/esm runCoverageSuite.ts",
|
|
"coverage": "c8 --all --include=src/domain/tradingEnums.ts --include=src/utils/symbolMapper.ts --include=src/connectors/factory.ts --check-coverage --lines 80 --functions 80 --branches 80 --statements 80 --reporter=text-summary --reporter=json-summary --reporter=lcov npx tsx runCriticalCoverageSuite.ts",
|
|
"reconcile:lifecycle-history": "node --loader ts-node/esm reconcileTradeHistoryLifecycle.ts",
|
|
"reconcile:exit-backfill-once": "node --loader ts-node/esm reconcileExitBackfillOnce.ts",
|
|
"reconcile:missing-order-coverage": "node --loader ts-node/esm reconcileMissingOrderCoverage.ts",
|
|
"reconcile:closed-order-fill-data": "node --loader ts-node/esm reconcileClosedOrderFillData.ts",
|
|
"reconcile:subtag-repair": "node --loader ts-node/esm reconcileSubTagRepair.ts",
|
|
"reconcile:attribution-repair": "node --loader ts-node/esm reconcileAttributionRepair.ts",
|
|
"reconcile:capital-ledger-state": "node --loader ts-node/esm reconcileCapitalLedgerState.ts",
|
|
"lint": "npm run check:schema-contract && npm run check:rls-policies && npm run check:secret-hygiene && npm run check:security-guards && npm run check:tenant-isolation",
|
|
"format": "npm run check:trade-executor-lifecycle && npm run check:lifecycle-regressions && npm run check:order-sync-regressions && npm run check:supabase-order-persistence-regressions && npm run check:failure-injection && npm run check:alpaca-subtag && npm run check:strict-capital-guard && npm run check:reconciliation-parity-heartbeat && npm run check:reconciliation-watchdog-auto-resume && npm run check:reconciliation-exit-backfill-evidence-guard && npm run check:backtest-isolation && npm run check:session-rule-normalization && npm run check:websocket-contract",
|
|
"check": "npm run build && npm run lint && npm run format",
|
|
"pre-deploy": "npm run check",
|
|
"cleanup-stale-orders": "node --import tsx src/scripts/cleanupStaleOrders.ts",
|
|
"revert-expired-orders": "node --import tsx src/scripts/revertExpiredOrders.ts"
|
|
},
|
|
"keywords": [],
|
|
"author": "",
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"@azure/cosmos": "^4.3.0",
|
|
"@azure/identity": "^4.10.0",
|
|
"@azure/keyvault-secrets": "^4.9.0",
|
|
"@bytelyst/auth": "file:../vendor/bytelyst/auth",
|
|
"@bytelyst/config": "file:../vendor/bytelyst/config",
|
|
"@bytelyst/cosmos": "file:../vendor/bytelyst/cosmos",
|
|
"@bytelyst/llm": "file:../vendor/bytelyst/llm",
|
|
"@alpacahq/alpaca-trade-api": "^3.1.3",
|
|
"@supabase/supabase-js": "^2.90.1",
|
|
"@types/cors": "^2.8.19",
|
|
"@types/express": "^5.0.6",
|
|
"ccxt": "^4.5.31",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^17.2.3",
|
|
"express": "^5.2.1",
|
|
"jose": "^6.1.2",
|
|
"prom-client": "^15.1.3",
|
|
"socket.io": "^4.8.3",
|
|
"winston": "^3.19.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^25.0.3",
|
|
"c8": "^10.1.3",
|
|
"ts-node": "^10.9.2",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5.9.3"
|
|
}
|
|
}
|