{"_id":"@bnmap/molecular-openapi-gen","_rev":"5-068d3363d8ee82c7542930d1eb0d1389","name":"@bnmap/molecular-openapi-gen","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@bnmap/molecular-openapi-gen","version":"1.0.0","keywords":["openapi","swagger","moleculer","zod","codegen"],"author":{"name":"itlabrealty"},"license":"MIT","_id":"@bnmap/molecular-openapi-gen@1.0.0","maintainers":[{"name":"egor4geev","email":"e.ageev@itlabrealty.ru"}],"bin":{"molecular-openapi-gen":"dist/cli.js"},"dist":{"shasum":"5b15fc9f90e8cb864de2cebecef62537df9a8421","tarball":"https://registry.npmjs.org/@bnmap/molecular-openapi-gen/-/molecular-openapi-gen-1.0.0.tgz","fileCount":50,"integrity":"sha512-N/4WH2L8sIEw2GQudtIdS/kPgH5tc+EEzlzIQFS89pccewOSvlZVjNAMJ02GZZWo2aQOwmMnkFNPKEQgoGpqoQ==","signatures":[{"sig":"MEQCIBxBaYjrHOmGZ32yw5vWLBqIPU4Mj5W1vtwwYErsYIfhAiAYFh22C6xoyswNe1QQBk+fpR51hOJe3RbETMq6PmlHlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107875},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"eca6701d413b2ff05ca6d9f30b8fff19d25d6be9","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"egor4geev","email":"e.ageev@itlabrealty.ru"},"repository":{"url":"https://gitlab.itlabrealty.ru/redisign/molecular-openapi-gen.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool and library for generating OpenAPI specs from Moleculer services and Zod schemas","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@asteasolutions/zod-to-openapi":"^7.3.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","moleculer":"^0.14.29","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"zod":">=3.0.0","moleculer":">=0.14.0"},"_npmOperationalInternal":{"tmp":"tmp/molecular-openapi-gen_1.0.0_1772188914796_0.9728170063330142","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bnmap/molecular-openapi-gen","version":"1.0.1","keywords":["openapi","swagger","moleculer","zod","codegen"],"author":{"name":"itlabrealty"},"license":"MIT","_id":"@bnmap/molecular-openapi-gen@1.0.1","maintainers":[{"name":"egor4geev","email":"e.ageev@itlabrealty.ru"}],"bin":{"molecular-openapi-gen":"dist/cli.js"},"dist":{"shasum":"f3f39e759916bcf6866b669e3525e386503cc5d9","tarball":"https://registry.npmjs.org/@bnmap/molecular-openapi-gen/-/molecular-openapi-gen-1.0.1.tgz","fileCount":50,"integrity":"sha512-fBHZwjdK4U5tohY63VZ4G9uKsN5nLb/2yhzjGqVSsmoMwZ5Y90r+/G2Ct/YeOfFJ1P34Tsp5qjtF1hD6NzuJuQ==","signatures":[{"sig":"MEUCIDPJCnpZV5MciASRc4HhglgMXwznIJlI1/CDtTBJtEZoAiEA6w3T1LHPtXtGwa2O/ETZa3nesuY49csWtBn/y3nPXu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107679},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"eca6701d413b2ff05ca6d9f30b8fff19d25d6be9","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"egor4geev","email":"e.ageev@itlabrealty.ru"},"repository":{"url":"https://gitlab.itlabrealty.ru/redisign/molecular-openapi-gen.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool and library for generating OpenAPI specs from Moleculer services and Zod schemas","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@asteasolutions/zod-to-openapi":"^7.3.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","moleculer":"^0.14.29","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"zod":">=3.0.0","moleculer":">=0.14.0"},"_npmOperationalInternal":{"tmp":"tmp/molecular-openapi-gen_1.0.1_1772197403731_0.40889978089718904","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bnmap/molecular-openapi-gen","version":"1.0.2","keywords":["openapi","swagger","moleculer","zod","codegen"],"author":{"name":"itlabrealty"},"license":"MIT","_id":"@bnmap/molecular-openapi-gen@1.0.2","maintainers":[{"name":"egor4geev","email":"e.ageev@itlabrealty.ru"}],"bin":{"molecular-openapi-gen":"dist/cli.js"},"dist":{"shasum":"7bc6e0bc2c6f176e9771d0b77832bd538238eb8c","tarball":"https://registry.npmjs.org/@bnmap/molecular-openapi-gen/-/molecular-openapi-gen-1.0.2.tgz","fileCount":50,"integrity":"sha512-oAGkesBZXzHz2EKHiKtP3vsdM+gEWWapwNbH2Q/BNj7yr8nMdtelhPi6QlTa0LfRye8YmfVUuJ21eAxOiBbiDw==","signatures":[{"sig":"MEQCIH3Mpw7gJQOICk84enSabZlQFW7FLq+/Hni3oMfu3N4DAiBA1qN00WspYlZ43B5Sg9dlzCt1zCsOoU0BZlKcaAkYLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108272},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"15fd3cfccffae576dd994b44244e5a65aa952020","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"egor4geev","email":"e.ageev@itlabrealty.ru"},"repository":{"url":"https://gitlab.itlabrealty.ru/redisign/molecular-openapi-gen.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool and library for generating OpenAPI specs from Moleculer services and Zod schemas","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@asteasolutions/zod-to-openapi":"^7.3.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","moleculer":"^0.14.29","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"zod":">=3.0.0","moleculer":">=0.14.0"},"_npmOperationalInternal":{"tmp":"tmp/molecular-openapi-gen_1.0.2_1772198325052_0.7640084731990366","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bnmap/molecular-openapi-gen","version":"1.0.3","keywords":["openapi","swagger","moleculer","zod","codegen"],"author":{"name":"itlabrealty"},"license":"MIT","_id":"@bnmap/molecular-openapi-gen@1.0.3","maintainers":[{"name":"egor4geev","email":"e.ageev@itlabrealty.ru"}],"bin":{"molecular-openapi-gen":"dist/cli.js"},"dist":{"shasum":"8601f4379c6f5754003fbc4806870ade65331e81","tarball":"https://registry.npmjs.org/@bnmap/molecular-openapi-gen/-/molecular-openapi-gen-1.0.3.tgz","fileCount":50,"integrity":"sha512-vEiLQsfvIIlkb7Jw8oA8FOcU99gtftzYwcltDj0DveTrEKeygq4H9stH85ESRFWhKuseabnr0u+FIy7fSSdRmw==","signatures":[{"sig":"MEUCIEVjnu7Sgn20DiuJerIdOoIbw6DpniYLXam/G+DHv1qYAiEA5TSK/BTf52s0YT7bZcXw+/GZ6b1nefgntwKY3N5xXIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111398},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1e6f218301c344b4d85929e1eea3169e77a287d8","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"egor4geev","email":"e.ageev@itlabrealty.ru"},"repository":{"url":"https://gitlab.itlabrealty.ru/redisign/molecular-openapi-gen.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool and library for generating OpenAPI specs from Moleculer services and Zod schemas","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@asteasolutions/zod-to-openapi":"^7.3.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.0","moleculer":"^0.14.29","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"zod":">=3.0.0","moleculer":">=0.14.0"},"_npmOperationalInternal":{"tmp":"tmp/molecular-openapi-gen_1.0.3_1772198991605_0.35751817031129907","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-02-27T10:41:54.686Z","modified":"2026-02-27T15:04:58.030Z","1.0.0":"2026-02-27T10:41:54.955Z","1.0.1":"2026-02-27T13:03:23.879Z","1.0.2":"2026-02-27T13:18:45.240Z","1.0.3":"2026-02-27T13:29:51.772Z"},"author":{"name":"itlabrealty"},"license":"MIT","keywords":["openapi","swagger","moleculer","zod","codegen"],"repository":{"url":"https://gitlab.itlabrealty.ru/redisign/molecular-openapi-gen.git","type":"git"},"description":"CLI tool and library for generating OpenAPI specs from Moleculer services and Zod schemas","maintainers":[{"email":"i.pershin@itlabrealty.ru","name":"i.pershin.itlabrealty"},{"email":"e.ageev@itlabrealty.ru","name":"egor4geev"}],"readme":"# @bnmap/molecular-openapi-gen\n\nCLI tool and library for generating OpenAPI 3.0.3 specifications from Moleculer services and Zod schemas.\n\n## Installation\n\n```bash\nnpm install @bnmap/molecular-openapi-gen\n```\n\nPeer dependencies (must be installed in your project):\n- `moleculer` >= 0.14.0\n- `zod` >= 3.0.0\n\n## CLI Usage\n\nGenerate `openapi.json` from compiled Moleculer services:\n\n```bash\nnpx molecular-openapi-gen --services ./dist/services --output ./openapi.json --config ./swagger-gen.config.js\n```\n\n### CLI Options\n\n| Option | Description | Default |\n|---|---|---|\n| `--services <path>` | Path to compiled services directory | `./dist/services` |\n| `--output <path>` | Output file path | `./openapi.json` |\n| `--config <path>` | Path to config file | `./swagger-gen.config.js` |\n| `--mask <glob>` | Service file glob mask | `**/*.{service,v1.service,v2.service}.js` |\n| `--help` | Show help | |\n\n### Config File Example\n\n```js\n// swagger-gen.config.js\nmodule.exports = {\n  schema: {\n    info: {\n      title: 'My API Documentation',\n      version: '1.0.0',\n      description: 'REST API Documentation',\n    },\n    servers: [{ url: '', description: 'Current server' }],\n    components: {\n      securitySchemes: {\n        CookieAuth: {\n          type: 'apiKey',\n          in: 'cookie',\n          name: 'authorization',\n          description: 'Cookie-based authentication using JWT token',\n        },\n      },\n    },\n    security: [{ CookieAuth: [] }],\n  },\n  serviceFilter: (service) => typeof service.version === 'number',\n  output: './openapi.json',\n};\n```\n\n### npm Script Integration\n\n```json\n{\n  \"scripts\": {\n    \"generate:openapi\": \"molecular-openapi-gen --services ./dist/services --config ./swagger-gen.config.js\",\n    \"build\": \"tsc && npm run generate:openapi\"\n  }\n}\n```\n\n## Library API\n\n### createOpenApiConfig\n\nHelper for defining OpenAPI configuration in `.openapi.ts/.js` files:\n\n```ts\nimport { createOpenApiConfig } from '@bnmap/molecular-openapi-gen';\n\nconst serviceOpenAPI = {\n  settings: {\n    tags: [{ name: 'Users', description: 'User operations' }],\n  },\n  actions: {\n    getUser: createOpenApiConfig(\n      'Get user by ID',\n      'Returns user data by ID',\n      responseZodSchema,\n      ['Users'],\n      { method: 'GET', path: '/users/{id}' },\n    ),\n  },\n};\n```\n\n### zodToSchema / isZodSchema\n\n```ts\nimport { zodToSchema, isZodSchema } from '@bnmap/molecular-openapi-gen';\nimport { z } from 'zod';\n\nconst mySchema = z.object({ name: z.string() });\n\nif (isZodSchema(mySchema)) {\n  const openApiSchema = zodToSchema(mySchema);\n}\n```\n\n### generateOpenAPISchema\n\nProgrammatic generation:\n\n```ts\nimport { generateOpenAPISchema } from '@bnmap/molecular-openapi-gen';\nimport type { MoleculerBroker, OpenAPISpec } from '@bnmap/molecular-openapi-gen';\n\nconst schema: OpenAPISpec = generateOpenAPISchema(broker, baseSchema, serviceFilter);\n```\n\n## TypeScript\n\nAll exports are fully typed. Type definitions are included in the package (`dist/*.d.ts`).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}