@geekmidas/cli 0.4.0 → 0.5.1

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 (299) hide show
  1. package/dist/CronGenerator-BPTqNYOR.d.cts +14 -0
  2. package/dist/{CronGenerator-Bh26MaNA.mjs → CronGenerator-CCRYptuT.mjs} +2 -2
  3. package/dist/{CronGenerator-Bh26MaNA.mjs.map → CronGenerator-CCRYptuT.mjs.map} +1 -1
  4. package/dist/{CronGenerator-C6MF8rlG.cjs → CronGenerator-D4TWXQbh.cjs} +2 -2
  5. package/dist/{CronGenerator-C6MF8rlG.cjs.map → CronGenerator-D4TWXQbh.cjs.map} +1 -1
  6. package/dist/CronGenerator-YAj59JUd.d.mts +14 -0
  7. package/dist/EndpointGenerator-ChAD1INz.d.cts +19 -0
  8. package/dist/EndpointGenerator-Cj3O1U8-.d.mts +19 -0
  9. package/dist/{EndpointGenerator-CzDhG7Or.mjs → EndpointGenerator-DGivkPLT.mjs} +22 -6
  10. package/dist/EndpointGenerator-DGivkPLT.mjs.map +1 -0
  11. package/dist/{EndpointGenerator-BxNCkus4.cjs → EndpointGenerator-npWEDoK2.cjs} +22 -6
  12. package/dist/EndpointGenerator-npWEDoK2.cjs.map +1 -0
  13. package/dist/FunctionGenerator-429-9NER.d.cts +14 -0
  14. package/dist/FunctionGenerator-BQ4ehoID.d.mts +14 -0
  15. package/dist/{FunctionGenerator-BNE_GC7N.mjs → FunctionGenerator-CVk0h8tO.mjs} +2 -2
  16. package/dist/{FunctionGenerator-BNE_GC7N.mjs.map → FunctionGenerator-CVk0h8tO.mjs.map} +1 -1
  17. package/dist/{FunctionGenerator-FgZUTd8L.cjs → FunctionGenerator-DYTnyr4c.cjs} +2 -2
  18. package/dist/{FunctionGenerator-FgZUTd8L.cjs.map → FunctionGenerator-DYTnyr4c.cjs.map} +1 -1
  19. package/dist/Generator-BjHK_qce.d.mts +27 -0
  20. package/dist/{Generator-UanJW0_V.mjs → Generator-CDt4pB3W.mjs} +1 -1
  21. package/dist/{Generator-UanJW0_V.mjs.map → Generator-CDt4pB3W.mjs.map} +1 -1
  22. package/dist/{Generator-CDoEXCDg.cjs → Generator-CLVplqm2.cjs} +1 -1
  23. package/dist/{Generator-CDoEXCDg.cjs.map → Generator-CLVplqm2.cjs.map} +1 -1
  24. package/dist/Generator-DxQMCQp7.d.cts +27 -0
  25. package/dist/{OpenApiTsGenerator-NBNEoaeO.cjs → OpenApiTsGenerator-Be-sKGTT.cjs} +1 -1
  26. package/dist/{OpenApiTsGenerator-NBNEoaeO.cjs.map → OpenApiTsGenerator-Be-sKGTT.cjs.map} +1 -1
  27. package/dist/{OpenApiTsGenerator-q3aWNkuM.mjs → OpenApiTsGenerator-C4mHHaku.mjs} +1 -1
  28. package/dist/{OpenApiTsGenerator-q3aWNkuM.mjs.map → OpenApiTsGenerator-C4mHHaku.mjs.map} +1 -1
  29. package/dist/SubscriberGenerator-7uX42xyG.d.mts +15 -0
  30. package/dist/{SubscriberGenerator-Dnlj_1FK.mjs → SubscriberGenerator-DABaJXML.mjs} +2 -2
  31. package/dist/{SubscriberGenerator-Dnlj_1FK.mjs.map → SubscriberGenerator-DABaJXML.mjs.map} +1 -1
  32. package/dist/{SubscriberGenerator-Bd-a7aiw.cjs → SubscriberGenerator-D_zpNGFr.cjs} +2 -2
  33. package/dist/{SubscriberGenerator-Bd-a7aiw.cjs.map → SubscriberGenerator-D_zpNGFr.cjs.map} +1 -1
  34. package/dist/SubscriberGenerator-Dtb3HS4i.d.cts +15 -0
  35. package/dist/api-B3SCEHPf.cjs +190 -0
  36. package/dist/api-B3SCEHPf.cjs.map +1 -0
  37. package/dist/api-BKIN0s0S.mjs +184 -0
  38. package/dist/api-BKIN0s0S.mjs.map +1 -0
  39. package/dist/build/index.cjs +11 -10
  40. package/dist/build/index.d.cts +7 -0
  41. package/dist/build/index.d.mts +7 -0
  42. package/dist/build/index.mjs +11 -10
  43. package/dist/build/manifests.cjs +1 -1
  44. package/dist/build/manifests.d.cts +13 -0
  45. package/dist/build/manifests.d.mts +13 -0
  46. package/dist/build/manifests.mjs +1 -1
  47. package/dist/build/providerResolver.cjs +1 -1
  48. package/dist/build/providerResolver.d.cts +23 -0
  49. package/dist/build/providerResolver.d.mts +23 -0
  50. package/dist/build/providerResolver.mjs +1 -1
  51. package/dist/build/types.d.cts +3 -0
  52. package/dist/build/types.d.mts +3 -0
  53. package/dist/{build-DyDgu_D1.mjs → build-B8C_qHir.mjs} +15 -13
  54. package/dist/build-B8C_qHir.mjs.map +1 -0
  55. package/dist/{build-CWtHnJMQ.cjs → build-D0Wr49bf.cjs} +15 -13
  56. package/dist/build-D0Wr49bf.cjs.map +1 -0
  57. package/dist/config-Ba-Gbpbc.d.cts +11 -0
  58. package/dist/config-Bq72aj8e.mjs +75 -0
  59. package/dist/config-Bq72aj8e.mjs.map +1 -0
  60. package/dist/config-CFls09Ey.cjs +93 -0
  61. package/dist/config-CFls09Ey.cjs.map +1 -0
  62. package/dist/config-CLEDqKO3.cjs +157 -0
  63. package/dist/config-CLEDqKO3.cjs.map +1 -0
  64. package/dist/config-DBsmMDhf.d.mts +11 -0
  65. package/dist/config-Dp8RonV_.mjs +151 -0
  66. package/dist/config-Dp8RonV_.mjs.map +1 -0
  67. package/dist/config.cjs +4 -2
  68. package/dist/config.d.cts +48 -0
  69. package/dist/config.d.mts +48 -0
  70. package/dist/config.mjs +2 -2
  71. package/dist/dev/index.cjs +10 -9
  72. package/dist/dev/index.d.cts +36 -0
  73. package/dist/dev/index.d.mts +36 -0
  74. package/dist/dev/index.mjs +10 -10
  75. package/dist/{dev-CpA8AQPX.mjs → dev-B734w3L1.mjs} +93 -49
  76. package/dist/dev-B734w3L1.mjs.map +1 -0
  77. package/dist/{dev-CgDYC4o8.cjs → dev-DHqYn8k4.cjs} +71 -21
  78. package/dist/dev-DHqYn8k4.cjs.map +1 -0
  79. package/dist/docker-5d8Yh5_X.cjs +119 -0
  80. package/dist/docker-5d8Yh5_X.cjs.map +1 -0
  81. package/dist/docker-DlUqdFle.mjs +113 -0
  82. package/dist/docker-DlUqdFle.mjs.map +1 -0
  83. package/dist/env-B-OKjgI4.cjs +144 -0
  84. package/dist/env-B-OKjgI4.cjs.map +1 -0
  85. package/dist/env-HfuJRlg5.d.cts +11 -0
  86. package/dist/env-nd-iQPYM.d.mts +11 -0
  87. package/dist/env-tv1HlZlw.mjs +138 -0
  88. package/dist/env-tv1HlZlw.mjs.map +1 -0
  89. package/dist/generators/CronGenerator.cjs +2 -2
  90. package/dist/generators/CronGenerator.d.cts +5 -0
  91. package/dist/generators/CronGenerator.d.mts +5 -0
  92. package/dist/generators/CronGenerator.mjs +2 -2
  93. package/dist/generators/EndpointGenerator.cjs +2 -2
  94. package/dist/generators/EndpointGenerator.d.cts +5 -0
  95. package/dist/generators/EndpointGenerator.d.mts +5 -0
  96. package/dist/generators/EndpointGenerator.mjs +2 -2
  97. package/dist/generators/FunctionGenerator.cjs +2 -2
  98. package/dist/generators/FunctionGenerator.d.cts +5 -0
  99. package/dist/generators/FunctionGenerator.d.mts +5 -0
  100. package/dist/generators/FunctionGenerator.mjs +2 -2
  101. package/dist/generators/Generator.cjs +1 -1
  102. package/dist/generators/Generator.d.cts +4 -0
  103. package/dist/generators/Generator.d.mts +4 -0
  104. package/dist/generators/Generator.mjs +1 -1
  105. package/dist/generators/OpenApiTsGenerator.cjs +1 -1
  106. package/dist/generators/OpenApiTsGenerator.d.cts +44 -0
  107. package/dist/generators/OpenApiTsGenerator.d.mts +44 -0
  108. package/dist/generators/OpenApiTsGenerator.mjs +1 -1
  109. package/dist/generators/SubscriberGenerator.cjs +2 -2
  110. package/dist/generators/SubscriberGenerator.d.cts +5 -0
  111. package/dist/generators/SubscriberGenerator.d.mts +5 -0
  112. package/dist/generators/SubscriberGenerator.mjs +2 -2
  113. package/dist/generators/index.cjs +6 -6
  114. package/dist/generators/index.d.cts +8 -0
  115. package/dist/generators/index.d.mts +8 -0
  116. package/dist/generators/index.mjs +6 -6
  117. package/dist/index-C523No_B.d.mts +64 -0
  118. package/dist/index-DrzN4xkQ.d.cts +64 -0
  119. package/dist/index.cjs +48 -16
  120. package/dist/index.cjs.map +1 -1
  121. package/dist/index.d.cts +1 -0
  122. package/dist/index.d.mts +1 -0
  123. package/dist/index.mjs +48 -16
  124. package/dist/index.mjs.map +1 -1
  125. package/dist/init/generators/config.cjs +3 -0
  126. package/dist/init/generators/config.d.cts +3 -0
  127. package/dist/init/generators/config.d.mts +3 -0
  128. package/dist/init/generators/config.mjs +3 -0
  129. package/dist/init/generators/docker.cjs +3 -0
  130. package/dist/init/generators/docker.d.cts +11 -0
  131. package/dist/init/generators/docker.d.mts +11 -0
  132. package/dist/init/generators/docker.mjs +3 -0
  133. package/dist/init/generators/env.cjs +3 -0
  134. package/dist/init/generators/env.d.cts +3 -0
  135. package/dist/init/generators/env.d.mts +3 -0
  136. package/dist/init/generators/env.mjs +3 -0
  137. package/dist/init/generators/index.cjs +9 -0
  138. package/dist/init/generators/index.d.cts +6 -0
  139. package/dist/init/generators/index.d.mts +6 -0
  140. package/dist/init/generators/index.mjs +6 -0
  141. package/dist/init/generators/models.cjs +3 -0
  142. package/dist/init/generators/models.d.cts +11 -0
  143. package/dist/init/generators/models.d.mts +11 -0
  144. package/dist/init/generators/models.mjs +3 -0
  145. package/dist/init/generators/monorepo.cjs +3 -0
  146. package/dist/init/generators/monorepo.d.cts +11 -0
  147. package/dist/init/generators/monorepo.d.mts +11 -0
  148. package/dist/init/generators/monorepo.mjs +3 -0
  149. package/dist/init/generators/package.cjs +3 -0
  150. package/dist/init/generators/package.d.cts +3 -0
  151. package/dist/init/generators/package.d.mts +3 -0
  152. package/dist/init/generators/package.mjs +3 -0
  153. package/dist/init/generators/source.cjs +3 -0
  154. package/dist/init/generators/source.d.cts +3 -0
  155. package/dist/init/generators/source.d.mts +3 -0
  156. package/dist/init/generators/source.mjs +3 -0
  157. package/dist/init/index.cjs +16 -0
  158. package/dist/init/index.d.cts +17 -0
  159. package/dist/init/index.d.mts +17 -0
  160. package/dist/init/index.mjs +16 -0
  161. package/dist/init/templates/api.cjs +3 -0
  162. package/dist/init/templates/api.d.cts +7 -0
  163. package/dist/init/templates/api.d.mts +7 -0
  164. package/dist/init/templates/api.mjs +3 -0
  165. package/dist/init/templates/index.cjs +10 -0
  166. package/dist/init/templates/index.d.cts +2 -0
  167. package/dist/init/templates/index.d.mts +2 -0
  168. package/dist/init/templates/index.mjs +7 -0
  169. package/dist/init/templates/minimal.cjs +3 -0
  170. package/dist/init/templates/minimal.d.cts +7 -0
  171. package/dist/init/templates/minimal.d.mts +7 -0
  172. package/dist/init/templates/minimal.mjs +3 -0
  173. package/dist/init/templates/serverless.cjs +3 -0
  174. package/dist/init/templates/serverless.d.cts +7 -0
  175. package/dist/init/templates/serverless.d.mts +7 -0
  176. package/dist/init/templates/serverless.mjs +3 -0
  177. package/dist/init/templates/worker.cjs +3 -0
  178. package/dist/init/templates/worker.d.cts +7 -0
  179. package/dist/init/templates/worker.d.mts +7 -0
  180. package/dist/init/templates/worker.mjs +3 -0
  181. package/dist/init/utils.cjs +7 -0
  182. package/dist/init/utils.d.cts +25 -0
  183. package/dist/init/utils.d.mts +25 -0
  184. package/dist/init/utils.mjs +3 -0
  185. package/dist/init-CtOnZn3G.mjs +145 -0
  186. package/dist/init-CtOnZn3G.mjs.map +1 -0
  187. package/dist/init-qLFsWR-R.cjs +151 -0
  188. package/dist/init-qLFsWR-R.cjs.map +1 -0
  189. package/dist/{manifests-C2eMoMUm.mjs → manifests-DIA_2QYd.mjs} +1 -1
  190. package/dist/{manifests-C2eMoMUm.mjs.map → manifests-DIA_2QYd.mjs.map} +1 -1
  191. package/dist/{manifests-CK1VV_pM.cjs → manifests-VJ9-2JpW.cjs} +1 -1
  192. package/dist/{manifests-CK1VV_pM.cjs.map → manifests-VJ9-2JpW.cjs.map} +1 -1
  193. package/dist/minimal-Bdhhpp7v.cjs +93 -0
  194. package/dist/minimal-Bdhhpp7v.cjs.map +1 -0
  195. package/dist/minimal-C4GsE45s.mjs +87 -0
  196. package/dist/minimal-C4GsE45s.mjs.map +1 -0
  197. package/dist/models-DyNwdOcz.cjs +121 -0
  198. package/dist/models-DyNwdOcz.cjs.map +1 -0
  199. package/dist/models-cvNg6Oea.mjs +115 -0
  200. package/dist/models-cvNg6Oea.mjs.map +1 -0
  201. package/dist/monorepo-Cknwzj5C.mjs +184 -0
  202. package/dist/monorepo-Cknwzj5C.mjs.map +1 -0
  203. package/dist/monorepo-sEK8gW59.cjs +190 -0
  204. package/dist/monorepo-sEK8gW59.cjs.map +1 -0
  205. package/dist/{openapi-DhK4b0lB.cjs → openapi-BQWPWyNB.cjs} +4 -4
  206. package/dist/{openapi-DhK4b0lB.cjs.map → openapi-BQWPWyNB.cjs.map} +1 -1
  207. package/dist/{openapi-DRTRGhTt.mjs → openapi-DBX8cJJ8.mjs} +4 -4
  208. package/dist/{openapi-DRTRGhTt.mjs.map → openapi-DBX8cJJ8.mjs.map} +1 -1
  209. package/dist/{openapi-react-query-D9Z7lh0p.cjs → openapi-react-query-DxHjXQvg.cjs} +1 -1
  210. package/dist/{openapi-react-query-D9Z7lh0p.cjs.map → openapi-react-query-DxHjXQvg.cjs.map} +1 -1
  211. package/dist/{openapi-react-query-MEBlYIM1.mjs → openapi-react-query-o7Mp1Jd5.mjs} +1 -1
  212. package/dist/{openapi-react-query-MEBlYIM1.mjs.map → openapi-react-query-o7Mp1Jd5.mjs.map} +1 -1
  213. package/dist/openapi-react-query.cjs +1 -1
  214. package/dist/openapi-react-query.d.cts +11 -0
  215. package/dist/openapi-react-query.d.mts +11 -0
  216. package/dist/openapi-react-query.mjs +1 -1
  217. package/dist/openapi.cjs +5 -5
  218. package/dist/openapi.d.cts +11 -0
  219. package/dist/openapi.d.mts +11 -0
  220. package/dist/openapi.mjs +5 -5
  221. package/dist/package-C7WhWU8m.d.mts +11 -0
  222. package/dist/package-CIfmeuSW.mjs +51 -0
  223. package/dist/package-CIfmeuSW.mjs.map +1 -0
  224. package/dist/package-DvWEMz6z.d.cts +11 -0
  225. package/dist/package-PP-o1nvq.cjs +57 -0
  226. package/dist/package-PP-o1nvq.cjs.map +1 -0
  227. package/dist/{providerResolver-B_TjNF0_.mjs → providerResolver-DEVKngbC.mjs} +1 -1
  228. package/dist/{providerResolver-B_TjNF0_.mjs.map → providerResolver-DEVKngbC.mjs.map} +1 -1
  229. package/dist/{providerResolver-DgvzNfP4.cjs → providerResolver-DOTbN9jo.cjs} +1 -1
  230. package/dist/{providerResolver-DgvzNfP4.cjs.map → providerResolver-DOTbN9jo.cjs.map} +1 -1
  231. package/dist/serverless-DkHBF2vC.mjs +108 -0
  232. package/dist/serverless-DkHBF2vC.mjs.map +1 -0
  233. package/dist/serverless-Yav3GRVz.cjs +114 -0
  234. package/dist/serverless-Yav3GRVz.cjs.map +1 -0
  235. package/dist/source-D6v2BnKT.d.mts +11 -0
  236. package/dist/source-D8fK9qRo.d.cts +11 -0
  237. package/dist/source-DT5Xhiob.cjs +17 -0
  238. package/dist/source-DT5Xhiob.cjs.map +1 -0
  239. package/dist/source-DnaH_MLA.mjs +11 -0
  240. package/dist/source-DnaH_MLA.mjs.map +1 -0
  241. package/dist/templates-CBFUwpBy.mjs +64 -0
  242. package/dist/templates-CBFUwpBy.mjs.map +1 -0
  243. package/dist/templates-DM_rtYYW.cjs +87 -0
  244. package/dist/templates-DM_rtYYW.cjs.map +1 -0
  245. package/dist/types-C4KITv-y.d.mts +51 -0
  246. package/dist/types-Cxl8-uwV.d.mts +129 -0
  247. package/dist/types-DB99_qIy.d.cts +129 -0
  248. package/dist/types-DLFN49M3.d.cts +51 -0
  249. package/dist/types.d.cts +2 -0
  250. package/dist/types.d.mts +2 -0
  251. package/dist/utils-BX3F4fT8.cjs +99 -0
  252. package/dist/utils-BX3F4fT8.cjs.map +1 -0
  253. package/dist/utils-C31-SWHP.mjs +69 -0
  254. package/dist/utils-C31-SWHP.mjs.map +1 -0
  255. package/dist/worker--8O5a3Hv.cjs +150 -0
  256. package/dist/worker--8O5a3Hv.cjs.map +1 -0
  257. package/dist/worker-Jme7uOOJ.mjs +144 -0
  258. package/dist/worker-Jme7uOOJ.mjs.map +1 -0
  259. package/package.json +12 -4
  260. package/src/__tests__/loadEnvFiles.spec.ts +131 -0
  261. package/src/build/index.ts +14 -16
  262. package/src/build/types.ts +5 -0
  263. package/src/config.ts +57 -0
  264. package/src/dev/__tests__/index.spec.ts +114 -119
  265. package/src/dev/index.ts +77 -17
  266. package/src/generators/EndpointGenerator.ts +37 -8
  267. package/src/index.ts +26 -0
  268. package/src/init/__tests__/generators.spec.ts +366 -0
  269. package/src/init/__tests__/init.spec.ts +341 -0
  270. package/src/init/__tests__/utils.spec.ts +104 -0
  271. package/src/init/generators/config.ts +192 -0
  272. package/src/init/generators/docker.ts +134 -0
  273. package/src/init/generators/env.ts +182 -0
  274. package/src/init/generators/index.ts +4 -0
  275. package/src/init/generators/models.ts +129 -0
  276. package/src/init/generators/monorepo.ts +211 -0
  277. package/src/init/generators/package.ts +81 -0
  278. package/src/init/generators/source.ts +15 -0
  279. package/src/init/index.ts +206 -0
  280. package/src/init/templates/api.ts +218 -0
  281. package/src/init/templates/index.ts +108 -0
  282. package/src/init/templates/minimal.ts +102 -0
  283. package/src/init/templates/serverless.ts +129 -0
  284. package/src/init/templates/worker.ts +169 -0
  285. package/src/init/utils.ts +98 -0
  286. package/src/types.ts +22 -2
  287. package/tsdown.config.ts +1 -1
  288. package/dist/EndpointGenerator-BxNCkus4.cjs.map +0 -1
  289. package/dist/EndpointGenerator-CzDhG7Or.mjs.map +0 -1
  290. package/dist/build-CWtHnJMQ.cjs.map +0 -1
  291. package/dist/build-DyDgu_D1.mjs.map +0 -1
  292. package/dist/config-AFmFKmU0.mjs +0 -30
  293. package/dist/config-AFmFKmU0.mjs.map +0 -1
  294. package/dist/config-BVIJpAsa.cjs +0 -36
  295. package/dist/config-BVIJpAsa.cjs.map +0 -1
  296. package/dist/dev-CgDYC4o8.cjs.map +0 -1
  297. package/dist/dev-CpA8AQPX.mjs.map +0 -1
  298. /package/dist/{generators-CEKtVh81.cjs → generators-3IemvCLk.cjs} +0 -0
  299. /package/dist/{generators-CsLujGXs.mjs → generators-FNpdfN6J.mjs} +0 -0
