{ "name": "openwa", "version": "0.10.7", "description": "Open Source WhatsApp API Gateway - Free, Self-Hosted HTTP API for WhatsApp", "author": "Yudhi Armyndharis & OpenWA Contributors", "private": true, "license": "MIT", "engines": { "node": ">=22.13" }, "scarfSettings": { "enabled": false }, "scripts": { "build": "nest build", "build:all": "nest build && npm run dashboard:build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"", "start": "nest start", "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "prod": "npm run build:all && node dist/main", "dev": "concurrently -n api,dashboard -c blue,green \"npm run start:dev\" \"npm run dashboard:dev\"", "dashboard:install": "cd dashboard && npm install", "dashboard:ci": "cd dashboard && npm ci", "dashboard:dev": "cd dashboard && npm run dev", "dashboard:build": "cd dashboard && npm run build", "postinstall": "node -e \"const fs=require('fs'),cp=require('child_process'); if (fs.existsSync('dashboard')) cp.spawnSync('npm run dashboard:ci', { stdio: 'inherit', shell: true }); if (fs.existsSync('scripts/patch-wwebjs-201832.js')) cp.spawnSync(process.execPath, ['scripts/patch-wwebjs-201832.js', '--best-effort'], { stdio: 'inherit' });\"", "check:versions": "node scripts/check-doc-versions.mjs", "openapi:export": "ts-node scripts/export-openapi.ts openapi.json", "openapi:check": "ts-node scripts/export-openapi.ts /tmp/openapi.generated.json && diff -u openapi.json /tmp/openapi.generated.json", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\"", "lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json", "test:pg-smoke": "node scripts/pg-uuid-smoke.js", "typeorm": "typeorm-ts-node-commonjs", "typeorm:prod": "typeorm", "migration:create": "npm run typeorm -- migration:create src/database/migrations/$npm_config_name", "migration:generate": "npm run typeorm -- migration:generate src/database/migrations/$npm_config_name -d src/database/data-source.ts", "migration:run": "npm run typeorm -- migration:run -d src/database/data-source.ts", "migration:run:prod": "npm run typeorm:prod -- migration:run -d dist/database/data-source.js", "migration:revert": "npm run typeorm -- migration:revert -d src/database/data-source.ts", "migration:revert:prod": "npm run typeorm:prod -- migration:revert -d dist/database/data-source.js", "migration:show": "npm run typeorm -- migration:show -d src/database/data-source.ts", "migration:show:prod": "npm run typeorm:prod -- migration:show -d dist/database/data-source.js", "migration:generate:main": "npm run typeorm -- migration:generate src/database/migrations-main/$npm_config_name -d src/database/data-source-main.ts", "migration:run:main": "npm run typeorm -- migration:run -d src/database/data-source-main.ts", "migration:run:main:prod": "npm run typeorm:prod -- migration:run -d dist/database/data-source-main.js", "migration:revert:main": "npm run typeorm -- migration:revert -d src/database/data-source-main.ts", "migration:revert:main:prod": "npm run typeorm:prod -- migration:revert -d dist/database/data-source-main.js", "migration:show:main": "npm run typeorm -- migration:show -d src/database/data-source-main.ts", "migration:show:main:prod": "npm run typeorm:prod -- migration:show -d dist/database/data-source-main.js" }, "dependencies": { "@aws-sdk/client-s3": "^3.1093.0", "@bull-board/api": "^8.1.2", "@bull-board/express": "^8.1.2", "@bull-board/nestjs": "^8.1.2", "@modelcontextprotocol/sdk": "^1.29.0", "@nestjs/bullmq": "^11.0.4", "@nestjs/common": "^11.1.28", "@nestjs/config": "^4.0.2", "@nestjs/core": "^11.1.28", "@nestjs/platform-express": "^11.1.28", "@nestjs/platform-socket.io": "^11.1.28", "@nestjs/serve-static": "^5.0.5", "@nestjs/swagger": "^11.4.6", "@nestjs/throttler": "^6.5.0", "@nestjs/typeorm": "^11.0.3", "@nestjs/websockets": "^11.1.28", "@whiskeysockets/baileys": "7.0.0-rc13", "adm-zip": "^0.6.0", "archiver": "^8.0.0", "better-sqlite3": "^12.11.1", "bullmq": "^5.80.10", "class-transformer": "^0.5.1", "class-validator": "^0.15.1", "dockerode": "^5.0.1", "helmet": "^8.3.0", "ioredis": "^5.11.1", "pg": "^8.22.0", "qrcode": "^1.5.4", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.1", "socket.io": "^4.8.3", "tar-stream": "^3.2.0", "typeorm": "^1.1.0", "undici": "^8.8.0", "whatsapp-web.js": "^1.34.7", "zod": "^4.4.3" }, "devDependencies": { "@eslint/eslintrc": "^3.3.6", "@eslint/js": "^10.0.1", "@nestjs/cli": "^11.0.24", "@nestjs/schematics": "^11.0.0", "@nestjs/testing": "^11.1.28", "@types/archiver": "^8.0.0", "@types/dockerode": "^4.0.1", "@types/express": "^5.0.0", "@types/jest": "^30.0.0", "@types/multer": "^2.2.0", "@types/node": "^26.1.1", "@types/qrcode": "^1.5.5", "@types/supertest": "^7.2.1", "@types/tar-stream": "^3.1.4", "concurrently": "^10.0.3", "eslint": "^10.7.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-prettier": "^5.5.6", "globals": "^17.7.0", "jest": "^30.4.2", "prettier": "^3.9.6", "source-map-support": "^0.5.21", "supertest": "^7.0.0", "ts-jest": "^29.4.12", "ts-loader": "^9.6.2", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "~6.0.3", "typescript-eslint": "^8.65.0" }, "jest": { "moduleFileExtensions": [ "js", "json", "ts" ], "rootDir": "src", "testRegex": ".*\\.spec\\.ts$", "transform": { "^.+\\.(t|j)s$": [ "ts-jest", { "tsconfig": { "module": "CommonJS", "moduleResolution": "node", "resolvePackageJsonExports": false, "ignoreDeprecations": "6.0" } } ] }, "moduleNameMapper": { "^@whiskeysockets/baileys$": "/../test/__mocks__/@whiskeysockets/baileys.ts", "^@whiskeysockets/baileys/(.*)$": "/../test/__mocks__/@whiskeysockets/baileys.ts" }, "collectCoverageFrom": [ "**/*.(t|j)s" ], "coverageDirectory": "../coverage", "coverageThreshold": { "global": { "branches": 58, "functions": 58, "lines": 66, "statements": 65 }, "./src/common/security/": { "branches": 85, "functions": 95, "lines": 90, "statements": 90 }, "./src/modules/auth/": { "branches": 62, "functions": 70, "lines": 72, "statements": 72 }, "./src/engine/adapters/": { "branches": 63, "functions": 63, "lines": 70, "statements": 70 }, "./src/modules/integration/": { "branches": 67, "functions": 68, "lines": 77, "statements": 77 }, "./src/core/hooks/": { "branches": 80, "functions": 70, "lines": 82, "statements": 81 }, "./src/modules/session/": { "branches": 50, "functions": 63, "lines": 74, "statements": 72 }, "./src/modules/webhook/": { "branches": 65, "functions": 83, "lines": 84, "statements": 80 }, "./src/modules/search/": { "branches": 58, "functions": 72, "lines": 58, "statements": 58 } }, "testEnvironment": "node" }, "overrides": { "shell-quote": "^1.10.0" } }