@geekmidas/cli 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/README.md +488 -71
  2. package/dist/CronGenerator-BPTqNYOR.d.cts +14 -0
  3. package/dist/{CronGenerator-Bh26MaNA.mjs → CronGenerator-CCRYptuT.mjs} +2 -2
  4. package/dist/{CronGenerator-Bh26MaNA.mjs.map → CronGenerator-CCRYptuT.mjs.map} +1 -1
  5. package/dist/{CronGenerator-C6MF8rlG.cjs → CronGenerator-D4TWXQbh.cjs} +2 -2
  6. package/dist/{CronGenerator-C6MF8rlG.cjs.map → CronGenerator-D4TWXQbh.cjs.map} +1 -1
  7. package/dist/CronGenerator-YAj59JUd.d.mts +14 -0
  8. package/dist/EndpointGenerator-ChAD1INz.d.cts +19 -0
  9. package/dist/EndpointGenerator-Cj3O1U8-.d.mts +19 -0
  10. package/dist/{EndpointGenerator-CWh18d92.mjs → EndpointGenerator-DGivkPLT.mjs} +77 -7
  11. package/dist/EndpointGenerator-DGivkPLT.mjs.map +1 -0
  12. package/dist/{EndpointGenerator-C73wNoih.cjs → EndpointGenerator-npWEDoK2.cjs} +77 -7
  13. package/dist/EndpointGenerator-npWEDoK2.cjs.map +1 -0
  14. package/dist/FunctionGenerator-429-9NER.d.cts +14 -0
  15. package/dist/FunctionGenerator-BQ4ehoID.d.mts +14 -0
  16. package/dist/{FunctionGenerator-BNE_GC7N.mjs → FunctionGenerator-CVk0h8tO.mjs} +2 -2
  17. package/dist/{FunctionGenerator-BNE_GC7N.mjs.map → FunctionGenerator-CVk0h8tO.mjs.map} +1 -1
  18. package/dist/{FunctionGenerator-FgZUTd8L.cjs → FunctionGenerator-DYTnyr4c.cjs} +2 -2
  19. package/dist/{FunctionGenerator-FgZUTd8L.cjs.map → FunctionGenerator-DYTnyr4c.cjs.map} +1 -1
  20. package/dist/Generator-BjHK_qce.d.mts +27 -0
  21. package/dist/{Generator-UanJW0_V.mjs → Generator-CDt4pB3W.mjs} +1 -1
  22. package/dist/{Generator-UanJW0_V.mjs.map → Generator-CDt4pB3W.mjs.map} +1 -1
  23. package/dist/{Generator-CDoEXCDg.cjs → Generator-CLVplqm2.cjs} +1 -1
  24. package/dist/{Generator-CDoEXCDg.cjs.map → Generator-CLVplqm2.cjs.map} +1 -1
  25. package/dist/Generator-DxQMCQp7.d.cts +27 -0
  26. package/dist/OpenApiTsGenerator-Be-sKGTT.cjs +501 -0
  27. package/dist/OpenApiTsGenerator-Be-sKGTT.cjs.map +1 -0
  28. package/dist/OpenApiTsGenerator-C4mHHaku.mjs +495 -0
  29. package/dist/OpenApiTsGenerator-C4mHHaku.mjs.map +1 -0
  30. package/dist/SubscriberGenerator-7uX42xyG.d.mts +15 -0
  31. package/dist/{SubscriberGenerator-Dnlj_1FK.mjs → SubscriberGenerator-DABaJXML.mjs} +2 -2
  32. package/dist/{SubscriberGenerator-Dnlj_1FK.mjs.map → SubscriberGenerator-DABaJXML.mjs.map} +1 -1
  33. package/dist/{SubscriberGenerator-Bd-a7aiw.cjs → SubscriberGenerator-D_zpNGFr.cjs} +2 -2
  34. package/dist/{SubscriberGenerator-Bd-a7aiw.cjs.map → SubscriberGenerator-D_zpNGFr.cjs.map} +1 -1
  35. package/dist/SubscriberGenerator-Dtb3HS4i.d.cts +15 -0
  36. package/dist/api-B3SCEHPf.cjs +190 -0
  37. package/dist/api-B3SCEHPf.cjs.map +1 -0
  38. package/dist/api-BKIN0s0S.mjs +184 -0
  39. package/dist/api-BKIN0s0S.mjs.map +1 -0
  40. package/dist/build/index.cjs +11 -10
  41. package/dist/build/index.d.cts +7 -0
  42. package/dist/build/index.d.mts +7 -0
  43. package/dist/build/index.mjs +11 -10
  44. package/dist/build/manifests.cjs +1 -1
  45. package/dist/build/manifests.d.cts +13 -0
  46. package/dist/build/manifests.d.mts +13 -0
  47. package/dist/build/manifests.mjs +1 -1
  48. package/dist/build/providerResolver.cjs +1 -1
  49. package/dist/build/providerResolver.d.cts +23 -0
  50. package/dist/build/providerResolver.d.mts +23 -0
  51. package/dist/build/providerResolver.mjs +1 -1
  52. package/dist/build/types.d.cts +3 -0
  53. package/dist/build/types.d.mts +3 -0
  54. package/dist/{build-C6uEGRj8.mjs → build-B8C_qHir.mjs} +15 -13
  55. package/dist/build-B8C_qHir.mjs.map +1 -0
  56. package/dist/{build-CBYBPZpC.cjs → build-D0Wr49bf.cjs} +15 -13
  57. package/dist/build-D0Wr49bf.cjs.map +1 -0
  58. package/dist/config-Ba-Gbpbc.d.cts +11 -0
  59. package/dist/config-Bq72aj8e.mjs +75 -0
  60. package/dist/config-Bq72aj8e.mjs.map +1 -0
  61. package/dist/config-CFls09Ey.cjs +93 -0
  62. package/dist/config-CFls09Ey.cjs.map +1 -0
  63. package/dist/config-CLEDqKO3.cjs +157 -0
  64. package/dist/config-CLEDqKO3.cjs.map +1 -0
  65. package/dist/config-DBsmMDhf.d.mts +11 -0
  66. package/dist/config-Dp8RonV_.mjs +151 -0
  67. package/dist/config-Dp8RonV_.mjs.map +1 -0
  68. package/dist/config.cjs +4 -2
  69. package/dist/config.d.cts +48 -0
  70. package/dist/config.d.mts +48 -0
  71. package/dist/config.mjs +2 -2
  72. package/dist/dev/index.cjs +12 -10
  73. package/dist/dev/index.d.cts +36 -0
  74. package/dist/dev/index.d.mts +36 -0
  75. package/dist/dev/index.mjs +10 -10
  76. package/dist/dev-B734w3L1.mjs +343 -0
  77. package/dist/dev-B734w3L1.mjs.map +1 -0
  78. package/dist/{dev-DbtyToc7.cjs → dev-DHqYn8k4.cjs} +161 -47
  79. package/dist/dev-DHqYn8k4.cjs.map +1 -0
  80. package/dist/docker-5d8Yh5_X.cjs +119 -0
  81. package/dist/docker-5d8Yh5_X.cjs.map +1 -0
  82. package/dist/docker-DlUqdFle.mjs +113 -0
  83. package/dist/docker-DlUqdFle.mjs.map +1 -0
  84. package/dist/env-B-OKjgI4.cjs +144 -0
  85. package/dist/env-B-OKjgI4.cjs.map +1 -0
  86. package/dist/env-HfuJRlg5.d.cts +11 -0
  87. package/dist/env-nd-iQPYM.d.mts +11 -0
  88. package/dist/env-tv1HlZlw.mjs +138 -0
  89. package/dist/env-tv1HlZlw.mjs.map +1 -0
  90. package/dist/generators/CronGenerator.cjs +2 -2
  91. package/dist/generators/CronGenerator.d.cts +5 -0
  92. package/dist/generators/CronGenerator.d.mts +5 -0
  93. package/dist/generators/CronGenerator.mjs +2 -2
  94. package/dist/generators/EndpointGenerator.cjs +2 -2
  95. package/dist/generators/EndpointGenerator.d.cts +5 -0
  96. package/dist/generators/EndpointGenerator.d.mts +5 -0
  97. package/dist/generators/EndpointGenerator.mjs +2 -2
  98. package/dist/generators/FunctionGenerator.cjs +2 -2
  99. package/dist/generators/FunctionGenerator.d.cts +5 -0
  100. package/dist/generators/FunctionGenerator.d.mts +5 -0
  101. package/dist/generators/FunctionGenerator.mjs +2 -2
  102. package/dist/generators/Generator.cjs +1 -1
  103. package/dist/generators/Generator.d.cts +4 -0
  104. package/dist/generators/Generator.d.mts +4 -0
  105. package/dist/generators/Generator.mjs +1 -1
  106. package/dist/generators/OpenApiTsGenerator.cjs +3 -0
  107. package/dist/generators/OpenApiTsGenerator.d.cts +44 -0
  108. package/dist/generators/OpenApiTsGenerator.d.mts +44 -0
  109. package/dist/generators/OpenApiTsGenerator.mjs +3 -0
  110. package/dist/generators/SubscriberGenerator.cjs +2 -2
  111. package/dist/generators/SubscriberGenerator.d.cts +5 -0
  112. package/dist/generators/SubscriberGenerator.d.mts +5 -0
  113. package/dist/generators/SubscriberGenerator.mjs +2 -2
  114. package/dist/generators/index.cjs +6 -6
  115. package/dist/generators/index.d.cts +8 -0
  116. package/dist/generators/index.d.mts +8 -0
  117. package/dist/generators/index.mjs +6 -6
  118. package/dist/index-C523No_B.d.mts +64 -0
  119. package/dist/index-DrzN4xkQ.d.cts +64 -0
  120. package/dist/index.cjs +56 -18
  121. package/dist/index.cjs.map +1 -1
  122. package/dist/index.d.cts +1 -0
  123. package/dist/index.d.mts +1 -0
  124. package/dist/index.mjs +56 -18
  125. package/dist/index.mjs.map +1 -1
  126. package/dist/init/generators/config.cjs +3 -0
  127. package/dist/init/generators/config.d.cts +3 -0
  128. package/dist/init/generators/config.d.mts +3 -0
  129. package/dist/init/generators/config.mjs +3 -0
  130. package/dist/init/generators/docker.cjs +3 -0
  131. package/dist/init/generators/docker.d.cts +11 -0
  132. package/dist/init/generators/docker.d.mts +11 -0
  133. package/dist/init/generators/docker.mjs +3 -0
  134. package/dist/init/generators/env.cjs +3 -0
  135. package/dist/init/generators/env.d.cts +3 -0
  136. package/dist/init/generators/env.d.mts +3 -0
  137. package/dist/init/generators/env.mjs +3 -0
  138. package/dist/init/generators/index.cjs +9 -0
  139. package/dist/init/generators/index.d.cts +6 -0
  140. package/dist/init/generators/index.d.mts +6 -0
  141. package/dist/init/generators/index.mjs +6 -0
  142. package/dist/init/generators/models.cjs +3 -0
  143. package/dist/init/generators/models.d.cts +11 -0
  144. package/dist/init/generators/models.d.mts +11 -0
  145. package/dist/init/generators/models.mjs +3 -0
  146. package/dist/init/generators/monorepo.cjs +3 -0
  147. package/dist/init/generators/monorepo.d.cts +11 -0
  148. package/dist/init/generators/monorepo.d.mts +11 -0
  149. package/dist/init/generators/monorepo.mjs +3 -0
  150. package/dist/init/generators/package.cjs +3 -0
  151. package/dist/init/generators/package.d.cts +3 -0
  152. package/dist/init/generators/package.d.mts +3 -0
  153. package/dist/init/generators/package.mjs +3 -0
  154. package/dist/init/generators/source.cjs +3 -0
  155. package/dist/init/generators/source.d.cts +3 -0
  156. package/dist/init/generators/source.d.mts +3 -0
  157. package/dist/init/generators/source.mjs +3 -0
  158. package/dist/init/index.cjs +16 -0
  159. package/dist/init/index.d.cts +17 -0
  160. package/dist/init/index.d.mts +17 -0
  161. package/dist/init/index.mjs +16 -0
  162. package/dist/init/templates/api.cjs +3 -0
  163. package/dist/init/templates/api.d.cts +7 -0
  164. package/dist/init/templates/api.d.mts +7 -0
  165. package/dist/init/templates/api.mjs +3 -0
  166. package/dist/init/templates/index.cjs +10 -0
  167. package/dist/init/templates/index.d.cts +2 -0
  168. package/dist/init/templates/index.d.mts +2 -0
  169. package/dist/init/templates/index.mjs +7 -0
  170. package/dist/init/templates/minimal.cjs +3 -0
  171. package/dist/init/templates/minimal.d.cts +7 -0
  172. package/dist/init/templates/minimal.d.mts +7 -0
  173. package/dist/init/templates/minimal.mjs +3 -0
  174. package/dist/init/templates/serverless.cjs +3 -0
  175. package/dist/init/templates/serverless.d.cts +7 -0
  176. package/dist/init/templates/serverless.d.mts +7 -0
  177. package/dist/init/templates/serverless.mjs +3 -0
  178. package/dist/init/templates/worker.cjs +3 -0
  179. package/dist/init/templates/worker.d.cts +7 -0
  180. package/dist/init/templates/worker.d.mts +7 -0
  181. package/dist/init/templates/worker.mjs +3 -0
  182. package/dist/init/utils.cjs +7 -0
  183. package/dist/init/utils.d.cts +25 -0
  184. package/dist/init/utils.d.mts +25 -0
  185. package/dist/init/utils.mjs +3 -0
  186. package/dist/init-CtOnZn3G.mjs +145 -0
  187. package/dist/init-CtOnZn3G.mjs.map +1 -0
  188. package/dist/init-qLFsWR-R.cjs +151 -0
  189. package/dist/init-qLFsWR-R.cjs.map +1 -0
  190. package/dist/{manifests-C2eMoMUm.mjs → manifests-DIA_2QYd.mjs} +1 -1
  191. package/dist/{manifests-C2eMoMUm.mjs.map → manifests-DIA_2QYd.mjs.map} +1 -1
  192. package/dist/{manifests-CK1VV_pM.cjs → manifests-VJ9-2JpW.cjs} +1 -1
  193. package/dist/{manifests-CK1VV_pM.cjs.map → manifests-VJ9-2JpW.cjs.map} +1 -1
  194. package/dist/minimal-Bdhhpp7v.cjs +93 -0
  195. package/dist/minimal-Bdhhpp7v.cjs.map +1 -0
  196. package/dist/minimal-C4GsE45s.mjs +87 -0
  197. package/dist/minimal-C4GsE45s.mjs.map +1 -0
  198. package/dist/models-DyNwdOcz.cjs +121 -0
  199. package/dist/models-DyNwdOcz.cjs.map +1 -0
  200. package/dist/models-cvNg6Oea.mjs +115 -0
  201. package/dist/models-cvNg6Oea.mjs.map +1 -0
  202. package/dist/monorepo-Cknwzj5C.mjs +184 -0
  203. package/dist/monorepo-Cknwzj5C.mjs.map +1 -0
  204. package/dist/monorepo-sEK8gW59.cjs +190 -0
  205. package/dist/monorepo-sEK8gW59.cjs.map +1 -0
  206. package/dist/openapi-BQWPWyNB.cjs +56 -0
  207. package/dist/openapi-BQWPWyNB.cjs.map +1 -0
  208. package/dist/openapi-DBX8cJJ8.mjs +50 -0
  209. package/dist/openapi-DBX8cJJ8.mjs.map +1 -0
  210. package/dist/{openapi-react-query-D9Z7lh0p.cjs → openapi-react-query-DxHjXQvg.cjs} +1 -1
  211. package/dist/{openapi-react-query-D9Z7lh0p.cjs.map → openapi-react-query-DxHjXQvg.cjs.map} +1 -1
  212. package/dist/{openapi-react-query-MEBlYIM1.mjs → openapi-react-query-o7Mp1Jd5.mjs} +1 -1
  213. package/dist/{openapi-react-query-MEBlYIM1.mjs.map → openapi-react-query-o7Mp1Jd5.mjs.map} +1 -1
  214. package/dist/openapi-react-query.cjs +1 -1
  215. package/dist/openapi-react-query.d.cts +11 -0
  216. package/dist/openapi-react-query.d.mts +11 -0
  217. package/dist/openapi-react-query.mjs +1 -1
  218. package/dist/openapi.cjs +5 -4
  219. package/dist/openapi.d.cts +11 -0
  220. package/dist/openapi.d.mts +11 -0
  221. package/dist/openapi.mjs +5 -4
  222. package/dist/package-C7WhWU8m.d.mts +11 -0
  223. package/dist/package-CIfmeuSW.mjs +51 -0
  224. package/dist/package-CIfmeuSW.mjs.map +1 -0
  225. package/dist/package-DvWEMz6z.d.cts +11 -0
  226. package/dist/package-PP-o1nvq.cjs +57 -0
  227. package/dist/package-PP-o1nvq.cjs.map +1 -0
  228. package/dist/{providerResolver-B_TjNF0_.mjs → providerResolver-DEVKngbC.mjs} +1 -1
  229. package/dist/{providerResolver-B_TjNF0_.mjs.map → providerResolver-DEVKngbC.mjs.map} +1 -1
  230. package/dist/{providerResolver-DgvzNfP4.cjs → providerResolver-DOTbN9jo.cjs} +1 -1
  231. package/dist/{providerResolver-DgvzNfP4.cjs.map → providerResolver-DOTbN9jo.cjs.map} +1 -1
  232. package/dist/serverless-DkHBF2vC.mjs +108 -0
  233. package/dist/serverless-DkHBF2vC.mjs.map +1 -0
  234. package/dist/serverless-Yav3GRVz.cjs +114 -0
  235. package/dist/serverless-Yav3GRVz.cjs.map +1 -0
  236. package/dist/source-D6v2BnKT.d.mts +11 -0
  237. package/dist/source-D8fK9qRo.d.cts +11 -0
  238. package/dist/source-DT5Xhiob.cjs +17 -0
  239. package/dist/source-DT5Xhiob.cjs.map +1 -0
  240. package/dist/source-DnaH_MLA.mjs +11 -0
  241. package/dist/source-DnaH_MLA.mjs.map +1 -0
  242. package/dist/templates-CBFUwpBy.mjs +64 -0
  243. package/dist/templates-CBFUwpBy.mjs.map +1 -0
  244. package/dist/templates-DM_rtYYW.cjs +87 -0
  245. package/dist/templates-DM_rtYYW.cjs.map +1 -0
  246. package/dist/types-C4KITv-y.d.mts +51 -0
  247. package/dist/types-Cxl8-uwV.d.mts +129 -0
  248. package/dist/types-DB99_qIy.d.cts +129 -0
  249. package/dist/types-DLFN49M3.d.cts +51 -0
  250. package/dist/types.d.cts +2 -0
  251. package/dist/types.d.mts +2 -0
  252. package/dist/utils-BX3F4fT8.cjs +99 -0
  253. package/dist/utils-BX3F4fT8.cjs.map +1 -0
  254. package/dist/utils-C31-SWHP.mjs +69 -0
  255. package/dist/utils-C31-SWHP.mjs.map +1 -0
  256. package/dist/worker--8O5a3Hv.cjs +150 -0
  257. package/dist/worker--8O5a3Hv.cjs.map +1 -0
  258. package/dist/worker-Jme7uOOJ.mjs +144 -0
  259. package/dist/worker-Jme7uOOJ.mjs.map +1 -0
  260. package/docs/OPENAPI_TYPESCRIPT_DESIGN.md +408 -0
  261. package/package.json +19 -4
  262. package/src/__tests__/loadEnvFiles.spec.ts +131 -0
  263. package/src/__tests__/openapi.spec.ts +78 -63
  264. package/src/build/index.ts +14 -16
  265. package/src/build/types.ts +18 -2
  266. package/src/config.ts +61 -2
  267. package/src/dev/__tests__/index.spec.ts +98 -1
  268. package/src/dev/index.ts +229 -42
  269. package/src/generators/EndpointGenerator.ts +98 -5
  270. package/src/generators/OpenApiTsGenerator.ts +798 -0
  271. package/src/index.ts +32 -3
  272. package/src/init/__tests__/generators.spec.ts +366 -0
  273. package/src/init/__tests__/init.spec.ts +341 -0
  274. package/src/init/__tests__/utils.spec.ts +104 -0
  275. package/src/init/generators/config.ts +192 -0
  276. package/src/init/generators/docker.ts +134 -0
  277. package/src/init/generators/env.ts +182 -0
  278. package/src/init/generators/index.ts +4 -0
  279. package/src/init/generators/models.ts +129 -0
  280. package/src/init/generators/monorepo.ts +211 -0
  281. package/src/init/generators/package.ts +81 -0
  282. package/src/init/generators/source.ts +15 -0
  283. package/src/init/index.ts +206 -0
  284. package/src/init/templates/api.ts +218 -0
  285. package/src/init/templates/index.ts +108 -0
  286. package/src/init/templates/minimal.ts +102 -0
  287. package/src/init/templates/serverless.ts +129 -0
  288. package/src/init/templates/worker.ts +169 -0
  289. package/src/init/utils.ts +98 -0
  290. package/src/openapi.ts +36 -15
  291. package/src/types.ts +43 -0
  292. package/tsdown.config.ts +1 -1
  293. package/dist/EndpointGenerator-C73wNoih.cjs.map +0 -1
  294. package/dist/EndpointGenerator-CWh18d92.mjs.map +0 -1
  295. package/dist/build-C6uEGRj8.mjs.map +0 -1
  296. package/dist/build-CBYBPZpC.cjs.map +0 -1
  297. package/dist/config-D1EpSGk6.cjs +0 -36
  298. package/dist/config-D1EpSGk6.cjs.map +0 -1
  299. package/dist/config-U-mdW-7Y.mjs +0 -30
  300. package/dist/config-U-mdW-7Y.mjs.map +0 -1
  301. package/dist/dev-DbtyToc7.cjs.map +0 -1
  302. package/dist/dev-DnGYXuMn.mjs +0 -241
  303. package/dist/dev-DnGYXuMn.mjs.map +0 -1
  304. package/dist/openapi-BTHbPrxS.mjs +0 -36
  305. package/dist/openapi-BTHbPrxS.mjs.map +0 -1
  306. package/dist/openapi-CewcfoRH.cjs +0 -42
  307. package/dist/openapi-CewcfoRH.cjs.map +0 -1
  308. /package/dist/{generators-CEKtVh81.cjs → generators-3IemvCLk.cjs} +0 -0
  309. /package/dist/{generators-CsLujGXs.mjs → generators-FNpdfN6J.mjs} +0 -0
