{"_id":"@dota2classic/nest-openapi-client-generator","_rev":"7-50ce912bf14dbb32c76b926f756ed20c","name":"@dota2classic/nest-openapi-client-generator","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.1":{"name":"@dota2classic/nest-openapi-client-generator","version":"0.0.1","keywords":["nestjs","openapi","swagger","codegen"],"license":"MIT","_id":"@dota2classic/nest-openapi-client-generator@0.0.1","maintainers":[{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"}],"homepage":"https://github.com/dota2classic/nest-openapi-client-generator#readme","bugs":{"url":"https://github.com/dota2classic/nest-openapi-client-generator/issues"},"dist":{"shasum":"608d31c75653a303f52e435f2d5db5a5b828f98e","tarball":"https://registry.npmjs.org/@dota2classic/nest-openapi-client-generator/-/nest-openapi-client-generator-0.0.1.tgz","fileCount":6,"integrity":"sha512-K2rYy4tyE05tTFoNcHzjGx7Tky1HEwMBiDGw6sY0uXklSEMftksb1AVmMjw0dJqMhAuZPOAclK3zcfmqivJOBw==","signatures":[{"sig":"MEUCIFHivmbIFZ1SHzPpmQAstrhPmXyTOrsV+Bg9n61uS+nlAiEAvxv9ksyXEX/OR4Hpe5GqhoIE74Ce9FXRYktSwphukwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13554},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"},"repository":{"url":"git+https://github.com/dota2classic/nest-openapi-client-generator.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI spec and client generator for NestJS microservices","directories":{},"_nodeVersion":"20.19.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","typescript":"^5.7.2","@types/node":"^22.10.0","@nestjs/core":"^10.4.20","@nestjs/common":"^10.4.20","@nestjs/swagger":"^7.4.2","@nestjs/testing":"^10.4.10","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^10.4.20"},"peerDependencies":{"@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","@nestjs/testing":"^10.0.0","@nestjs/platform-express":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-openapi-client-generator_0.0.1_1771882286900_0.4162262674243451","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@dota2classic/nest-openapi-client-generator","version":"0.0.2","keywords":["nestjs","openapi","swagger","codegen"],"license":"MIT","_id":"@dota2classic/nest-openapi-client-generator@0.0.2","maintainers":[{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"}],"homepage":"https://github.com/dota2classic/nest-openapi-client-generator#readme","bugs":{"url":"https://github.com/dota2classic/nest-openapi-client-generator/issues"},"dist":{"shasum":"516287ff9052f6184d9b2413e5349bcc22e1ee05","tarball":"https://registry.npmjs.org/@dota2classic/nest-openapi-client-generator/-/nest-openapi-client-generator-0.0.2.tgz","fileCount":6,"integrity":"sha512-TrrUyGCTmLM5jQc6JE3Qu5Xozp2cfEJuiFy1luqH3+RazbvlZIlyEXtHHYyEPmuNY8/SBJNozWztrPFChWbmaA==","signatures":[{"sig":"MEYCIQDgEm/FPw9Nx2mD3liBWDnreCdEvEBB5iyAiSjXdx/jnwIhAKWMVMuK1P1m2qS8C1o6h7kn5rWsD1zzxVDUB2Ymnypn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13554},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6d9b6dbcbfcfa28b75ef5b98bedced72f1fc688b","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"},"repository":{"url":"git+https://github.com/dota2classic/nest-openapi-client-generator.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI spec and client generator for NestJS microservices","directories":{},"_nodeVersion":"20.19.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","typescript":"^5.7.2","@types/node":"^22.10.0","@nestjs/core":"^10.4.20","@nestjs/common":"^10.4.20","@nestjs/swagger":"^7.4.2","@nestjs/testing":"^10.4.10","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^10.4.20"},"peerDependencies":{"@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","@nestjs/testing":"^10.0.0","@nestjs/platform-express":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-openapi-client-generator_0.0.2_1771882783272_0.7589130403604054","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@dota2classic/nest-openapi-client-generator","version":"0.0.3","keywords":["nestjs","openapi","swagger","codegen"],"license":"MIT","_id":"@dota2classic/nest-openapi-client-generator@0.0.3","maintainers":[{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"}],"homepage":"https://github.com/dota2classic/nest-openapi-client-generator#readme","bugs":{"url":"https://github.com/dota2classic/nest-openapi-client-generator/issues"},"dist":{"shasum":"0d850c12a9b83921ff49394183d40c5f5161fdd3","tarball":"https://registry.npmjs.org/@dota2classic/nest-openapi-client-generator/-/nest-openapi-client-generator-0.0.3.tgz","fileCount":6,"integrity":"sha512-+j1BHFkOeK9v22HxkturBiPeAP9eq1FM9hMZiPScObKSwrIKvLCmSJfRBR164g3MSyLXFeB0EyD5AyHbr9RXnA==","signatures":[{"sig":"MEUCIQCBx9DWpNCryQH/oU+uwWbVkWpvvfYiPoRnXwT3yj3EYAIgT/2o5SI7H5JW/NvvdZEr1z+amoR39QvKT96mqOKkF28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20751},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6d9b6dbcbfcfa28b75ef5b98bedced72f1fc688b","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"},"repository":{"url":"git+https://github.com/dota2classic/nest-openapi-client-generator.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI spec and client generator for NestJS microservices","directories":{},"_nodeVersion":"20.19.4","dependencies":{"openapi-typescript-codegen":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","typescript":"^5.7.2","@types/node":"^22.10.0","@nestjs/core":"^10.4.20","@nestjs/common":"^10.4.20","@nestjs/swagger":"^7.4.2","@nestjs/testing":"^10.4.10","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^10.4.20"},"peerDependencies":{"@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","@nestjs/testing":"^10.0.0","@nestjs/platform-express":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-openapi-client-generator_0.0.3_1771884378932_0.11283444781734286","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@dota2classic/nest-openapi-client-generator","version":"0.0.4","keywords":["nestjs","openapi","swagger","codegen"],"license":"MIT","_id":"@dota2classic/nest-openapi-client-generator@0.0.4","maintainers":[{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"}],"homepage":"https://github.com/dota2classic/nest-openapi-client-generator#readme","bugs":{"url":"https://github.com/dota2classic/nest-openapi-client-generator/issues"},"dist":{"shasum":"679ff7e44890a3be4543529c475edcd56b72a602","tarball":"https://registry.npmjs.org/@dota2classic/nest-openapi-client-generator/-/nest-openapi-client-generator-0.0.4.tgz","fileCount":6,"integrity":"sha512-pgqU8WPiZz0DvTVCHtTU4yHgq+dGRiMlqwd4a4j9PN4da0n1TQTkpkuYgwGiBYn4eMw+8MYyq+uQj59bKnS5Iw==","signatures":[{"sig":"MEQCIE/8p9PB44PJGHkF4iVUzJ+/chJ83t9X0L7hoNUqUciJAiBrhLhMTDGcnuRZy8KJTR4gpaPdAcLODnjGIm0KqZd4Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27737},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6d9b6dbcbfcfa28b75ef5b98bedced72f1fc688b","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"},"repository":{"url":"git+https://github.com/dota2classic/nest-openapi-client-generator.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI spec and client generator for NestJS microservices","directories":{},"_nodeVersion":"20.19.4","dependencies":{"openapi-typescript-codegen":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","typescript":"^5.7.2","@types/node":"^22.10.0","@nestjs/core":"^10.4.20","@nestjs/common":"^10.4.20","@nestjs/swagger":"^7.4.2","@nestjs/testing":"^10.4.10","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^10.4.20"},"peerDependencies":{"@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","@nestjs/testing":"^10.0.0","@nestjs/platform-express":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-openapi-client-generator_0.0.4_1771884747623_0.3402606487347253","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@dota2classic/nest-openapi-client-generator","version":"0.0.5","keywords":["nestjs","openapi","swagger","codegen"],"license":"MIT","_id":"@dota2classic/nest-openapi-client-generator@0.0.5","maintainers":[{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"}],"homepage":"https://github.com/dota2classic/nest-openapi-client-generator#readme","bugs":{"url":"https://github.com/dota2classic/nest-openapi-client-generator/issues"},"dist":{"shasum":"fbaa66dfec50db31545d7cf139155c472cc188b5","tarball":"https://registry.npmjs.org/@dota2classic/nest-openapi-client-generator/-/nest-openapi-client-generator-0.0.5.tgz","fileCount":6,"integrity":"sha512-pbyfpjg7gIVjx9X4LokMtzTZsCu/77e8dtT+PXa8co7CoWVSHPntUGmH9TYTWZDafwlY3C45uvF6NAF6icXUCA==","signatures":[{"sig":"MEUCIQCYFh5vJ6vYVLWfyMwLbOZa/goeQtUT8dQqjUDPP8ULZwIgYNr0yrNhBTIpzLvT406mC9X6DclmJwZ0m8SuRAE7xC0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27237},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6d9b6dbcbfcfa28b75ef5b98bedced72f1fc688b","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"},"repository":{"url":"git+https://github.com/dota2classic/nest-openapi-client-generator.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI spec and client generator for NestJS microservices","directories":{},"_nodeVersion":"20.19.4","dependencies":{"openapi-typescript-codegen":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","typescript":"^5.7.2","@types/node":"^22.10.0","@nestjs/core":"^10.4.20","@nestjs/common":"^10.4.20","@nestjs/swagger":"^7.4.2","@nestjs/testing":"^10.4.10","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^10.4.20"},"peerDependencies":{"@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","@nestjs/testing":"^10.0.0","@nestjs/platform-express":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-openapi-client-generator_0.0.5_1771924486795_0.6253412103586806","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@dota2classic/nest-openapi-client-generator","version":"0.0.6","keywords":["nestjs","openapi","swagger","codegen"],"license":"MIT","_id":"@dota2classic/nest-openapi-client-generator@0.0.6","maintainers":[{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"}],"homepage":"https://github.com/dota2classic/nest-openapi-client-generator#readme","bugs":{"url":"https://github.com/dota2classic/nest-openapi-client-generator/issues"},"dist":{"shasum":"78a6a7686d6a13e2f445eeccb6a80b12f145f1d6","tarball":"https://registry.npmjs.org/@dota2classic/nest-openapi-client-generator/-/nest-openapi-client-generator-0.0.6.tgz","fileCount":6,"integrity":"sha512-qC35dF969mhAYcjFPdFIKQ6Li5INM9seCPomv6alQnRWJSdsLhYNM3deXYZuE+szz2k+4Kiy1cEQmJOD2k0W1A==","signatures":[{"sig":"MEQCIDcCI9WF1l6Fjycem0goVcEaRhxbBjsf63EACIrq78T6AiBulToLxZJtqkEmYismW3c59STZ1x77g9gi2dsBJcTLeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27203},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6d9b6dbcbfcfa28b75ef5b98bedced72f1fc688b","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"},"repository":{"url":"git+https://github.com/dota2classic/nest-openapi-client-generator.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI spec and client generator for NestJS microservices","directories":{},"_nodeVersion":"20.19.4","dependencies":{"openapi-typescript-codegen":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","typescript":"^5.7.2","@types/node":"^22.10.0","@nestjs/core":"^10.4.20","@nestjs/common":"^10.4.20","@nestjs/swagger":"^7.4.2","@nestjs/testing":"^10.4.10","reflect-metadata":"^0.2.2","@nestjs/platform-express":"^10.4.20"},"peerDependencies":{"@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","@nestjs/testing":"^10.0.0","@nestjs/platform-express":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-openapi-client-generator_0.0.6_1771924693116_0.3862333198245771","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@dota2classic/nest-openapi-client-generator","version":"0.0.7","description":"OpenAPI spec and client generator for NestJS microservices","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"dependencies":{"swagger-typescript-api":"^13.0.0"},"peerDependencies":{"@nestjs/common":"^10.0.0","@nestjs/core":"^10.0.0","@nestjs/platform-express":"^10.0.0","@nestjs/swagger":"^7.0.0","@nestjs/testing":"^10.0.0"},"devDependencies":{"@nestjs/common":"^10.4.20","@nestjs/core":"^10.4.20","@nestjs/platform-express":"^10.4.20","@nestjs/swagger":"^7.4.2","@nestjs/testing":"^10.4.10","@types/node":"^22.10.0","reflect-metadata":"^0.2.2","rxjs":"^7.8.1","typescript":"^5.7.2"},"repository":{"type":"git","url":"git+https://github.com/dota2classic/nest-openapi-client-generator.git"},"publishConfig":{"access":"public"},"keywords":["nestjs","openapi","swagger","codegen"],"license":"MIT","_id":"@dota2classic/nest-openapi-client-generator@0.0.7","gitHead":"6d9b6dbcbfcfa28b75ef5b98bedced72f1fc688b","bugs":{"url":"https://github.com/dota2classic/nest-openapi-client-generator/issues"},"homepage":"https://github.com/dota2classic/nest-openapi-client-generator#readme","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-GSqyXaShF/FLc0herBWTbTn3l7Fqq2iZfs1gmuGogOoPCq4fZ8Cs6tRVJ9sk42NSamj1AVQltbDSMZObkxLmCg==","shasum":"ec147fb4815c808d903cdd24ea5bbeaada7f7281","tarball":"https://registry.npmjs.org/@dota2classic/nest-openapi-client-generator/-/nest-openapi-client-generator-0.0.7.tgz","fileCount":6,"unpackedSize":23516,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCzvfS4G3brbghrd8A+Eohv5A3LXyFON+isLn4CRAY1+gIgVsiv0TLq4uDFnRMzJmiUKvQfWrED7C2Uq5V4ryMRMSg="}]},"_npmUser":{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"},"directories":{},"maintainers":[{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nest-openapi-client-generator_0.0.7_1771926097785_0.6425270394394518"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-23T21:31:26.783Z","modified":"2026-02-24T09:41:38.066Z","0.0.1":"2026-02-23T21:31:27.056Z","0.0.2":"2026-02-23T21:39:43.433Z","0.0.3":"2026-02-23T22:06:19.094Z","0.0.4":"2026-02-23T22:12:27.767Z","0.0.5":"2026-02-24T09:14:46.957Z","0.0.6":"2026-02-24T09:18:13.249Z","0.0.7":"2026-02-24T09:41:37.931Z"},"bugs":{"url":"https://github.com/dota2classic/nest-openapi-client-generator/issues"},"license":"MIT","homepage":"https://github.com/dota2classic/nest-openapi-client-generator#readme","keywords":["nestjs","openapi","swagger","codegen"],"repository":{"type":"git","url":"git+https://github.com/dota2classic/nest-openapi-client-generator.git"},"description":"OpenAPI spec and client generator for NestJS microservices","maintainers":[{"name":"enchantinggg4","email":"enchantinggg4@gmail.com"}],"readme":"# @dota2classic/nest-openapi-client-generator\n\nGenerates OpenAPI specs from NestJS microservices **without requiring infrastructure** (no DB, Redis, RabbitMQ connections needed).\n\nUses `@nestjs/testing`'s `useMocker()` to auto-mock all dependencies.\n\n## Installation\n\n```bash\nyarn add -D @dota2classic/nest-openapi-client-generator\n```\n\n## Usage\n\n### 1. Create a generator script\n\nCreate `scripts/generate-openapi.js` in your microservice:\n\n```js\nconst { runGenerator } = require(\"@dota2classic/nest-openapi-client-generator\");\nconst { AppModule } = require(\"../dist/src/app.module\");\n\nrunGenerator(AppModule, {\n  title: \"GameServer API\",\n  description: \"Matches, players, MMRs\",\n  version: \"1.0\",\n  tags: [\"game\"],\n  bearerAuth: true,\n});\n```\n\n### 2. Add npm script\n\n```json\n{\n  \"scripts\": {\n    \"openapi:generate\": \"node scripts/generate-openapi.js\"\n  }\n}\n```\n\n### 3. Run after build\n\n```bash\nyarn build && yarn openapi:generate ./openapi.json\n```\n\n## API\n\n### `generateOpenApiSpec(appModule, options)`\n\nReturns the OpenAPI document as an object.\n\n```ts\nimport { generateOpenApiSpec } from \"@dota2classic/nest-openapi-client-generator\";\n\nconst spec = await generateOpenApiSpec(AppModule, {\n  title: \"My API\",\n  description: \"Description\",\n  version: \"1.0\",\n  tags: [\"tag1\", \"tag2\"],\n  bearerAuth: true,\n});\n```\n\n### `generateOpenApiSpecToFile(appModule, options, outputPath)`\n\nGenerates and writes the spec to a file.\n\n```ts\nimport { generateOpenApiSpecToFile } from \"@dota2classic/nest-openapi-client-generator\";\n\nawait generateOpenApiSpecToFile(AppModule, options, \"./openapi.json\");\n```\n\n### `runGenerator(appModule, options, outputPath?)`\n\nCLI helper that handles process exit codes. Use this in your generator script.\n\n```ts\nimport { runGenerator } from \"@dota2classic/nest-openapi-client-generator\";\n\n// outputPath defaults to process.argv[2] or \"./openapi.json\"\nrunGenerator(AppModule, options);\n```\n\n## CI/CD Example\n\n```yaml\n# .github/workflows/generate-api-client.yml\nname: Generate API Client\n\non:\n  push:\n    branches: [\"master\"]\n\njobs:\n  generate:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n\n      - uses: actions/setup-node@v4\n        with:\n          node-version: 20.x\n\n      - run: yarn install\n      - run: yarn build\n      - run: yarn openapi:generate ./openapi.json\n\n      - uses: actions/upload-artifact@v4\n        with:\n          name: openapi-spec\n          path: openapi.json\n```\n\n## How it works\n\n1. Creates a NestJS testing module with your AppModule\n2. Uses `useMocker(() => ({}))` to auto-mock ALL dependencies\n3. Initializes the app (without connecting to anything)\n4. Extracts OpenAPI spec via `SwaggerModule.createDocument()`\n5. Closes the app and returns the spec\n\nThis means your CI doesn't need service containers for Postgres, Redis, RabbitMQ, etc.\n","readmeFilename":"README.md"}