mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-19 13:36:48 +00:00
4a3c97e500
server/CLAUDE.md now says which API new repository code uses: Kysely for join, aggregate and set-based statements, the entity methods for single-table CRUD, no new QueryBuilder calls. The TrekRepository docstring no longer calls Kysely an escape hatch. lint:query-api counts this.qb()/createQueryBuilder() per repository file against a baseline that may only shrink and runs in the server CI job. The same file documents the JSON column and timestamp rules from the two changes before.
146 lines
5.0 KiB
JSON
146 lines
5.0 KiB
JSON
{
|
|
"name": "@trek/server",
|
|
"version": "4.3.3",
|
|
"engines": {
|
|
"node": "^22.22.2 || ^24.15.0 || >=26.0.0"
|
|
},
|
|
"main": "src/index.ts",
|
|
"scripts": {
|
|
"start": "node --require tsconfig-paths/register dist/index.js",
|
|
"dev": "node scripts/dev.mjs",
|
|
"build": "node scripts/build.mjs",
|
|
"start:prod": "node --require tsconfig-paths/register dist/index.js",
|
|
"reset-admin": "node reset-admin.js",
|
|
"typecheck": "tsc --noEmit",
|
|
"typecheck:tests": "tsc -p tsconfig.tests.json --noEmit",
|
|
"typecheck:scripts": "tsc -p tsconfig.scripts.json --noEmit",
|
|
"db:call-graph": "node scripts/db-call-graph.mjs",
|
|
"lint:size": "node scripts/size-lint.mjs",
|
|
"lint:warnings": "node scripts/eslint-ratchet.mjs",
|
|
"lint:format": "node scripts/format-lint.mjs",
|
|
"lint:strict": "node scripts/strict-lint.mjs",
|
|
"lint:boundaries": "node scripts/import-boundaries.mjs",
|
|
"lint:dialect": "node scripts/dialect-lint.mjs",
|
|
"lint:tx": "node scripts/tx-writes.mjs",
|
|
"lint:test-sql": "node scripts/test-sql-ratchet.mjs",
|
|
"lint:query-api": "node scripts/query-api-ratchet.mjs",
|
|
"contracts:dto-open": "node scripts/dto-open-shapes.mjs",
|
|
"gen:plugin-facts": "node --import tsx scripts/gen-plugin-facts.ts",
|
|
"check:plugin-facts": "node --import tsx scripts/gen-plugin-facts.ts --check",
|
|
"gen:entities": "node --import tsx scripts/generate-entities.ts",
|
|
"check:entities": "node --import tsx scripts/generate-entities.ts --check",
|
|
"gen:db-types": "node --import tsx scripts/generate-db-types.ts",
|
|
"check:db-types": "node --import tsx scripts/generate-db-types.ts --check",
|
|
"probe:pg": "node --import tsx scripts/pg-probe.ts",
|
|
"format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
"format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
"lint": "eslint .",
|
|
"lint:fix": "eslint . --fix",
|
|
"lint:check": "eslint .",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:unit": "vitest run tests/unit",
|
|
"test:integration": "vitest run tests/integration",
|
|
"test:ws": "vitest run tests/websocket",
|
|
"test:e2e": "vitest run tests/e2e",
|
|
"test:coverage": "vitest run --coverage"
|
|
},
|
|
"mikro-orm": {
|
|
"configPaths": [
|
|
"./src/mikro-orm.config.ts",
|
|
"./dist/mikro-orm.config.js"
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"@aws-lite/client": "^0.23.7",
|
|
"@aws-lite/s3": "^0.2.7",
|
|
"@mikro-orm/cli": "^7.2.1",
|
|
"@mikro-orm/core": "^7.2.1",
|
|
"@mikro-orm/migrations": "^7.2.1",
|
|
"@mikro-orm/nestjs": "^7.1.0",
|
|
"@mikro-orm/seeder": "^7.2.1",
|
|
"@mikro-orm/sql": "^7.2.1",
|
|
"@mikro-orm/sqlite": "^7.2.1",
|
|
"@modelcontextprotocol/sdk": "^1.31.0",
|
|
"@nestjs/common": "^11.2.5",
|
|
"@nestjs/config": "^4.0.4",
|
|
"@nestjs/core": "^11.2.5",
|
|
"@nestjs/platform-express": "^11.2.5",
|
|
"@nestjs/platform-ws": "^11.2.5",
|
|
"@nestjs/schedule": "^6.1.3",
|
|
"@nestjs/swagger": "^11.4.7",
|
|
"@nestjs/websockets": "^11.2.5",
|
|
"@simplewebauthn/server": "^13.3.3",
|
|
"@trek/shared": "*",
|
|
"archiver": "^6.0.2",
|
|
"bcryptjs": "^2.4.3",
|
|
"better-sqlite3": "^13.0.3",
|
|
"compression": "^1.8.2",
|
|
"cookie-parser": "^1.4.7",
|
|
"cors": "^2.8.6",
|
|
"cron": "^4.4.0",
|
|
"dotenv": "^16.6.1",
|
|
"exifr": "7.1.3",
|
|
"express": "^4.22.3",
|
|
"fast-xml-parser": "^5.11.1",
|
|
"helmet": "^8.3.0",
|
|
"jimp": "^1.6.1",
|
|
"json5": "^2.2.3",
|
|
"jsonwebtoken": "^9.0.3",
|
|
"kysely": "^0.29.6",
|
|
"multer": "^2.4.0",
|
|
"nestjs-zod": "^5.5.0",
|
|
"nodemailer": "^10.0.13",
|
|
"otplib": "^12.0.1",
|
|
"pdf-parse": "^2.4.5",
|
|
"qrcode": "^1.5.4",
|
|
"reflect-metadata": "^0.2.2",
|
|
"rxjs": "^7.8.2",
|
|
"semver": "^7.8.5",
|
|
"tsconfig-paths": "^4.2.0",
|
|
"tsx": "^4.23.15",
|
|
"typescript": "^6.0.3",
|
|
"tz-lookup": "^6.1.25",
|
|
"undici": "^7.30.0",
|
|
"unzipper": "^0.12.5",
|
|
"uuid": "^14.0.2",
|
|
"ws": "^8.21.3",
|
|
"zod": "^4.6.5"
|
|
},
|
|
"devDependencies": {
|
|
"@aws-lite/s3-types": "^0.2.8",
|
|
"@eslint/js": "^10.0.1",
|
|
"@mikro-orm/entity-generator": "^7.2.1",
|
|
"@mikro-orm/postgresql": "^7.2.1",
|
|
"@nestjs/testing": "^11.2.5",
|
|
"@swc/core": "^1.16.2",
|
|
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
|
"@types/archiver": "^7.0.0",
|
|
"@types/bcryptjs": "^2.4.6",
|
|
"@types/better-sqlite3": "^7.6.13",
|
|
"@types/compression": "^1.8.1",
|
|
"@types/cookie-parser": "^1.4.10",
|
|
"@types/cors": "^2.8.19",
|
|
"@types/express": "^4.17.25",
|
|
"@types/jsonwebtoken": "^9.0.10",
|
|
"@types/multer": "^2.2.0",
|
|
"@types/node": "^25.9.8",
|
|
"@types/nodemailer": "^8.0.2",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/semver": "^7.8.0",
|
|
"@types/supertest": "^6.0.3",
|
|
"@types/unzipper": "^0.10.11",
|
|
"@types/ws": "^8.18.1",
|
|
"@vitest/coverage-istanbul": "^4.1.11",
|
|
"eslint": "^9.39.5",
|
|
"eslint-config-flat-gitignore": "^2.4.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"prettier": "^3.9.8",
|
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
"supertest": "^7.2.2",
|
|
"typescript-eslint": "^8.70.0",
|
|
"unplugin-swc": "^1.6.0",
|
|
"vitest": "^4.1.11"
|
|
}
|
|
}
|