{ "name": "openwa", "version": "0.8.17", "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" }, "scarfSettings": { "enabled": false }, "scripts": { "build": "nest build", "build:all": "nest build && npm run dashboard:build", "format": "prettier --write \"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 \"if (require('fs').existsSync('dashboard')) require('child_process').spawnSync('npm run dashboard:install', { stdio: 'inherit', shell: true });\"", "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.1079.0", "@bull-board/api": "^8.1.0", "@bull-board/express": "^8.1.0", "@bull-board/nestjs": "^8.1.0", "@modelcontextprotocol/sdk": "^1.29.0", "@nestjs-modules/ioredis": "^2.0.2", "@nestjs/bullmq": "^11.0.4", "@nestjs/common": "^11.1.27", "@nestjs/config": "^4.0.2", "@nestjs/core": "^11.1.27", "@nestjs/platform-express": "^11.1.27", "@nestjs/platform-socket.io": "^11.1.27", "@nestjs/serve-static": "^5.0.5", "@nestjs/swagger": "^11.4.5", "@nestjs/throttler": "^6.5.0", "@nestjs/typeorm": "^11.0.3", "@nestjs/websockets": "^11.1.27", "@whiskeysockets/baileys": "7.0.0-rc13", "adm-zip": "^0.5.18", "archiver": "^8.0.0", "bullmq": "^5.79.2", "class-transformer": "^0.5.1", "class-validator": "^0.15.1", "dockerode": "^5.0.1", "helmet": "^8.2.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", "sqlite3": "^5.1.7", "tar-stream": "^3.2.0", "typeorm": "^0.3.29", "undici": "^8.7.0", "whatsapp-web.js": "^1.34.7", "zod": "^4.4.3" }, "devDependencies": { "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^10.0.1", "@nestjs/cli": "^11.0.23", "@nestjs/schematics": "^11.0.0", "@nestjs/testing": "^11.1.27", "@types/adm-zip": "^0.5.8", "@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.0", "@types/qrcode": "^1.5.5", "@types/supertest": "^6.0.2", "@types/tar-stream": "^3.1.4", "concurrently": "^10.0.3", "eslint": "^10.6.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-prettier": "^5.5.6", "globals": "^17.7.0", "jest": "^30.4.2", "prettier": "^3.9.4", "source-map-support": "^0.5.21", "supertest": "^7.0.0", "ts-jest": "^29.4.11", "ts-loader": "^9.6.2", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^5.7.3", "typescript-eslint": "^8.62.1" }, "jest": { "moduleFileExtensions": [ "js", "json", "ts" ], "rootDir": "src", "testRegex": ".*\\.spec\\.ts$", "transform": { "^.+\\.(t|j)s$": [ "ts-jest", { "tsconfig": { "module": "CommonJS", "moduleResolution": "node", "resolvePackageJsonExports": false } } ] }, "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" } }