{
  "name": "@affine/server",
  "private": true,
  "version": "0.14.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 ./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 ./src/data/index.ts",
    "predeploy": "yarn prisma migrate deploy && node --import ./scripts/register.js ./dist/data/index.js run"
  },
  "dependencies": {
    "@apollo/server": "^4.10.2",
    "@aws-sdk/client-s3": "^3.552.0",
    "@google-cloud/opentelemetry-cloud-monitoring-exporter": "^0.18.0",
    "@google-cloud/opentelemetry-cloud-trace-exporter": "^2.2.0",
    "@google-cloud/opentelemetry-resource-util": "^2.2.0",
    "@keyv/redis": "^2.8.4",
    "@nestjs/apollo": "^12.1.0",
    "@nestjs/common": "^10.3.7",
    "@nestjs/core": "^10.3.7",
    "@nestjs/event-emitter": "^2.0.4",
    "@nestjs/graphql": "^12.1.1",
    "@nestjs/platform-express": "^10.3.7",
    "@nestjs/platform-socket.io": "^10.3.7",
    "@nestjs/schedule": "^4.0.1",
    "@nestjs/serve-static": "^4.0.2",
    "@nestjs/throttler": "5.1.2",
    "@nestjs/websockets": "^10.3.7",
    "@node-rs/argon2": "^1.8.0",
    "@node-rs/crc32": "^1.10.0",
    "@node-rs/jsonwebtoken": "^0.5.2",
    "@opentelemetry/api": "^1.8.0",
    "@opentelemetry/core": "^1.24.1",
    "@opentelemetry/exporter-prometheus": "^0.51.1",
    "@opentelemetry/exporter-zipkin": "^1.24.1",
    "@opentelemetry/host-metrics": "^0.35.1",
    "@opentelemetry/instrumentation": "^0.51.1",
    "@opentelemetry/instrumentation-graphql": "^0.40.0",
    "@opentelemetry/instrumentation-http": "^0.51.1",
    "@opentelemetry/instrumentation-ioredis": "^0.40.0",
    "@opentelemetry/instrumentation-nestjs-core": "^0.37.1",
    "@opentelemetry/instrumentation-socket.io": "^0.39.0",
    "@opentelemetry/resources": "^1.24.1",
    "@opentelemetry/sdk-metrics": "^1.24.1",
    "@opentelemetry/sdk-node": "^0.51.1",
    "@opentelemetry/sdk-trace-node": "^1.24.1",
    "@opentelemetry/semantic-conventions": "^1.24.1",
    "@prisma/client": "^5.12.1",
    "@prisma/instrumentation": "^5.12.1",
    "@socket.io/redis-adapter": "^8.3.0",
    "cookie-parser": "^1.4.6",
    "dotenv": "^16.4.5",
    "dotenv-cli": "^7.4.1",
    "express": "^4.19.2",
    "get-stream": "^9.0.1",
    "graphql": "^16.8.1",
    "graphql-scalars": "^1.23.0",
    "graphql-type-json": "^0.3.2",
    "graphql-upload": "^16.0.2",
    "ioredis": "^5.3.2",
    "keyv": "^4.5.4",
    "lodash-es": "^4.17.21",
    "mixpanel": "^0.18.0",
    "mustache": "^4.2.0",
    "nanoid": "^5.0.7",
    "nest-commander": "^3.12.5",
    "nestjs-throttler-storage-redis": "^0.4.1",
    "nodemailer": "^6.9.13",
    "on-headers": "^1.0.2",
    "openai": "^4.33.0",
    "parse-duration": "^1.1.0",
    "pretty-time": "^1.1.0",
    "prisma": "^5.12.1",
    "prom-client": "^15.1.1",
    "reflect-metadata": "^0.2.2",
    "rxjs": "^7.8.1",
    "semver": "^7.6.0",
    "socket.io": "^4.7.5",
    "stripe": "^15.0.0",
    "ts-node": "^10.9.2",
    "typescript": "^5.4.5",
    "ws": "^8.16.0",
    "yjs": "^13.6.14",
    "zod": "^3.22.4"
  },
  "devDependencies": {
    "@affine-test/kit": "workspace:*",
    "@affine/server-native": "workspace:*",
    "@napi-rs/image": "^1.9.1",
    "@nestjs/testing": "^10.3.7",
    "@types/cookie-parser": "^1.4.7",
    "@types/engine.io": "^3.1.10",
    "@types/express": "^4.17.21",
    "@types/graphql-upload": "^16.0.7",
    "@types/keyv": "^4.2.0",
    "@types/lodash-es": "^4.17.12",
    "@types/mixpanel": "^2.14.8",
    "@types/mustache": "^4.2.5",
    "@types/node": "^20.12.7",
    "@types/nodemailer": "^6.4.14",
    "@types/on-headers": "^1.0.3",
    "@types/pretty-time": "^1.1.5",
    "@types/sinon": "^17.0.3",
    "@types/supertest": "^6.0.2",
    "@types/ws": "^8.5.10",
    "ava": "^6.1.2",
    "c8": "^9.1.0",
    "nodemon": "^3.1.0",
    "sinon": "^18.0.0",
    "supertest": "^7.0.0"
  },
  "ava": {
    "timeout": "1m",
    "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",
      "MAILER_HOST": "0.0.0.0",
      "MAILER_PORT": "1025",
      "MAILER_USER": "noreply@toeverything.info",
      "MAILER_PASSWORD": "affine",
      "MAILER_SENDER": "noreply@toeverything.info",
      "FEATURES_EARLY_ACCESS_PREVIEW": "false",
      "DEPLOYMENT_TYPE": "affine"
    }
  },
  "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",
      "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"
  }
}