@@ -0,0 +1,190 @@
1
+
2
+ //#region src/init/templates/api.ts
3
+ const apiTemplate = {
4
+ name: "api",
5
+ description: "Full API with auth, database, services",
6
+ dependencies: {
7
+ "@geekmidas/constructs": "workspace:*",
8
+ "@geekmidas/envkit": "workspace:*",
9
+ "@geekmidas/logger": "workspace:*",
10
+ "@geekmidas/services": "workspace:*",
11
+ "@geekmidas/errors": "workspace:*",
12
+ "@geekmidas/auth": "workspace:*",
13
+ hono: "~4.8.2",
14
+ pino: "~9.6.0"
15
+ },
16
+ devDependencies: {
17
+ "@biomejs/biome": "~1.9.4",
18
+ "@geekmidas/cli": "workspace:*",
19
+ "@types/node": "~22.0.0",
20
+ tsx: "~4.20.0",
21
+ turbo: "~2.3.0",
22
+ typescript: "~5.8.2",
23
+ vitest: "~4.0.0"
24
+ },
25
+ scripts: {
26
+ dev: "gkm dev",
27
+ build: "gkm build",
28
+ test: "vitest",
29
+ "test:once": "vitest run",
30
+ typecheck: "tsc --noEmit",
31
+ lint: "biome lint .",
32
+ fmt: "biome format . --write",
33
+ "fmt:check": "biome format ."
34
+ },
35
+ files: (options) => {
36
+ const files = [
37
+ {
38
+ path: "src/config/env.ts",
39
+ content: `import { EnvironmentParser } from '@geekmidas/envkit';
40
+
41
+ export const envParser = new EnvironmentParser(process.env);
42
+
43
+ export const config = envParser
44
+ .create((get) => ({
45
+ port: get('PORT').string().transform(Number).default(3000),
46
+ nodeEnv: get('NODE_ENV').string().default('development'),
47
+ jwtSecret: get('JWT_SECRET').string().default('change-me-in-production'),${options.database ? `
48
+ database: {
49
+ url: get('DATABASE_URL').string().default('postgresql://localhost:5432/mydb'),
50
+ },` : ""}
51
+ }))
52
+ .parse();
53
+ `
54
+ },
55
+ {
56
+ path: "src/config/logger.ts",
57
+ content: `import { PinoLogger } from '@geekmidas/logger/pino';
58
+
59
+ export const logger = new PinoLogger({
60
+ app: '${options.name}',
61
+ level: process.env.LOG_LEVEL || 'info',
62
+ });
63
+ `
64
+ },
65
+ {
66
+ path: "src/endpoints/health.ts",
67
+ content: `import { e } from '@geekmidas/constructs/endpoints';
68
+
69
+ export default e
70
+ .get('/health')
71
+ .handle(async () => ({
72
+ status: 'ok',
73
+ timestamp: new Date().toISOString(),
74
+ }));
75
+ `
76
+ }
77
+ ];
78
+ if (options.routeStyle === "flat") files.push({
79
+ path: "src/endpoints/users-list.ts",
80
+ content: `import { e } from '@geekmidas/constructs/endpoints';
81
+
82
+ export default e
83
+ .get('/users')
84
+ .handle(async () => ({
85
+ users: [
86
+ { id: '1', name: 'Alice' },
87
+ { id: '2', name: 'Bob' },
88
+ ],
89
+ }));
90
+ `
91
+ }, {
92
+ path: "src/endpoints/users-get.ts",
93
+ content: `import { e } from '@geekmidas/constructs/endpoints';
94
+ import { z } from 'zod';
95
+
96
+ export default e
97
+ .get('/users/:id')
98
+ .params(z.object({ id: z.string() }))
99
+ .handle(async ({ params }) => ({
100
+ id: params.id,
101
+ name: 'Alice',
102
+ email: 'alice@example.com',
103
+ }));
104
+ `
105
+ });
106
+ else files.push({
107
+ path: "src/endpoints/users/list.ts",
108
+ content: `import { e } from '@geekmidas/constructs/endpoints';
109
+
110
+ export default e
111
+ .get('/users')
112
+ .handle(async () => ({
113
+ users: [
114
+ { id: '1', name: 'Alice' },
115
+ { id: '2', name: 'Bob' },
116
+ ],
117
+ }));
118
+ `
119
+ }, {
120
+ path: "src/endpoints/users/get.ts",
121
+ content: `import { e } from '@geekmidas/constructs/endpoints';
122
+ import { z } from 'zod';
123
+
124
+ export default e
125
+ .get('/users/:id')
126
+ .params(z.object({ id: z.string() }))
127
+ .handle(async ({ params }) => ({
128
+ id: params.id,
129
+ name: 'Alice',
130
+ email: 'alice@example.com',
131
+ }));
132
+ `
133
+ });
134
+ if (options.database) files.push({
135
+ path: "src/services/database.ts",
136
+ content: `import type { Service } from '@geekmidas/services';
137
+ import { Kysely, PostgresDialect } from 'kysely';
138
+ import pg from 'pg';
139
+
140
+ // Define your database schema
141
+ export interface Database {
142
+ users: {
143
+ id: string;
144
+ name: string;
145
+ email: string;
146
+ created_at: Date;
147
+ };
148
+ }
149
+
150
+ export const databaseService = {
151
+ serviceName: 'database' as const,
152
+ async register(envParser) {
153
+ const config = envParser
154
+ .create((get) => ({
155
+ url: get('DATABASE_URL').string(),
156
+ }))
157
+ .parse();
158
+
159
+ return new Kysely<Database>({
160
+ dialect: new PostgresDialect({
161
+ pool: new pg.Pool({ connectionString: config.url }),
162
+ }),
163
+ });
164
+ },
165
+ } satisfies Service<'database', Kysely<Database>>;
166
+ `
167
+ });
168
+ if (options.telescope) files.push({
169
+ path: "src/config/telescope.ts",
170
+ content: `import { Telescope } from '@geekmidas/telescope';
171
+ import { InMemoryStorage } from '@geekmidas/telescope/storage/memory';
172
+
173
+ export const telescope = new Telescope({
174
+ storage: new InMemoryStorage({ maxEntries: 100 }),
175
+ enabled: process.env.NODE_ENV === 'development',
176
+ });
177
+ `
178
+ });
179
+ return files;
180
+ }
181
+ };
182
+
183
+ //#endregion
184
+ Object.defineProperty(exports, 'apiTemplate', {
185
+ enumerable: true,
186
+ get: function () {
187
+ return apiTemplate;
188
+ }
189
+ });
190
+ //# sourceMappingURL=api-B3SCEHPf.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-B3SCEHPf.cjs","names":["apiTemplate: TemplateConfig","options: TemplateOptions","files: GeneratedFile[]"],"sources":["../src/init/templates/api.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const apiTemplate: TemplateConfig = {\n name: 'api',\n description: 'Full API with auth, database, services',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n '@geekmidas/services': 'workspace:*',\n '@geekmidas/errors': 'workspace:*',\n '@geekmidas/auth': 'workspace:*',\n hono: '~4.8.2',\n pino: '~9.6.0',\n },\n\n devDependencies: {\n '@biomejs/biome': '~1.9.4',\n '@geekmidas/cli': 'workspace:*',\n '@types/node': '~22.0.0',\n tsx: '~4.20.0',\n turbo: '~2.3.0',\n typescript: '~5.8.2',\n vitest: '~4.0.0',\n },\n\n scripts: {\n dev: 'gkm dev',\n build: 'gkm build',\n test: 'vitest',\n 'test:once': 'vitest run',\n typecheck: 'tsc --noEmit',\n lint: 'biome lint .',\n fmt: 'biome format . --write',\n 'fmt:check': 'biome format .',\n },\n\n files: (options: TemplateOptions): GeneratedFile[] => {\n const files: GeneratedFile[] = [\n // src/config/env.ts\n {\n path: 'src/config/env.ts',\n content: `import { EnvironmentParser } from '@geekmidas/envkit';\n\nexport const envParser = new EnvironmentParser(process.env);\n\nexport const config = envParser\n .create((get) => ({\n port: get('PORT').string().transform(Number).default(3000),\n nodeEnv: get('NODE_ENV').string().default('development'),\n jwtSecret: get('JWT_SECRET').string().default('change-me-in-production'),${\n options.database\n ? `\n database: {\n url: get('DATABASE_URL').string().default('postgresql://localhost:5432/mydb'),\n },`\n : ''\n }\n }))\n .parse();\n`,\n },\n\n // src/config/logger.ts - using pino\n {\n path: 'src/config/logger.ts',\n content: `import { PinoLogger } from '@geekmidas/logger/pino';\n\nexport const logger = new PinoLogger({\n app: '${options.name}',\n level: process.env.LOG_LEVEL || 'info',\n});\n`,\n },\n\n // src/endpoints/health.ts\n {\n path: 'src/endpoints/health.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/health')\n .handle(async () => ({\n status: 'ok',\n timestamp: new Date().toISOString(),\n }));\n`,\n },\n ];\n\n // Add user endpoints based on route style\n if (options.routeStyle === 'flat') {\n files.push(\n {\n path: 'src/endpoints/users-list.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/users')\n .handle(async () => ({\n users: [\n { id: '1', name: 'Alice' },\n { id: '2', name: 'Bob' },\n ],\n }));\n`,\n },\n {\n path: 'src/endpoints/users-get.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\nimport { z } from 'zod';\n\nexport default e\n .get('/users/:id')\n .params(z.object({ id: z.string() }))\n .handle(async ({ params }) => ({\n id: params.id,\n name: 'Alice',\n email: 'alice@example.com',\n }));\n`,\n },\n );\n } else {\n files.push(\n {\n path: 'src/endpoints/users/list.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/users')\n .handle(async () => ({\n users: [\n { id: '1', name: 'Alice' },\n { id: '2', name: 'Bob' },\n ],\n }));\n`,\n },\n {\n path: 'src/endpoints/users/get.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\nimport { z } from 'zod';\n\nexport default e\n .get('/users/:id')\n .params(z.object({ id: z.string() }))\n .handle(async ({ params }) => ({\n id: params.id,\n name: 'Alice',\n email: 'alice@example.com',\n }));\n`,\n },\n );\n }\n\n // Add database service if enabled\n if (options.database) {\n files.push({\n path: 'src/services/database.ts',\n content: `import type { Service } from '@geekmidas/services';\nimport { Kysely, PostgresDialect } from 'kysely';\nimport pg from 'pg';\n\n// Define your database schema\nexport interface Database {\n users: {\n id: string;\n name: string;\n email: string;\n created_at: Date;\n };\n}\n\nexport const databaseService = {\n serviceName: 'database' as const,\n async register(envParser) {\n const config = envParser\n .create((get) => ({\n url: get('DATABASE_URL').string(),\n }))\n .parse();\n\n return new Kysely<Database>({\n dialect: new PostgresDialect({\n pool: new pg.Pool({ connectionString: config.url }),\n }),\n });\n },\n} satisfies Service<'database', Kysely<Database>>;\n`,\n });\n }\n\n // Add Telescope config if enabled\n if (options.telescope) {\n files.push({\n path: 'src/config/telescope.ts',\n content: `import { Telescope } from '@geekmidas/telescope';\nimport { InMemoryStorage } from '@geekmidas/telescope/storage/memory';\n\nexport const telescope = new Telescope({\n storage: new InMemoryStorage({ maxEntries: 100 }),\n enabled: process.env.NODE_ENV === 'development',\n});\n`,\n });\n }\n\n return files;\n },\n};\n"],"mappings":";;AAMA,MAAaA,cAA8B;CACzC,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,uBAAuB;EACvB,qBAAqB;EACrB,mBAAmB;EACnB,MAAM;EACN,MAAM;CACP;CAED,iBAAiB;EACf,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;EACf,KAAK;EACL,OAAO;EACP,YAAY;EACZ,QAAQ;CACT;CAED,SAAS;EACP,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;EACb,WAAW;EACX,MAAM;EACN,KAAK;EACL,aAAa;CACd;CAED,OAAO,CAACC,YAA8C;EACpD,MAAMC,QAAyB;GAE7B;IACE,MAAM;IACN,UAAU;;;;;;;;+EASZ,QAAQ,YACH;;;UAID,GACL;;;;GAIE;GAGD;IACE,MAAM;IACN,UAAU;;;UAGR,QAAQ,KAAK;;;;GAIhB;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;GASX;EACF;AAGD,MAAI,QAAQ,eAAe,OACzB,OAAM,KACJ;GACE,MAAM;GACN,UAAU;;;;;;;;;;;EAWX,GACD;GACE,MAAM;GACN,UAAU;;;;;;;;;;;;EAYX,EACF;MAED,OAAM,KACJ;GACE,MAAM;GACN,UAAU;;;;;;;;;;;EAWX,GACD;GACE,MAAM;GACN,UAAU;;;;;;;;;;;;EAYX,EACF;AAIH,MAAI,QAAQ,SACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BX,EAAC;AAIJ,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;EAQX,EAAC;AAGJ,SAAO;CACR;AACF"}
@@ -0,0 +1,184 @@
1
+ //#region src/init/templates/api.ts
2
+ const apiTemplate = {
3
+ name: "api",
4
+ description: "Full API with auth, database, services",
5
+ dependencies: {
6
+ "@geekmidas/constructs": "workspace:*",
7
+ "@geekmidas/envkit": "workspace:*",
8
+ "@geekmidas/logger": "workspace:*",
9
+ "@geekmidas/services": "workspace:*",
10
+ "@geekmidas/errors": "workspace:*",
11
+ "@geekmidas/auth": "workspace:*",
12
+ hono: "~4.8.2",
13
+ pino: "~9.6.0"
14
+ },
15
+ devDependencies: {
16
+ "@biomejs/biome": "~1.9.4",
17
+ "@geekmidas/cli": "workspace:*",
18
+ "@types/node": "~22.0.0",
19
+ tsx: "~4.20.0",
20
+ turbo: "~2.3.0",
21
+ typescript: "~5.8.2",
22
+ vitest: "~4.0.0"
23
+ },
24
+ scripts: {
25
+ dev: "gkm dev",
26
+ build: "gkm build",
27
+ test: "vitest",
28
+ "test:once": "vitest run",
29
+ typecheck: "tsc --noEmit",
30
+ lint: "biome lint .",
31
+ fmt: "biome format . --write",
32
+ "fmt:check": "biome format ."
33
+ },
34
+ files: (options) => {
35
+ const files = [
36
+ {
37
+ path: "src/config/env.ts",
38
+ content: `import { EnvironmentParser } from '@geekmidas/envkit';
39
+
40
+ export const envParser = new EnvironmentParser(process.env);
41
+
42
+ export const config = envParser
43
+ .create((get) => ({
44
+ port: get('PORT').string().transform(Number).default(3000),
45
+ nodeEnv: get('NODE_ENV').string().default('development'),
46
+ jwtSecret: get('JWT_SECRET').string().default('change-me-in-production'),${options.database ? `
47
+ database: {
48
+ url: get('DATABASE_URL').string().default('postgresql://localhost:5432/mydb'),
49
+ },` : ""}
50
+ }))
51
+ .parse();
52
+ `
53
+ },
54
+ {
55
+ path: "src/config/logger.ts",
56
+ content: `import { PinoLogger } from '@geekmidas/logger/pino';
57
+
58
+ export const logger = new PinoLogger({
59
+ app: '${options.name}',
60
+ level: process.env.LOG_LEVEL || 'info',
61
+ });
62
+ `
63
+ },
64
+ {
65
+ path: "src/endpoints/health.ts",
66
+ content: `import { e } from '@geekmidas/constructs/endpoints';
67
+
68
+ export default e
69
+ .get('/health')
70
+ .handle(async () => ({
71
+ status: 'ok',
72
+ timestamp: new Date().toISOString(),
73
+ }));
74
+ `
75
+ }
76
+ ];
77
+ if (options.routeStyle === "flat") files.push({
78
+ path: "src/endpoints/users-list.ts",
79
+ content: `import { e } from '@geekmidas/constructs/endpoints';
80
+
81
+ export default e
82
+ .get('/users')
83
+ .handle(async () => ({
84
+ users: [
85
+ { id: '1', name: 'Alice' },
86
+ { id: '2', name: 'Bob' },
87
+ ],
88
+ }));
89
+ `
90
+ }, {
91
+ path: "src/endpoints/users-get.ts",
92
+ content: `import { e } from '@geekmidas/constructs/endpoints';
93
+ import { z } from 'zod';
94
+
95
+ export default e
96
+ .get('/users/:id')
97
+ .params(z.object({ id: z.string() }))
98
+ .handle(async ({ params }) => ({
99
+ id: params.id,
100
+ name: 'Alice',
101
+ email: 'alice@example.com',
102
+ }));
103
+ `
104
+ });
105
+ else files.push({
106
+ path: "src/endpoints/users/list.ts",
107
+ content: `import { e } from '@geekmidas/constructs/endpoints';
108
+
109
+ export default e
110
+ .get('/users')
111
+ .handle(async () => ({
112
+ users: [
113
+ { id: '1', name: 'Alice' },
114
+ { id: '2', name: 'Bob' },
115
+ ],
116
+ }));
117
+ `
118
+ }, {
119
+ path: "src/endpoints/users/get.ts",
120
+ content: `import { e } from '@geekmidas/constructs/endpoints';
121
+ import { z } from 'zod';
122
+
123
+ export default e
124
+ .get('/users/:id')
125
+ .params(z.object({ id: z.string() }))
126
+ .handle(async ({ params }) => ({
127
+ id: params.id,
128
+ name: 'Alice',
129
+ email: 'alice@example.com',
130
+ }));
131
+ `
132
+ });
133
+ if (options.database) files.push({
134
+ path: "src/services/database.ts",
135
+ content: `import type { Service } from '@geekmidas/services';
136
+ import { Kysely, PostgresDialect } from 'kysely';
137
+ import pg from 'pg';
138
+
139
+ // Define your database schema
140
+ export interface Database {
141
+ users: {
142
+ id: string;
143
+ name: string;
144
+ email: string;
145
+ created_at: Date;
146
+ };
147
+ }
148
+
149
+ export const databaseService = {
150
+ serviceName: 'database' as const,
151
+ async register(envParser) {
152
+ const config = envParser
153
+ .create((get) => ({
154
+ url: get('DATABASE_URL').string(),
155
+ }))
156
+ .parse();
157
+
158
+ return new Kysely<Database>({
159
+ dialect: new PostgresDialect({
160
+ pool: new pg.Pool({ connectionString: config.url }),
161
+ }),
162
+ });
163
+ },
164
+ } satisfies Service<'database', Kysely<Database>>;
165
+ `
166
+ });
167
+ if (options.telescope) files.push({
168
+ path: "src/config/telescope.ts",
169
+ content: `import { Telescope } from '@geekmidas/telescope';
170
+ import { InMemoryStorage } from '@geekmidas/telescope/storage/memory';
171
+
172
+ export const telescope = new Telescope({
173
+ storage: new InMemoryStorage({ maxEntries: 100 }),
174
+ enabled: process.env.NODE_ENV === 'development',
175
+ });
176
+ `
177
+ });
178
+ return files;
179
+ }
180
+ };
181
+
182
+ //#endregion
183
+ export { apiTemplate };
184
+ //# sourceMappingURL=api-BKIN0s0S.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-BKIN0s0S.mjs","names":["apiTemplate: TemplateConfig","options: TemplateOptions","files: GeneratedFile[]"],"sources":["../src/init/templates/api.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const apiTemplate: TemplateConfig = {\n name: 'api',\n description: 'Full API with auth, database, services',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n '@geekmidas/services': 'workspace:*',\n '@geekmidas/errors': 'workspace:*',\n '@geekmidas/auth': 'workspace:*',\n hono: '~4.8.2',\n pino: '~9.6.0',\n },\n\n devDependencies: {\n '@biomejs/biome': '~1.9.4',\n '@geekmidas/cli': 'workspace:*',\n '@types/node': '~22.0.0',\n tsx: '~4.20.0',\n turbo: '~2.3.0',\n typescript: '~5.8.2',\n vitest: '~4.0.0',\n },\n\n scripts: {\n dev: 'gkm dev',\n build: 'gkm build',\n test: 'vitest',\n 'test:once': 'vitest run',\n typecheck: 'tsc --noEmit',\n lint: 'biome lint .',\n fmt: 'biome format . --write',\n 'fmt:check': 'biome format .',\n },\n\n files: (options: TemplateOptions): GeneratedFile[] => {\n const files: GeneratedFile[] = [\n // src/config/env.ts\n {\n path: 'src/config/env.ts',\n content: `import { EnvironmentParser } from '@geekmidas/envkit';\n\nexport const envParser = new EnvironmentParser(process.env);\n\nexport const config = envParser\n .create((get) => ({\n port: get('PORT').string().transform(Number).default(3000),\n nodeEnv: get('NODE_ENV').string().default('development'),\n jwtSecret: get('JWT_SECRET').string().default('change-me-in-production'),${\n options.database\n ? `\n database: {\n url: get('DATABASE_URL').string().default('postgresql://localhost:5432/mydb'),\n },`\n : ''\n }\n }))\n .parse();\n`,\n },\n\n // src/config/logger.ts - using pino\n {\n path: 'src/config/logger.ts',\n content: `import { PinoLogger } from '@geekmidas/logger/pino';\n\nexport const logger = new PinoLogger({\n app: '${options.name}',\n level: process.env.LOG_LEVEL || 'info',\n});\n`,\n },\n\n // src/endpoints/health.ts\n {\n path: 'src/endpoints/health.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/health')\n .handle(async () => ({\n status: 'ok',\n timestamp: new Date().toISOString(),\n }));\n`,\n },\n ];\n\n // Add user endpoints based on route style\n if (options.routeStyle === 'flat') {\n files.push(\n {\n path: 'src/endpoints/users-list.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/users')\n .handle(async () => ({\n users: [\n { id: '1', name: 'Alice' },\n { id: '2', name: 'Bob' },\n ],\n }));\n`,\n },\n {\n path: 'src/endpoints/users-get.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\nimport { z } from 'zod';\n\nexport default e\n .get('/users/:id')\n .params(z.object({ id: z.string() }))\n .handle(async ({ params }) => ({\n id: params.id,\n name: 'Alice',\n email: 'alice@example.com',\n }));\n`,\n },\n );\n } else {\n files.push(\n {\n path: 'src/endpoints/users/list.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\n\nexport default e\n .get('/users')\n .handle(async () => ({\n users: [\n { id: '1', name: 'Alice' },\n { id: '2', name: 'Bob' },\n ],\n }));\n`,\n },\n {\n path: 'src/endpoints/users/get.ts',\n content: `import { e } from '@geekmidas/constructs/endpoints';\nimport { z } from 'zod';\n\nexport default e\n .get('/users/:id')\n .params(z.object({ id: z.string() }))\n .handle(async ({ params }) => ({\n id: params.id,\n name: 'Alice',\n email: 'alice@example.com',\n }));\n`,\n },\n );\n }\n\n // Add database service if enabled\n if (options.database) {\n files.push({\n path: 'src/services/database.ts',\n content: `import type { Service } from '@geekmidas/services';\nimport { Kysely, PostgresDialect } from 'kysely';\nimport pg from 'pg';\n\n// Define your database schema\nexport interface Database {\n users: {\n id: string;\n name: string;\n email: string;\n created_at: Date;\n };\n}\n\nexport const databaseService = {\n serviceName: 'database' as const,\n async register(envParser) {\n const config = envParser\n .create((get) => ({\n url: get('DATABASE_URL').string(),\n }))\n .parse();\n\n return new Kysely<Database>({\n dialect: new PostgresDialect({\n pool: new pg.Pool({ connectionString: config.url }),\n }),\n });\n },\n} satisfies Service<'database', Kysely<Database>>;\n`,\n });\n }\n\n // Add Telescope config if enabled\n if (options.telescope) {\n files.push({\n path: 'src/config/telescope.ts',\n content: `import { Telescope } from '@geekmidas/telescope';\nimport { InMemoryStorage } from '@geekmidas/telescope/storage/memory';\n\nexport const telescope = new Telescope({\n storage: new InMemoryStorage({ maxEntries: 100 }),\n enabled: process.env.NODE_ENV === 'development',\n});\n`,\n });\n }\n\n return files;\n },\n};\n"],"mappings":";AAMA,MAAaA,cAA8B;CACzC,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,uBAAuB;EACvB,qBAAqB;EACrB,mBAAmB;EACnB,MAAM;EACN,MAAM;CACP;CAED,iBAAiB;EACf,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;EACf,KAAK;EACL,OAAO;EACP,YAAY;EACZ,QAAQ;CACT;CAED,SAAS;EACP,KAAK;EACL,OAAO;EACP,MAAM;EACN,aAAa;EACb,WAAW;EACX,MAAM;EACN,KAAK;EACL,aAAa;CACd;CAED,OAAO,CAACC,YAA8C;EACpD,MAAMC,QAAyB;GAE7B;IACE,MAAM;IACN,UAAU;;;;;;;;+EASZ,QAAQ,YACH;;;UAID,GACL;;;;GAIE;GAGD;IACE,MAAM;IACN,UAAU;;;UAGR,QAAQ,KAAK;;;;GAIhB;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;GASX;EACF;AAGD,MAAI,QAAQ,eAAe,OACzB,OAAM,KACJ;GACE,MAAM;GACN,UAAU;;;;;;;;;;;EAWX,GACD;GACE,MAAM;GACN,UAAU;;;;;;;;;;;;EAYX,EACF;MAED,OAAM,KACJ;GACE,MAAM;GACN,UAAU;;;;;;;;;;;EAWX,GACD;GACE,MAAM;GACN,UAAU;;;;;;;;;;;;EAYX,EACF;AAIH,MAAI,QAAQ,SACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BX,EAAC;AAIJ,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;EAQX,EAAC;AAGJ,SAAO;CACR;AACF"}
@@ -1,12 +1,13 @@
1
- require('../config-BVIJpAsa.cjs');
2
- require('../Generator-CDoEXCDg.cjs');
3
- require('../CronGenerator-C6MF8rlG.cjs');
4
- require('../EndpointGenerator-BxNCkus4.cjs');
5
- require('../FunctionGenerator-FgZUTd8L.cjs');
6
- require('../SubscriberGenerator-Bd-a7aiw.cjs');
7
- require('../generators-CEKtVh81.cjs');
8
- require('../manifests-CK1VV_pM.cjs');
9
- require('../providerResolver-DgvzNfP4.cjs');
10
- const require_build = require('../build-CWtHnJMQ.cjs');
1
+ require('../config-CFls09Ey.cjs');
2
+ require('../providerResolver-DOTbN9jo.cjs');
3
+ require('../Generator-CLVplqm2.cjs');
4
+ require('../CronGenerator-D4TWXQbh.cjs');
5
+ require('../EndpointGenerator-npWEDoK2.cjs');
6
+ require('../FunctionGenerator-DYTnyr4c.cjs');
7
+ require('../SubscriberGenerator-D_zpNGFr.cjs');
8
+ require('../generators-3IemvCLk.cjs');
9
+ require('../dev-DHqYn8k4.cjs');
10
+ require('../manifests-VJ9-2JpW.cjs');
11
+ const require_build = require('../build-D0Wr49bf.cjs');
11
12
 
