hongbo-miao/hongbomiao.com

View on GitHub
api-node/package.json

Summary

Maintainability
Test Coverage
{
  "name": "hm-api-node",
  "main": "index.js",
  "private": true,
  "engines": {
    "node": "22.x"
  },
  "scripts": {
    "build": "tsc && babel src --out-dir build --extensions .ts",
    "build:scripts": "tsc && babel scripts --out-dir build/scripts --extensions .ts",
    "build:web": "bash bin/build_web.sh",
    "debug": "npm run build && NODE_ENV=development node --inspect-brk build/index.js",
    "dev": "nodemon --ext ts --exec 'NODE_ENV=development babel-node src/index.ts --extensions .ts -- --hideHTTPLog --prettifyLog'",
    "dev:log": "nodemon --ext ts --exec 'NODE_ENV=development babel-node src/index.ts --extensions .ts -- --prettifyLog'",
    "serve": "NODE_ENV=production node build/index.js",
    "tsc": "tsc --noEmit",
    "lint:javascript": "eslint . --ext .js,.ts,.tsx",
    "lint:javascript:fix": "eslint . --ext .js,.ts,.tsx --fix",
    "test": "jest",
    "test:watch": "jest --watch",
    "test:coverage": "jest --coverage",
    "test:stryker": "stryker run",
    "autocannon": "autocannon http://localhost:5000",
    "profile:endpoints": "npm run build:scripts && NODE_ENV=production node build/scripts/profileEndpoints.js",
    "profile:bubbleprof": "npm run build:scripts && NODE_ENV=production clinic bubbleprof --on-port 'bash bin/profile.sh' -- node build/index.js",
    "profile:doctor": "npm run build:scripts && NODE_ENV=production clinic doctor --on-port 'bash bin/profile.sh' -- node build/index.js",
    "profile:flame": "npm run build:scripts && NODE_ENV=production clinic flame --on-port 'bash bin/profile.sh' -- node build/index.js"
  },
  "dependencies": {
    "@faker-js/faker": "8.4.1",
    "@godaddy/terminus": "4.12.1",
    "@opentelemetry/api": "1.7.0",
    "@opentelemetry/exporter-trace-otlp-http": "0.48.0",
    "@opentelemetry/instrumentation": "0.48.0",
    "@opentelemetry/instrumentation-dns": "0.39.0",
    "@opentelemetry/instrumentation-express": "0.43.0",
    "@opentelemetry/instrumentation-graphql": "0.43.0",
    "@opentelemetry/instrumentation-http": "0.48.0",
    "@opentelemetry/instrumentation-ioredis": "0.43.0",
    "@opentelemetry/instrumentation-pg": "0.45.1",
    "@opentelemetry/instrumentation-pino": "0.42.0",
    "@opentelemetry/resources": "1.21.0",
    "@opentelemetry/sdk-metrics-base": "0.31.0",
    "@opentelemetry/sdk-trace-base": "1.21.0",
    "@opentelemetry/sdk-trace-node": "1.21.0",
    "@opentelemetry/semantic-conventions": "1.21.0",
    "@sentry/node": "7.119.2",
    "@typescript-eslint/eslint-plugin": "8.9.0",
    "@typescript-eslint/parser": "8.9.0",
    "axios": "1.7.7",
    "bcrypt": "5.1.1",
    "connect-timeout": "1.9.0",
    "cookie-parser": "1.4.7",
    "cors": "2.8.5",
    "csurf": "1.11.0",
    "dataloader": "2.2.2",
    "dotenv-flow": "4.1.0",
    "express": "5.0.0-beta.3",
    "express-graphql": "0.12.0",
    "express-jwt": "8.4.1",
    "express-request-id": "1.4.1",
    "graphql": "16.9.0",
    "graphql-depth-limit": "1.1.0",
    "graphql-middleware": "6.1.35",
    "graphql-query-complexity": "1.0.0",
    "graphql-shield": "7.6.5",
    "graphql-subscriptions": "2.0.0",
    "graphql-upload": "13.0.0",
    "graphql-ws": "5.16.0",
    "helmet": "7.2.0",
    "ioredis": "5.4.1",
    "jsonwebtoken": "9.0.2",
    "knex": "3.1.0",
    "lodash.uniq": "4.5.0",
    "multer": "1.4.4",
    "network-error-logging": "1.2.1",
    "pg": "8.13.0",
    "pino": "9.4.0",
    "pino-http": "10.3.0",
    "rate-limiter-flexible": "5.0.3",
    "report-to": "1.1.0",
    "response-time": "2.3.3",
    "serve-favicon": "2.5.0",
    "spdy": "4.0.2",
    "validator": "13.12.0",
    "ws": "8.18.0",
    "yargs": "17.7.2"
  },
  "devDependencies": {
    "@babel/cli": "7.25.7",
    "@babel/core": "7.25.8",
    "@babel/node": "7.25.7",
    "@babel/preset-env": "7.25.8",
    "@babel/preset-typescript": "7.25.7",
    "@stryker-mutator/core": "8.6.0",
    "@stryker-mutator/jest-runner": "8.6.0",
    "@types/autocannon": "7.12.5",
    "@types/bcrypt": "5.0.2",
    "@types/connect-timeout": "0.0.39",
    "@types/cookie-parser": "1.4.7",
    "@types/cors": "2.8.17",
    "@types/csurf": "1.11.5",
    "@types/dotenv-flow": "3.3.3",
    "@types/express": "4.17.21",
    "@types/express-list-endpoints": "6.0.3",
    "@types/express-request-id": "1.4.3",
    "@types/graphql-depth-limit": "1.1.6",
    "@types/graphql-upload": "8.0.12",
    "@types/ioredis-mock": "8.2.5",
    "@types/jest": "29.5.13",
    "@types/jsonwebtoken": "9.0.7",
    "@types/lodash.uniq": "4.5.9",
    "@types/multer": "1.4.12",
    "@types/node": "20.16.11",
    "@types/response-time": "2.3.8",
    "@types/serve-favicon": "2.5.7",
    "@types/spdy": "3.4.9",
    "@types/supertest": "6.0.2",
    "@types/validator": "13.12.2",
    "@types/ws": "8.5.12",
    "@types/yargs": "17.0.33",
    "eslint": "8.57.1",
    "eslint-config-airbnb-base": "15.0.0",
    "eslint-config-prettier": "9.1.0",
    "eslint-plugin-import": "2.31.0",
    "eslint-plugin-jest": "28.8.3",
    "eslint-plugin-prettier": "5.2.1",
    "eslint-plugin-security": "3.0.1",
    "ioredis-mock": "8.9.0",
    "jest": "29.7.0",
    "nodemon": "3.1.7",
    "pino-pretty": "11.2.2",
    "prettier": "3.3.3",
    "supertest": "7.0.0",
    "typescript": "5.6.3"
  },
  "optionalDependencies": {
    "autocannon": "7.15.0",
    "clinic": "13.0.0",
    "express-list-endpoints": "7.1.0"
  }
}