{ "name": "server", "version": "1.0.0", "description": "", "type": "module", "scripts": { "build": "tsc && npm run copy-assets", "copy-assets": "copyfiles \"lib/**/*.lua\" transpiled/", "start": "tsc-watch --onSuccess \"node --trace-warnings --require dotenv/config ./transpiled/bin/www.js\"", "start:trace": "tsc-watch --onSuccess \"node --trace-warnings --require dotenv/config --require ../nodejs-instrumentation/transpiled/autoinstrumentation.js ./transpiled/bin/www.js\"", "test": "npm run test:local", "test:local": "NODE_OPTIONS=\"--no-warnings --loader ts-node/esm --require dotenv/config\" jest --watch --detectOpenHandles", "test:prepush": "NODE_OPTIONS=\"--no-warnings --loader ts-node/esm --require dotenv/config\" jest --detectOpenHandles --no-cache --forceExit", "test:ci": "NODE_OPTIONS=\"--loader ts-node/esm\" jest --ci --reporters=default --silent=false --reporters=jest-junit --no-cache --forceExit --runInBand", "test:integ": "NODE_OPTIONS=\"--loader ts-node/esm\" jest --ci --reporters=default --silent=false --reporters=jest-junit --detectOpenHandles --no-cache --forceExit --config jest.integ.config.cjs", "typecheck": "tsc --noEmit", "check:prepush": "npm run typecheck && npm run test:prepush", "lint": "eslint \"./**/*.{ts,tsx,js}\"", "runWorkerOrJob": "node --loader ts-node/esm --require dotenv/config bin/run-worker-or-job.ts", "create-org": "node --loader ts-node/esm --require dotenv/config bin/create-org-and-user.ts", "get-invite": "node --loader ts-node/esm --require dotenv/config bin/get-invite-token.ts" }, "author": "Roostorg", "license": "ISC", "dependencies": { "@apollo/server": "^5.5.0", "@as-integrations/express5": "^1.1.2", "@aws-sdk/client-s3": "^3.1017.0", "@aws-sdk/client-secrets-manager": "^3.1017.0", "@aws-sdk/client-ses": "^3.1017.0", "@clickhouse/client": "^1.13.0", "@ethanresnick/bottlejs": "^2.0.4", "@google-cloud/translate": "^9.3.0", "@googlemaps/google-maps-services-js": "^3.3.16", "@graphql-tools/merge": "^8.2.10", "@graphql-tools/schema": "^8.5.1", "@graphql-tools/utils": "^9.2.1", "@node-saml/passport-saml": "^5.1.0", "@opentelemetry/api": "^1.8.0", "@opentelemetry/semantic-conventions": "^1.22.0", "@roostorg/coop-integration-example": "^2.0.0", "@roostorg/types": "^2.0.0", "@sendgrid/mail": "^8.1.6", "@stdlib/stats-binomial-test": "^0.0.7", "@total-typescript/ts-reset": "^0.3.7", "@types/bcryptjs": "^2.4.2", "@types/connect-pg-simple": "^7.0.0", "@types/cookie-parser": "^1.4.2", "@types/debug": "^4.1.5", "@types/express": "^5.0.3", "@types/express-session": "^1.17.4", "@types/jsonwebtoken": "^9.0.10", "@types/lodash": "^4.14.179", "@types/morgan": "^1.9.3", "@types/node": "^18.11.9", "@types/passport": "^1.0.7", "@types/pg-cursor": "^2.7.0", "@types/validator": "^13.7.0", "@types/yargs": "^17.0.32", "ajv": "^8.18.0", "ajv-draft-04": "^1.0.0", "bcryptjs": "^2.4.3", "bullmq": "^5.0.0", "cassandra-driver": "^4.8.0", "cls-hooked": "^4.2.2", "connect-pg-simple": "^7.0.0", "cors": "^2.8.5", "dataloader": "^2.1.0", "date-fns": "^2.30.0", "eslint-plugin-switch-statement": "^0.0.11", "express": "^5.1.0", "express-session": "^1.17.2", "fast-check": "^4.6.0", "form-data": "^4.0.0", "form-data-encoder": "^4.0.2", "formdata-node": "^6.0.3", "fuzzball": "^2.1.2", "generic-pool": "^3.8.2", "graphql": "^16.13.2", "graphql-depth-limit": "^1.1.0", "graphql-passport": "^0.6.4", "graphql-scalars": "^1.19.0", "helmet": "^8.1.0", "ioredis": "^5.2.4", "jsonwebtoken": "^9.0.3", "kysely": "^0.28.16", "latlon-geohash": "^2.0.0", "lodash": "^4.18.1", "lru_map": "^0.4.1", "node-worker-threads-pool": "^1.5.1", "normalize-text": "^2.4.1", "openai": "^4.24.0", "p-limit": "^4.0.0", "passport": "^0.7.0", "pg": "^8.8.0", "pg-cursor": "^2.7.4", "pipeline-segment": "^0.0.6", "safe-stable-stringify": "^2.4.2", "sequelize": "^6.37.8", "size-limited-map": "^2.0.0", "stream-json": "^1.8.0", "stream-to-async-iterator": "^1.0.0", "stream-to-blob": "^2.0.1", "ts-pattern": "^5.0.5", "type-fest": "^4.3.2", "uid": "^2.0.1", "undici": "^7.24.0", "unhomoglyph": "^1.0.6", "uuid": "^14.0.0", "uuid-apikey": "^1.5.3", "validator": "^13.15.35", "xml-js": "^1.6.11", "yargs": "^17.7.2" }, "devDependencies": { "@eslint/compat": "^2.0.3", "@eslint/eslintrc": "^3.3.5", "@eslint/js": "^9.39.4", "@faker-js/faker": "^7.5.0", "@types/cls-hooked": "^4.3.3", "@types/cors": "^2.8.19", "@types/express-serve-static-core": "^5.1.1", "@types/graphql-depth-limit": "^1.1.6", "@types/jest": "^29.2.4", "@types/js-yaml": "^4.0.5", "@types/stream-json": "^1.7.7", "@types/supertest": "^2.0.11", "@typescript-eslint/eslint-plugin": "^8.57.2", "@typescript-eslint/parser": "^8.57.2", "copyfiles": "^2.4.1", "dotenv": "^10.0.0", "eslint": "^9.39.4", "eslint-import-resolver-typescript": "^3.6.0", "eslint-plugin-functional": "^9.0.4", "eslint-plugin-import": "^2.28.1", "eslint-plugin-jsdoc": "^62.5.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^7.2.1", "eslint-plugin-security": "^1.7.1", "jest": "^29.3.1", "jest-junit": "^16.0.0", "jest-light-runner": "^0.4.1", "js-yaml": "^4.1.0", "jsonpath-plus": "^10.4.0", "supertest": "^6.2.2", "ts-node": "^10.9.1", "tsc-watch": "^4.6.0", "typescript": "^5.5.2", "typescript-eslint": "^8.57.2" }, "jest-junit": { "outputDirectory": "reports", "outputName": "jest-junit.xml", "ancestorSeparator": " › ", "uniqueOutputName": "false", "suiteNameTemplate": "{filepath}", "classNameTemplate": "{classname}", "titleTemplate": "{title}" }, "//": "Use an override to remove the @types/restify dependency, b/c it conflicts w/ pino-http. And a fork of retry-axios that has fixed type defs for TS's new module resolution algorithm. Also pin @types/express to v5 across the dep tree so transitive deps (e.g. @node-saml/passport-saml) don't drag in v4 types alongside our v5 types.", "overrides": { "@types/restify": "npm:pino@8.6.0", "@types/express": "$@types/express", "@googlemaps/google-maps-services-js@^3.3.16": { "retry-axios": "npm:@ethanresnick/retry-axios@2.6.1" }, "uuid": "^14.0.0", "fast-xml-parser": "^5.7.0" } }