12
13
  exports.buildCommand = require_build.buildCommand;
@@ -0,0 +1,7 @@
1
+ import { BuildOptions } from "../types-DB99_qIy.cjs";
2
+
3
+ //#region src/build/index.d.ts
4
+ declare function buildCommand(options: BuildOptions): Promise<void>;
5
+ //#endregion
6
+ export { buildCommand };
7
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1,7 @@
1
+ import { BuildOptions } from "../types-Cxl8-uwV.mjs";
2
+
3
+ //#region src/build/index.d.ts
4
+ declare function buildCommand(options: BuildOptions): Promise<void>;
5
+ //#endregion
6
+ export { buildCommand };
7
+ //# sourceMappingURL=index.d.mts.map
@@ -1,12 +1,13 @@
1
- import "../config-AFmFKmU0.mjs";
2
- import "../Generator-UanJW0_V.mjs";
3
- import "../CronGenerator-Bh26MaNA.mjs";
4
- import "../EndpointGenerator-CzDhG7Or.mjs";
5
- import "../FunctionGenerator-BNE_GC7N.mjs";
6
- import "../SubscriberGenerator-Dnlj_1FK.mjs";
7
- import "../generators-CsLujGXs.mjs";
8
- import "../manifests-C2eMoMUm.mjs";
9
- import "../providerResolver-B_TjNF0_.mjs";
10
- import { buildCommand } from "../build-DyDgu_D1.mjs";
1
+ import "../config-Bq72aj8e.mjs";
2
+ import "../providerResolver-DEVKngbC.mjs";
3
+ import "../Generator-CDt4pB3W.mjs";
4
+ import "../CronGenerator-CCRYptuT.mjs";
5
+ import "../EndpointGenerator-DGivkPLT.mjs";
6
+ import "../FunctionGenerator-CVk0h8tO.mjs";
7
+ import "../SubscriberGenerator-DABaJXML.mjs";
8
+ import "../generators-FNpdfN6J.mjs";
9
+ import "../dev-B734w3L1.mjs";
10
+ import "../manifests-DIA_2QYd.mjs";
11
+ import { buildCommand } from "../build-B8C_qHir.mjs";
11
12
 
