{ "name": "@affine/server", "private": true, "version": "0.11.0", "description": "Affine Node.js server", "type": "module", "bin": { "run-test": "./scripts/run-test.ts" }, "scripts": { "build": "tsc", "start": "node --loader ts-node/esm/transpile-only.mjs --es-module-specifier-resolution node ./src/index.ts", "dev": "nodemon ./src/index.ts", "test": "ava --concurrency 1 --serial", "test:coverage": "c8 ava --concurrency 1 --serial", "postinstall": "prisma generate", "data-migration": "node --loader ts-node/esm/transpile-only.mjs --es-module-specifier-resolution node ./src/data/app.ts", "predeploy": "yarn prisma migrate deploy && node --es-module-specifier-resolution node ./dist/data/app.js run" }, "dependencies": { "@apollo/server": "^4.9.5", "@auth/prisma-adapter": "^1.0.7", "@aws-sdk/client-s3": "^3.454.0", "@google-cloud/opentelemetry-cloud-monitoring-exporter": "^0.17.0", "@google-cloud/opentelemetry-cloud-trace-exporter": "^2.1.0", "@keyv/redis": "^2.8.0", "@nestjs/apollo": "^12.0.11", "@nestjs/common": "^10.2.10", "@nestjs/core": "^10.2.10", "@nestjs/event-emitter": "^2.0.3", "@nestjs/graphql": "^12.0.11", "@nestjs/platform-express": "^10.2.10", "@nestjs/platform-socket.io": "^10.2.10", "@nestjs/schedule": "^4.0.0", "@nestjs/throttler": "^5.0.1", "@nestjs/websockets": "^10.2.10", "@node-rs/argon2": "^1.5.2", "@node-rs/crc32": "^1.7.2", "@node-rs/jsonwebtoken": "^0.2.3", "@opentelemetry/api": "^1.7.0", "@opentelemetry/core": "^1.19.0", "@opentelemetry/exporter-prometheus": "^0.46.0", "@opentelemetry/exporter-zipkin": "^1.19.0", "@opentelemetry/host-metrics": "^0.34.0", "@opentelemetry/instrumentation": "^0.46.0", "@opentelemetry/instrumentation-graphql": "^0.36.0", "@opentelemetry/instrumentation-http": "^0.46.0", "@opentelemetry/instrumentation-ioredis": "^0.36.0", "@opentelemetry/instrumentation-nestjs-core": "^0.33.3", "@opentelemetry/instrumentation-socket.io": "^0.34.4", "@opentelemetry/resources": "^1.19.0", "@opentelemetry/sdk-metrics": "^1.19.0", "@opentelemetry/sdk-node": "^0.46.0", "@opentelemetry/sdk-trace-node": "^1.19.0", "@prisma/client": "^5.7.1", "@prisma/instrumentation": "^5.7.1", "@socket.io/redis-adapter": "^8.2.1", "cookie-parser": "^1.4.6", "dotenv": "^16.3.1", "express": "^4.18.2", "file-type": "^18.7.0", "get-stream": "^8.0.1", "graphql": "^16.8.1", "graphql-type-json": "^0.3.2", "graphql-upload": "^16.0.2", "ioredis": "^5.3.2", "keyv": "^4.5.4", "lodash-es": "^4.17.21", "nanoid": "^5.0.3", "nest-commander": "^3.12.2", "nestjs-throttler-storage-redis": "^0.4.1", "next-auth": "^4.24.5", "nodemailer": "^6.9.7", "on-headers": "^1.0.2", "parse-duration": "^1.1.0", "pretty-time": "^1.1.0", "prisma": "^5.7.1", "prom-client": "^15.0.0", "reflect-metadata": "^0.2.0", "rxjs": "^7.8.1", "semver": "^7.5.4", "socket.io": "^4.7.2", "stripe": "^14.5.0", "ws": "^8.14.2", "yjs": "^13.6.10", "zod": "^3.22.4" }, "devDependencies": { "@affine-test/kit": "workspace:*", "@affine/storage": "workspace:*", "@napi-rs/image": "^1.7.0", "@nestjs/testing": "^10.2.10", "@types/cookie-parser": "^1.4.6", "@types/engine.io": "^3.1.10", "@types/express": "^4.17.21", "@types/graphql-upload": "^16.0.5", "@types/keyv": "^4.2.0", "@types/lodash-es": "^4.17.11", "@types/node": "^20.9.3", "@types/nodemailer": "^6.4.14", "@types/on-headers": "^1.0.3", "@types/pretty-time": "^1.1.5", "@types/sinon": "^17.0.2", "@types/supertest": "^6.0.0", "@types/ws": "^8.5.10", "ava": "^6.0.0", "c8": "^8.0.1", "nodemon": "^3.0.1", "sinon": "^17.0.1", "supertest": "^6.3.3", "ts-node": "^10.9.1", "typescript": "^5.3.2" }, "ava": { "extensions": { "ts": "module" }, "workerThreads": false, "nodeArguments": [ "--trace-sigint", "--loader", "ts-node/esm/transpile-only.mjs", "--es-module-specifier-resolution", "node" ], "files": [ "tests/**/*.spec.ts", "tests/**/*.e2e.ts" ], "require": [ "./src/prelude.ts" ], "environmentVariables": { "TS_NODE_PROJECT": "./tests/tsconfig.json", "NODE_ENV": "test", "ENABLE_LOCAL_EMAIL": "true", "OAUTH_EMAIL_LOGIN": "noreply@toeverything.info", "OAUTH_EMAIL_PASSWORD": "affine", "OAUTH_EMAIL_SENDER": "noreply@toeverything.info", "FEATURES_EARLY_ACCESS_PREVIEW": "false" } }, "nodemonConfig": { "exec": "node", "script": "./src/index.ts", "nodeArgs": [ "--loader", "ts-node/esm.mjs", "--es-module-specifier-resolution", "node" ], "ignore": [ "**/__tests__/**", "**/dist/**" ], "env": { "TS_NODE_TRANSPILE_ONLY": true, "TS_NODE_PROJECT": "./tsconfig.json", "NODE_ENV": "development", "DEBUG": "affine:*", "FORCE_COLOR": true, "DEBUG_COLORS": true }, "delay": 1000 }, "c8": { "reporter": [ "text", "lcov" ], "report-dir": ".coverage", "exclude": [ "scripts", "node_modules", "**/*.spec.ts" ] }, "stableVersion": "0.5.3", "installConfig": { "hoistingLimits": "workspaces" } }