@geekmidas/cli 0.5.1 → 0.6.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 (245) hide show
  1. package/README.md +7 -7
  2. package/dist/{CronGenerator-BPTqNYOR.d.cts → CronGenerator-DWS3CCZt.d.cts} +4 -4
  3. package/dist/{CronGenerator-YAj59JUd.d.mts → CronGenerator-DZjdkEjI.d.mts} +4 -4
  4. package/dist/{EndpointGenerator-ChAD1INz.d.cts → EndpointGenerator-Dh7kMtuL.d.mts} +4 -4
  5. package/dist/{EndpointGenerator-Cj3O1U8-.d.mts → EndpointGenerator-zBsie_7s.d.cts} +4 -4
  6. package/dist/{FunctionGenerator-429-9NER.d.cts → FunctionGenerator-BmDHo27U.d.mts} +4 -4
  7. package/dist/{FunctionGenerator-BQ4ehoID.d.mts → FunctionGenerator-DXjXBxUd.d.cts} +4 -4
  8. package/dist/{Generator-BjHK_qce.d.mts → Generator-BGY-2dgI.d.cts} +3 -3
  9. package/dist/{Generator-DxQMCQp7.d.cts → Generator-yi9DH5TN.d.mts} +3 -3
  10. package/dist/{OpenApiTsGenerator-C4mHHaku.mjs → OpenApiTsGenerator-0ZDYWro5.mjs} +1 -1
  11. package/dist/{OpenApiTsGenerator-C4mHHaku.mjs.map → OpenApiTsGenerator-0ZDYWro5.mjs.map} +1 -1
  12. package/dist/{OpenApiTsGenerator-Be-sKGTT.cjs → OpenApiTsGenerator-wLwpaq_I.cjs} +1 -1
  13. package/dist/{OpenApiTsGenerator-Be-sKGTT.cjs.map → OpenApiTsGenerator-wLwpaq_I.cjs.map} +1 -1
  14. package/dist/{SubscriberGenerator-7uX42xyG.d.mts → SubscriberGenerator-Bb-z3Kvx.d.cts} +4 -4
  15. package/dist/{SubscriberGenerator-Dtb3HS4i.d.cts → SubscriberGenerator-CwsXqCpS.d.mts} +4 -4
  16. package/dist/{api-BKIN0s0S.mjs → api-Bp5TIl1R.mjs} +29 -46
  17. package/dist/api-Bp5TIl1R.mjs.map +1 -0
  18. package/dist/{api-B3SCEHPf.cjs → api-D4W9-tdZ.cjs} +29 -46
  19. package/dist/api-D4W9-tdZ.cjs.map +1 -0
  20. package/dist/build/index.cjs +5 -3
  21. package/dist/build/index.d.cts +1 -1
  22. package/dist/build/index.d.mts +1 -1
  23. package/dist/build/index.mjs +5 -3
  24. package/dist/build/manifests.cjs +1 -1
  25. package/dist/build/manifests.d.cts +1 -1
  26. package/dist/build/manifests.d.mts +1 -1
  27. package/dist/build/manifests.mjs +1 -1
  28. package/dist/build/providerResolver.d.cts +1 -1
  29. package/dist/build/providerResolver.d.mts +1 -1
  30. package/dist/build/types.d.cts +2 -2
  31. package/dist/build/types.d.mts +2 -2
  32. package/dist/{build-B8C_qHir.mjs → build-BLriHKgm.mjs} +3 -3
  33. package/dist/{build-B8C_qHir.mjs.map → build-BLriHKgm.mjs.map} +1 -1
  34. package/dist/{build-D0Wr49bf.cjs → build-Z3yGHcy2.cjs} +3 -3
  35. package/dist/{build-D0Wr49bf.cjs.map → build-Z3yGHcy2.cjs.map} +1 -1
  36. package/dist/{config-CLEDqKO3.cjs → config-BP1IZynR.cjs} +17 -6
  37. package/dist/config-BP1IZynR.cjs.map +1 -0
  38. package/dist/{config-Ba-Gbpbc.d.cts → config-CIzRhm_D.d.mts} +2 -2
  39. package/dist/{config-DBsmMDhf.d.mts → config-CvehIYsb.d.cts} +2 -2
  40. package/dist/{config-Dp8RonV_.mjs → config-UCK12Lrr.mjs} +17 -6
  41. package/dist/config-UCK12Lrr.mjs.map +1 -0
  42. package/dist/config.d.cts +1 -1
  43. package/dist/config.d.mts +1 -1
  44. package/dist/dev/index.cjs +3 -1
  45. package/dist/dev/index.d.cts +2 -2
  46. package/dist/dev/index.d.mts +2 -2
  47. package/dist/dev/index.mjs +3 -1
  48. package/dist/{dev-B734w3L1.mjs → dev-BimlVcuk.mjs} +6 -1
  49. package/dist/dev-BimlVcuk.mjs.map +1 -0
  50. package/dist/{dev-DHqYn8k4.cjs → dev-Dcrb_ZSL.cjs} +6 -1
  51. package/dist/dev-Dcrb_ZSL.cjs.map +1 -0
  52. package/dist/{docker-5d8Yh5_X.cjs → docker-2-ipZDOJ.cjs} +1 -1
  53. package/dist/{docker-5d8Yh5_X.cjs.map → docker-2-ipZDOJ.cjs.map} +1 -1
  54. package/dist/{docker-DlUqdFle.mjs → docker-31GNwU3F.mjs} +1 -1
  55. package/dist/{docker-DlUqdFle.mjs.map → docker-31GNwU3F.mjs.map} +1 -1
  56. package/dist/{env-HfuJRlg5.d.cts → env-CQ3hXAAW.d.mts} +2 -2
  57. package/dist/{env-B-OKjgI4.cjs → env-CS0jvg7k.cjs} +1 -1
  58. package/dist/{env-B-OKjgI4.cjs.map → env-CS0jvg7k.cjs.map} +1 -1
  59. package/dist/{env-nd-iQPYM.d.mts → env-D4YFgMqo.d.cts} +2 -2
  60. package/dist/{env-tv1HlZlw.mjs → env-DEeVOvVu.mjs} +1 -1
  61. package/dist/{env-tv1HlZlw.mjs.map → env-DEeVOvVu.mjs.map} +1 -1
  62. package/dist/generators/CronGenerator.d.cts +4 -4
  63. package/dist/generators/CronGenerator.d.mts +4 -4
  64. package/dist/generators/EndpointGenerator.d.cts +4 -4
  65. package/dist/generators/EndpointGenerator.d.mts +4 -4
  66. package/dist/generators/FunctionGenerator.d.cts +4 -4
  67. package/dist/generators/FunctionGenerator.d.mts +4 -4
  68. package/dist/generators/Generator.d.cts +3 -3
  69. package/dist/generators/Generator.d.mts +3 -3
  70. package/dist/generators/OpenApiTsGenerator.cjs +1 -1
  71. package/dist/generators/OpenApiTsGenerator.mjs +1 -1
  72. package/dist/generators/SubscriberGenerator.d.cts +4 -4
  73. package/dist/generators/SubscriberGenerator.d.mts +4 -4
  74. package/dist/generators/index.d.cts +7 -7
  75. package/dist/generators/index.d.mts +7 -7
  76. package/dist/{index-C523No_B.d.mts → index-DG6xNQMH.d.cts} +25 -8
  77. package/dist/{index-DrzN4xkQ.d.cts → index-DZgrOOOW.d.mts} +25 -8
  78. package/dist/index.cjs +21 -21
  79. package/dist/index.cjs.map +1 -1
  80. package/dist/index.mjs +21 -21
  81. package/dist/index.mjs.map +1 -1
  82. package/dist/init/generators/config.cjs +1 -1
  83. package/dist/init/generators/config.d.cts +2 -2
  84. package/dist/init/generators/config.d.mts +2 -2
  85. package/dist/init/generators/config.mjs +1 -1
  86. package/dist/init/generators/docker.cjs +1 -1
  87. package/dist/init/generators/docker.d.cts +1 -1
  88. package/dist/init/generators/docker.d.mts +1 -1
  89. package/dist/init/generators/docker.mjs +1 -1
  90. package/dist/init/generators/env.cjs +1 -1
  91. package/dist/init/generators/env.d.cts +2 -2
  92. package/dist/init/generators/env.d.mts +2 -2
  93. package/dist/init/generators/env.mjs +1 -1
  94. package/dist/init/generators/index.cjs +9 -4
  95. package/dist/init/generators/index.d.cts +5 -5
  96. package/dist/init/generators/index.d.mts +5 -5
  97. package/dist/init/generators/index.mjs +9 -4
  98. package/dist/init/generators/models.cjs +1 -1
  99. package/dist/init/generators/models.d.cts +1 -1
  100. package/dist/init/generators/models.d.mts +1 -1
  101. package/dist/init/generators/models.mjs +1 -1
  102. package/dist/init/generators/monorepo.cjs +1 -1
  103. package/dist/init/generators/monorepo.d.cts +1 -1
  104. package/dist/init/generators/monorepo.d.mts +1 -1
  105. package/dist/init/generators/monorepo.mjs +1 -1
  106. package/dist/init/generators/package.cjs +6 -1
  107. package/dist/init/generators/package.d.cts +2 -2
  108. package/dist/init/generators/package.d.mts +2 -2
  109. package/dist/init/generators/package.mjs +6 -1
  110. package/dist/init/generators/source.cjs +1 -1
  111. package/dist/init/generators/source.d.cts +2 -2
  112. package/dist/init/generators/source.d.mts +2 -2
  113. package/dist/init/generators/source.mjs +1 -1
  114. package/dist/init/index.cjs +14 -14
  115. package/dist/init/index.d.cts +1 -1
  116. package/dist/init/index.d.mts +1 -1
  117. package/dist/init/index.mjs +14 -14
  118. package/dist/init/templates/api.cjs +1 -1
  119. package/dist/init/templates/api.d.cts +1 -1
  120. package/dist/init/templates/api.d.mts +1 -1
  121. package/dist/init/templates/api.mjs +1 -1
  122. package/dist/init/templates/index.cjs +8 -6
  123. package/dist/init/templates/index.d.cts +2 -2
  124. package/dist/init/templates/index.d.mts +2 -2
  125. package/dist/init/templates/index.mjs +6 -6
  126. package/dist/init/templates/minimal.cjs +1 -1
  127. package/dist/init/templates/minimal.d.cts +1 -1
  128. package/dist/init/templates/minimal.d.mts +1 -1
  129. package/dist/init/templates/minimal.mjs +1 -1
  130. package/dist/init/templates/serverless.cjs +1 -1
  131. package/dist/init/templates/serverless.d.cts +1 -1
  132. package/dist/init/templates/serverless.d.mts +1 -1
  133. package/dist/init/templates/serverless.mjs +1 -1
  134. package/dist/init/templates/worker.cjs +1 -1
  135. package/dist/init/templates/worker.d.cts +1 -1
  136. package/dist/init/templates/worker.d.mts +1 -1
  137. package/dist/init/templates/worker.mjs +1 -1
  138. package/dist/init/utils.cjs +1 -1
  139. package/dist/init/utils.mjs +1 -1
  140. package/dist/{init-CtOnZn3G.mjs → init-BMA7xi8r.mjs} +37 -21
  141. package/dist/init-BMA7xi8r.mjs.map +1 -0
  142. package/dist/{init-qLFsWR-R.cjs → init-D-7WEk-b.cjs} +37 -21
  143. package/dist/init-D-7WEk-b.cjs.map +1 -0
  144. package/dist/{manifests-DIA_2QYd.mjs → manifests-BNKG6AXf.mjs} +1 -1
  145. package/dist/{manifests-DIA_2QYd.mjs.map → manifests-BNKG6AXf.mjs.map} +1 -1
  146. package/dist/{manifests-VJ9-2JpW.cjs → manifests-D13Ej8AE.cjs} +1 -1
  147. package/dist/{manifests-VJ9-2JpW.cjs.map → manifests-D13Ej8AE.cjs.map} +1 -1
  148. package/dist/{minimal-C4GsE45s.mjs → minimal-BkyASH_C.mjs} +15 -9
  149. package/dist/minimal-BkyASH_C.mjs.map +1 -0
  150. package/dist/{minimal-Bdhhpp7v.cjs → minimal-CSFggzdH.cjs} +15 -9
  151. package/dist/minimal-CSFggzdH.cjs.map +1 -0
  152. package/dist/{models-cvNg6Oea.mjs → models-BWlDfviw.mjs} +1 -1
  153. package/dist/{models-cvNg6Oea.mjs.map → models-BWlDfviw.mjs.map} +1 -1
  154. package/dist/{models-DyNwdOcz.cjs → models-BapGSoHC.cjs} +1 -1
  155. package/dist/{models-DyNwdOcz.cjs.map → models-BapGSoHC.cjs.map} +1 -1
  156. package/dist/{monorepo-Cknwzj5C.mjs → monorepo-BBOWhkcd.mjs} +1 -1
  157. package/dist/{monorepo-Cknwzj5C.mjs.map → monorepo-BBOWhkcd.mjs.map} +1 -1
  158. package/dist/{monorepo-sEK8gW59.cjs → monorepo-CFtxHeDh.cjs} +1 -1
  159. package/dist/{monorepo-sEK8gW59.cjs.map → monorepo-CFtxHeDh.cjs.map} +1 -1
  160. package/dist/openapi-CTae4ybf.cjs +98 -0
  161. package/dist/openapi-CTae4ybf.cjs.map +1 -0
  162. package/dist/openapi-Dn9MeKg3.mjs +74 -0
  163. package/dist/openapi-Dn9MeKg3.mjs.map +1 -0
  164. package/dist/{openapi-react-query-DxHjXQvg.cjs → openapi-react-query-Cp-w8_05.cjs} +1 -1
  165. package/dist/{openapi-react-query-DxHjXQvg.cjs.map → openapi-react-query-Cp-w8_05.cjs.map} +1 -1
  166. package/dist/{openapi-react-query-o7Mp1Jd5.mjs → openapi-react-query-_-B3s8v_.mjs} +1 -1
  167. package/dist/{openapi-react-query-o7Mp1Jd5.mjs.map → openapi-react-query-_-B3s8v_.mjs.map} +1 -1
  168. package/dist/openapi-react-query.cjs +1 -1
  169. package/dist/openapi-react-query.mjs +1 -1
  170. package/dist/openapi.cjs +6 -3
  171. package/dist/openapi.d.cts +23 -3
  172. package/dist/openapi.d.mts +23 -3
  173. package/dist/openapi.mjs +3 -3
  174. package/dist/{package-C7WhWU8m.d.mts → package-6h-7QfJZ.d.cts} +2 -2
  175. package/dist/{package-DvWEMz6z.d.cts → package-BCe_KvGv.d.mts} +2 -2
  176. package/dist/{package-CIfmeuSW.mjs → package-C3If80n1.mjs} +7 -1
  177. package/dist/package-C3If80n1.mjs.map +1 -0
  178. package/dist/{package-PP-o1nvq.cjs → package-Dk8IMBOB.cjs} +6 -1
  179. package/dist/package-Dk8IMBOB.cjs.map +1 -0
  180. package/dist/{serverless-Yav3GRVz.cjs → serverless-AGOS-l3G.cjs} +15 -10
  181. package/dist/serverless-AGOS-l3G.cjs.map +1 -0
  182. package/dist/{serverless-DkHBF2vC.mjs → serverless-D5HjJByU.mjs} +15 -10
  183. package/dist/serverless-D5HjJByU.mjs.map +1 -0
  184. package/dist/{source-DT5Xhiob.cjs → source-C1cyfHcF.cjs} +1 -1
  185. package/dist/{source-DT5Xhiob.cjs.map → source-C1cyfHcF.cjs.map} +1 -1
  186. package/dist/{source-D6v2BnKT.d.mts → source-C3LiNUV9.d.mts} +2 -2
  187. package/dist/{source-DnaH_MLA.mjs → source-CkQHBpwu.mjs} +1 -1
  188. package/dist/{source-DnaH_MLA.mjs.map → source-CkQHBpwu.mjs.map} +1 -1
  189. package/dist/{source-D8fK9qRo.d.cts → source-Dtcjbokc.d.cts} +2 -2
  190. package/dist/templates-C0EMmhwb.mjs +88 -0
  191. package/dist/templates-C0EMmhwb.mjs.map +1 -0
  192. package/dist/templates-CbgQ9dw0.cjs +123 -0
  193. package/dist/templates-CbgQ9dw0.cjs.map +1 -0
  194. package/dist/{types-Cxl8-uwV.d.mts → types-Bi7VzDUZ.d.mts} +31 -2
  195. package/dist/{types-C4KITv-y.d.mts → types-D2xYkOal.d.mts} +2 -2
  196. package/dist/{types-DLFN49M3.d.cts → types-DA-r8HWZ.d.cts} +2 -2
  197. package/dist/{types-DB99_qIy.d.cts → types-KmjzMgu8.d.cts} +31 -2
  198. package/dist/types.d.cts +2 -2
  199. package/dist/types.d.mts +2 -2
  200. package/dist/{utils-C31-SWHP.mjs → utils-CKEzCxc1.mjs} +1 -1
  201. package/dist/{utils-C31-SWHP.mjs.map → utils-CKEzCxc1.mjs.map} +1 -1
  202. package/dist/{utils-BX3F4fT8.cjs → utils-DSdN2MTt.cjs} +1 -1
  203. package/dist/{utils-BX3F4fT8.cjs.map → utils-DSdN2MTt.cjs.map} +1 -1
  204. package/dist/{worker--8O5a3Hv.cjs → worker-CGhlqNH-.cjs} +15 -9
  205. package/dist/worker-CGhlqNH-.cjs.map +1 -0
  206. package/dist/{worker-Jme7uOOJ.mjs → worker-CiP420As.mjs} +15 -9
  207. package/dist/worker-CiP420As.mjs.map +1 -0
  208. package/examples/gkm.config.ts +3 -5
  209. package/package.json +4 -4
  210. package/src/__tests__/openapi.spec.ts +395 -302
  211. package/src/dev/index.ts +18 -0
  212. package/src/init/generators/config.ts +23 -5
  213. package/src/init/generators/package.ts +11 -4
  214. package/src/init/index.ts +26 -7
  215. package/src/init/templates/api.ts +38 -56
  216. package/src/init/templates/index.ts +46 -11
  217. package/src/init/templates/minimal.ts +23 -10
  218. package/src/init/templates/serverless.ts +23 -11
  219. package/src/init/templates/worker.ts +23 -10
  220. package/src/openapi.ts +83 -45
  221. package/src/types.ts +30 -0
  222. package/dist/api-B3SCEHPf.cjs.map +0 -1
  223. package/dist/api-BKIN0s0S.mjs.map +0 -1
  224. package/dist/config-CLEDqKO3.cjs.map +0 -1
  225. package/dist/config-Dp8RonV_.mjs.map +0 -1
  226. package/dist/dev-B734w3L1.mjs.map +0 -1
  227. package/dist/dev-DHqYn8k4.cjs.map +0 -1
  228. package/dist/init-CtOnZn3G.mjs.map +0 -1
  229. package/dist/init-qLFsWR-R.cjs.map +0 -1
  230. package/dist/minimal-Bdhhpp7v.cjs.map +0 -1
  231. package/dist/minimal-C4GsE45s.mjs.map +0 -1
  232. package/dist/openapi-BQWPWyNB.cjs +0 -56
  233. package/dist/openapi-BQWPWyNB.cjs.map +0 -1
  234. package/dist/openapi-DBX8cJJ8.mjs +0 -50
  235. package/dist/openapi-DBX8cJJ8.mjs.map +0 -1
  236. package/dist/package-CIfmeuSW.mjs.map +0 -1
  237. package/dist/package-PP-o1nvq.cjs.map +0 -1
  238. package/dist/serverless-DkHBF2vC.mjs.map +0 -1
  239. package/dist/serverless-Yav3GRVz.cjs.map +0 -1
  240. package/dist/templates-CBFUwpBy.mjs +0 -64
  241. package/dist/templates-CBFUwpBy.mjs.map +0 -1
  242. package/dist/templates-DM_rtYYW.cjs +0 -87
  243. package/dist/templates-DM_rtYYW.cjs.map +0 -1
  244. package/dist/worker--8O5a3Hv.cjs.map +0 -1
  245. package/dist/worker-Jme7uOOJ.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-PP-o1nvq.cjs","names":["options: TemplateOptions","template: TemplateConfig","obj: Record<string, string>"],"sources":["../src/init/generators/package.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from '../templates/index.js';\n\n/**\n * Generate package.json with dependencies based on template and options\n */\nexport function generatePackageJson(\n options: TemplateOptions,\n template: TemplateConfig,\n): GeneratedFile[] {\n const { name, telescope, database, monorepo } = options;\n\n // Start with template dependencies\n const dependencies = { ...template.dependencies };\n const devDependencies = { ...template.devDependencies };\n const scripts = { ...template.scripts };\n\n // Add optional dependencies based on user choices\n if (telescope) {\n dependencies['@geekmidas/telescope'] = 'workspace:*';\n }\n\n if (database) {\n dependencies['@geekmidas/db'] = 'workspace:*';\n dependencies['kysely'] = '~0.28.2';\n dependencies['pg'] = '~8.16.0';\n devDependencies['@types/pg'] = '~8.15.0';\n }\n\n // Add zod for schema validation (commonly used)\n dependencies['zod'] = '~4.1.0';\n\n // For monorepo apps, remove biome/turbo (they're at root) and lint/fmt scripts\n if (monorepo) {\n delete devDependencies['@biomejs/biome'];\n delete devDependencies['turbo'];\n delete scripts['lint'];\n delete scripts['fmt'];\n delete scripts['fmt:check'];\n\n // Add models package as dependency\n dependencies[`@${name}/models`] = 'workspace:*';\n\n // Remove zod from api package (it's in models)\n delete dependencies['zod'];\n }\n\n // Sort dependencies alphabetically\n const sortObject = (obj: Record<string, string>) =>\n Object.fromEntries(\n Object.entries(obj).sort(([a], [b]) => a.localeCompare(b)),\n );\n\n // For monorepo, derive package name from apiPath (e.g., apps/api -> @name/api)\n let packageName = name;\n if (monorepo && options.apiPath) {\n const pathParts = options.apiPath.split('/');\n const appName = pathParts[pathParts.length - 1] || 'api';\n packageName = `@${name}/${appName}`;\n }\n\n const packageJson = {\n name: packageName,\n version: '0.0.1',\n private: true,\n type: 'module',\n scripts,\n dependencies: sortObject(dependencies),\n devDependencies: sortObject(devDependencies),\n };\n\n return [\n {\n path: 'package.json',\n content: JSON.stringify(packageJson, null, 2) + '\\n',\n },\n ];\n}\n"],"mappings":";;;;;AASA,SAAgB,oBACdA,SACAC,UACiB;CACjB,MAAM,EAAE,MAAM,WAAW,UAAU,UAAU,GAAG;CAGhD,MAAM,eAAe,EAAE,GAAG,SAAS,aAAc;CACjD,MAAM,kBAAkB,EAAE,GAAG,SAAS,gBAAiB;CACvD,MAAM,UAAU,EAAE,GAAG,SAAS,QAAS;AAGvC,KAAI,UACF,cAAa,0BAA0B;AAGzC,KAAI,UAAU;AACZ,eAAa,mBAAmB;AAChC,eAAa,YAAY;AACzB,eAAa,QAAQ;AACrB,kBAAgB,eAAe;CAChC;AAGD,cAAa,SAAS;AAGtB,KAAI,UAAU;AACZ,SAAO,gBAAgB;AACvB,SAAO,gBAAgB;AACvB,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AAGf,gBAAc,GAAG,KAAK,YAAY;AAGlC,SAAO,aAAa;CACrB;CAGD,MAAM,aAAa,CAACC,QAClB,OAAO,YACL,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAC3D;CAGH,IAAI,cAAc;AAClB,KAAI,YAAY,QAAQ,SAAS;EAC/B,MAAM,YAAY,QAAQ,QAAQ,MAAM,IAAI;EAC5C,MAAM,UAAU,UAAU,UAAU,SAAS,MAAM;AACnD,iBAAe,GAAG,KAAK,GAAG,QAAQ;CACnC;CAED,MAAM,cAAc;EAClB,MAAM;EACN,SAAS;EACT,SAAS;EACT,MAAM;EACN;EACA,cAAc,WAAW,aAAa;EACtC,iBAAiB,WAAW,gBAAgB;CAC7C;AAED,QAAO,CACL;EACE,MAAM;EACN,SAAS,KAAK,UAAU,aAAa,MAAM,EAAE,GAAG;CACjD,CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverless-DkHBF2vC.mjs","names":["serverlessTemplate: TemplateConfig","options: TemplateOptions","files: GeneratedFile[]"],"sources":["../src/init/templates/serverless.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const serverlessTemplate: TemplateConfig = {\n name: 'serverless',\n description: 'AWS Lambda handlers',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n '@geekmidas/cloud': '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/aws-lambda': '~8.10.92',\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 --provider aws-apigatewayv2',\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 stage: get('STAGE').string().default('dev'),\n region: get('AWS_REGION').string().default('us-east-1'),${\n options.database\n ? `\n database: {\n url: get('DATABASE_URL').string(),\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 stage: process.env.STAGE || 'dev',\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 region: process.env.AWS_REGION || 'local',\n }));\n`,\n },\n\n // src/functions/hello.ts\n {\n path: 'src/functions/hello.ts',\n content: `import { f } from '@geekmidas/constructs/functions';\nimport { z } from 'zod';\n\nexport default f\n .input(z.object({ name: z.string() }))\n .output(z.object({ message: z.string() }))\n .handle(async ({ input }) => ({\n message: \\`Hello, \\${input.name}!\\`,\n }));\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\n// Note: For production Lambda, consider using a persistent storage\nexport const telescope = new Telescope({\n storage: new InMemoryStorage({ maxEntries: 50 }),\n enabled: process.env.STAGE === 'dev',\n});\n`,\n });\n }\n\n return files;\n },\n};\n"],"mappings":";AAMA,MAAaA,qBAAqC;CAChD,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,oBAAoB;EACpB,MAAM;EACN,MAAM;CACP;CAED,iBAAiB;EACf,kBAAkB;EAClB,kBAAkB;EAClB,qBAAqB;EACrB,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;;;;;;;8DAQZ,QAAQ,YACH;;;UAID,GACL;;;;GAIE;GAGD;IACE,MAAM;IACN,UAAU;;;UAGR,QAAQ,KAAK;;;;;GAKhB;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;GAUX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;GAUX;EACF;AAGD,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;;EASX,EAAC;AAGJ,SAAO;CACR;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverless-Yav3GRVz.cjs","names":["serverlessTemplate: TemplateConfig","options: TemplateOptions","files: GeneratedFile[]"],"sources":["../src/init/templates/serverless.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const serverlessTemplate: TemplateConfig = {\n name: 'serverless',\n description: 'AWS Lambda handlers',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n '@geekmidas/cloud': '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/aws-lambda': '~8.10.92',\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 --provider aws-apigatewayv2',\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 stage: get('STAGE').string().default('dev'),\n region: get('AWS_REGION').string().default('us-east-1'),${\n options.database\n ? `\n database: {\n url: get('DATABASE_URL').string(),\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 stage: process.env.STAGE || 'dev',\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 region: process.env.AWS_REGION || 'local',\n }));\n`,\n },\n\n // src/functions/hello.ts\n {\n path: 'src/functions/hello.ts',\n content: `import { f } from '@geekmidas/constructs/functions';\nimport { z } from 'zod';\n\nexport default f\n .input(z.object({ name: z.string() }))\n .output(z.object({ message: z.string() }))\n .handle(async ({ input }) => ({\n message: \\`Hello, \\${input.name}!\\`,\n }));\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\n// Note: For production Lambda, consider using a persistent storage\nexport const telescope = new Telescope({\n storage: new InMemoryStorage({ maxEntries: 50 }),\n enabled: process.env.STAGE === 'dev',\n});\n`,\n });\n }\n\n return files;\n },\n};\n"],"mappings":";;AAMA,MAAaA,qBAAqC;CAChD,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,oBAAoB;EACpB,MAAM;EACN,MAAM;CACP;CAED,iBAAiB;EACf,kBAAkB;EAClB,kBAAkB;EAClB,qBAAqB;EACrB,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;;;;;;;8DAQZ,QAAQ,YACH;;;UAID,GACL;;;;GAIE;GAGD;IACE,MAAM;IACN,UAAU;;;UAGR,QAAQ,KAAK;;;;;GAKhB;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;GAUX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;GAUX;EACF;AAGD,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;;EASX,EAAC;AAGJ,SAAO;CACR;AACF"}
@@ -1,64 +0,0 @@
1
- import { apiTemplate } from "./api-BKIN0s0S.mjs";
2
- import { minimalTemplate } from "./minimal-C4GsE45s.mjs";
3
- import { serverlessTemplate } from "./serverless-DkHBF2vC.mjs";
4
- import { workerTemplate } from "./worker-Jme7uOOJ.mjs";
5
-
6
- //#region src/init/templates/index.ts
7
- /**
8
- * All available templates
9
- */
10
- const templates = {
11
- minimal: minimalTemplate,
12
- api: apiTemplate,
13
- serverless: serverlessTemplate,
14
- worker: workerTemplate
15
- };
16
- /**
17
- * Template choices for prompts
18
- */
19
- const templateChoices = [
20
- {
21
- title: "Minimal",
22
- value: "minimal",
23
- description: "Basic health endpoint"
24
- },
25
- {
26
- title: "API",
27
- value: "api",
28
- description: "Full API with auth, database, services"
29
- },
30
- {
31
- title: "Serverless",
32
- value: "serverless",
33
- description: "AWS Lambda handlers"
34
- },
35
- {
36
- title: "Worker",
37
- value: "worker",
38
- description: "Background job processing"
39
- }
40
- ];
41
- /**
42
- * Route style choices for prompts
43
- */
44
- const routeStyleChoices = [{
45
- title: "File-based",
46
- value: "file-based",
47
- description: "Folder structure matches URL paths (users/list.ts → /users)"
48
- }, {
49
- title: "Flat",
50
- value: "flat",
51
- description: "All endpoints in one folder (users-list.ts → /users)"
52
- }];
53
- /**
54
- * Get a template by name
55
- */
56
- function getTemplate(name) {
57
- const template = templates[name];
58
- if (!template) throw new Error(`Unknown template: ${name}`);
59
- return template;
60
- }
61
-
62
- //#endregion
63
- export { getTemplate, routeStyleChoices, templateChoices, templates };
64
- //# sourceMappingURL=templates-CBFUwpBy.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates-CBFUwpBy.mjs","names":["templates: Record<TemplateName, TemplateConfig>","name: TemplateName"],"sources":["../src/init/templates/index.ts"],"sourcesContent":["import { apiTemplate } from './api.js';\nimport { minimalTemplate } from './minimal.js';\nimport { serverlessTemplate } from './serverless.js';\nimport { workerTemplate } from './worker.js';\n\n/**\n * Route organization style\n */\nexport type RouteStyle = 'file-based' | 'flat';\n\n/**\n * Options collected from user prompts\n */\nexport interface TemplateOptions {\n name: string;\n template: TemplateName;\n telescope: boolean;\n database: boolean;\n routeStyle: RouteStyle;\n monorepo: boolean;\n /** Path for the API app in monorepo (e.g., 'apps/api') */\n apiPath: string;\n}\n\n/**\n * A file to be generated\n */\nexport interface GeneratedFile {\n path: string;\n content: string;\n}\n\n/**\n * Template configuration\n */\nexport interface TemplateConfig {\n name: TemplateName;\n description: string;\n dependencies: Record<string, string>;\n devDependencies: Record<string, string>;\n scripts: Record<string, string>;\n files: (options: TemplateOptions) => GeneratedFile[];\n}\n\nexport type TemplateName = 'minimal' | 'api' | 'serverless' | 'worker';\n\n/**\n * All available templates\n */\nexport const templates: Record<TemplateName, TemplateConfig> = {\n minimal: minimalTemplate,\n api: apiTemplate,\n serverless: serverlessTemplate,\n worker: workerTemplate,\n};\n\n/**\n * Template choices for prompts\n */\nexport const templateChoices = [\n {\n title: 'Minimal',\n value: 'minimal' as TemplateName,\n description: 'Basic health endpoint',\n },\n {\n title: 'API',\n value: 'api' as TemplateName,\n description: 'Full API with auth, database, services',\n },\n {\n title: 'Serverless',\n value: 'serverless' as TemplateName,\n description: 'AWS Lambda handlers',\n },\n {\n title: 'Worker',\n value: 'worker' as TemplateName,\n description: 'Background job processing',\n },\n];\n\n/**\n * Route style choices for prompts\n */\nexport const routeStyleChoices = [\n {\n title: 'File-based',\n value: 'file-based' as RouteStyle,\n description: 'Folder structure matches URL paths (users/list.ts → /users)',\n },\n {\n title: 'Flat',\n value: 'flat' as RouteStyle,\n description: 'All endpoints in one folder (users-list.ts → /users)',\n },\n];\n\n/**\n * Get a template by name\n */\nexport function getTemplate(name: TemplateName): TemplateConfig {\n const template = templates[name];\n if (!template) {\n throw new Error(`Unknown template: ${name}`);\n }\n return template;\n}\n"],"mappings":";;;;;;;;;AAiDA,MAAaA,YAAkD;CAC7D,SAAS;CACT,KAAK;CACL,YAAY;CACZ,QAAQ;AACT;;;;AAKD,MAAa,kBAAkB;CAC7B;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;AACF;;;;AAKD,MAAa,oBAAoB,CAC/B;CACE,OAAO;CACP,OAAO;CACP,aAAa;AACd,GACD;CACE,OAAO;CACP,OAAO;CACP,aAAa;AACd,CACF;;;;AAKD,SAAgB,YAAYC,MAAoC;CAC9D,MAAM,WAAW,UAAU;AAC3B,MAAK,SACH,OAAM,IAAI,OAAO,oBAAoB,KAAK;AAE5C,QAAO;AACR"}
@@ -1,87 +0,0 @@
1
- const require_api = require('./api-B3SCEHPf.cjs');
2
- const require_minimal = require('./minimal-Bdhhpp7v.cjs');
3
- const require_serverless = require('./serverless-Yav3GRVz.cjs');
4
- const require_worker = require('./worker--8O5a3Hv.cjs');
5
-
6
- //#region src/init/templates/index.ts
7
- /**
8
- * All available templates
9
- */
10
- const templates = {
11
- minimal: require_minimal.minimalTemplate,
12
- api: require_api.apiTemplate,
13
- serverless: require_serverless.serverlessTemplate,
14
- worker: require_worker.workerTemplate
15
- };
16
- /**
17
- * Template choices for prompts
18
- */
19
- const templateChoices = [
20
- {
21
- title: "Minimal",
22
- value: "minimal",
23
- description: "Basic health endpoint"
24
- },
25
- {
26
- title: "API",
27
- value: "api",
28
- description: "Full API with auth, database, services"
29
- },
30
- {
31
- title: "Serverless",
32
- value: "serverless",
33
- description: "AWS Lambda handlers"
34
- },
35
- {
36
- title: "Worker",
37
- value: "worker",
38
- description: "Background job processing"
39
- }
40
- ];
41
- /**
42
- * Route style choices for prompts
43
- */
44
- const routeStyleChoices = [{
45
- title: "File-based",
46
- value: "file-based",
47
- description: "Folder structure matches URL paths (users/list.ts → /users)"
48
- }, {
49
- title: "Flat",
50
- value: "flat",
51
- description: "All endpoints in one folder (users-list.ts → /users)"
52
- }];
53
- /**
54
- * Get a template by name
55
- */
56
- function getTemplate(name) {
57
- const template = templates[name];
58
- if (!template) throw new Error(`Unknown template: ${name}`);
59
- return template;
60
- }
61
-
62
- //#endregion
63
- Object.defineProperty(exports, 'getTemplate', {
64
- enumerable: true,
65
- get: function () {
66
- return getTemplate;
67
- }
68
- });
69
- Object.defineProperty(exports, 'routeStyleChoices', {
70
- enumerable: true,
71
- get: function () {
72
- return routeStyleChoices;
73
- }
74
- });
75
- Object.defineProperty(exports, 'templateChoices', {
76
- enumerable: true,
77
- get: function () {
78
- return templateChoices;
79
- }
80
- });
81
- Object.defineProperty(exports, 'templates', {
82
- enumerable: true,
83
- get: function () {
84
- return templates;
85
- }
86
- });
87
- //# sourceMappingURL=templates-DM_rtYYW.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates-DM_rtYYW.cjs","names":["templates: Record<TemplateName, TemplateConfig>","minimalTemplate","apiTemplate","serverlessTemplate","workerTemplate","name: TemplateName"],"sources":["../src/init/templates/index.ts"],"sourcesContent":["import { apiTemplate } from './api.js';\nimport { minimalTemplate } from './minimal.js';\nimport { serverlessTemplate } from './serverless.js';\nimport { workerTemplate } from './worker.js';\n\n/**\n * Route organization style\n */\nexport type RouteStyle = 'file-based' | 'flat';\n\n/**\n * Options collected from user prompts\n */\nexport interface TemplateOptions {\n name: string;\n template: TemplateName;\n telescope: boolean;\n database: boolean;\n routeStyle: RouteStyle;\n monorepo: boolean;\n /** Path for the API app in monorepo (e.g., 'apps/api') */\n apiPath: string;\n}\n\n/**\n * A file to be generated\n */\nexport interface GeneratedFile {\n path: string;\n content: string;\n}\n\n/**\n * Template configuration\n */\nexport interface TemplateConfig {\n name: TemplateName;\n description: string;\n dependencies: Record<string, string>;\n devDependencies: Record<string, string>;\n scripts: Record<string, string>;\n files: (options: TemplateOptions) => GeneratedFile[];\n}\n\nexport type TemplateName = 'minimal' | 'api' | 'serverless' | 'worker';\n\n/**\n * All available templates\n */\nexport const templates: Record<TemplateName, TemplateConfig> = {\n minimal: minimalTemplate,\n api: apiTemplate,\n serverless: serverlessTemplate,\n worker: workerTemplate,\n};\n\n/**\n * Template choices for prompts\n */\nexport const templateChoices = [\n {\n title: 'Minimal',\n value: 'minimal' as TemplateName,\n description: 'Basic health endpoint',\n },\n {\n title: 'API',\n value: 'api' as TemplateName,\n description: 'Full API with auth, database, services',\n },\n {\n title: 'Serverless',\n value: 'serverless' as TemplateName,\n description: 'AWS Lambda handlers',\n },\n {\n title: 'Worker',\n value: 'worker' as TemplateName,\n description: 'Background job processing',\n },\n];\n\n/**\n * Route style choices for prompts\n */\nexport const routeStyleChoices = [\n {\n title: 'File-based',\n value: 'file-based' as RouteStyle,\n description: 'Folder structure matches URL paths (users/list.ts → /users)',\n },\n {\n title: 'Flat',\n value: 'flat' as RouteStyle,\n description: 'All endpoints in one folder (users-list.ts → /users)',\n },\n];\n\n/**\n * Get a template by name\n */\nexport function getTemplate(name: TemplateName): TemplateConfig {\n const template = templates[name];\n if (!template) {\n throw new Error(`Unknown template: ${name}`);\n }\n return template;\n}\n"],"mappings":";;;;;;;;;AAiDA,MAAaA,YAAkD;CAC7D,SAASC;CACT,KAAKC;CACL,YAAYC;CACZ,QAAQC;AACT;;;;AAKD,MAAa,kBAAkB;CAC7B;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;CACd;AACF;;;;AAKD,MAAa,oBAAoB,CAC/B;CACE,OAAO;CACP,OAAO;CACP,aAAa;AACd,GACD;CACE,OAAO;CACP,OAAO;CACP,aAAa;AACd,CACF;;;;AAKD,SAAgB,YAAYC,MAAoC;CAC9D,MAAM,WAAW,UAAU;AAC3B,MAAK,SACH,OAAM,IAAI,OAAO,oBAAoB,KAAK;AAE5C,QAAO;AACR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker--8O5a3Hv.cjs","names":["workerTemplate: TemplateConfig","options: TemplateOptions","files: GeneratedFile[]"],"sources":["../src/init/templates/worker.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const workerTemplate: TemplateConfig = {\n name: 'worker',\n description: 'Background job processing',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n '@geekmidas/events': '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 rabbitmq: {\n url: get('RABBITMQ_URL').string().default('amqp://localhost:5672'),\n },${\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 // src/events/types.ts\n {\n path: 'src/events/types.ts',\n content: `import type { PublishableMessage } from '@geekmidas/events';\n\n// Define your event types here\nexport type AppEvents =\n | PublishableMessage<'user.created', { userId: string; email: string }>\n | PublishableMessage<'user.updated', { userId: string; changes: Record<string, unknown> }>\n | PublishableMessage<'order.placed', { orderId: string; userId: string; total: number }>;\n`,\n },\n\n // src/subscribers/user-events.ts\n {\n path: 'src/subscribers/user-events.ts',\n content: `import { s } from '@geekmidas/constructs/subscribers';\nimport type { AppEvents } from '../events/types.js';\n\nexport default s<AppEvents>()\n .events(['user.created', 'user.updated'])\n .handle(async ({ event, logger }) => {\n logger.info({ type: event.type, payload: event.payload }, 'Processing user event');\n\n switch (event.type) {\n case 'user.created':\n // Handle user creation\n logger.info({ userId: event.payload.userId }, 'New user created');\n break;\n case 'user.updated':\n // Handle user update\n logger.info({ userId: event.payload.userId }, 'User updated');\n break;\n }\n });\n`,\n },\n\n // src/crons/cleanup.ts\n {\n path: 'src/crons/cleanup.ts',\n content: `import { cron } from '@geekmidas/constructs/crons';\n\n// Run every day at midnight\nexport default cron('0 0 * * *')\n .handle(async ({ logger }) => {\n logger.info('Running cleanup job');\n\n // Add your cleanup logic here\n // e.g., delete old sessions, clean up temp files, etc.\n\n logger.info('Cleanup job completed');\n });\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,iBAAiC;CAC5C,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,qBAAqB;EACrB,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;;;;;;;;;;QAWZ,QAAQ,YACH;;;UAID,GACL;;;;GAIE;GAGD;IACE,MAAM;IACN,UAAU;;;UAGR,QAAQ,KAAK;;;;GAIhB;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;GASX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;GAQX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;;;;;;;;;;;GAoBX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;;;;GAaX;EACF;AAGD,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;EAQX,EAAC;AAGJ,SAAO;CACR;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-Jme7uOOJ.mjs","names":["workerTemplate: TemplateConfig","options: TemplateOptions","files: GeneratedFile[]"],"sources":["../src/init/templates/worker.ts"],"sourcesContent":["import type {\n GeneratedFile,\n TemplateConfig,\n TemplateOptions,\n} from './index.js';\n\nexport const workerTemplate: TemplateConfig = {\n name: 'worker',\n description: 'Background job processing',\n\n dependencies: {\n '@geekmidas/constructs': 'workspace:*',\n '@geekmidas/envkit': 'workspace:*',\n '@geekmidas/logger': 'workspace:*',\n '@geekmidas/events': '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 rabbitmq: {\n url: get('RABBITMQ_URL').string().default('amqp://localhost:5672'),\n },${\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 // src/events/types.ts\n {\n path: 'src/events/types.ts',\n content: `import type { PublishableMessage } from '@geekmidas/events';\n\n// Define your event types here\nexport type AppEvents =\n | PublishableMessage<'user.created', { userId: string; email: string }>\n | PublishableMessage<'user.updated', { userId: string; changes: Record<string, unknown> }>\n | PublishableMessage<'order.placed', { orderId: string; userId: string; total: number }>;\n`,\n },\n\n // src/subscribers/user-events.ts\n {\n path: 'src/subscribers/user-events.ts',\n content: `import { s } from '@geekmidas/constructs/subscribers';\nimport type { AppEvents } from '../events/types.js';\n\nexport default s<AppEvents>()\n .events(['user.created', 'user.updated'])\n .handle(async ({ event, logger }) => {\n logger.info({ type: event.type, payload: event.payload }, 'Processing user event');\n\n switch (event.type) {\n case 'user.created':\n // Handle user creation\n logger.info({ userId: event.payload.userId }, 'New user created');\n break;\n case 'user.updated':\n // Handle user update\n logger.info({ userId: event.payload.userId }, 'User updated');\n break;\n }\n });\n`,\n },\n\n // src/crons/cleanup.ts\n {\n path: 'src/crons/cleanup.ts',\n content: `import { cron } from '@geekmidas/constructs/crons';\n\n// Run every day at midnight\nexport default cron('0 0 * * *')\n .handle(async ({ logger }) => {\n logger.info('Running cleanup job');\n\n // Add your cleanup logic here\n // e.g., delete old sessions, clean up temp files, etc.\n\n logger.info('Cleanup job completed');\n });\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,iBAAiC;CAC5C,MAAM;CACN,aAAa;CAEb,cAAc;EACZ,yBAAyB;EACzB,qBAAqB;EACrB,qBAAqB;EACrB,qBAAqB;EACrB,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;;;;;;;;;;QAWZ,QAAQ,YACH;;;UAID,GACL;;;;GAIE;GAGD;IACE,MAAM;IACN,UAAU;;;UAGR,QAAQ,KAAK;;;;GAIhB;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;GASX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;GAQX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;;;;;;;;;;;GAoBX;GAGD;IACE,MAAM;IACN,UAAU;;;;;;;;;;;;;GAaX;EACF;AAGD,MAAI,QAAQ,UACV,OAAM,KAAK;GACT,MAAM;GACN,UAAU;;;;;;;;EAQX,EAAC;AAGJ,SAAO;CACR;AACF"}