12
13
  export { buildCommand };
@@ -1,4 +1,4 @@
1
- const require_manifests = require('../manifests-CK1VV_pM.cjs');
1
+ const require_manifests = require('../manifests-VJ9-2JpW.cjs');
2
2
 
3
3
  exports.generateAwsManifest = require_manifests.generateAwsManifest;
4
4
  exports.generateServerManifest = require_manifests.generateServerManifest;
@@ -0,0 +1,13 @@
1
+ import { CronInfo, FunctionInfo, RouteInfo, SubscriberInfo } from "../types-DB99_qIy.cjs";
2
+
3
+ //#region src/build/manifests.d.ts
4
+ type ManifestProvider = 'aws' | 'server';
5
+ interface ServerAppInfo {
6
+ handler: string;
7
+ endpoints: string;
8
+ }
9
+ declare function generateAwsManifest(outputDir: string, routes: RouteInfo[], functions: FunctionInfo[], crons: CronInfo[], subscribers: SubscriberInfo[]): Promise<void>;
10
+ declare function generateServerManifest(outputDir: string, appInfo: ServerAppInfo, routes: RouteInfo[], subscribers: SubscriberInfo[]): Promise<void>;
11
+ //#endregion
12
+ export { ManifestProvider, ServerAppInfo, generateAwsManifest, generateServerManifest };
13
+ //# sourceMappingURL=manifests.d.cts.map
@@ -0,0 +1,13 @@
1
+ import { CronInfo, FunctionInfo, RouteInfo, SubscriberInfo } from "../types-Cxl8-uwV.mjs";
2
+
3
+ //#region src/build/manifests.d.ts
4
+ type ManifestProvider = 'aws' | 'server';
5
+ interface ServerAppInfo {
6
+ handler: string;
7
+ endpoints: string;
8
+ }
9
+ declare function generateAwsManifest(outputDir: string, routes: RouteInfo[], functions: FunctionInfo[], crons: CronInfo[], subscribers: SubscriberInfo[]): Promise<void>;
10
+ declare function generateServerManifest(outputDir: string, appInfo: ServerAppInfo, routes: RouteInfo[], subscribers: SubscriberInfo[]): Promise<void>;
11
+ //#endregion
12
+ export { ManifestProvider, ServerAppInfo, generateAwsManifest, generateServerManifest };
13
+ //# sourceMappingURL=manifests.d.mts.map
@@ -1,3 +1,3 @@
1
- import { generateAwsManifest, generateServerManifest } from "../manifests-C2eMoMUm.mjs";
1
+ import { generateAwsManifest, generateServerManifest } from "../manifests-DIA_2QYd.mjs";
2
2
 
