{
  "name": "lcp-backend",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "prisma": {
    "seed:pg": "ts-node ./prisma/seed_pg.ts"
  },
  "scripts": {
    "build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 tsc --project tsconfig.json",
    "minify": "node minify.js",
    "prepare-dist-files": "node prepare-dist-files.js",
    "merge-prisma-schema": "node mergePrismaSchemas.js",
    "build:minify:prepare-dist-files": "npm run build && npm run minify && npm run prepare-dist-files",
    "start:dev": "cross-env NODE_ENV=development dotenv -e .env.development -- npx nodemon -- node dist/swagger.js",
    "start:prod": "dotenv -e .env.production -- pm2 start index.js --name 'lcp-altaiseer-api:PROD:3139' --update-env && dotenv -e .env.production -- node swagger.js",
    "start:stag": "dotenv -e .env.staging -- pm2 start index.js --name 'lcp-altaiseer-api:STAG:3139' --update-env && dotenv -e .env.staging -- node swagger.js",

    "dev:setup": "npm run merge-prisma-schema && npm run dev:generate:pg && npm run dev:generate:sqlite && npm run dev:generate:sql && npm run dev:db:pre-run:pg -- --only=002_drop_db.sql && npm run dev:dbpush:pg && npm run dev:db:run:pg && npm run dev:seed:pg && npm run start:dev",
    "dev:setup:init": "npm run merge-prisma-schema && npm run dev:generate:pg && npm run dev:generate:sqlite && npm run dev:generate:sql && npm run dev:dbpush:pg && npm run dev:db:pre-run:pg -- --only=001_extensions.sql && npm run dev:dbpush:pg && npm run dev:db:run:pg && npm run dev:seed:pg && npm run start:dev",
    "stag:setup": "npm run stag:generate:pg && npm run stag:generate:sqlite && npm run stag:generate:sql && npm run stag:db:pre-run:pg -- --only=002_drop_db.sql && npm run stag:dbpush:pg && npm run stag:db:run:pg && npm run stag:seed:pg && npm run start:stag",
    "stag:setup:init": "npm run stag:generate:pg && npm run stag:generate:sqlite && npm run stag:generate:sql && npm run stag:dbpush:pg && npm run stag:db:pre-run:pg -- --only=001_extensions.sql && npm run stag:dbpush:pg && npm run stag:db:run:pg && npm run stag:seed:pg && npm run start:stag",
    "prod:setup": "npm run prod:generate:pg && npm run prod:generate:sqlite && npm run prod:generate:sql && npm run prod:db:pre-run:pg -- --only=002_drop_db.sql && npm run prod:dbpush:pg && npm run prod:db:run:pg && npm run prod:seed:pg && npm run start:prod",
    "prod:setup:init": "npm run prod:generate:pg && npm run prod:generate:sqlite && npm run prod:generate:sql && npm run prod:dbpush:pg && npm run prod:db:pre-run:pg -- --only=001_extensions.sql && npm run prod:dbpush:pg && npm run prod:db:run:pg && npm run prod:seed:pg && npm run start:prod",
    "dev:app:setup": "npm run merge-prisma-schema && npm run dev:generate:pg && npm run dev:generate:sqlite && npm run dev:generate:sql && npm run dev:db:pre-run:pg -- --only=002_drop_db.sql && npm run dev:dbpush:pg && npm run dev:db:run:pg && npm run dev:db:app-run:pg && npm run dev:seed:pg && npm run dev:app-seed:pg && npm run start:dev",
    "dev:app:setup:init": "npm run merge-prisma-schema && npm run dev:generate:pg && npm run dev:generate:sqlite && npm run dev:generate:sql && npm run dev:dbpush:pg && npm run dev:db:pre-run:pg -- --only=001_extensions.sql && npm run dev:dbpush:pg && npm run dev:db:run:pg && npm run dev:db:app-run:pg && npm run dev:seed:pg && npm run dev:app-seed:pg && npm run start:dev",
    "stag:app:setup": "npm run merge-prisma-schema && npm run stag:generate:pg && npm run stag:generate:sqlite && npm run stag:generate:sql && npm run stag:db:pre-run:pg -- --only=002_drop_db.sql && npm run stag:dbpush:pg && npm run stag:db:run:pg && npm run stag:db:app-run:pg && npm run stag:seed:pg && npm run stag:app-seed:pg && npm run start:stag",
    "stag:app:setup:init": "npm run merge-prisma-schema && npm run stag:generate:pg && npm run stag:generate:sqlite && npm run stag:generate:sql && npm run stag:dbpush:pg && npm run stag:db:pre-run:pg -- --only=001_extensions.sql && npm run stag:dbpush:pg && npm run stag:db:run:pg && npm run stag:db:app-run:pg && npm run stag:seed:pg && npm run stag:app-seed:pg && npm run start:stag",
    "prod:app:setup": "npm run merge-prisma-schema && npm run prod:generate:pg && npm run prod:generate:sqlite && npm run prod:generate:sql && npm run prod:db:pre-run:pg -- --only=002_drop_db.sql && npm run prod:dbpush:pg && npm run prod:db:run:pg && npm run prod:db:app-run:pg && npm run prod:seed:pg && npm run prod:app-seed:pg && npm run start:prod",
    "prod:app:setup:init": "npm run merge-prisma-schema && npm run prod:generate:pg && npm run prod:generate:sqlite && npm run prod:generate:sql && npm run prod:dbpush:pg && npm run prod:db:pre-run:pg -- --only=001_extensions.sql && npm run prod:dbpush:pg && npm run prod:db:run:pg && npm run prod:db:app-run:pg && npm run prod:seed:pg && npm run prod:app-seed:pg && npm run start:prod",
    "dev:db:pre-run:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node scripts/db/run-sql-dir.ts --dir=prisma/pg/my_scripts/db-run/common",
    "dev:db:run:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node scripts/db/run-sql-dir.ts --dir=prisma/pg/my_scripts/db-run/lcp",
    "dev:db:run:single-tx:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node scripts/db/run-sql-dir.ts --dir=prisma/pg/my_scripts/db-run/lcp --single-tx",
    "dev:db:run:dry:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node scripts/db/run-sql-dir.ts --dir=prisma/pg/my_scripts/db-run/lcp --dry-run",
    "dev:db:app-run:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node scripts/db/run-sql-dir.ts --dir=prisma/pg/my_scripts/db-run/app",
    "dev:db:app-run:single-tx:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node scripts/db/run-sql-dir.ts --dir=prisma/pg/my_scripts/db-run/app --single-tx",
    "dev:db:app-run:dry:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node scripts/db/run-sql-dir.ts --dir=prisma/pg/my_scripts/db-run/app --dry-run",
    "prod:db:pre-run:pg": "dotenv -e .env.production -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/common",
    "prod:db:run:pg": "dotenv -e .env.production -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/lcp",
    "prod:db:run:single-tx:pg": "dotenv -e .env.production -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/lcp --single-tx",
    "prod:db:run:dry:pg": "dotenv -e .env.production -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/lcp --dry-run",
    "prod:db:app-run:pg": "dotenv -e .env.production -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/app",
    "prod:db:app-run:single-tx:pg": "dotenv -e .env.production -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/app --single-tx",
    "prod:db:app-run:dry:pg": "dotenv -e .env.production -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/app --dry-run",
    "stag:db:pre-run:pg": "dotenv -e .env.staging -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/common",
    "stag:db:run:pg": "dotenv -e .env.staging -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/lcp",
    "stag:db:run:single-tx:pg": "dotenv -e .env.staging -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/lcp --single-tx",
    "stag:db:run:dry:pg": "dotenv -e .env.staging -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/lcp --dry-run",
    "stag:db:app-run:pg": "dotenv -e .env.staging -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/app",
    "stag:db:app-run:single-tx:pg": "dotenv -e .env.staging -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/app --single-tx",
    "stag:db:app-run:dry:pg": "dotenv -e .env.staging -- node scripts/db/run-sql-dir.js --dir=prisma/pg/my_scripts/db-run/app --dry-run",
    "dev:generate:sql": "cross-env NODE_ENV=development dotenv -e .env.development -- prisma generate --schema=./prisma/sql/schema_sql.prisma",
    "dev:migrate:sql": "cross-env NODE_ENV=development dotenv -e .env.development -- prisma migrate dev --schema=./prisma/sql/schema_sql.prisma",
    "dev:dbpush:sql": "cross-env NODE_ENV=development dotenv -e .env.development -- npx prisma db push --schema=./prisma/sql/schema_sql.prisma",
    "dev:seed:sql": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node prisma/sql/seed_sql.ts",
    "dev:generate:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- prisma generate --schema=./prisma/pg/schema_pg.prisma",
    "dev:migrate:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- prisma migrate dev --schema=./prisma/pg/schema_pg.prisma",
    "dev:dbpush:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- npx prisma db push --schema=./prisma/pg/schema_pg.prisma",
    "dev:seed:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node prisma/pg/seed_pg.ts",
    "dev:app-seed:pg": "cross-env NODE_ENV=development dotenv -e .env.development -- ts-node prisma/pg/app_seed_pg.ts",
    "stag:generate:pg": "cross-env NODE_ENV=staging dotenv -e .env.staging -- prisma generate --schema=./prisma/pg/schema_pg.prisma",
    "stag:migrate:pg": "cross-env NODE_ENV=staging dotenv -e .env.staging -- prisma migrate dev --schema=./prisma/pg/schema_pg.prisma",
    "stag:dbpush:pg": "cross-env NODE_ENV=staging dotenv -e .env.staging -- npx prisma db push --schema=./prisma/pg/schema_pg.prisma",
    "stag:seed:pg": "cross-env NODE_ENV=staging dotenv -e .env.staging -- node prisma/pg/seed_pg.js",
    "stag:app-seed:pg": "cross-env NODE_ENV=staging dotenv -e .env.staging -- node prisma/pg/app_seed_pg.js",
    "prod:generate:pg": "cross-env NODE_ENV=production dotenv -e .env.production -- prisma generate --schema=./prisma/pg/schema_pg.prisma",
    "prod:migrate:pg": "cross-env NODE_ENV=production dotenv -e .env.production -- prisma migrate dev --schema=./prisma/pg/schema_pg.prisma",
    "prod:dbpush:pg": "cross-env NODE_ENV=production dotenv -e .env.production -- npx prisma db push --schema=./prisma/pg/schema_pg.prisma",
    "prod:seed:pg": "cross-env NODE_ENV=production dotenv -e .env.production -- node prisma/pg/seed_pg.js",
    "prod:app-seed:pg": "cross-env NODE_ENV=production dotenv -e .env.production -- node prisma/pg/app_seed_pg.js",
    "dev:generate:sqlite": "cross-env NODE_ENV=development dotenv -e .env.development -- prisma generate --schema=./prisma/sqlite/schema_sqlite.prisma",
    "dev:migrate:sqlite": "cross-env NODE_ENV=development dotenv -e .env.development -- prisma migrate dev --schema=./prisma/sqlite/schema_sqlite.prisma",
    "dev:dbpush:sqlite": "cross-env NODE_ENV=development dotenv -e .env.development -- npx prisma db push --schema=./prisma/sqlite/schema_sqlite.prisma",
    "stag:generate:sqlite": "cross-env NODE_ENV=staging dotenv -e .env.staging -- prisma generate --schema=./prisma/sqlite/schema_sqlite.prisma",
    "stag:migrate:sqlite": "cross-env NODE_ENV=staging dotenv -e .env.staging -- prisma migrate dev --schema=./prisma/sqlite/schema_sqlite.prisma",
    "stag:dbpush:sqlite": "cross-env NODE_ENV=staging dotenv -e .env.staging -- npx prisma db push --schema=./prisma/sqlite/schema_sqlite.prisma",
    "prod:generate:sqlite": "cross-env NODE_ENV=production dotenv -e .env.production -- prisma generate --schema=./prisma/sqlite/schema_sqlite.prisma",
    "prod:migrate:sqlite": "cross-env NODE_ENV=production dotenv -e .env.production -- prisma migrate dev --schema=./prisma/sqlite/schema_sqlite.prisma",
    "prod:dbpush:sqlite": "cross-env NODE_ENV=production dotenv -e .env.production -- npx prisma db push --schema=./prisma/sqlite/schema_sqlite.prisma",
    "stag:generate:sql": "cross-env NODE_ENV=staging dotenv -e .env.staging -- prisma generate --schema=./prisma/sql/schema_sql.prisma",
    "prod:generate:sql": "cross-env NODE_ENV=production dotenv -e .env.production -- prisma generate --schema=./prisma/sql/schema_sql.prisma"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@aws-sdk/client-s3": "^3.529.1",
    "@aws-sdk/s3-request-presigner": "^3.529.1",
    "@prisma/client": "^5.13.0",
    "@types/archiver": "^6.0.2",
    "@types/bcryptjs": "^2.4.6",
    "@types/compression": "^1.7.5",
    "@types/cookie-parser": "^1.4.7",
    "@types/cors": "^2.8.17",
    "@types/express": "^4.17.21",
    "@types/express-fileupload": "^1.5.1",
    "@types/hpp": "^0.2.6",
    "@types/jest": "^29.5.14",
    "@types/jsonwebtoken": "^9.0.5",
    "@types/node": "^20.11.19",
    "@types/nodemailer": "^6.4.14",
    "@types/pg": "^8.11.6",
    "pg-copy-streams": "^7.0.0",
    "@types/pg-escape": "^0.2.3",
    "@types/supertest": "^6.0.2",
    "@types/swagger-jsdoc": "^6.0.4",
    "@types/swagger-ui-express": "^4.1.6",
    "@types/unzipper": "^0.10.10",
    "@types/uuid": "^9.0.8",
    "@types/ws": "^8.5.13",
    "@typescript-eslint/eslint-plugin": "^6.21.0",
    "eslint": "^8.56.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-plugin-prettier": "^5.1.3",
    "husky": "^9.0.10",
    "jest": "^30.2.0",
    "lint-staged": "^15.2.2",
    "nodemon": "^3.0.3",
    "prettier": "^3.2.5",
    "prisma": "^5.13.0",
    "rimraf": "^5.0.5",
    "supertest": "^6.3.4",
    "ts-jest": "^29.4.6",
    "ts-node": "^10.9.2",
    "typescript": "^5.3.3"
  },
  "dependencies": {
    "@faker-js/faker": "^8.4.1",
    "ajv": "^8.12.0",
    "ajv-errors": "^3.0.0",
    "ajv-formats": "^2.1.1",
    "archiver": "^7.0.1",
    "axios": "^1.6.7",
    "bcryptjs": "^2.4.3",
    "child-process": "^1.0.2",
    "compression": "^1.7.4",
    "cookie-parser": "^1.4.6",
    "cors": "^2.8.5",
    "cross-env": "^7.0.3",
    "crypto": "^1.0.1",
    "dotenv": "^16.4.1",
    "dotenv-cli": "^7.3.0",
    "express": "^4.18.3",
    "express-fileupload": "^1.5.0",
    "express-rate-limit": "^7.3.0",
    "handlebars": "^4.7.8",
    "helmet": "^7.1.0",
    "hpp": "^0.2.3",
    "jsonwebtoken": "^9.0.2",
    "moment": "^2.30.1",
    "mqtt": "^5.14.1",
    "msnodesqlv8": "^4.5.0",
    "mssql": "^11.0.1",
    "node-cron": "^3.0.3",
    "nodemailer": "^6.9.5",
    "npx": "^10.2.2",
    "openai": "^4.95.0",
    "pg": "^8.14.1",
    "pg-escape": "^0.2.0",
    "puppeteer": "^24.29.1",
    "studio": "^0.13.5",
    "swagger-jsdoc": "^6.2.8",
    "swagger-ui-express": "^5.0.0",
    "terser": "^5.31.6",
    "unzipper": "^0.12.3",
    "uuid": "^9.0.1",
    "ws": "^8.18.0",
    "xlsx": "^0.18.5"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": [
      "eslint --fix",
      "prettier --write",
      "git add"
    ]
  }
}
