{"_id":"@10abdullahbutt/nestjs-boilerplate","name":"@10abdullahbutt/nestjs-boilerplate","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@10abdullahbutt/nestjs-boilerplate","version":"0.0.1","description":"Production-ready structure and CI setup for scalable NestJS microservices with testing & DevOps.","author":{"name":"Abdullah Butt"},"private":false,"license":"UNLICENSED","scripts":{"build":"nest build","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","start":"nest start","dev":"nest start --watch","remove-dist":"rmdir /s /q dist","debug":"nest start --debug --watch","prod":"node dist/main","lint":"eslint \"{src,apps,libs,test}/**/*.ts\"","test":"jest --config ./jest.config.js --runInBand --detectOpenHandles --forceExit --concurrency=1 --verbose","test:watch":"jest --watch","test:cov":"jest --coverage --config ./jest.config.js","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:e2e":"jest  --config ./jest.e2e.config.js","prepare":"husky install"},"dependencies":{"@grpc/grpc-js":"^1.9.14","@liaoliaots/nestjs-redis":"^9.0.5","@nestjs/common":"^10.0.0","@nestjs/config":"^3.1.1","@nestjs/core":"^10.0.0","@nestjs/jwt":"^10.2.0","@nestjs/microservices":"^10.3.0","@nestjs/mongoose":"^10.0.2","@nestjs/platform-express":"^10.0.0","@nestjs/swagger":"^7.2.0","@nestjs/terminus":"^10.2.0","argon2":"^0.31.2","bcrypt":"^5.1.1","class-transformer":"^0.5.1","class-validator":"^0.14.1","cookie-parser":"^1.4.6","crypto-js":"^4.2.0","dayjs":"^1.11.10","dotenv":"^16.3.2","express-basic-auth":"^1.2.1","grpc-health-check":"^2.0.2","helmet":"^7.1.0","husky":"^8.0.3","i":"^0.3.7","ioredis":"^5.3.2","lodash":"^4.17.21","moment":"^2.30.1","mongoose":"^8.1.0","mpm":"^0.0.1","nanoid":"^3.0.0","path":"^0.12.7","reflect-metadata":"^0.1.13","rimraf":"^5.0.5","rxjs":"^7.8.1","stripe":"^14.22.0"},"devDependencies":{"@faker-js/faker":"^9.9.0","@nestjs/cli":"10.1.17","@nestjs/schematics":"^10.0.0","@nestjs/testing":"^10.3.3","@types/bcrypt":"^5.0.2","@types/cookie-parser":"^1.4.7","@types/crypto-js":"^4.2.2","@types/express":"^4.17.17","@types/jest":"^29.5.12","@types/lodash":"^4.14.202","@types/mocha":"^10.0.6","@types/node":"^20.3.1","@types/supertest":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.42.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","eslint-plugin-unused-imports":"^4.1.4","jest":"^29.7.0","mongodb-memory-server":"^9.1.6","prettier":"^3.0.0","source-map-support":"^0.5.21","supertest":"^6.3.3","ts-jest":"^29.1.2","ts-loader":"^9.4.3","ts-node":"^10.9.1","tsconfig-paths":"^4.2.0","typescript":"^5.1.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"_id":"@10abdullahbutt/nestjs-boilerplate@0.0.1","gitHead":"53abffe87e2e831b47f50c82267de1a83f982347","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-GT13LJMUsjoq1NtTyTOUjEoov3yxIbTQ1B8HWVpUZ/FhgH1C9vnvcQG7SjtKPYEYSHgj/U5F/vEp0eFvegiPVQ==","shasum":"1c3f97bebba3af82cc7fc32e227024ee45e83076","tarball":"https://registry.npmjs.org/@10abdullahbutt/nestjs-boilerplate/-/nestjs-boilerplate-0.0.1.tgz","fileCount":74,"unpackedSize":80084,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD4DzPwnfGgES4S5sKMz4msdzq9SwLoScncXsv3lXzylwIgMgi8RE/tkSOB11qNTiyopaZyUEYNv0ame7dzIneStrU="}]},"_npmUser":{"name":"10abdullahbutt","email":"naeem.dev@boolmind.com","actor":{"name":"10abdullahbutt","email":"naeem.dev@boolmind.com","type":"user"}},"directories":{},"maintainers":[{"name":"10abdullahbutt","email":"naeem.dev@boolmind.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nestjs-boilerplate_0.0.1_1752075808817_0.2957434223321218"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-09T15:43:28.671Z","0.0.1":"2025-07-09T15:43:28.992Z","modified":"2025-07-09T15:43:29.251Z"},"maintainers":[{"name":"10abdullahbutt","email":"naeem.dev@boolmind.com"}],"description":"Production-ready structure and CI setup for scalable NestJS microservices with testing & DevOps.","author":{"name":"Abdullah Butt"},"license":"UNLICENSED","readme":"# NestJS Microservice Starter\n\nProduction-ready structure and CI setup for scalable NestJS microservices with testing & DevOps.\n\n## Features\n- Modular architecture with an Example module\n- gRPC microservice support\n- MongoDB integration\n- Redis integration (with test mocking)\n- Jest for unit and integration testing\n- GitHub Actions CI for build, lint, and test\n- No SonarCloud or Snyk integration\n\n## Getting Started\n\n### Prerequisites\n- Node.js >= 18\n- npm >= 9\n- Docker (for MongoDB/Redis in development)\n\n### Installation\n```bash\nnpm install\n```\n\n### Running the App\n```bash\nnpm run start:dev\n```\n\n### Running Tests\n```bash\nnpm run test\nnpm run test:cov\n```\n\n### Linting\n```bash\nnpm run lint\n```\n\n### Build\n```bash\nnpm run build\n```\n\n## Example Module\nThe `Example` module demonstrates a typical CRUD microservice using gRPC. See `src/modules/example/` for implementation details.\n\n## gRPC\n- Proto files are located in `src/modules/example/proto/`.\n- The ExampleController exposes gRPC endpoints for CRUD operations.\n\n## CI/CD\n- GitHub Actions workflow: `.github/workflows/ci.yml`\n- Runs build, lint, and test jobs on push and PRs.\n- No SonarCloud or Snyk integration.\n\n## Project Structure\n```\nsrc/\n  app.module.ts\n  main.ts\n  modules/\n    example/\n      example.controller.ts\n      example.module.ts\n      example.service.ts\n      models/\n      proto/\n      test/\n  common/\n    ...\n```\n\n## License\nMIT\n","readmeFilename":"README.md","_rev":"1-c770831da8883a24974895d89c995d5d"}