3
3
  export { generateAwsManifest, generateServerManifest };
@@ -1,4 +1,4 @@
1
- const require_providerResolver = require('../providerResolver-DgvzNfP4.cjs');
1
+ const require_providerResolver = require('../providerResolver-DOTbN9jo.cjs');
2
2
 
3
3
  exports.getAWSServiceConfig = require_providerResolver.getAWSServiceConfig;
4
4
  exports.getServerConfig = require_providerResolver.getServerConfig;
@@ -0,0 +1,23 @@
1
+ import { AWSApiGatewayConfig, AWSLambdaConfig, BuildOptions, GkmConfig, LegacyProvider, ServerConfig } from "../types-DB99_qIy.cjs";
2
+
3
+ //#region src/build/providerResolver.d.ts
4
+ interface ResolvedProviders {
5
+ providers: LegacyProvider[];
6
+ enableOpenApi: boolean;
7
+ }
8
+ /**
9
+ * Resolves provider configuration from the new simplified system
10
+ * to the internal legacy format for backward compatibility
11
+ */
12
+ declare function resolveProviders(config: GkmConfig, options: BuildOptions): ResolvedProviders;
13
+ /**
14
+ * Gets configuration for a specific AWS service
15
+ */
16
+ declare function getAWSServiceConfig<T extends AWSApiGatewayConfig | AWSLambdaConfig>(config: GkmConfig, service: 'apiGateway' | 'lambda', subService?: 'v1' | 'v2' | 'functions' | 'crons'): T | undefined;
17
+ /**
18
+ * Gets server configuration
19
+ */
20
+ declare function getServerConfig(config: GkmConfig): ServerConfig | undefined;
21
+ //#endregion
22
+ export { ResolvedProviders, getAWSServiceConfig, getServerConfig, resolveProviders };
23
+ //# sourceMappingURL=providerResolver.d.cts.map
@@ -0,0 +1,23 @@
1
+ import { AWSApiGatewayConfig, AWSLambdaConfig, BuildOptions, GkmConfig, LegacyProvider, ServerConfig } from "../types-Cxl8-uwV.mjs";
2
+
3
+ //#region src/build/providerResolver.d.ts
4
+ interface ResolvedProviders {
5
+ providers: LegacyProvider[];
6
+ enableOpenApi: boolean;
7
+ }
8
+ /**
9
+ * Resolves provider configuration from the new simplified system
10
+ * to the internal legacy format for backward compatibility
11
+ */
12
+ declare function resolveProviders(config: GkmConfig, options: BuildOptions): ResolvedProviders;
13
+ /**
14
+ * Gets configuration for a specific AWS service
15
+ */
16
+ declare function getAWSServiceConfig<T extends AWSApiGatewayConfig | AWSLambdaConfig>(config: GkmConfig, service: 'apiGateway' | 'lambda', subService?: 'v1' | 'v2' | 'functions' | 'crons'): T | undefined;
17
+ /**
18
+ * Gets server configuration
19
+ */
20
+ declare function getServerConfig(config: GkmConfig): ServerConfig | undefined;
21
+ //#endregion
22
+ export { ResolvedProviders, getAWSServiceConfig, getServerConfig, resolveProviders };
23
+ //# sourceMappingURL=providerResolver.d.mts.map
@@ -1,3 +1,3 @@
1
- import { getAWSServiceConfig, getServerConfig, resolveProviders } from "../providerResolver-B_TjNF0_.mjs";
1
+ import { getAWSServiceConfig, getServerConfig, resolveProviders } from "../providerResolver-DEVKngbC.mjs";
2
2
 
