55 lines
1.7 KiB
JSON
55 lines
1.7 KiB
JSON
{
|
|
"name": "market-screener",
|
|
"version": "2.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"server": "tsx bin/server.ts",
|
|
"dev": "concurrently -n api,ui -c cyan,magenta \"tsx bin/server.ts\" \"npm run dev --prefix ui\"",
|
|
"ui:install": "npm install --prefix ui --legacy-peer-deps",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "tsx --test --test-reporter=spec tests/*.test.ts",
|
|
"test:watch": "tsx --test --watch --test-reporter=spec tests/*.test.ts",
|
|
"lint": "eslint . --ext .ts,.js",
|
|
"lint:fix": "eslint . --ext .ts,.js --fix",
|
|
"screen:daily": "tsx bin/daily-screen.ts",
|
|
"news:poll": "tsx bin/poll-news.ts",
|
|
"digest:daily": "tsx bin/daily-digest.ts",
|
|
"discord:test": "tsx bin/test-discord.ts",
|
|
"format": "prettier --write \"server/**/*.ts\" \"bin/**/*.ts\" \"tests/**/*.ts\"",
|
|
"format:check": "prettier --check \"server/**/*.ts\" \"bin/**/*.ts\" \"tests/**/*.ts\"",
|
|
"prepare": "husky"
|
|
},
|
|
"lint-staged": {
|
|
"{server,bin,tests}/**/*.{ts,js}": [
|
|
"eslint --fix",
|
|
"prettier --write"
|
|
],
|
|
"ui/src/**/*.ts": [
|
|
"prettier --write"
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/sdk": "^0.100.1",
|
|
"@fastify/cors": "^11.2.0",
|
|
"@fastify/rate-limit": "^10.2.1",
|
|
"better-sqlite3": "^11.10.0",
|
|
"dotenv": "^16.0.0",
|
|
"fastify": "^5.8.5",
|
|
"yahoo-finance2": "^3.15.2"
|
|
},
|
|
"devDependencies": {
|
|
"@types/better-sqlite3": "^7.6.13",
|
|
"@types/node": "^22.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
"@typescript-eslint/parser": "^7.0.0",
|
|
"concurrently": "^10.0.3",
|
|
"eslint": "^8.0.0",
|
|
"eslint-plugin-import": "^2.32.0",
|
|
"husky": "^9.0.0",
|
|
"lint-staged": "^15.0.0",
|
|
"prettier": "^3.0.0",
|
|
"tsx": "^4.0.0",
|
|
"typescript": "^5.0.0"
|
|
}
|
|
}
|