@@ -0,0 +1,64 @@
1
+ //#region src/init/templates/index.d.ts
2
+ /**
3
+ * Route organization style
4
+ */
5
+ type RouteStyle = 'file-based' | 'flat';
6
+ /**
7
+ * Options collected from user prompts
8
+ */
9
+ interface TemplateOptions {
10
+ name: string;
11
+ template: TemplateName;
12
+ telescope: boolean;
13
+ database: boolean;
14
+ routeStyle: RouteStyle;
15
+ monorepo: boolean;
16
+ /** Path for the API app in monorepo (e.g., 'apps/api') */
17
+ apiPath: string;
18
+ }
19
+ /**
20
+ * A file to be generated
21
+ */
22
+ interface GeneratedFile {
23
+ path: string;
24
+ content: string;
25
+ }
26
+ /**
27
+ * Template configuration
28
+ */
29
+ interface TemplateConfig {
30
+ name: TemplateName;
31
+ description: string;
32
+ dependencies: Record<string, string>;
33
+ devDependencies: Record<string, string>;
34
+ scripts: Record<string, string>;
35
+ files: (options: TemplateOptions) => GeneratedFile[];
36
+ }
37
+ type TemplateName = 'minimal' | 'api' | 'serverless' | 'worker';
38
+ /**
39
+ * All available templates
40
+ */
41
+ declare const templates: Record<TemplateName, TemplateConfig>;
42
+ /**
43
+ * Template choices for prompts
44
+ */
45
+ declare const templateChoices: {
46
+ title: string;
47
+ value: TemplateName;
48
+ description: string;
49
+ }[];
50
+ /**
51
+ * Route style choices for prompts
52
+ */
53
+ declare const routeStyleChoices: {
54
+ title: string;
55
+ value: RouteStyle;
56
+ description: string;
57
+ }[];
58
+ /**
59
+ * Get a template by name
60
+ */
61
+ declare function getTemplate(name: TemplateName): TemplateConfig;
62
+ //#endregion
63
+ export { GeneratedFile, RouteStyle, TemplateConfig, TemplateName, TemplateOptions, getTemplate, routeStyleChoices, templateChoices, templates };
64
+ //# sourceMappingURL=index-C523No_B.d.mts.map
@@ -0,0 +1,64 @@
1
+ //#region src/init/templates/index.d.ts
2
+ /**
3
+ * Route organization style
4
+ */
5
+ type RouteStyle = 'file-based' | 'flat';
6
+ /**
7
+ * Options collected from user prompts
8
+ */
9
+ interface TemplateOptions {
10
+ name: string;
11
+ template: TemplateName;
12
+ telescope: boolean;
13
+ database: boolean;
14
+ routeStyle: RouteStyle;
15
+ monorepo: boolean;
16
+ /** Path for the API app in monorepo (e.g., 'apps/api') */
17
+ apiPath: string;
18
+ }
19
+ /**
20
+ * A file to be generated
21
+ */
22
+ interface GeneratedFile {
23
+ path: string;
24
+ content: string;
25
+ }
26
+ /**
27
+ * Template configuration
28
+ */
29
+ interface TemplateConfig {
30
+ name: TemplateName;
31
+ description: string;
32
+ dependencies: Record<string, string>;
33
+ devDependencies: Record<string, string>;
34
+ scripts: Record<string, string>;
35
+ files: (options: TemplateOptions) => GeneratedFile[];
36
+ }
37
+ type TemplateName = 'minimal' | 'api' | 'serverless' | 'worker';
38
+ /**
39
+ * All available templates
40
+ */
41
+ declare const templates: Record<TemplateName, TemplateConfig>;
42
+ /**
43
+ * Template choices for prompts
44
+ */
45
+ declare const templateChoices: {
46
+ title: string;
47
+ value: TemplateName;
48
+ description: string;
49
+ }[];
50
+ /**
51
+ * Route style choices for prompts
52
+ */
53
+ declare const routeStyleChoices: {
54
+ title: string;
55
+ value: RouteStyle;
56
+ description: string;
57
+ }[];
58
+ /**
59
+ * Get a template by name
60
+ */
61
+ declare function getTemplate(name: TemplateName): TemplateConfig;
62
+ //#endregion
63
+ export { GeneratedFile, RouteStyle, TemplateConfig, TemplateName, TemplateOptions, getTemplate, routeStyleChoices, templateChoices, templates };
64
+ //# sourceMappingURL=index-DrzN4xkQ.d.cts.map
package/dist/index.cjs CHANGED
@@ -1,23 +1,39 @@
1
1
  #!/usr/bin/env -S npx tsx