3
3
  export { getAWSServiceConfig, getServerConfig, resolveProviders };
@@ -0,0 +1,3 @@
1
+ import "../types-DB99_qIy.cjs";
2
+ import { BuildContext, NormalizedTelescopeConfig, ProcessedCron, ProcessedEndpoint, ProcessedFunction, ProviderBuildResult } from "../types-DLFN49M3.cjs";
3
+ export { BuildContext, NormalizedTelescopeConfig, ProcessedCron, ProcessedEndpoint, ProcessedFunction, ProviderBuildResult };
@@ -0,0 +1,3 @@
1
+ import "../types-Cxl8-uwV.mjs";
2
+ import { BuildContext, NormalizedTelescopeConfig, ProcessedCron, ProcessedEndpoint, ProcessedFunction, ProviderBuildResult } from "../types-C4KITv-y.mjs";
3
+ export { BuildContext, NormalizedTelescopeConfig, ProcessedCron, ProcessedEndpoint, ProcessedFunction, ProviderBuildResult };
@@ -1,10 +1,11 @@
1
- import { loadConfig } from "./config-AFmFKmU0.mjs";
2
- import { CronGenerator } from "./CronGenerator-Bh26MaNA.mjs";
3
- import { EndpointGenerator } from "./EndpointGenerator-CzDhG7Or.mjs";
4
- import { FunctionGenerator } from "./FunctionGenerator-BNE_GC7N.mjs";
5
- import { SubscriberGenerator } from "./SubscriberGenerator-Dnlj_1FK.mjs";
6
- import { generateAwsManifest, generateServerManifest } from "./manifests-C2eMoMUm.mjs";
7
- import { resolveProviders } from "./providerResolver-B_TjNF0_.mjs";
1
+ import { loadConfig, parseModuleConfig } from "./config-Bq72aj8e.mjs";
2
+ import { resolveProviders } from "./providerResolver-DEVKngbC.mjs";
3
+ import { CronGenerator } from "./CronGenerator-CCRYptuT.mjs";
4
+ import { EndpointGenerator } from "./EndpointGenerator-DGivkPLT.mjs";
5
+ import { FunctionGenerator } from "./FunctionGenerator-CVk0h8tO.mjs";
6
+ import { SubscriberGenerator } from "./SubscriberGenerator-DABaJXML.mjs";
7
+ import { normalizeTelescopeConfig } from "./dev-B734w3L1.mjs";
8
+ import { generateAwsManifest, generateServerManifest } from "./manifests-DIA_2QYd.mjs";
8
9
  import { mkdir } from "node:fs/promises";
