{"_id":"@bogomolcompany/bogo","_rev":"5-3258e6bc38e97c356ad4e0ff0c137fbe","name":"@bogomolcompany/bogo","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@bogomolcompany/bogo","version":"0.1.0","license":"MIT","_id":"@bogomolcompany/bogo@0.1.0","maintainers":[{"name":"dokersmerk","email":"dokersmerk@mail.ru"}],"bin":{"bogo":"dist/cli.js"},"dist":{"shasum":"5fc40911ccb616c784e3e196efbdd56256627e03","tarball":"https://registry.npmjs.org/@bogomolcompany/bogo/-/bogo-0.1.0.tgz","fileCount":26,"integrity":"sha512-RQhN39ZLKR1yopgRyIopsRR7EBGMSYRo4lpgBDOrdmvyiika68L7uClmzMiO6yp42bSuF3vRWqtz2vKmtBTotg==","signatures":[{"sig":"MEUCIFBix93IroOhDLRV8HRYRnm3FNfi9eFxi3ajJ8lSejO/AiEAwyZWdsFleKqD4f0GXUjr6pY+9/MsFgacG4bcNlpnuV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29756},"main":"./dist/cli.js","types":"./dist/cli.d.ts","engines":{"node":">=18"},"scripts":{"dev":"ts-node src/cli.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"dokersmerk","email":"dokersmerk@mail.ru"},"_npmVersion":"10.9.2","description":"CLI generator for Express API modules","directories":{},"_nodeVersion":"22.15.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.5.4","@types/node":"^22.5.0"},"_npmOperationalInternal":{"tmp":"tmp/bogo_0.1.0_1782368807489_0.5543990093837827","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bogomolcompany/bogo","version":"0.1.1","license":"MIT","_id":"@bogomolcompany/bogo@0.1.1","maintainers":[{"name":"dokersmerk","email":"dokersmerk@mail.ru"}],"bin":{"bogo":"dist/cli.js"},"dist":{"shasum":"50788eba7526e1edf5d20a5e74f1c71ed0aeb375","tarball":"https://registry.npmjs.org/@bogomolcompany/bogo/-/bogo-0.1.1.tgz","fileCount":34,"integrity":"sha512-tAHW18F8XgyCbkasIR+8WHuwfHPyYu9uxc1oILIIQ5Rt/mEZu0J/KNvPQegmBOSbTTPc+bV/H+XazKHW6TtdEA==","signatures":[{"sig":"MEQCIGqZ+osD8PgnJqEWbuRbTWQrPrvBYdMV5OlGuPfvaInZAiAh/HU3hlu1Lsw354vGzPdtLNKXxovC3uKC7NEFgsAzCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42395},"main":"./dist/cli.js","types":"./dist/cli.d.ts","engines":{"node":">=18"},"gitHead":"9dc6778873c48d510521e6c15bd5dd9cec7f8fa6","scripts":{"dev":"ts-node src/cli.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"dokersmerk","email":"dokersmerk@mail.ru"},"_npmVersion":"10.9.2","description":"CLI generator for Express API modules","directories":{},"_nodeVersion":"22.15.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.5.4","@types/node":"^22.5.0"},"_npmOperationalInternal":{"tmp":"tmp/bogo_0.1.1_1782369077617_0.10583825040563699","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bogomolcompany/bogo","version":"0.1.2","keywords":["express","typescript","cli","scaffold","generator","api","boilerplate","rest-api","express-generator","zod","backend"],"author":{"name":"bogomolcompany"},"license":"MIT","_id":"@bogomolcompany/bogo@0.1.2","maintainers":[{"name":"dokersmerk","email":"dokersmerk@mail.ru"}],"homepage":"https://github.com/bogomolcomp/bogo#readme","bugs":{"url":"https://github.com/bogomolcomp/bogo/issues"},"bin":{"bogo":"dist/cli.js"},"dist":{"shasum":"467d5bec774ed61113e6ed980827751990dc9c2b","tarball":"https://registry.npmjs.org/@bogomolcompany/bogo/-/bogo-0.1.2.tgz","fileCount":52,"integrity":"sha512-rYh9oAAUssBcdUPJ62cz2SWf6JhqJplGjMqJvbtdUZ13z7gdg6PAQ+95hu9VPDJRXKgh+bTcYbeoxTaBtMi1Ag==","signatures":[{"sig":"MEQCIBBnJhXciygLHNk+JZexK9HWVAYj3gFhe75iuIQIi6QeAiA5Va5fVz7Q52pNPxu5FQAZkYmoPeNhz9XcCsAQBOGWgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79936},"main":"./dist/cli.js","types":"./dist/cli.d.ts","engines":{"node":">=18"},"gitHead":"ce22a0f64fedd634c270c04c0400e013ac70e4e8","scripts":{"dev":"ts-node src/cli.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"dokersmerk","email":"dokersmerk@mail.ru"},"repository":{"url":"git+https://github.com/bogomolcomp/bogo.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI to scaffold Express + TypeScript API projects and generate modules (controller, service, dto, routes, validator)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^5.5.4","@types/node":"^22.5.0"},"_npmOperationalInternal":{"tmp":"tmp/bogo_0.1.2_1782369713077_0.7095262113972327","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bogomolcompany/bogo","version":"0.2.1","keywords":["express","typescript","cli","scaffold","generator","api","boilerplate","rest-api","express-generator","zod","backend"],"author":{"name":"bogomolcompany"},"license":"MIT","_id":"@bogomolcompany/bogo@0.2.1","maintainers":[{"name":"dokersmerk","email":"dokersmerk@mail.ru"}],"homepage":"https://github.com/bogomolcomp/bogo#readme","bugs":{"url":"https://github.com/bogomolcomp/bogo/issues"},"bin":{"bogo":"dist/cli.js"},"dist":{"shasum":"f0ac0d4546d7c9912f1a98a48de807dfd6ffaffb","tarball":"https://registry.npmjs.org/@bogomolcompany/bogo/-/bogo-0.2.1.tgz","fileCount":88,"integrity":"sha512-iZIw8YXjM7orzGAkruLGE8f2D9KchRhBPonDVlgyiTRLyX90mppe+bppuBQ0ptMdYs0Z0FIbgnTPhzw2RUDG2w==","signatures":[{"sig":"MEUCIQDlUSD1bbhGXMNFMeW3WbtHdmp37y7lysHm6D8yr4acoQIgX9AJCM5ciGhX/nXyCLi/DVXLz9E5YixqPhfSeOXKIT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134358},"main":"./dist/cli.js","types":"./dist/cli.d.ts","engines":{"node":">=18"},"gitHead":"b70f27ce33f7cd5e36e5d63eb4860a9c57d7b2c6","scripts":{"dev":"ts-node src/cli.ts","test":"vitest run","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"dokersmerk","email":"dokersmerk@mail.ru"},"repository":{"url":"git+https://github.com/bogomolcomp/bogo.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI to scaffold Express + TypeScript API projects and generate modules (controller, service, dto, routes, validator)","directories":{},"_nodeVersion":"22.15.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.5","ts-node":"^10.9.2","typescript":"^5.5.4","@types/node":"^22.5.0"},"_npmOperationalInternal":{"tmp":"tmp/bogo_0.2.1_1782370396026_0.44329823368909604","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@bogomolcompany/bogo","version":"0.2.2","description":"CLI to scaffold Express + TypeScript API projects and generate modules (controller, service, dto, routes, validator)","license":"MIT","author":{"name":"bogomolcompany"},"keywords":["express","typescript","cli","scaffold","generator","api","boilerplate","rest-api","express-generator","zod","backend"],"homepage":"https://github.com/bogomolcomp/bogo#readme","repository":{"type":"git","url":"git+https://github.com/bogomolcomp/bogo.git"},"bugs":{"url":"https://github.com/bogomolcomp/bogo/issues"},"publishConfig":{"access":"public"},"bin":{"bogo":"dist/cli.js"},"main":"./dist/cli.js","scripts":{"build":"tsc","dev":"ts-node src/cli.ts","test":"vitest run","prepublishOnly":"npm run build"},"dependencies":{"commander":"^12.1.0"},"devDependencies":{"@types/node":"^22.5.0","ts-node":"^10.9.2","typescript":"^5.5.4","vitest":"^2.0.5"},"engines":{"node":">=18"},"_id":"@bogomolcompany/bogo@0.2.2","gitHead":"280734f92779e0ea8c6b6863aee531696c45cf3a","types":"./dist/cli.d.ts","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-knvPpbkyWOh1KZaNESs86ucM4runFrbzqAdHA9eFEuDx8Wif2QtGN4u6VOuUUejOUHbb7+jEy0eptq7Uyb6xeg==","shasum":"ee383c474b9276923a893a05b6462443c620cf9d","tarball":"https://registry.npmjs.org/@bogomolcompany/bogo/-/bogo-0.2.2.tgz","fileCount":89,"unpackedSize":1264755,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCKY0TsAXaNMb6KfytdSRfNffGIfxwY6FlmYys1c4qfbwIhAPiUdvbuZzsXZfgAdtNOFDEHDvOkJRjwrxtObaoCcPJt"}]},"_npmUser":{"name":"dokersmerk","email":"dokersmerk@mail.ru"},"directories":{},"maintainers":[{"name":"dokersmerk","email":"dokersmerk@mail.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bogo_0.2.2_1782370561039_0.9138652943404757"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-25T06:26:47.258Z","modified":"2026-06-25T06:56:01.361Z","0.1.0":"2026-06-25T06:26:47.637Z","0.1.1":"2026-06-25T06:31:17.775Z","0.1.2":"2026-06-25T06:41:53.211Z","0.2.1":"2026-06-25T06:53:16.159Z","0.2.2":"2026-06-25T06:56:01.231Z"},"bugs":{"url":"https://github.com/bogomolcomp/bogo/issues"},"author":{"name":"bogomolcompany"},"license":"MIT","homepage":"https://github.com/bogomolcomp/bogo#readme","keywords":["express","typescript","cli","scaffold","generator","api","boilerplate","rest-api","express-generator","zod","backend"],"repository":{"type":"git","url":"git+https://github.com/bogomolcomp/bogo.git"},"description":"CLI to scaffold Express + TypeScript API projects and generate modules (controller, service, dto, routes, validator)","maintainers":[{"name":"dokersmerk","email":"dokersmerk@mail.ru"}],"readme":"# @bogomolcompany/bogo\r\n\r\n[![npm version](https://img.shields.io/npm/v/@bogomolcompany/bogo.svg)](https://www.npmjs.com/package/@bogomolcompany/bogo)\r\n[![npm downloads](https://img.shields.io/npm/dm/@bogomolcompany/bogo.svg)](https://www.npmjs.com/package/@bogomolcompany/bogo)\r\n[![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/bogomolcomp/bogo/blob/main/LICENSE)\r\n\r\n[English version](README.md)\r\n\r\n**`bogo create app`** — Express + TypeScript проект за 10 секунд.\r\n**`bogo g users`** — controller, service, dto, routes, validator одной командой.\r\n**`bogo r users`** — удаляет модуль и убирает роут из index.\r\n\r\nCLI-генератор для Express API. Не привязан к конкретному репозиторию — настраивается через `.bogorc.json`.\r\n\r\n![bogo demo](docs/demo/bogo-demo.gif)\r\n\r\n## Быстрый старт\r\n\r\n```bash\r\nnpx @bogomolcompany/bogo create app\r\ncopy .env.example .env\r\nnpm install\r\nnpm run dev\r\n\r\nnpx bogo g users -m getList -m createUser\r\n```\r\n\r\n## Почему bogo\r\n\r\n| | NestJS CLI | express-generator | **bogo** |\r\n|---|:---:|:---:|:---:|\r\n| Express без своего фреймворка | — | ✓ | ✓ |\r\n| TypeScript из коробки | ✓ | — | ✓ |\r\n| DTO + Zod validator | ✓ | — | ✓ |\r\n| Стартовый проект (server, logger, middleware) | частично | — | ✓ |\r\n| Минимальные зависимости | — | ✓ | ✓ |\r\n| Генерация модулей в существующий проект | ✓ | — | ✓ |\r\n\r\nbogo — для тех, кто пишет на чистом Express + TS и устал каждый раз копировать одну и ту же структуру файлов.\r\n\r\n## Установка\r\n\r\n```bash\r\nnpm install -g @bogomolcompany/bogo\r\n# или локально\r\nnpm install --save-dev @bogomolcompany/bogo\r\nnpx bogo --help\r\n```\r\n\r\nИз исходников:\r\n\r\n```bash\r\ngit clone https://github.com/bogomolcomp/bogo.git\r\ncd bogo\r\nnpm install\r\nnpm run build\r\nnpm link\r\n```\r\n\r\n## Создание нового проекта\r\n\r\n```bash\r\nbogo create app my-api --with-docker --with-eslint\r\n```\r\n\r\nСоздаёт:\r\n\r\n```\r\npackage.json\r\ntsconfig.json\r\n.env.example\r\n.bogorc.json\r\nsrc/\r\n  index.ts\r\n  types/express.d.ts\r\n  middlewares/\r\n    logger.ts\r\n    formatResponse.ts\r\n    validate.ts\r\n  utils/\r\n    getAllowedIps.ts\r\n  api/\r\n```\r\n\r\nВключено: dotenv, body-parser, logger, formatResponse, IP whitelist (`ALLOWED_IPS`), `/health`, глобальный error handler.\r\n\r\n```bash\r\ncopy .env.example .env\r\nnpm install\r\nnpm run dev\r\n```\r\n\r\n## Инициализация в существующем проекте\r\n\r\n```bash\r\ncd /path/to/your-express-app\r\nbogo init\r\n```\r\n\r\nСоздаёт `.bogorc.json`:\r\n\r\n```json\r\n{\r\n  \"apiDir\": \"src/api\",\r\n  \"indexFile\": \"src/index.ts\",\r\n  \"routePrefix\": \"/api\",\r\n  \"templatesDir\": \"./bogo-templates\"\r\n}\r\n```\r\n\r\n`templatesDir` — опционально. Файлы `controller.template`, `service.template` и т.д. переопределяют встроенные шаблоны.\r\n\r\n## Генерация модуля\r\n\r\n```bash\r\nbogo g analytics -m getStats -m getReport\r\nbogo g orders -m createOrder:POST:/create -m getOrder:GET:/:id\r\nbogo g posts -m getList:GET:/list -w auth\r\n```\r\n\r\nСоздаёт:\r\n\r\n```\r\nsrc/api/analytics/\r\n  analytics.controller.ts\r\n  analytics.service.ts\r\n  analytics.dto.ts\r\n  analytics.validator.ts\r\n  analytics.routes.ts\r\n```\r\n\r\nАвтоматически дописывает import и `app.use` в `src/index.ts`, если файл найден.\r\n\r\n## Генерация отдельного файла\r\n\r\n```bash\r\nbogo g controller users -m getList\r\nbogo g service users -m getList\r\nbogo g dto users -m getList -m createUser\r\nbogo g validator users -m getList\r\nbogo g routes users -m getList:/list\r\n```\r\n\r\nЧасти: `controller`, `service`, `dto`, `validator`, `routes`.\r\n\r\nПапка модуля создаётся автоматически, если её ещё нет. При генерации `routes` index обновляется так же, как при полном модуле.\r\n\r\n```bash\r\nbogo r controller users\r\nbogo r routes users\r\n```\r\n\r\n## Добавление метода в существующий модуль\r\n\r\n```bash\r\nbogo g method users -m getList\r\nbogo g method users -m createUser -m updateUser:/:id\r\n```\r\n\r\nДобавляет метод во все существующие файлы модуля: controller, service, dto, validator, routes.\r\n\r\nТолько в конкретные части:\r\n\r\n```bash\r\nbogo g method users -m getList -p controller\r\nbogo g method users -m getList -p controller -p service -p dto\r\n```\r\n\r\n`-m` обязателен. `-p` — опционально, без него обновляются все найденные файлы.\r\n\r\n## Удаление метода\r\n\r\n```bash\r\nbogo r method users -m getList\r\nbogo r method users -m createUser -p controller -p service\r\n```\r\n\r\n## Список модулей\r\n\r\n```bash\r\nbogo list\r\n```\r\n\r\n## Doctor\r\n\r\n```bash\r\nbogo doctor\r\n```\r\n\r\nПроверяет `.bogorc.json`, index, api-папку и middleware.\r\n\r\n## Интерактивный режим\r\n\r\n```bash\r\nbogo g --interactive\r\n```\r\n\r\n## Удаление модуля\r\n\r\n```bash\r\nbogo r analytics\r\nbogo r orders --skip-index\r\n```\r\n\r\nУдаляет папку модуля и убирает import + `app.use` из index.\r\n\r\n## Формат `-m`\r\n\r\n| Пример | Результат |\r\n|--------|-----------|\r\n| `getList` | POST `/get-list` |\r\n| `getList:GET` | GET `/get-list` |\r\n| `getOrder:GET:/:id` | GET `/:id` |\r\n| `createOrder:POST:/create` | POST `/create` |\r\n\r\n## Опции\r\n\r\n| Флаг | Описание |\r\n|------|----------|\r\n| `-m, --method` | Спецификация метода (повторяемый) |\r\n| `-p, --part` | Только указанная часть |\r\n| `-w, --middleware` | Middleware для роута (повторяемый) |\r\n| `-i, --interactive` | Интерактивная генерация |\r\n| `--dry-run` | Показать изменения без записи |\r\n| `--force` | Перезаписать существующие файлы |\r\n| `--skip-index` | Не править index-файл |\r\n| `--with-docker` | Docker-файлы в `create app` |\r\n| `--with-eslint` | ESLint в `create app` |\r\n\r\n## Требования к целевому проекту\r\n\r\n- Express + TypeScript\r\n- Zod для валидации\r\n- Middleware `validate` по пути `src/middlewares/validate`\r\n- `res.success` / `res.error` через middleware ответа\r\n\r\n`bogo create app` создаёт всё это автоматически.\r\n\r\n## Разработка\r\n\r\n```bash\r\nnpm run build\r\nnpm test\r\nnpm run dev -- create app ./tmp-app --with-eslint\r\nnpm run dev -- g test -m getList:GET\r\nnpm run dev -- g method test -m createUser\r\nnpm run dev -- r method test -m createUser\r\nnpm run dev -- list\r\nnpm run dev -- doctor\r\n```\r\n\r\n## Ссылки\r\n\r\n- npm: https://www.npmjs.com/package/@bogomolcompany/bogo\r\n- GitHub: https://github.com/bogomolcomp/bogo\r\n- Issues / feedback: https://github.com/bogomolcomp/bogo/issues\r\n\r\n## Публикация\r\n\r\n```bash\r\nnpm publish --otp=YOUR_CODE\r\n```\r\n\r\n## Лицензия\r\n\r\nMIT\r\n","readmeFilename":"README.ru.md"}