2
2
  const require_chunk = require('./chunk-CUT6urMc.cjs');
3
- require('./config-D1EpSGk6.cjs');
4
- require('./Generator-CDoEXCDg.cjs');
5
- require('./CronGenerator-C6MF8rlG.cjs');
6
- require('./EndpointGenerator-C73wNoih.cjs');
7
- require('./FunctionGenerator-FgZUTd8L.cjs');
8
- require('./SubscriberGenerator-Bd-a7aiw.cjs');
9
- require('./generators-CEKtVh81.cjs');
10
- require('./manifests-CK1VV_pM.cjs');
11
- require('./providerResolver-DgvzNfP4.cjs');
12
- const require_build = require('./build-CBYBPZpC.cjs');
13
- const require_dev = require('./dev-DbtyToc7.cjs');
14
- const require_openapi_react_query = require('./openapi-react-query-D9Z7lh0p.cjs');
15
- const require_openapi = require('./openapi-CewcfoRH.cjs');
3
+ require('./config-CFls09Ey.cjs');
4
+ require('./providerResolver-DOTbN9jo.cjs');
5
+ require('./Generator-CLVplqm2.cjs');
6
+ require('./CronGenerator-D4TWXQbh.cjs');
7
+ require('./EndpointGenerator-npWEDoK2.cjs');
8
+ require('./FunctionGenerator-DYTnyr4c.cjs');
9
+ require('./SubscriberGenerator-D_zpNGFr.cjs');
10
+ require('./generators-3IemvCLk.cjs');
11
+ const require_dev = require('./dev-DHqYn8k4.cjs');
12
+ require('./manifests-VJ9-2JpW.cjs');
13
+ const require_build = require('./build-D0Wr49bf.cjs');
14
+ require('./config-CLEDqKO3.cjs');
15
+ require('./docker-5d8Yh5_X.cjs');
16
+ require('./env-B-OKjgI4.cjs');
17
+ require('./models-DyNwdOcz.cjs');
18
+ require('./monorepo-sEK8gW59.cjs');
19
+ require('./package-PP-o1nvq.cjs');
20
+ require('./source-DT5Xhiob.cjs');
21
+ require('./api-B3SCEHPf.cjs');
22
+ require('./minimal-Bdhhpp7v.cjs');
23
+ require('./serverless-Yav3GRVz.cjs');
24
+ require('./worker--8O5a3Hv.cjs');
25
+ require('./templates-DM_rtYYW.cjs');
26
+ require('./utils-BX3F4fT8.cjs');
27
+ const require_init = require('./init-qLFsWR-R.cjs');
28
+ const require_openapi_react_query = require('./openapi-react-query-DxHjXQvg.cjs');
29
+ require('./OpenApiTsGenerator-Be-sKGTT.cjs');
30
+ const require_openapi = require('./openapi-BQWPWyNB.cjs');
16
31
  const commander = require_chunk.__toESM(require("commander"));