9
10
  import { join, relative } from "node:path";
10
11
 
@@ -19,15 +20,16 @@ async function buildCommand(options) {
19
20
  if (config.crons) logger.log(`Loading crons from: ${config.crons}`);
20
21
  if (config.subscribers) logger.log(`Loading subscribers from: ${config.subscribers}`);
21
22
  logger.log(`Using envParser: ${config.envParser}`);
22
- const [envParserPath, envParserName] = config.envParser.split("#");
23
- const envParserImportPattern = !envParserName ? "envParser" : envParserName === "envParser" ? "{ envParser }" : `{ ${envParserName} as envParser }`;
24
- const [loggerPath, loggerName] = config.logger.split("#");
25
- const loggerImportPattern = !loggerName ? "logger" : loggerName === "logger" ? "{ logger }" : `{ ${loggerName} as logger }`;
23
+ const { path: envParserPath, importPattern: envParserImportPattern } = parseModuleConfig(config.envParser, "envParser");
24
+ const { path: loggerPath, importPattern: loggerImportPattern } = parseModuleConfig(config.logger, "logger");
25
+ const telescope = normalizeTelescopeConfig(config.telescope);
26
+ if (telescope) logger.log(`🔭 Telescope enabled at ${telescope.path}`);
26
27
  const buildContext = {
27
28
  envParserPath,
28
29
  envParserImportPattern,
29
30
  loggerPath,
30
- loggerImportPattern
31
+ loggerImportPattern,
32
+ telescope
31
33
  };
32
34
  const endpointGenerator = new EndpointGenerator();
33
35
  const functionGenerator = new FunctionGenerator();
@@ -82,4 +84,4 @@ async function buildForProvider(provider, context, rootOutputDir, endpointGenera
82
84
 
83
85
  //#endregion
84
86
  export { buildCommand };
85
- //# sourceMappingURL=build-DyDgu_D1.mjs.map
87
+ //# sourceMappingURL=build-B8C_qHir.mjs.map