{
  "name": "songwhip-api",
  "version": "1.0.0",
  "description": "The API for all Songwhip clients",
  "private": true,
  "license": "UNLICENSED",
  "main": "index.js",
  "packageManager": "pnpm@10.30.3",
  "engines": {
    "node": "24.x"
  },
  "scripts": {
    "build": "./scripts/build.sh",
    "clean": "rm -rf node_modules **/node_modules .built **/dist",
    "start": "NODE_ENV=production node --max-http-header-size=1000000 ${ENTRY-'.built/index.js'}",
    "start-local": "PORT=5001 npm start",
    "fix": "biome check . --fix",
    "dev": "dotenv --no-expand -e .env -- scripts/dev",
    "dev:test": "dotenv -e .env.test -- scripts/dev",
    "dev:staging": "dotenv --no-expand -e .env.staging -e .env -- pnpm dev",
    "dev:production": "dotenv --no-expand -e .env.production -e .env -- pnpm dev",
    "db:start": "scripts/database/start",
    "db:start:volume": "scripts/start-local-db --use-volume",
    "db:stop": "scripts/database/stop",
    "db:migrate:schema:create": "dotenv ./migrations/scripts/createSchemaMigration.sh",
    "db:migrate:schema:up": "dotenv ./migrations/scripts/up.sh",
    "db:migrate:schema:down": "dotenv ./migrations/scripts/down.sh",
    "db:migrate:schema:rollback": "dotenv ./migrations/scripts/rollbackSchemaMigration.sh",
    "db:migrate:data:create": "dotenv ./migrations/scripts/createDataMigration.sh",
    "db:migrate:data:apply": "dotenv ./migrations/scripts/applyDataMigration.sh",
    "db:migrate:data:rollback": "dotenv ./migrations/scripts/rollbackDataMigration.sh",
    "db:migrate:schema:zod": "./scripts/database/generate-zod-schema.sh",
    "i18n:sync": "frontend-i18n sync",
    "i18n:download": "pnpm i18n:sync -- -d",
    "i18n:init": "frontend-i18n init",
    "i18n:watch": "frontend-i18n watch",
    "test": "pnpm test:lint && pnpm i18n:init && pnpm test:types && pnpm test:unit",
    "test:unit": "dotenv -e test/unit/.env -- vitest run --config test/unit/vitest.config.mts",
    "test:unit:watch": "dotenv -e test/unit/.env -- vitest --config test/unit/vitest.config.mts",
    "test:lambdas": "./scripts/test-lambdas.sh",
    "test:types": "tsc --project tsconfig.json && tsc --project test/tsconfig.json && cd packages/songwhip-api && pnpm test:types",
    "test:lint": "biome ci . --diagnostic-level error",
    "test:e2e": "TZ=UTC dotenv -e test/e2e/.env -- vitest run --config test/e2e/vitest.config.mts",
    "test:e2e:watch": "VITEST_WORKERS=1 pnpm test:e2e --watch",
    "container:start": "dotenv -- ./scripts/local/start"
  },
  "dependencies": {
    "@aws-sdk/client-bedrock-runtime": "^3.1050.0",
    "@aws-sdk/client-kms": "^3.1050.0",
    "@aws-sdk/client-s3": "^3.1050.0",
    "@aws-sdk/client-sqs": "^3.1050.0",
    "@aws-sdk/s3-request-presigner": "^3.1050.0",
    "@sentry/core": "^10.37.0",
    "@sentry/node": "^10.37.0",
    "@splitsoftware/splitio": "^11.3.0",
    "@theorchard/songwhip-analytics": "^1.0.3",
    "@theorchard/songwhip-events": "^2.10.7",
    "@theorchard/songwhip-lookup": "^1.0.36",
    "@theorchard/songwhip-presaves": "^1.0.4",
    "@theorchard/songwhip-queue": "^1.0.8",
    "@theorchard/songwhip-services-appreciation-engine": "^1.0.5",
    "@theorchard/songwhip-services-orchard": "^2.0.0",
    "@theorchard/songwhip-utils": "^1.2.1",
    "@theorchard/songwhip-utils-auth": "^2.1.1",
    "@theorchard/songwhip-utils-express": "^1.5.0",
    "@theorchard/songwhip-utils-links": "^1.0.2",
    "@theorchard/songwhip-utils-redis": "^1.1.0",
    "@theorchard/songwhip-utils-secrets": "^1.2.1",
    "@theorchard/utils-i18n": "^1.2.4",
    "colorette": "^2.0.20",
    "dd-trace": "^5.67.0",
    "debug": "^2.6.2",
    "diacritics": "^1.3.0",
    "dotenv-cli": "^7.4.2",
    "emoji-regex": "^9.0.0",
    "express": "^5.2.1",
    "jsonwebtoken": "^9.0.3",
    "jwks-rsa": "^2.0.4",
    "kafkajs": "^1.16.0",
    "knex": "^3.1.0",
    "lodash": "^4.18.1",
    "nock": "^14.0.15",
    "node-fetch": "^2.6.7",
    "p-limit": "^6.2.0",
    "pg": "^8.16.0",
    "pino": "^9.12.0",
    "pino-pretty": "^13.1.1",
    "ts-node": "^10.9.2",
    "ua-parser-js": "^2.0.8",
    "urlify": "^0.3.6",
    "uuid": "^14.0.0",
    "zod": "^4.3.6"
  },
  "devDependencies": {
    "@biomejs/biome": "^2.4.7",
    "@theorchard/frontend-cli-i18n": "^2.0.7",
    "@types/debug": "^4.1.7",
    "@types/express": "^5.0.6",
    "@types/jsonwebtoken": "^9.0.0",
    "@types/lodash": "^4.17.23",
    "@types/node": "^24.9.2",
    "@types/node-fetch": "^2.5.7",
    "@types/supertest": "^2.0.12",
    "globals": "^17.4.0",
    "husky": "^4.2.0",
    "jest-extended": "^7.0.0",
    "mockdate": "^2.0.5",
    "supertest": "^7.1.4",
    "tsc-alias": "^1.8.16",
    "tsx": "^4.19.4",
    "typescript": "^5.8.3",
    "vite": "^8.0.16",
    "vitest": "^4.1.6",
    "wait-for-expect": "^3.0.2",
    "zod-pg": "^4.0.6"
  },
  "husky": {
    "hooks": {
      "pre-push": "./scripts/pre-push",
      "pre-commit": "./scripts/pre-commit"
    }
  }
}