17
32
 
18
33
  //#region package.json
19
34
  var name = "@geekmidas/cli";
20
- var version = "0.3.0";
35
+ var version = "0.5.0";
36
+ var description = "CLI tools for building Lambda handlers, server applications, and generating OpenAPI specs";
21
37
  var private$1 = false;
22
38
  var type = "module";
23
39
  var exports$1 = {
@@ -26,6 +42,11 @@ var exports$1 = {
26
42
  "import": "./dist/index.mjs",
27
43
  "require": "./dist/index.cjs"
28
44
  },
45
+ "./config": {
46
+ "types": "./dist/config.d.ts",
47
+ "import": "./dist/config.mjs",
48
+ "require": "./dist/config.cjs"
49
+ },
29
50
  "./openapi": {
30
51
  "types": "./dist/openapi.d.ts",
31
52
  "import": "./dist/openapi.mjs",
@@ -52,14 +73,17 @@ var dependencies = {
52
73
  "@apidevtools/swagger-parser": "^10.1.0",
53
74
  "chokidar": "~4.0.3",
54
75
  "commander": "^12.1.0",
76
+ "dotenv": "~17.2.3",
55
77
  "fast-glob": "^3.3.2",
56
78
  "lodash.kebabcase": "^4.1.1",
57
- "openapi-typescript": "^7.4.2"
79
+ "openapi-typescript": "^7.4.2",
80
+ "prompts": "~2.4.2"
58
81
  };
59
82
  var devDependencies = {
60
83
  "@geekmidas/testkit": "workspace:*",
61
84
  "@types/lodash.kebabcase": "^4.1.9",
62
85
  "@types/node": "~24.9.1",
86
+ "@types/prompts": "~2.4.9",
63
87
  "typescript": "^5.8.2",
64
88
  "vitest": "^3.2.4",
65
89
  "zod": "~4.1.13"
@@ -68,11 +92,14 @@ var peerDependencies = {
68
92
  "@geekmidas/constructs": "workspace:~",
69
93
  "@geekmidas/envkit": "workspace:~",
70
94
  "@geekmidas/logger": "workspace:~",
71
- "@geekmidas/schema": "workspace:~"
95
+ "@geekmidas/schema": "workspace:~",
96
+ "@geekmidas/telescope": "workspace:~"
72
97
  };
98
+ var peerDependenciesMeta = { "@geekmidas/telescope": { "optional": true } };
73
99
  var package_default = {
74
100
  name,
75
101
  version,
102
+ description,
76
103
  private: private$1,
77
104
  type,
78
105
  exports: exports$1,
@@ -81,13 +108,24 @@ var package_default = {
81
108
  repository,
82
109
  dependencies,
83
110
  devDependencies,
84
- peerDependencies
111
+ peerDependencies,
112
+ peerDependenciesMeta
85
113
  };
86
114
 
87
115
  //#endregion
88
116
  //#region src/index.ts
89
117
  const program = new commander.Command();
90
118
  program.name("gkm").description("GeekMidas backend framework CLI").version(package_default.version).option("--cwd <path>", "Change working directory");
119
+ program.command("init").description("Scaffold a new project").argument("[name]", "Project name").option("--template <template>", "Project template (minimal, api, serverless, worker)").option("--skip-install", "Skip dependency installation", false).option("-y, --yes", "Skip prompts, use defaults", false).option("--monorepo", "Setup as monorepo with packages/models", false).option("--api-path <path>", "API app path in monorepo (default: apps/api)").action(async (name$1, options) => {
120
+ try {
121
+ const globalOptions = program.opts();
122
+ if (globalOptions.cwd) process.chdir(globalOptions.cwd);
123
+ await require_init.initCommand(name$1, options);
124
+ } catch (error) {
125
+ console.error("Init failed:", error.message);
126
+ process.exit(1);
127
+ }
128
+ });
91
129
  program.command("build").description("Build handlers from endpoints, functions, and crons").option("--provider <provider>", "Target provider for generated handlers (aws, server)").option("--providers <providers>", "[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)").option("--enable-openapi", "Enable OpenAPI documentation generation for server builds").action(async (options) => {
92
130
  try {
93
131
  const globalOptions = program.opts();
@@ -142,7 +180,7 @@ program.command("api").description("Manage REST API endpoints").action(() => {
142
180
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
143
181
  process.stdout.write("REST API management - coming soon\n");
144
182
  });
145
- program.command("openapi").description("Generate OpenAPI 3.0 specification from endpoints").option("--output <path>", "Output file path for the OpenAPI spec", "openapi.json").action(async (options) => {
183
+ program.command("openapi").description("Generate OpenAPI specification from endpoints (TypeScript by default)").option("--output <path>", "Output file path for the OpenAPI spec", "openapi.ts").option("--json", "Generate JSON instead of TypeScript (legacy)", false).action(async (options) => {
146
184
  try {
147
185
  const globalOptions = program.opts();
148
186
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["Command","pkg","options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }","options: { port?: string; enableOpenapi?: boolean }","options: { output?: string }","options: { input?: string; output?: string; name?: string }"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@geekmidas/cli\",\n \"version\": \"0.3.0\",\n \"private\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./openapi\": {\n \"types\": \"./dist/openapi.d.ts\",\n \"import\": \"./dist/openapi.mjs\",\n \"require\": \"./dist/openapi.cjs\"\n },\n \"./openapi-react-query\": {\n \"types\": \"./dist/openapi-react-query.d.ts\",\n \"import\": \"./dist/openapi-react-query.mjs\",\n \"require\": \"./dist/openapi-react-query.cjs\"\n }\n },\n \"bin\": {\n \"gkm\": \"./dist/index.cjs\"\n },\n \"scripts\": {\n \"ts\": \"tsc --noEmit --skipLibCheck src/**/*.ts\",\n \"test\": \"vitest\",\n \"test:once\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/geekmidas/toolbox\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"chokidar\": \"~4.0.3\",\n \"commander\": \"^12.1.0\",\n \"fast-glob\": \"^3.3.2\",\n \"lodash.kebabcase\": \"^4.1.1\",\n \"openapi-typescript\": \"^7.4.2\"\n },\n \"devDependencies\": {\n \"@geekmidas/testkit\": \"workspace:*\",\n \"@types/lodash.kebabcase\": \"^4.1.9\",\n \"@types/node\": \"~24.9.1\",\n \"typescript\": \"^5.8.2\",\n \"vitest\": \"^3.2.4\",\n \"zod\": \"~4.1.13\"\n },\n \"peerDependencies\": {\n \"@geekmidas/constructs\": \"workspace:~\",\n \"@geekmidas/envkit\": \"workspace:~\",\n \"@geekmidas/logger\": \"workspace:~\",\n \"@geekmidas/schema\": \"workspace:~\"\n }\n}\n","#!/usr/bin/env -S npx tsx\n\nimport { Command } from 'commander';\nimport pkg from '../package.json' assert { type: 'json' };\nimport { buildCommand } from './build/index.ts';\nimport { devCommand } from './dev/index.ts';\nimport { generateReactQueryCommand } from './openapi-react-query.ts';\nimport { openapiCommand } from './openapi.ts';\nimport type { LegacyProvider, MainProvider } from './types.ts';\n\nconst program = new Command();\n\nprogram\n .name('gkm')\n .description('GeekMidas backend framework CLI')\n .version(pkg.version)\n .option('--cwd <path>', 'Change working directory');\n\nprogram\n .command('build')\n .description('Build handlers from endpoints, functions, and crons')\n .option(\n '--provider <provider>',\n 'Target provider for generated handlers (aws, server)',\n )\n .option(\n '--providers <providers>',\n '[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)',\n )\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation generation for server builds',\n )\n .action(\n async (options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n // Handle new single provider option\n if (options.provider) {\n if (!['aws', 'server'].includes(options.provider)) {\n console.error(\n `Invalid provider: ${options.provider}. Must be 'aws' or 'server'.`,\n );\n process.exit(1);\n }\n await buildCommand({\n provider: options.provider as MainProvider,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Handle legacy providers option\n else if (options.providers) {\n console.warn(\n '⚠️ --providers flag is deprecated. Use --provider instead.',\n );\n const providerList = [\n ...new Set(options.providers.split(',').map((p) => p.trim())),\n ] as LegacyProvider[];\n await buildCommand({\n providers: providerList,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Default to config-driven build\n else {\n await buildCommand({\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n } catch (error) {\n console.error('Build failed:', (error as Error).message);\n process.exit(1);\n }\n },\n );\n\nprogram\n .command('dev')\n .description('Start development server with automatic reload')\n .option('--port <port>', 'Port to run the development server on', '3000')\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation for development server',\n true,\n )\n .action(async (options: { port?: string; enableOpenapi?: boolean }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n await devCommand({\n port: options.port ? Number.parseInt(options.port) : 3000,\n enableOpenApi: options.enableOpenapi ?? true,\n });\n } catch (error) {\n console.error('Dev server failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('cron')\n .description('Manage cron jobs')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Cron management - coming soon\\n');\n });\n\nprogram\n .command('function')\n .description('Manage serverless functions')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Serverless function management - coming soon\\n');\n });\n\nprogram\n .command('api')\n .description('Manage REST API endpoints')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('REST API management - coming soon\\n');\n });\n\nprogram\n .command('openapi')\n .description('Generate OpenAPI 3.0 specification from endpoints')\n .option(\n '--output <path>',\n 'Output file path for the OpenAPI spec',\n 'openapi.json',\n )\n .action(async (options: { output?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await openapiCommand(options);\n } catch (error) {\n console.error('OpenAPI generation failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('generate:react-query')\n .description('Generate React Query hooks from OpenAPI specification')\n .option('--input <path>', 'Input OpenAPI spec file path', 'openapi.json')\n .option(\n '--output <path>',\n 'Output file path for generated hooks',\n 'src/api/hooks.ts',\n )\n .option('--name <name>', 'API name prefix for generated code', 'API')\n .action(\n async (options: { input?: string; output?: string; name?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await generateReactQueryCommand(options);\n } catch (error) {\n console.error(\n 'React Query generation failed:',\n (error as Error).message,\n );\n process.exit(1);\n }\n },\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["Command","pkg","name: string | undefined","options: InitOptions","name","options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }","options: { port?: string; enableOpenapi?: boolean }","options: { output?: string; json?: boolean }","options: { input?: string; output?: string; name?: string }"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@geekmidas/cli\",\n \"version\": \"0.5.0\",\n \"description\": \"CLI tools for building Lambda handlers, server applications, and generating OpenAPI specs\",\n \"private\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./config\": {\n \"types\": \"./dist/config.d.ts\",\n \"import\": \"./dist/config.mjs\",\n \"require\": \"./dist/config.cjs\"\n },\n \"./openapi\": {\n \"types\": \"./dist/openapi.d.ts\",\n \"import\": \"./dist/openapi.mjs\",\n \"require\": \"./dist/openapi.cjs\"\n },\n \"./openapi-react-query\": {\n \"types\": \"./dist/openapi-react-query.d.ts\",\n \"import\": \"./dist/openapi-react-query.mjs\",\n \"require\": \"./dist/openapi-react-query.cjs\"\n }\n },\n \"bin\": {\n \"gkm\": \"./dist/index.cjs\"\n },\n \"scripts\": {\n \"ts\": \"tsc --noEmit --skipLibCheck src/**/*.ts\",\n \"test\": \"vitest\",\n \"test:once\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/geekmidas/toolbox\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"chokidar\": \"~4.0.3\",\n \"commander\": \"^12.1.0\",\n \"dotenv\": \"~17.2.3\",\n \"fast-glob\": \"^3.3.2\",\n \"lodash.kebabcase\": \"^4.1.1\",\n \"openapi-typescript\": \"^7.4.2\",\n \"prompts\": \"~2.4.2\"\n },\n \"devDependencies\": {\n \"@geekmidas/testkit\": \"workspace:*\",\n \"@types/lodash.kebabcase\": \"^4.1.9\",\n \"@types/node\": \"~24.9.1\",\n \"@types/prompts\": \"~2.4.9\",\n \"typescript\": \"^5.8.2\",\n \"vitest\": \"^3.2.4\",\n \"zod\": \"~4.1.13\"\n },\n \"peerDependencies\": {\n \"@geekmidas/constructs\": \"workspace:~\",\n \"@geekmidas/envkit\": \"workspace:~\",\n \"@geekmidas/logger\": \"workspace:~\",\n \"@geekmidas/schema\": \"workspace:~\",\n \"@geekmidas/telescope\": \"workspace:~\"\n },\n \"peerDependenciesMeta\": {\n \"@geekmidas/telescope\": {\n \"optional\": true\n }\n }\n}\n","#!/usr/bin/env -S npx tsx\n\nimport { Command } from 'commander';\nimport pkg from '../package.json' assert { type: 'json' };\nimport { buildCommand } from './build/index.ts';\nimport { devCommand } from './dev/index.ts';\nimport { type InitOptions, initCommand } from './init/index.ts';\nimport { generateReactQueryCommand } from './openapi-react-query.ts';\nimport { openapiCommand } from './openapi.ts';\nimport type { LegacyProvider, MainProvider } from './types.ts';\n\nconst program = new Command();\n\nprogram\n .name('gkm')\n .description('GeekMidas backend framework CLI')\n .version(pkg.version)\n .option('--cwd <path>', 'Change working directory');\n\nprogram\n .command('init')\n .description('Scaffold a new project')\n .argument('[name]', 'Project name')\n .option(\n '--template <template>',\n 'Project template (minimal, api, serverless, worker)',\n )\n .option('--skip-install', 'Skip dependency installation', false)\n .option('-y, --yes', 'Skip prompts, use defaults', false)\n .option('--monorepo', 'Setup as monorepo with packages/models', false)\n .option('--api-path <path>', 'API app path in monorepo (default: apps/api)')\n .action(async (name: string | undefined, options: InitOptions) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await initCommand(name, options);\n } catch (error) {\n console.error('Init failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('build')\n .description('Build handlers from endpoints, functions, and crons')\n .option(\n '--provider <provider>',\n 'Target provider for generated handlers (aws, server)',\n )\n .option(\n '--providers <providers>',\n '[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)',\n )\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation generation for server builds',\n )\n .action(\n async (options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n // Handle new single provider option\n if (options.provider) {\n if (!['aws', 'server'].includes(options.provider)) {\n console.error(\n `Invalid provider: ${options.provider}. Must be 'aws' or 'server'.`,\n );\n process.exit(1);\n }\n await buildCommand({\n provider: options.provider as MainProvider,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Handle legacy providers option\n else if (options.providers) {\n console.warn(\n '⚠️ --providers flag is deprecated. Use --provider instead.',\n );\n const providerList = [\n ...new Set(options.providers.split(',').map((p) => p.trim())),\n ] as LegacyProvider[];\n await buildCommand({\n providers: providerList,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Default to config-driven build\n else {\n await buildCommand({\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n } catch (error) {\n console.error('Build failed:', (error as Error).message);\n process.exit(1);\n }\n },\n );\n\nprogram\n .command('dev')\n .description('Start development server with automatic reload')\n .option('--port <port>', 'Port to run the development server on', '3000')\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation for development server',\n true,\n )\n .action(async (options: { port?: string; enableOpenapi?: boolean }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n await devCommand({\n port: options.port ? Number.parseInt(options.port) : 3000,\n enableOpenApi: options.enableOpenapi ?? true,\n });\n } catch (error) {\n console.error('Dev server failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('cron')\n .description('Manage cron jobs')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Cron management - coming soon\\n');\n });\n\nprogram\n .command('function')\n .description('Manage serverless functions')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Serverless function management - coming soon\\n');\n });\n\nprogram\n .command('api')\n .description('Manage REST API endpoints')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('REST API management - coming soon\\n');\n });\n\nprogram\n .command('openapi')\n .description(\n 'Generate OpenAPI specification from endpoints (TypeScript by default)',\n )\n .option(\n '--output <path>',\n 'Output file path for the OpenAPI spec',\n 'openapi.ts',\n )\n .option('--json', 'Generate JSON instead of TypeScript (legacy)', false)\n .action(async (options: { output?: string; json?: boolean }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await openapiCommand(options);\n } catch (error) {\n console.error('OpenAPI generation failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('generate:react-query')\n .description('Generate React Query hooks from OpenAPI specification')\n .option('--input <path>', 'Input OpenAPI spec file path', 'openapi.json')\n .option(\n '--output <path>',\n 'Output file path for generated hooks',\n 'src/api/hooks.ts',\n )\n .option('--name <name>', 'API name prefix for generated code', 'API')\n .action(\n async (options: { input?: string; output?: string; name?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await generateReactQueryCommand(options);\n } catch (error) {\n console.error(\n 'React Query generation failed:',\n (error as Error).message,\n );\n process.exit(1);\n }\n },\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
package/dist/index.mjs CHANGED
@@ -1,22 +1,38 @@
1
1
  #!/usr/bin/env -S npx tsx
2
- import "./config-U-mdW-7Y.mjs";
3
- import "./Generator-UanJW0_V.mjs";
4
- import "./CronGenerator-Bh26MaNA.mjs";
5
- import "./EndpointGenerator-CWh18d92.mjs";
6
- import "./FunctionGenerator-BNE_GC7N.mjs";
7
- import "./SubscriberGenerator-Dnlj_1FK.mjs";
8
- import "./generators-CsLujGXs.mjs";
9
- import "./manifests-C2eMoMUm.mjs";
10
- import "./providerResolver-B_TjNF0_.mjs";
11
- import { buildCommand } from "./build-C6uEGRj8.mjs";
12
- import { devCommand } from "./dev-DnGYXuMn.mjs";
13
- import { generateReactQueryCommand } from "./openapi-react-query-MEBlYIM1.mjs";
14
- import { openapiCommand } from "./openapi-BTHbPrxS.mjs";
2
+ import "./config-Bq72aj8e.mjs";
3
+ import "./providerResolver-DEVKngbC.mjs";
4
+ import "./Generator-CDt4pB3W.mjs";
5
+ import "./CronGenerator-CCRYptuT.mjs";
6
+ import "./EndpointGenerator-DGivkPLT.mjs";
7
+ import "./FunctionGenerator-CVk0h8tO.mjs";
8
+ import "./SubscriberGenerator-DABaJXML.mjs";
9
+ import "./generators-FNpdfN6J.mjs";
10
+ import { devCommand } from "./dev-B734w3L1.mjs";
11
+ import "./manifests-DIA_2QYd.mjs";
12
+ import { buildCommand } from "./build-B8C_qHir.mjs";
13
+ import "./config-Dp8RonV_.mjs";
14
+ import "./docker-DlUqdFle.mjs";
15
+ import "./env-tv1HlZlw.mjs";
16
+ import "./models-cvNg6Oea.mjs";
17
+ import "./monorepo-Cknwzj5C.mjs";
18
+ import "./package-CIfmeuSW.mjs";
19
+ import "./source-DnaH_MLA.mjs";
20
+ import "./api-BKIN0s0S.mjs";
21
+ import "./minimal-C4GsE45s.mjs";
22
+ import "./serverless-DkHBF2vC.mjs";
23
+ import "./worker-Jme7uOOJ.mjs";
24
+ import "./templates-CBFUwpBy.mjs";
25
+ import "./utils-C31-SWHP.mjs";
26
+ import { initCommand } from "./init-CtOnZn3G.mjs";
27
+ import { generateReactQueryCommand } from "./openapi-react-query-o7Mp1Jd5.mjs";
28
+ import "./OpenApiTsGenerator-C4mHHaku.mjs";
29
+ import { openapiCommand } from "./openapi-DBX8cJJ8.mjs";
15
30
  import { Command } from "commander";
16
31
 
17
32
  //#region package.json
18
33
  var name = "@geekmidas/cli";
19
- var version = "0.3.0";
34
+ var version = "0.5.0";
35
+ var description = "CLI tools for building Lambda handlers, server applications, and generating OpenAPI specs";
20
36
  var private$1 = false;
21
37
  var type = "module";
22
38
  var exports = {
@@ -25,6 +41,11 @@ var exports = {
25
41
  "import": "./dist/index.mjs",
26
42
  "require": "./dist/index.cjs"
27
43
  },
44
+ "./config": {
45
+ "types": "./dist/config.d.ts",
46
+ "import": "./dist/config.mjs",
47
+ "require": "./dist/config.cjs"
48
+ },
28
49
  "./openapi": {
29
50
  "types": "./dist/openapi.d.ts",
30
51
  "import": "./dist/openapi.mjs",
@@ -51,14 +72,17 @@ var dependencies = {
51
72
  "@apidevtools/swagger-parser": "^10.1.0",
52
73
  "chokidar": "~4.0.3",
53
74
  "commander": "^12.1.0",
75
+ "dotenv": "~17.2.3",
54
76
  "fast-glob": "^3.3.2",
55
77
  "lodash.kebabcase": "^4.1.1",
56
- "openapi-typescript": "^7.4.2"
78
+ "openapi-typescript": "^7.4.2",
79
+ "prompts": "~2.4.2"
57
80
  };
58
81
  var devDependencies = {
59
82
  "@geekmidas/testkit": "workspace:*",
60
83
  "@types/lodash.kebabcase": "^4.1.9",
61
84
  "@types/node": "~24.9.1",
85
+ "@types/prompts": "~2.4.9",
62
86
  "typescript": "^5.8.2",
63
87
  "vitest": "^3.2.4",
64
88
  "zod": "~4.1.13"
@@ -67,11 +91,14 @@ var peerDependencies = {
67
91
  "@geekmidas/constructs": "workspace:~",
68
92
  "@geekmidas/envkit": "workspace:~",
69
93
  "@geekmidas/logger": "workspace:~",
70
- "@geekmidas/schema": "workspace:~"
94
+ "@geekmidas/schema": "workspace:~",
95
+ "@geekmidas/telescope": "workspace:~"
71
96
  };
97
+ var peerDependenciesMeta = { "@geekmidas/telescope": { "optional": true } };
72
98
  var package_default = {
73
99
  name,
74
100
  version,
101
+ description,
75
102
  private: private$1,
76
103
  type,
77
104
  exports,
@@ -80,13 +107,24 @@ var package_default = {
80
107
  repository,
81
108
  dependencies,
82
109
  devDependencies,
83
- peerDependencies
110
+ peerDependencies,
111
+ peerDependenciesMeta
84
112
  };
85
113
 
86
114
  //#endregion
87
115
  //#region src/index.ts
88
116
  const program = new Command();
89
117
  program.name("gkm").description("GeekMidas backend framework CLI").version(package_default.version).option("--cwd <path>", "Change working directory");
118
+ program.command("init").description("Scaffold a new project").argument("[name]", "Project name").option("--template <template>", "Project template (minimal, api, serverless, worker)").option("--skip-install", "Skip dependency installation", false).option("-y, --yes", "Skip prompts, use defaults", false).option("--monorepo", "Setup as monorepo with packages/models", false).option("--api-path <path>", "API app path in monorepo (default: apps/api)").action(async (name$1, options) => {
119
+ try {
120
+ const globalOptions = program.opts();
121
+ if (globalOptions.cwd) process.chdir(globalOptions.cwd);
122
+ await initCommand(name$1, options);
123
+ } catch (error) {
124
+ console.error("Init failed:", error.message);
125
+ process.exit(1);
126
+ }
127
+ });
90
128
  program.command("build").description("Build handlers from endpoints, functions, and crons").option("--provider <provider>", "Target provider for generated handlers (aws, server)").option("--providers <providers>", "[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)").option("--enable-openapi", "Enable OpenAPI documentation generation for server builds").action(async (options) => {
91
129
  try {
92
130
  const globalOptions = program.opts();
@@ -141,7 +179,7 @@ program.command("api").description("Manage REST API endpoints").action(() => {
141
179
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
142
180
  process.stdout.write("REST API management - coming soon\n");
143
181
  });
144
- program.command("openapi").description("Generate OpenAPI 3.0 specification from endpoints").option("--output <path>", "Output file path for the OpenAPI spec", "openapi.json").action(async (options) => {
182
+ program.command("openapi").description("Generate OpenAPI specification from endpoints (TypeScript by default)").option("--output <path>", "Output file path for the OpenAPI spec", "openapi.ts").option("--json", "Generate JSON instead of TypeScript (legacy)", false).action(async (options) => {
145
183
  try {
146
184
  const globalOptions = program.opts();
147
185
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["pkg","options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }","options: { port?: string; enableOpenapi?: boolean }","options: { output?: string }","options: { input?: string; output?: string; name?: string }"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@geekmidas/cli\",\n \"version\": \"0.3.0\",\n \"private\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./openapi\": {\n \"types\": \"./dist/openapi.d.ts\",\n \"import\": \"./dist/openapi.mjs\",\n \"require\": \"./dist/openapi.cjs\"\n },\n \"./openapi-react-query\": {\n \"types\": \"./dist/openapi-react-query.d.ts\",\n \"import\": \"./dist/openapi-react-query.mjs\",\n \"require\": \"./dist/openapi-react-query.cjs\"\n }\n },\n \"bin\": {\n \"gkm\": \"./dist/index.cjs\"\n },\n \"scripts\": {\n \"ts\": \"tsc --noEmit --skipLibCheck src/**/*.ts\",\n \"test\": \"vitest\",\n \"test:once\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/geekmidas/toolbox\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"chokidar\": \"~4.0.3\",\n \"commander\": \"^12.1.0\",\n \"fast-glob\": \"^3.3.2\",\n \"lodash.kebabcase\": \"^4.1.1\",\n \"openapi-typescript\": \"^7.4.2\"\n },\n \"devDependencies\": {\n \"@geekmidas/testkit\": \"workspace:*\",\n \"@types/lodash.kebabcase\": \"^4.1.9\",\n \"@types/node\": \"~24.9.1\",\n \"typescript\": \"^5.8.2\",\n \"vitest\": \"^3.2.4\",\n \"zod\": \"~4.1.13\"\n },\n \"peerDependencies\": {\n \"@geekmidas/constructs\": \"workspace:~\",\n \"@geekmidas/envkit\": \"workspace:~\",\n \"@geekmidas/logger\": \"workspace:~\",\n \"@geekmidas/schema\": \"workspace:~\"\n }\n}\n","#!/usr/bin/env -S npx tsx\n\nimport { Command } from 'commander';\nimport pkg from '../package.json' assert { type: 'json' };\nimport { buildCommand } from './build/index.ts';\nimport { devCommand } from './dev/index.ts';\nimport { generateReactQueryCommand } from './openapi-react-query.ts';\nimport { openapiCommand } from './openapi.ts';\nimport type { LegacyProvider, MainProvider } from './types.ts';\n\nconst program = new Command();\n\nprogram\n .name('gkm')\n .description('GeekMidas backend framework CLI')\n .version(pkg.version)\n .option('--cwd <path>', 'Change working directory');\n\nprogram\n .command('build')\n .description('Build handlers from endpoints, functions, and crons')\n .option(\n '--provider <provider>',\n 'Target provider for generated handlers (aws, server)',\n )\n .option(\n '--providers <providers>',\n '[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)',\n )\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation generation for server builds',\n )\n .action(\n async (options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n // Handle new single provider option\n if (options.provider) {\n if (!['aws', 'server'].includes(options.provider)) {\n console.error(\n `Invalid provider: ${options.provider}. Must be 'aws' or 'server'.`,\n );\n process.exit(1);\n }\n await buildCommand({\n provider: options.provider as MainProvider,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Handle legacy providers option\n else if (options.providers) {\n console.warn(\n '⚠️ --providers flag is deprecated. Use --provider instead.',\n );\n const providerList = [\n ...new Set(options.providers.split(',').map((p) => p.trim())),\n ] as LegacyProvider[];\n await buildCommand({\n providers: providerList,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Default to config-driven build\n else {\n await buildCommand({\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n } catch (error) {\n console.error('Build failed:', (error as Error).message);\n process.exit(1);\n }\n },\n );\n\nprogram\n .command('dev')\n .description('Start development server with automatic reload')\n .option('--port <port>', 'Port to run the development server on', '3000')\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation for development server',\n true,\n )\n .action(async (options: { port?: string; enableOpenapi?: boolean }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n await devCommand({\n port: options.port ? Number.parseInt(options.port) : 3000,\n enableOpenApi: options.enableOpenapi ?? true,\n });\n } catch (error) {\n console.error('Dev server failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('cron')\n .description('Manage cron jobs')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Cron management - coming soon\\n');\n });\n\nprogram\n .command('function')\n .description('Manage serverless functions')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Serverless function management - coming soon\\n');\n });\n\nprogram\n .command('api')\n .description('Manage REST API endpoints')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('REST API management - coming soon\\n');\n });\n\nprogram\n .command('openapi')\n .description('Generate OpenAPI 3.0 specification from endpoints')\n .option(\n '--output <path>',\n 'Output file path for the OpenAPI spec',\n 'openapi.json',\n )\n .action(async (options: { output?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await openapiCommand(options);\n } catch (error) {\n console.error('OpenAPI generation failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('generate:react-query')\n .description('Generate React Query hooks from OpenAPI specification')\n .option('--input <path>', 'Input OpenAPI spec file path', 'openapi.json')\n .option(\n '--output <path>',\n 'Output file path for generated hooks',\n 'src/api/hooks.ts',\n )\n .option('--name <name>', 'API name prefix for generated code', 'API')\n .action(\n async (options: { input?: string; output?: string; name?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await generateReactQueryCommand(options);\n } catch (error) {\n console.error(\n 'React Query generation failed:',\n (error as Error).message,\n );\n process.exit(1);\n }\n },\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["pkg","name: string | undefined","options: InitOptions","name","options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }","options: { port?: string; enableOpenapi?: boolean }","options: { output?: string; json?: boolean }","options: { input?: string; output?: string; name?: string }"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@geekmidas/cli\",\n \"version\": \"0.5.0\",\n \"description\": \"CLI tools for building Lambda handlers, server applications, and generating OpenAPI specs\",\n \"private\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./config\": {\n \"types\": \"./dist/config.d.ts\",\n \"import\": \"./dist/config.mjs\",\n \"require\": \"./dist/config.cjs\"\n },\n \"./openapi\": {\n \"types\": \"./dist/openapi.d.ts\",\n \"import\": \"./dist/openapi.mjs\",\n \"require\": \"./dist/openapi.cjs\"\n },\n \"./openapi-react-query\": {\n \"types\": \"./dist/openapi-react-query.d.ts\",\n \"import\": \"./dist/openapi-react-query.mjs\",\n \"require\": \"./dist/openapi-react-query.cjs\"\n }\n },\n \"bin\": {\n \"gkm\": \"./dist/index.cjs\"\n },\n \"scripts\": {\n \"ts\": \"tsc --noEmit --skipLibCheck src/**/*.ts\",\n \"test\": \"vitest\",\n \"test:once\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/geekmidas/toolbox\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"chokidar\": \"~4.0.3\",\n \"commander\": \"^12.1.0\",\n \"dotenv\": \"~17.2.3\",\n \"fast-glob\": \"^3.3.2\",\n \"lodash.kebabcase\": \"^4.1.1\",\n \"openapi-typescript\": \"^7.4.2\",\n \"prompts\": \"~2.4.2\"\n },\n \"devDependencies\": {\n \"@geekmidas/testkit\": \"workspace:*\",\n \"@types/lodash.kebabcase\": \"^4.1.9\",\n \"@types/node\": \"~24.9.1\",\n \"@types/prompts\": \"~2.4.9\",\n \"typescript\": \"^5.8.2\",\n \"vitest\": \"^3.2.4\",\n \"zod\": \"~4.1.13\"\n },\n \"peerDependencies\": {\n \"@geekmidas/constructs\": \"workspace:~\",\n \"@geekmidas/envkit\": \"workspace:~\",\n \"@geekmidas/logger\": \"workspace:~\",\n \"@geekmidas/schema\": \"workspace:~\",\n \"@geekmidas/telescope\": \"workspace:~\"\n },\n \"peerDependenciesMeta\": {\n \"@geekmidas/telescope\": {\n \"optional\": true\n }\n }\n}\n","#!/usr/bin/env -S npx tsx\n\nimport { Command } from 'commander';\nimport pkg from '../package.json' assert { type: 'json' };\nimport { buildCommand } from './build/index.ts';\nimport { devCommand } from './dev/index.ts';\nimport { type InitOptions, initCommand } from './init/index.ts';\nimport { generateReactQueryCommand } from './openapi-react-query.ts';\nimport { openapiCommand } from './openapi.ts';\nimport type { LegacyProvider, MainProvider } from './types.ts';\n\nconst program = new Command();\n\nprogram\n .name('gkm')\n .description('GeekMidas backend framework CLI')\n .version(pkg.version)\n .option('--cwd <path>', 'Change working directory');\n\nprogram\n .command('init')\n .description('Scaffold a new project')\n .argument('[name]', 'Project name')\n .option(\n '--template <template>',\n 'Project template (minimal, api, serverless, worker)',\n )\n .option('--skip-install', 'Skip dependency installation', false)\n .option('-y, --yes', 'Skip prompts, use defaults', false)\n .option('--monorepo', 'Setup as monorepo with packages/models', false)\n .option('--api-path <path>', 'API app path in monorepo (default: apps/api)')\n .action(async (name: string | undefined, options: InitOptions) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await initCommand(name, options);\n } catch (error) {\n console.error('Init failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('build')\n .description('Build handlers from endpoints, functions, and crons')\n .option(\n '--provider <provider>',\n 'Target provider for generated handlers (aws, server)',\n )\n .option(\n '--providers <providers>',\n '[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)',\n )\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation generation for server builds',\n )\n .action(\n async (options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n // Handle new single provider option\n if (options.provider) {\n if (!['aws', 'server'].includes(options.provider)) {\n console.error(\n `Invalid provider: ${options.provider}. Must be 'aws' or 'server'.`,\n );\n process.exit(1);\n }\n await buildCommand({\n provider: options.provider as MainProvider,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Handle legacy providers option\n else if (options.providers) {\n console.warn(\n '⚠️ --providers flag is deprecated. Use --provider instead.',\n );\n const providerList = [\n ...new Set(options.providers.split(',').map((p) => p.trim())),\n ] as LegacyProvider[];\n await buildCommand({\n providers: providerList,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Default to config-driven build\n else {\n await buildCommand({\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n } catch (error) {\n console.error('Build failed:', (error as Error).message);\n process.exit(1);\n }\n },\n );\n\nprogram\n .command('dev')\n .description('Start development server with automatic reload')\n .option('--port <port>', 'Port to run the development server on', '3000')\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation for development server',\n true,\n )\n .action(async (options: { port?: string; enableOpenapi?: boolean }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n await devCommand({\n port: options.port ? Number.parseInt(options.port) : 3000,\n enableOpenApi: options.enableOpenapi ?? true,\n });\n } catch (error) {\n console.error('Dev server failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('cron')\n .description('Manage cron jobs')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Cron management - coming soon\\n');\n });\n\nprogram\n .command('function')\n .description('Manage serverless functions')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Serverless function management - coming soon\\n');\n });\n\nprogram\n .command('api')\n .description('Manage REST API endpoints')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('REST API management - coming soon\\n');\n });\n\nprogram\n .command('openapi')\n .description(\n 'Generate OpenAPI specification from endpoints (TypeScript by default)',\n )\n .option(\n '--output <path>',\n 'Output file path for the OpenAPI spec',\n 'openapi.ts',\n )\n .option('--json', 'Generate JSON instead of TypeScript (legacy)', false)\n .action(async (options: { output?: string; json?: boolean }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await openapiCommand(options);\n } catch (error) {\n console.error('OpenAPI generation failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('generate:react-query')\n .description('Generate React Query hooks from OpenAPI specification')\n .option('--input <path>', 'Input OpenAPI spec file path', 'openapi.json')\n .option(\n '--output <path>',\n 'Output file path for generated hooks',\n 'src/api/hooks.ts',\n )\n .option('--name <name>', 'API name prefix for generated code', 'API')\n .action(\n async (options: { input?: string; output?: string; name?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await generateReactQueryCommand(options);\n } catch (error) {\n console.error(\n 'React Query generation failed:',\n (error as Error).message,\n );\n process.exit(1);\n }\n },\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ const require_config = require('../../config-CLEDqKO3.cjs');
2
+
3
+ exports.generateConfigFiles = require_config.generateConfigFiles;
@@ -0,0 +1,3 @@
1
+ import "../../index-DrzN4xkQ.cjs";
2
+ import { generateConfigFiles } from "../../config-Ba-Gbpbc.cjs";
3
+ export { generateConfigFiles };
@@ -0,0 +1,3 @@
1
+ import "../../index-C523No_B.mjs";
2
+ import { generateConfigFiles } from "../../config-DBsmMDhf.mjs";
3
+ export { generateConfigFiles };
@@ -0,0 +1,3 @@
1
+ import { generateConfigFiles } from "../../config-Dp8RonV_.mjs";
2
+
3
+ export { generateConfigFiles };
@@ -0,0 +1,3 @@
1
+ const require_docker = require('../../docker-5d8Yh5_X.cjs');
2
+
3
+ exports.generateDockerFiles = require_docker.generateDockerFiles;
@@ -0,0 +1,11 @@
1
+ import { GeneratedFile, TemplateConfig, TemplateOptions } from "../../index-DrzN4xkQ.cjs";
2
+
3
+ //#region src/init/generators/docker.d.ts
4
+
5
+ /**
6
+ * Generate docker-compose.yml based on template and options
7
+ */
8
+ declare function generateDockerFiles(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
9
+ //#endregion
10
+ export { generateDockerFiles };
11
+ //# sourceMappingURL=docker.d.cts.map
@@ -0,0 +1,11 @@
1
+ import { GeneratedFile, TemplateConfig, TemplateOptions } from "../../index-C523No_B.mjs";
2
+
3
+ //#region src/init/generators/docker.d.ts
4
+
5
+ /**
6
+ * Generate docker-compose.yml based on template and options
7
+ */
8
+ declare function generateDockerFiles(options: TemplateOptions, template: TemplateConfig): GeneratedFile[];
9
+ //#endregion
10
+ export { generateDockerFiles };
11
+ //# sourceMappingURL=docker.d.mts.map
@@ -0,0 +1,3 @@
1
+ import { generateDockerFiles } from "../../docker-DlUqdFle.mjs";
2
+
3
+ export { generateDockerFiles };
@@ -0,0 +1,3 @@
1
+ const require_env = require('../../env-B-OKjgI4.cjs');
2
+
3
+ exports.generateEnvFiles = require_env.generateEnvFiles;
@@ -0,0 +1,3 @@
1
+ import "../../index-DrzN4xkQ.cjs";
2
+ import { generateEnvFiles } from "../../env-HfuJRlg5.cjs";
3
+ export { generateEnvFiles };
@@ -0,0 +1,3 @@
1
+ import "../../index-C523No_B.mjs";
2
+ import { generateEnvFiles } from "../../env-nd-iQPYM.mjs";
3
+ export { generateEnvFiles };
@@ -0,0 +1,3 @@
1
+ import { generateEnvFiles } from "../../env-tv1HlZlw.mjs";
2
+
3
+ export { generateEnvFiles };
@@ -0,0 +1,9 @@
1
+ const require_config = require('../../config-CLEDqKO3.cjs');
2
+ const require_env = require('../../env-B-OKjgI4.cjs');
3
+ const require_package = require('../../package-PP-o1nvq.cjs');
4
+ const require_source = require('../../source-DT5Xhiob.cjs');
5
+
6
+ exports.generateConfigFiles = require_config.generateConfigFiles;
7
+ exports.generateEnvFiles = require_env.generateEnvFiles;
8
+ exports.generatePackageJson = require_package.generatePackageJson;
9
+ exports.generateSourceFiles = require_source.generateSourceFiles;
@@ -0,0 +1,6 @@
1
+ import "../../index-DrzN4xkQ.cjs";
2
+ import { generateConfigFiles } from "../../config-Ba-Gbpbc.cjs";
3
+ import { generateEnvFiles } from "../../env-HfuJRlg5.cjs";
4
+ import { generatePackageJson } from "../../package-DvWEMz6z.cjs";
5
+ import { generateSourceFiles } from "../../source-D8fK9qRo.cjs";
6
+ export { generateConfigFiles, generateEnvFiles, generatePackageJson, generateSourceFiles };