mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
43a3a5217e
The runtime stage installed python3 and build-essential for one reason: when better-sqlite3 12.x could not download its prebuilt binary, node-gyp built the addon against the headers of whatever Node the base image carried that day. Since Node 24.19 those headers give node::ObjectWrap a cleanup hook that the runtime cannot unregister, and the first garbage-collected statement takes the process down with "Assertion failed: (env) != nullptr". The published image was spared only because its prebuild download had succeeded (issue #2421). 13.x is built on N-API, so it never touches that path, and it ships the binaries for amd64 and arm64 inside the npm tarball. Nothing is compiled any more, and the toolchain leaves the Dockerfile. The install runs with --ignore-scripts: a lockfile-driven npm ci still synthesises `node-gyp rebuild` for the binding.gyp it finds and ignores the package's gypfile:false (npm/cli#9837), which without the toolchain would fail the build. Closes #2421
122 lines
3.8 KiB
JSON
122 lines
3.8 KiB
JSON
{
|
|
"name": "@trek/server",
|
|
"version": "4.3.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",
|
|
"gen:plugin-facts": "node --import tsx scripts/gen-plugin-facts.ts",
|
|
"check:plugin-facts": "node --import tsx scripts/gen-plugin-facts.ts --check",
|
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
"format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --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"
|
|
},
|
|
"dependencies": {
|
|
"@aws-lite/client": "^0.23.7",
|
|
"@aws-lite/s3": "^0.2.7",
|
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
"@nestjs/common": "^11.1.24",
|
|
"@nestjs/config": "^4.0.4",
|
|
"@nestjs/core": "^11.1.24",
|
|
"@nestjs/platform-express": "^11.1.24",
|
|
"@nestjs/platform-ws": "^11.1.29",
|
|
"@nestjs/schedule": "^6.1.3",
|
|
"@nestjs/swagger": "^11.4.5",
|
|
"@nestjs/websockets": "^11.1.29",
|
|
"@simplewebauthn/server": "^13.3.2",
|
|
"@trek/shared": "*",
|
|
"archiver": "^6.0.1",
|
|
"bcryptjs": "^2.4.3",
|
|
"better-sqlite3": "^13.0.3",
|
|
"compression": "^1.8.0",
|
|
"cookie-parser": "^1.4.7",
|
|
"cors": "^2.8.5",
|
|
"cron": "^4.4.0",
|
|
"dotenv": "^16.4.1",
|
|
"exifr": "7.1.3",
|
|
"express": "^4.18.3",
|
|
"fast-xml-parser": "^5.5.10",
|
|
"helmet": "^8.1.0",
|
|
"jimp": "^1.6.1",
|
|
"json5": "^2.2.3",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"nestjs-zod": "^5.5.0",
|
|
"nodemailer": "^9.1.1",
|
|
"otplib": "^12.0.1",
|
|
"pdf-parse": "^2.4.5",
|
|
"qrcode": "^1.5.4",
|
|
"reflect-metadata": "^0.2.2",
|
|
"rxjs": "^7.8.2",
|
|
"semver": "^7.7.4",
|
|
"tsconfig-paths": "^4.2.0",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^6.0.2",
|
|
"tz-lookup": "^6.1.25",
|
|
"undici": "^7.29.0",
|
|
"unzipper": "^0.12.3",
|
|
"uuid": "^14.0.0",
|
|
"ws": "^8.21.0",
|
|
"zod": "^4.3.6"
|
|
},
|
|
"overrides": {
|
|
"hono": "^4.12.16",
|
|
"@hono/node-server": "^1.19.13",
|
|
"picomatch": "^4.0.4",
|
|
"ip-address": "^10.1.1",
|
|
"multer": "^2.3.0",
|
|
"ws": "^8.21.0",
|
|
"qs": "^6.15.2",
|
|
"file-type": "^21.3.4"
|
|
},
|
|
"devDependencies": {
|
|
"@aws-lite/s3-types": "^0.2.8",
|
|
"@eslint/js": "^10.0.1",
|
|
"@nestjs/testing": "^11.1.24",
|
|
"@swc/core": "^1.15.40",
|
|
"@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.0",
|
|
"@types/cookie-parser": "^1.4.10",
|
|
"@types/cors": "^2.8.19",
|
|
"@types/express": "^4.17.25",
|
|
"@types/jsonwebtoken": "^9.0.10",
|
|
"@types/multer": "^2.1.0",
|
|
"@types/node": "^25.5.0",
|
|
"@types/nodemailer": "^8.0.1",
|
|
"@types/qrcode": "^1.5.5",
|
|
"@types/semver": "^7.7.1",
|
|
"@types/supertest": "^6.0.3",
|
|
"@types/unzipper": "^0.10.11",
|
|
"@types/uuid": "^10.0.0",
|
|
"@types/ws": "^8.18.1",
|
|
"@vitest/coverage-istanbul": "^4.1.11",
|
|
"@vitest/coverage-v8": "^4.1.11",
|
|
"eslint": "^9.18.0",
|
|
"eslint-config-flat-gitignore": "^2.3.0",
|
|
"eslint-config-prettier": "^10.0.1",
|
|
"eslint-plugin-prettier": "^5.2.2",
|
|
"nodemon": "^3.1.0",
|
|
"prettier": "^3.8.3",
|
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
"supertest": "^7.2.2",
|
|
"typescript-eslint": "^8.58.2",
|
|
"unplugin-swc": "^1.5.9",
|
|
"vitest": "^4.1.11"
|
|
}
|
|
}
|