Files
speckle-server/packages/server/package.json
T
2025-09-29 13:55:55 +03:00

239 lines
8.8 KiB
JSON

{
"name": "@speckle/server",
"version": "2.5.4",
"private": true,
"description": "",
"homepage": "https://github.com/specklesystems/server",
"author": "AEC Systems",
"license": "SEE LICENSE IN readme.md",
"main": "./bin/www",
"repository": {
"type": "git",
"url": "https://github.com/specklesystems/Server.git"
},
"type": "module",
"engines": {
"node": "^22.17.1"
},
"scripts": {
"build": "tsc -p ./tsconfig.build.json",
"build:watch": "tsc -p ./tsconfig.build.json -w",
"run:watch": "cross-env NODE_ENV=development LOG_PRETTY=true TSX=true nodemon ./run.ts",
"run:watch:js": "cross-env NODE_ENV=development LOG_PRETTY=true nodemon --import=./esmLoader.js ./bin/www --watch ./dist",
"dev": "concurrently \"npm:run:watch\" \"yarn gqlgen:watch\" -n server,gqlgen",
"dev:js": "concurrently \"npm:build:watch\" \"npm:run:watch:js\" \"yarn gqlgen:watch\" -n tsc,server,gqlgen",
"build:clean": "rimraf ./dist && yarn build",
"dev:clean": "yarn build:clean && yarn dev",
"ts-mocha": "node --experimental-strip-types --experimental-transform-types --import ./esmLoader.js ./bin/mocha",
"ts-gqlgen": "tsx --import ./esmLoader.js ./bin/gqlgen",
"test": "cross-env TSX=true NODE_ENV=test LOG_FILTER=test LOG_PRETTY=true yarn ts-mocha",
"test:all-ff": "cross-env ENABLE_ALL_FFS=true yarn test",
"test:multiregion": "cross-env RUN_TESTS_IN_MULTIREGION_MODE=true FF_WORKSPACES_MODULE_ENABLED=true FF_WORKSPACES_MULTI_REGION_ENABLED=true FF_MOVE_PROJECT_REGION_ENABLED=true yarn test:report -g '@multiregion'",
"test:no-ff": "cross-env DISABLE_ALL_FFS=true yarn test",
"test:coverage": "cross-env NODE_ENV=test LOG_FILTER=test LOG_PRETTY=true c8 yarn test",
"test:report": "MOCHA_FILE=reports/test-results.xml yarn test:coverage -- --reporter mocha-multi --reporter-options spec=-,mocha-junit-reporter=reports/test-results.xml",
"lint": "yarn lint:tsc && yarn lint:eslint",
"lint:ci": "yarn lint:tsc",
"lint:tsc": "tsc --noEmit",
"lint:eslint": "eslint .",
"cli": "cross-env LOG_LEVEL=debug LOG_PRETTY=true NODE_ENV=development TSX=true tsx --import ./esmLoader.js ./modules/cli/index.ts",
"cli:test": "cross-env LOG_LEVEL=debug LOG_PRETTY=true NODE_ENV=test TSX=true tsx --import ./esmLoader.js ./modules/cli/index.ts",
"cli:test:multiregion": "cross-env RUN_TESTS_IN_MULTIREGION_MODE=true yarn cli:test",
"cli:download:commit": "cross-env LOG_PRETTY=true LOG_LEVEL=debug yarn cli download commit",
"cli:purge-test-dbs": "yarn cli:test db purge-test-dbs",
"migrate": "yarn cli db migrate",
"migrate:test": "cross-env NODE_ENV=test tsx --import ./esmLoader.js ./modules/cli/index.js db migrate",
"gqlgen": "yarn ts-gqlgen --config codegen.ts",
"gqlgen:watch": "yarn gqlgen --watch",
"stripe:listen": "stripe listen --forward-to 127.0.0.1:3000/api/v1/billing/webhooks"
},
"dependencies": {
"@apollo/client": "^3.7.0",
"@apollo/server": "^4.11.0",
"@aws-sdk/client-s3": "^3.276.0",
"@aws-sdk/lib-storage": "^3.100.0",
"@aws-sdk/s3-request-presigner": "3.352.0",
"@bull-board/express": "^6.12.7",
"@godaddy/terminus": "^4.9.0",
"@graphql-tools/mock": "^9.0.4",
"@graphql-tools/schema": "^10.0.6",
"@isaacs/ttlcache": "^1.4.1",
"@lifeomic/attempt": "^3.1.0",
"@mailchimp/mailchimp_marketing": "^3.0.80",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/exporter-trace-otlp-proto": "^0.53.0",
"@opentelemetry/instrumentation-express": "^0.42.0",
"@opentelemetry/instrumentation-graphql": "^0.43.0",
"@opentelemetry/instrumentation-http": "^0.53.0",
"@opentelemetry/instrumentation-knex": "^0.40.0",
"@opentelemetry/instrumentation-pino": "^0.42.0",
"@opentelemetry/sdk-trace-node": "^1.26.0",
"@speckle/objectloader": "workspace:^",
"@speckle/shared": "workspace:^",
"ajv": "^8.12.0",
"bcrypt": "^5.0.0",
"bull": "^4.16.4",
"bull-board": "^2.1.3",
"busboy": "^1.4.0",
"compression": "^1.7.4",
"connect-redis": "^6.1.1",
"content-disposition": "^0.5.4",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"cross-fetch": "^3.1.5",
"crypto-random-string": "^3.2.0",
"dataloader": "^2.2.3",
"dayjs": "^1.11.5",
"dotenv": "^8.2.0",
"ejs": "^3.1.8",
"eventemitter2": "^6.4.7",
"express": "^4.20.0",
"express-async-errors": "^3.1.1",
"express-prom-bundle": "^6.6.0",
"express-session": "^1.17.1",
"extensionless": "^1.9.9",
"graphql": "^16.6.0",
"graphql-redis-subscriptions": "^2.2.2",
"graphql-scalars": "^1.24.1",
"graphql-subscriptions": "^2.0.0",
"graphql-tag": "^2.12.6",
"ioredis": "^5.2.2",
"join-images": "^1.1.5",
"jose": "^5.6.3",
"knex": "^2.5.1",
"libsodium-wrappers": "^0.7.13",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"lru-cache": "^11.0.1",
"mixpanel": "^0.17.0",
"mjml": "^4.13.0",
"mjml-bullet-list": "^1.2.2",
"module-alias": "^2.2.2",
"netmask": "^2.0.2",
"node-cron": "^3.0.2",
"node-machine-id": "^1.1.12",
"nodemailer": "^6.5.0",
"openid-client": "^5.1.7",
"passport": "^0.6.0",
"passport-azure-ad": "^4.3.4",
"passport-github2": "^0.1.12",
"passport-google-oauth2": "^0.2.0",
"passport-google-oauth20": "^2.0.0",
"pg": "^8.7.3",
"pg-query-stream": "^4.2.3",
"pino": "^8.7.0",
"pino-http": "^8.6.1",
"pino-pretty": "^13.0.0",
"prom-client": "^14.0.1",
"rate-limiter-flexible": "^2.4.1",
"response-time": "^2.3.2",
"sanitize-html": "^2.7.1",
"sharp": "^0.34.3",
"string-pixel-width": "^1.10.0",
"stripe": "^17.1.0",
"subscriptions-transport-ws": "^0.11.0",
"true-myth": "^8.5.0",
"ua-parser-js": "^1.0.38",
"undici": "^5.28.4",
"verror": "^1.10.1",
"xml-escape": "^1.1.0",
"znv": "^0.4.0",
"zod": "^3.22.4",
"zod-express": "^0.0.8",
"zod-validation-error": "^1.5.0",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@apollo/rover": "^0.35.0",
"@faker-js/faker": "^8.4.1",
"@graphql-codegen/cli": "^5.0.7",
"@graphql-codegen/typed-document-node": "^5.1.2",
"@graphql-codegen/typescript": "^4.1.6",
"@graphql-codegen/typescript-operations": "^4.6.1",
"@graphql-codegen/typescript-resolvers": "^4.5.1",
"@parcel/watcher": "^2.5.1",
"@tiptap/core": "^2.0.0-beta.176",
"@types/bcrypt": "^5.0.0",
"@types/bull": "^3.15.9",
"@types/busboy": "^1.5.4",
"@types/chai-as-promised": "^7.1.8",
"@types/compression": "^1.7.2",
"@types/connect-redis": "^0.0.23",
"@types/content-disposition": "^0.5.9",
"@types/cookie-parser": "^1.4.7",
"@types/cors": "^2.8.17",
"@types/deasync": "^0",
"@types/debug": "^4.1.7",
"@types/deep-equal-in-any-order": "^1.0.1",
"@types/ejs": "^3.1.1",
"@types/express": "^4.17.13",
"@types/ioredis-mock": "^8.2.5",
"@types/libsodium-wrappers": "^0",
"@types/lodash": "^4.14.180",
"@types/lodash-es": "^4.17.12",
"@types/mailchimp__mailchimp_marketing": "^3.0.9",
"@types/mjml": "^4.7.0",
"@types/mocha": "^10.0.0",
"@types/module-alias": "^2.0.1",
"@types/netmask": "^2.0.0",
"@types/node": "^18.19.38",
"@types/node-cron": "^3.0.2",
"@types/nodemailer": "^6.4.5",
"@types/passport": "^1.0.16",
"@types/passport-azure-ad": "^4.3.6",
"@types/passport-github2": "^1.2.9",
"@types/passport-google-oauth20": "^2.0.16",
"@types/pg": "^8.6.6",
"@types/pino-http": "^5.8.4",
"@types/sanitize-html": "^2.6.2",
"@types/string-pixel-width": "^1.10.3",
"@types/supertest": "^2.0.12",
"@types/ua-parser-js": "^0.7.39",
"@types/uuid": "^9.0.0",
"@types/verror": "^1.10.6",
"@types/xml-escape": "^1.1.3",
"@types/yargs": "^17.0.33",
"@types/zxcvbn": "^4.4.5",
"@typescript-eslint/eslint-plugin": "^5.39.0",
"@typescript-eslint/parser": "^5.39.0",
"axios": "^1.12.0",
"c8": "^10.1.3",
"chai": "^4.2.0",
"chai-as-promised": "^7.1.2",
"chai-http": "^4.3.0",
"concurrently": "^7.0.0",
"cross-env": "^7.0.3",
"csv-parse": "^5.6.0",
"deasync": "^0.1.30",
"deep-equal-in-any-order": "^1.1.15",
"enforce-unique": "^1.3.0",
"eslint": "^8.11.0",
"eslint-config-prettier": "^8.5.0",
"http-proxy-middleware": "v3.0.0-beta.0",
"ioredis-mock": "^8.9.0",
"mocha": "^10.1.0",
"mocha-junit-reporter": "^2.0.2",
"mocha-multi": "1.1.7",
"mock-socket": "^9.3.1",
"moq.ts": "10.0.8",
"node-mocks-http": "^1.12.1",
"nodemon": "^3.1.9",
"prettier": "^2.5.1",
"rimraf": "^5.0.7",
"supertest": "^4.0.2",
"tsconfig-paths": "^4.0.0",
"tsx": "^4.19.4",
"type-fest": "^4.26.1",
"typescript": "^4.6.4",
"typescript-eslint": "^7.12.0",
"why-is-node-running": "^3.2.2",
"ws": "^8.17.1",
"yargs": "^18.0.0"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
}