{"_id":"@egovernments/digit-module-generator","_rev":"6-0fa40008139cc7795985a1e4c1397ac3","name":"@egovernments/digit-module-generator","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@egovernments/digit-module-generator","version":"1.0.0","keywords":["digit","micro-ui","module-generator","cli","scaffolding","react","government","egovernance"],"author":{"name":"JaganKumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-module-generator@1.0.0","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"}],"homepage":"https://github.com/egovernments/digit-module-generator#readme","bugs":{"url":"https://github.com/egovernments/digit-module-generator/issues"},"bin":{"digit-gen":"bin/cli.js"},"dist":{"shasum":"505d687aba5d0efa483686abf8543641f53ba024","tarball":"https://registry.npmjs.org/@egovernments/digit-module-generator/-/digit-module-generator-1.0.0.tgz","fileCount":35,"integrity":"sha512-bQ32pbYUhikSaxy7huPsqZe0QSZ9Co02cE+E8xftcmBLdlDi9DLyJKKNds+tNLsxui/NavFDzLSud+xESpD3DA==","signatures":[{"sig":"MEUCIQCoCChLeAaovy/vI7/SBuMIGVqS0DPU6lhPKFq5qE2gGwIgZlGe3e2sMCsOmzPBf4ImRDzUYfVs9MeAAWaDAfHMFwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257707},"main":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"scripts":{"dev":"babel src -d dist --watch","lint":"eslint src/**/*.js","test":"jest","build":"babel src -d dist","start":"node bin/cli.js","prepack":"npm run build","prepare":"npm run build","test:watch":"jest --watch"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"repository":{"url":"git+https://github.com/egovernments/digit-module-generator.git","type":"git"},"_npmVersion":"6.14.15","description":"Official CLI library to generate DIGIT micro-ui modules with modern patterns and API specifications","directories":{},"_nodeVersion":"20.16.0","dependencies":{"ajv":"^8.12.0","ora":"^5.4.1","case":"^1.6.3","glob":"^10.3.10","yaml":"^2.3.4","axios":"^1.6.0","boxen":"^5.1.2","chalk":"^4.1.2","figlet":"^1.7.0","lodash":"^4.17.21","fs-extra":"^11.1.1","inquirer":"^8.2.6","commander":"^11.1.0","pluralize":"^8.0.0","handlebars":"^4.7.8","openapi-types":"^12.1.3","swagger-parser":"^10.0.3","json-schema-to-typescript":"^13.1.2"},"preferGlobal":true,"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.52.0","supertest":"^6.3.3","@babel/cli":"^7.23.0","@babel/core":"^7.23.2","@babel/preset-env":"^7.23.2"},"_npmOperationalInternal":{"tmp":"tmp/digit-module-generator_1.0.0_1766991568813_0.9925090402404579","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@egovernments/digit-module-generator","version":"1.0.1","keywords":["digit","micro-ui","module-generator","cli","scaffolding","react","government","egovernance"],"author":{"name":"JaganKumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-module-generator@1.0.1","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"}],"homepage":"https://github.com/egovernments/digit-module-generator#readme","bugs":{"url":"https://github.com/egovernments/digit-module-generator/issues"},"bin":{"digit-gen":"bin/cli.js"},"dist":{"shasum":"33c424a3315ed231c0c71fb152a9502ab889bd77","tarball":"https://registry.npmjs.org/@egovernments/digit-module-generator/-/digit-module-generator-1.0.1.tgz","fileCount":35,"integrity":"sha512-lXwuSRETVeATcZSdB//JdKXetRT3hiCmjHVM2VcJMc2xsL53XkncUIeQAmlWFDxv+pUaXFfr8Zu52G68scMGCg==","signatures":[{"sig":"MEYCIQDytgGTnqSMQAFWa1dc2gzVkOsXbHJaVL/oEv5Q99lNzQIhAKq9VplkWKxHq4v5o3HqIUe5F27IhNiNqGYDaJ0MZGgR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257736},"main":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"scripts":{"dev":"babel src -d dist --watch","lint":"eslint src/**/*.js","test":"jest","build":"babel src -d dist","start":"node bin/cli.js","prepack":"npm run build","prepare":"npm run build","test:watch":"jest --watch"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"repository":{"url":"git+https://github.com/egovernments/digit-module-generator.git","type":"git"},"_npmVersion":"6.14.15","description":"Official CLI library to generate DIGIT micro-ui modules with modern patterns and API specifications","directories":{},"_nodeVersion":"20.16.0","dependencies":{"ajv":"^8.12.0","ora":"^5.4.1","case":"^1.6.3","glob":"^10.3.10","yaml":"^2.3.4","axios":"^1.6.0","boxen":"^5.1.2","chalk":"^4.1.2","figlet":"^1.7.0","lodash":"^4.17.21","fs-extra":"^11.1.1","inquirer":"^8.2.6","commander":"^11.1.0","pluralize":"^8.0.0","handlebars":"^4.7.8","ajv-formats":"^2.1.1","openapi-types":"^12.1.3","swagger-parser":"^10.0.3","json-schema-to-typescript":"^13.1.2"},"preferGlobal":true,"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.52.0","supertest":"^6.3.3","@babel/cli":"^7.23.0","@babel/core":"^7.23.2","@babel/preset-env":"^7.23.2"},"_npmOperationalInternal":{"tmp":"tmp/digit-module-generator_1.0.1_1767006008366_0.2071453716608158","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@egovernments/digit-module-generator","version":"1.0.2","keywords":["digit","micro-ui","module-generator","cli","scaffolding","react","government","egovernance"],"author":{"name":"JaganKumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-module-generator@1.0.2","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"}],"homepage":"https://github.com/egovernments/digit-module-generator#readme","bugs":{"url":"https://github.com/egovernments/digit-module-generator/issues"},"bin":{"digit-gen":"bin/cli.js"},"dist":{"shasum":"2c2b69feab779d87788df3fa7adc8a89057906bf","tarball":"https://registry.npmjs.org/@egovernments/digit-module-generator/-/digit-module-generator-1.0.2.tgz","fileCount":38,"integrity":"sha512-YqLxlKoumxgYHmqVkWsd0LDsGP23SKFxZ6+V6sYco2bQFv80yqpqRnRlqQ9aGS7K4lrafJ7gQYP5WDR9Ih6ViA==","signatures":[{"sig":"MEQCIG7bH4z1k0ZhlqI96eKI6c9O+DDbH+LYZ0CHVqIC7fYDAiBlexlmL5tXm0fL//d1wS8dFnereo0bd8m4gp8i6aA6yA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348095},"main":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"gitHead":"a6438fc0668f66a76c7538f5a4e88f9e8101ef21","scripts":{"dev":"babel src -d dist --watch --copy-files","lint":"eslint src/**/*.js","test":"jest","build":"babel src -d dist --copy-files","start":"node bin/cli.js","prepack":"npm run build","prepare":"npm run build","test:watch":"jest --watch"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"repository":{"url":"git+https://github.com/egovernments/digit-module-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"Official CLI library to generate DIGIT micro-ui modules with modern patterns and API specifications","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.12.0","ora":"^5.4.1","case":"^1.6.3","glob":"^10.3.10","yaml":"^2.3.4","axios":"^1.6.0","boxen":"^5.1.2","chalk":"^4.1.2","figlet":"^1.7.0","lodash":"^4.17.21","fs-extra":"^11.1.1","inquirer":"^8.2.6","commander":"^11.1.0","pluralize":"^8.0.0","handlebars":"^4.7.8","ajv-formats":"^2.1.1","openapi-types":"^12.1.3","swagger-parser":"^10.0.3","json-schema-to-typescript":"^13.1.2"},"preferGlobal":true,"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.52.0","supertest":"^6.3.3","@babel/cli":"^7.23.0","@babel/core":"^7.23.2","@babel/preset-env":"^7.23.2"},"_npmOperationalInternal":{"tmp":"tmp/digit-module-generator_1.0.2_1777359426560_0.8803095187148351","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@egovernments/digit-module-generator","version":"1.0.3","keywords":["digit","micro-ui","module-generator","cli","scaffolding","react","government","egovernance"],"author":{"name":"JaganKumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","_id":"@egovernments/digit-module-generator@1.0.3","maintainers":[{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},{"name":"sathishp-egov","email":"sathish.p@egovernments.org"}],"homepage":"https://github.com/egovernments/digit-module-generator#readme","bugs":{"url":"https://github.com/egovernments/digit-module-generator/issues"},"bin":{"digit-gen":"bin/cli.js"},"dist":{"shasum":"0c607adfed7af1a0ff66684d15f8310ef6ad4c9d","tarball":"https://registry.npmjs.org/@egovernments/digit-module-generator/-/digit-module-generator-1.0.3.tgz","fileCount":38,"integrity":"sha512-hDqMckdXpSbMpCBtHYBCIsPjh6Dw/5TWc/8i1nMSf7SqfWDRtSazvqJdpSAmuBNE2xmWV4PhtSJB//kEK2/8Vw==","signatures":[{"sig":"MEYCIQCRCZ2PUm2kVn+nlQbGetRpRyH2Kjyj/aMMkxBiIy6PdgIhAPTPfJ74+4/nOeQTJHv0Fldvqoir8mPb4nIL8oYtNsO2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348095},"main":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"gitHead":"a6438fc0668f66a76c7538f5a4e88f9e8101ef21","scripts":{"dev":"babel src -d dist --watch --copy-files","lint":"eslint src/**/*.js","test":"jest","build":"babel src -d dist --copy-files","start":"node bin/cli.js","prepack":"npm run build","prepare":"npm run build","test:watch":"jest --watch"},"_npmUser":{"name":"jagankumar-egov","email":"jagan.kumar@egov.org.in"},"repository":{"url":"git+https://github.com/egovernments/digit-module-generator.git","type":"git"},"_npmVersion":"10.9.3","description":"Official CLI library to generate DIGIT micro-ui modules with modern patterns and API specifications","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ajv":"^8.12.0","ora":"^5.4.1","case":"^1.6.3","glob":"^10.3.10","yaml":"^2.3.4","axios":"^1.6.0","boxen":"^5.1.2","chalk":"^4.1.2","figlet":"^1.7.0","lodash":"^4.17.21","fs-extra":"^11.1.1","inquirer":"^8.2.6","commander":"^11.1.0","pluralize":"^8.0.0","handlebars":"^4.7.8","ajv-formats":"^2.1.1","openapi-types":"^12.1.3","swagger-parser":"^10.0.3","json-schema-to-typescript":"^13.1.2"},"preferGlobal":true,"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.52.0","supertest":"^6.3.3","@babel/cli":"^7.23.0","@babel/core":"^7.23.2","@babel/preset-env":"^7.23.2"},"_npmOperationalInternal":{"tmp":"tmp/digit-module-generator_1.0.3_1777359600548_0.4707004164848254","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-12-29T06:59:28.719Z","modified":"2026-05-22T06:37:45.333Z","1.0.0":"2025-12-29T06:59:28.973Z","1.0.1":"2025-12-29T11:00:08.513Z","1.0.2":"2026-04-28T06:57:06.774Z","1.0.3":"2026-04-28T07:00:00.754Z"},"bugs":{"url":"https://github.com/egovernments/digit-module-generator/issues"},"author":{"name":"JaganKumar","email":"jagan.kumar@egov.org.in"},"license":"MIT","homepage":"https://github.com/egovernments/digit-module-generator#readme","keywords":["digit","micro-ui","module-generator","cli","scaffolding","react","government","egovernance"],"repository":{"url":"git+https://github.com/egovernments/digit-module-generator.git","type":"git"},"description":"Official CLI library to generate DIGIT micro-ui modules with modern patterns and API specifications","maintainers":[{"email":"jagan.kumar@egov.org.in","name":"jagankumar-egov"},{"email":"sathish.p@egovernments.org","name":"sathishp-egov"}],"readme":"# DIGIT Module Generator\n\nA CLI library to automatically generate DIGIT micro-ui modules based on templates, prompts, and API specifications.\n\n## 🚀 Features\n\n- **Interactive CLI** - Guided prompts for module configuration\n- **API Spec Integration** - Generate forms based on OpenAPI/Swagger specs\n- **Template-based Generation** - Create, Search, Inbox, View, Response screens\n- **DIGIT API Hooks** - Uses proper Digit.Hooks.useCustomAPIHook and useCustomAPIMutationHook patterns\n- **Modern React** - React 19, React Router v6, latest DIGIT UI components\n- **Configuration Management** - Complete config files for all screen types\n- **Role-based Access** - Automatic role configuration\n- **Internationalization** - Auto-generate i18n keys with proper localization patterns\n- **Validation** - Built-in form validation based on API specs\n\n## 📦 Installation\n\n### Global Installation (Recommended)\n```bash\nnpm install -g @egovernments/digit-module-generator\n```\n\n### Using npx (No Installation Required)\n```bash\nnpx @egovernments/digit-module-generator create\n```\n\n### Verify Installation\n```bash\ndigit-gen --version\n```\n\n## 🎯 Quick Start\n\n```bash\n# Interactive module generation\ndigit-gen create\n\n# Generate from API spec\ndigit-gen create --api-spec ./openapi.json\n\n# Generate specific screens only\ndigit-gen create --screens create,search,view\n\n# Use existing template\ndigit-gen create --template hrms\n```\n\n## 📋 Usage Examples\n\n### 1. Interactive Generation\n```bash\n$ digit-gen create\n\n? What is your module name? Employee Management\n? Module code (kebab-case): employee-mgmt\n? Entity name (PascalCase): Employee\n? API base path: /employee-service/v1\n? Select screens to generate: Create, Search, Inbox, View, Response\n? Authentication required? Yes\n? Required roles: EMPLOYEE_ADMIN, EMPLOYEE_VIEWER\n? Generate with workflow? Yes\n? Workflow business service: employee-workflow\n```\n\n### 2. API Spec Based Generation\n```bash\ndigit-gen create --api-spec https://api.example.com/swagger.json --entity Employee\n```\n\n### 3. Configuration File Based\n```bash\ndigit-gen create --config ./module-config.json\n```\n\n## 📄 Configuration File Schema\n\n### module-config.json\n```json\n{\n  \"module\": {\n    \"name\": \"Employee Management\",\n    \"code\": \"employee-mgmt\",\n    \"description\": \"Employee management system\",\n    \"version\": \"1.0.0\"\n  },\n  \"entity\": {\n    \"name\": \"Employee\",\n    \"apiPath\": \"/employee-service/v1\",\n    \"primaryKey\": \"employeeId\",\n    \"displayField\": \"employeeName\"\n  },\n  \"screens\": {\n    \"create\": {\n      \"enabled\": true,\n      \"roles\": [\"EMPLOYEE_ADMIN\"],\n      \"workflow\": true\n    },\n    \"search\": {\n      \"enabled\": true,\n      \"roles\": [\"EMPLOYEE_ADMIN\", \"EMPLOYEE_VIEWER\"],\n      \"filters\": [\"department\", \"status\", \"dateRange\"]\n    },\n    \"inbox\": {\n      \"enabled\": true,\n      \"roles\": [\"EMPLOYEE_ADMIN\"],\n      \"businessService\": \"employee-workflow\"\n    },\n    \"view\": {\n      \"enabled\": true,\n      \"roles\": [\"EMPLOYEE_ADMIN\", \"EMPLOYEE_VIEWER\"],\n      \"sections\": [\"basic\", \"contact\", \"documents\", \"workflow\"]\n    },\n    \"response\": {\n      \"enabled\": true,\n      \"types\": [\"basic\", \"workflow\"]\n    }\n  },\n  \"fields\": [\n    {\n      \"name\": \"employeeName\",\n      \"type\": \"text\",\n      \"label\": \"Employee Name\",\n      \"required\": true,\n      \"validation\": {\n        \"pattern\": \"^[A-Za-z\\\\s]+$\",\n        \"maxLength\": 100\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"type\": \"dropdown\",\n      \"label\": \"Department\",\n      \"required\": true,\n      \"mdms\": {\n        \"masterName\": \"Department\",\n        \"moduleName\": \"common-masters\",\n        \"localePrefix\": \"DEPT_\"\n      }\n    },\n    {\n      \"name\": \"joiningDate\",\n      \"type\": \"date\",\n      \"label\": \"Joining Date\",\n      \"required\": true\n    },\n    {\n      \"name\": \"salary\",\n      \"type\": \"amount\",\n      \"label\": \"Salary\",\n      \"required\": false,\n      \"validation\": {\n        \"min\": 0,\n        \"max\": 1000000\n      }\n    }\n  ],\n  \"api\": {\n    \"create\": \"/employee/_create\",\n    \"update\": \"/employee/_update\", \n    \"search\": \"/employee/_search\",\n    \"workflow\": \"/workflow/_transition\"\n  },\n  \"i18n\": {\n    \"prefix\": \"EMP_\",\n    \"generateKeys\": true\n  }\n}\n```\n\n## 🛠️ Generated File Structure\n\n```\npackages/modules/your-module/\n├── package.json\n├── webpack.config.js\n├── src/\n│   ├── Module.js\n│   ├── configs/\n│   │   ├── YourEntityCreateConfig.js\n│   │   ├── YourEntitySearchConfig.js\n│   │   ├── YourEntityInboxConfig.js\n│   │   └── YourEntityViewConfig.js\n│   ├── pages/\n│   │   └── employee/\n│   │       ├── YourEntityCreate.js\n│   │       ├── YourEntitySearch.js\n│   │       ├── YourEntityInbox.js\n│   │       ├── YourEntityView.js\n│   │       └── YourEntityResponse.js\n│   ├── components/\n│   │   ├── YourEntityCard.js\n│   │   └── YourEntityComponent.js\n│   ├── utils/\n│   │   ├── createUtils.js\n│   │   ├── searchUtils.js\n│   │   └── responseUtils.js\n│   ├── hooks/\n│   │   ├── useYourEntitySearch.js\n│   │   └── useYourEntityCreate.js\n│   └── services/\n│       └── yourEntityService.js\n├── localization/\n│   ├── en_IN.json\n│   └── hi_IN.json\n└── README.md\n```\n\n## 🔧 CLI Commands\n\n### Create Module\n```bash\ndigit-gen create [options]\n\nOptions:\n  -n, --name <name>           Module name\n  -c, --code <code>          Module code\n  -e, --entity <entity>      Entity name\n  -a, --api-spec <path>      API specification file/URL\n  -t, --template <template>  Use existing template\n  -s, --screens <screens>    Comma-separated screen list\n  -o, --output <path>        Output directory\n  --config <config>          Configuration file\n  --force                    Overwrite existing files\n  --dry-run                  Preview generated files\n```\n\n### List Templates\n```bash\ndigit-gen templates\n\nAvailable templates:\n- hrms              Employee/HR management\n- project-mgmt      Project management system\n- inventory         Inventory management\n- citizen-services  Citizen service applications\n- finance           Financial management\n- attendance        Attendance management\n```\n\n### Validate Configuration\n```bash\ndigit-gen validate --config ./module-config.json\n```\n\n### Generate Specific Components\n```bash\n# Generate only create screen\ndigit-gen screen create --entity Employee --config ./module-config.json\n\n# Generate only utils\ndigit-gen utils --entity Employee --config ./module-config.json\n\n# Generate i18n files\ndigit-gen i18n --config ./module-config.json\n```\n\n## 📚 API Specification Integration\n\n### OpenAPI/Swagger Support\nThe generator can automatically create forms and validations from OpenAPI specifications:\n\n```bash\ndigit-gen create --api-spec ./employee-api.json --entity Employee\n```\n\n### Supported OpenAPI Features:\n- **Schema Properties** → Form fields\n- **Required Fields** → Validation rules\n- **Data Types** → Field types (string→text, number→number, etc.)\n- **Enums** → Dropdown options\n- **Patterns** → Validation patterns\n- **Min/Max Values** → Validation constraints\n- **Descriptions** → Field help text\n\n### Example OpenAPI Schema:\n```json\n{\n  \"Employee\": {\n    \"type\": \"object\",\n    \"required\": [\"name\", \"department\"],\n    \"properties\": {\n      \"name\": {\n        \"type\": \"string\",\n        \"pattern\": \"^[A-Za-z\\\\s]+$\",\n        \"maxLength\": 100,\n        \"description\": \"Employee full name\"\n      },\n      \"department\": {\n        \"type\": \"string\",\n        \"enum\": [\"HR\", \"IT\", \"Finance\", \"Operations\"]\n      },\n      \"salary\": {\n        \"type\": \"number\",\n        \"minimum\": 0,\n        \"maximum\": 1000000\n      },\n      \"joiningDate\": {\n        \"type\": \"string\",\n        \"format\": \"date\"\n      }\n    }\n  }\n}\n```\n\n## 🔧 Generated Code Architecture\n\n### Modern DIGIT API Patterns\nGenerated modules follow the latest DIGIT Frontend patterns:\n\n**API Hooks Pattern:**\n```javascript\n// Generated hooks use proper DIGIT patterns\nimport { useCreateEmployee, useSearchEmployees } from \"./hooks/useEmployee\";\n\nconst EmployeeCreate = () => {\n  const createMutation = useCreateEmployee();\n  \n  const onSubmit = async (data) => {\n    await createMutation.mutate({\n      url: \"/employee/_create\",\n      params: { tenantId },\n      body: transformCreateEmployeeData(data, tenantId, user),\n      config: { enable: true }\n    });\n  };\n};\n```\n\n**Search with Custom Hook:**\n```javascript\nconst { data: searchResults, isLoading, revalidate } = useSearchEmployees(\n  searchParams,\n  tenantId,\n  Object.keys(searchParams).length > 0\n);\n```\n\n### Dependencies & Versions\nGenerated modules use the latest DIGIT UI versions:\n- React: 19.0.0\n- @egovernments/digit-ui-components: 2.0.0-dev-19\n- @egovernments/digit-ui-react-components: 2.0.0-dev-02\n- react-router-dom: 6.25.1\n- react-i18next: 15.0.0\n\n### Component Patterns\n- **Create Screens**: FormComposerV2 with mutation hooks\n- **Search Screens**: CommonScreen with search hooks  \n- **View Screens**: CommonScreen with view hooks\n- **Routing**: React Router v6 navigation patterns\n- **State**: No direct Request calls, only DIGIT hooks\n\n## 🎨 Customization\n\n### Custom Templates\nCreate custom templates in `~/.digit-gen/templates/`:\n\n```\n~/.digit-gen/\n└── templates/\n    └── my-template/\n        ├── template.json\n        ├── screens/\n        │   ├── create.hbs\n        │   ├── search.hbs\n        │   └── view.hbs\n        └── configs/\n            ├── createConfig.hbs\n            └── searchConfig.hbs\n```\n\n### Template Variables\nAvailable in Handlebars templates:\n- `{{moduleName}}` - Module display name\n- `{{moduleCode}}` - Module code (kebab-case)\n- `{{entityName}}` - Entity name (PascalCase)\n- `{{entityCode}}` - Entity code (kebab-case)\n- `{{fields}}` - Array of field configurations\n- `{{apiEndpoints}}` - API endpoint configurations\n- `{{roles}}` - Required roles\n- `{{screens}}` - Enabled screens\n\n### Field Types Mapping\n```javascript\nconst fieldTypeMapping = {\n  \"string\": \"text\",\n  \"number\": \"number\", \n  \"integer\": \"number\",\n  \"boolean\": \"checkbox\",\n  \"date\": \"date\",\n  \"date-time\": \"datetime\",\n  \"email\": \"email\",\n  \"uri\": \"url\",\n  \"enum\": \"dropdown\"\n};\n```\n\n## 🧪 Testing Generated Modules\n\nGenerated modules include basic test files:\n\n```bash\ncd packages/modules/your-module\nnpm test\n```\n\nTest files generated:\n- `__tests__/YourEntityCreate.test.js`\n- `__tests__/YourEntitySearch.test.js`\n- `__tests__/utils/createUtils.test.js`\n\n## 🔄 Migration Support\n\n### Upgrade Existing Modules\n```bash\ndigit-gen migrate --module ./packages/modules/old-module --version 2.0\n```\n\n### Compare Templates\n```bash\ndigit-gen diff --template old-template new-template\n```\n\n## 📖 Examples\n\n### 1. Employee Management Module\n```bash\ndigit-gen create \\\n  --name \"Employee Management\" \\\n  --entity Employee \\\n  --api-spec ./employee-api.json \\\n  --screens create,search,inbox,view \\\n  --roles EMPLOYEE_ADMIN,EMPLOYEE_VIEWER\n```\n\n### 2. Project Management Module  \n```bash\ndigit-gen create \\\n  --template project-mgmt \\\n  --name \"Project Tracker\" \\\n  --entity Project \\\n  --workflow project-approval\n```\n\n### 3. Custom Configuration\n```bash\ndigit-gen create --config ./configs/inventory-module.json\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create feature branch\n3. Add templates or improve generator\n4. Submit pull request\n\n### Adding New Templates\n1. Create template directory in `templates/`\n2. Add Handlebars files for screens/configs\n3. Update `template.json` with metadata\n4. Add to template registry\n\n## 📦 NPM Publishing\n\n### For Maintainers\n\nTo publish a new version:\n\n```bash\n# 1. Update version in package.json\nnpm version patch  # or minor/major\n\n# 2. Build the package\nnpm run build\n\n# 3. Test the package\nnpm test\n\n# 4. Publish to NPM (requires @egovernments org access)\nnpm publish --access public\n\n# 5. Tag the release\ngit tag v$(node -p \"require('./package.json').version\")\ngit push --tags\n```\n\n### Publishing Checklist\n\n- [ ] All tests pass (`npm test`)\n- [ ] Templates are validated\n- [ ] README is updated\n- [ ] Version is bumped\n- [ ] Built package is tested (`npm run build`)\n- [ ] All screen patterns work correctly\n\n## 📝 License\n\nMIT License - see LICENSE file\n\n## 🆘 Support\n\n- GitHub Issues: [Report bugs](https://github.com/egovernments/digit-module-generator/issues)\n- Documentation: [Full docs](https://digit-module-generator.docs.dev)\n- Community: [Discord](https://discord.gg/digit-developers)\n\n## 🎯 Roadmap\n\n- [ ] Visual form builder interface\n- [ ] Integration with DIGIT DevOps\n- [ ] Advanced workflow templates\n- [ ] Multi-tenant configuration\n- [ ] Plugin system for custom generators\n- [ ] Integration with design system\n- [ ] Auto-deployment to DIGIT instances","readmeFilename":"README.md"}