@geekmidas/cli 2.0.2 → 10.0.0-alpha.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 (390) hide show
  1. package/README.md +71 -120
  2. package/dist/{CachedStateProvider-BdX7klRc.cjs → CachedStateProvider-BLo7zv7S.cjs} +1 -1
  3. package/dist/CachedStateProvider-BxoAm-B2.mjs +3 -0
  4. package/dist/{CachedStateProvider-klLWZXWF.cjs → CachedStateProvider-CqPdW7CB.cjs} +1 -1
  5. package/dist/{CachedStateProvider-klLWZXWF.cjs.map → CachedStateProvider-CqPdW7CB.cjs.map} +1 -1
  6. package/dist/{CachedStateProvider-CzyFct42.mjs → CachedStateProvider-DTniehMP.mjs} +1 -1
  7. package/dist/{CachedStateProvider-CzyFct42.mjs.map → CachedStateProvider-DTniehMP.mjs.map} +1 -1
  8. package/dist/{HostingerProvider-B2ZYz7Yc.mjs → HostingerProvider-Cft7lEYr.mjs} +4 -3
  9. package/dist/HostingerProvider-Cft7lEYr.mjs.map +1 -0
  10. package/dist/{HostingerProvider-CrHfsgz9.cjs → HostingerProvider-h3EbEp-Z.cjs} +4 -3
  11. package/dist/HostingerProvider-h3EbEp-Z.cjs.map +1 -0
  12. package/dist/{LocalStateProvider-CP49rjzt.mjs → LocalStateProvider-Bn6tS-oL.mjs} +1 -1
  13. package/dist/{LocalStateProvider-CP49rjzt.mjs.map → LocalStateProvider-Bn6tS-oL.mjs.map} +1 -1
  14. package/dist/{LocalStateProvider-CalzNfNA.cjs → LocalStateProvider-Db9SEjyH.cjs} +1 -1
  15. package/dist/{LocalStateProvider-CalzNfNA.cjs.map → LocalStateProvider-Db9SEjyH.cjs.map} +1 -1
  16. package/dist/{Route53Provider-tlgBzrRQ.mjs → Route53Provider-RdpUDJQk.mjs} +1 -1
  17. package/dist/{Route53Provider-tlgBzrRQ.mjs.map → Route53Provider-RdpUDJQk.mjs.map} +1 -1
  18. package/dist/{Route53Provider-DwgXiLxt.cjs → Route53Provider-di2fMM5N.cjs} +1 -1
  19. package/dist/{Route53Provider-DwgXiLxt.cjs.map → Route53Provider-di2fMM5N.cjs.map} +1 -1
  20. package/dist/{SSMStateProvider-BlrTiV5m.mjs → SSMStateProvider-BRt2py-A.mjs} +1 -1
  21. package/dist/{SSMStateProvider-BlrTiV5m.mjs.map → SSMStateProvider-BRt2py-A.mjs.map} +1 -1
  22. package/dist/{SSMStateProvider-Bt6r8CTL.cjs → SSMStateProvider-DyX8s9HI.cjs} +1 -1
  23. package/dist/{SSMStateProvider-Bt6r8CTL.cjs.map → SSMStateProvider-DyX8s9HI.cjs.map} +1 -1
  24. package/dist/{backup-provisioner-Xunq-p_8.mjs → backup-provisioner-Bgj5Vi_L.mjs} +2 -2
  25. package/dist/{backup-provisioner-Xunq-p_8.mjs.map → backup-provisioner-Bgj5Vi_L.mjs.map} +1 -1
  26. package/dist/{backup-provisioner-B3HBN-2k.cjs → backup-provisioner-BrsHwYG0.cjs} +2 -2
  27. package/dist/{backup-provisioner-B3HBN-2k.cjs.map → backup-provisioner-BrsHwYG0.cjs.map} +1 -1
  28. package/dist/{bundler-Dufq3uvI.cjs → bundler-BY1OmV1e.cjs} +44 -14
  29. package/dist/bundler-BY1OmV1e.cjs.map +1 -0
  30. package/dist/{bundler-DkA4qzUD.mjs → bundler-Be8Zg4Wd.mjs} +45 -15
  31. package/dist/bundler-Be8Zg4Wd.mjs.map +1 -0
  32. package/dist/config-D8o6I_7Z.mjs +469 -0
  33. package/dist/config-D8o6I_7Z.mjs.map +1 -0
  34. package/dist/config-DbPE1KXF.cjs +535 -0
  35. package/dist/config-DbPE1KXF.cjs.map +1 -0
  36. package/dist/config.cjs +3 -2
  37. package/dist/config.d.cts +2 -2
  38. package/dist/config.d.cts.map +1 -1
  39. package/dist/config.d.mts +2 -2
  40. package/dist/config.d.mts.map +1 -1
  41. package/dist/config.mjs +3 -2
  42. package/dist/{credentials-s1kLcIzK.mjs → credentials-B5zRHdAl.mjs} +21 -6
  43. package/dist/credentials-B5zRHdAl.mjs.map +1 -0
  44. package/dist/{credentials-C8DWtnMY.cjs → credentials-BapzjyV5.cjs} +26 -5
  45. package/dist/credentials-BapzjyV5.cjs.map +1 -0
  46. package/dist/credentials-Dh0Q6HzY.mjs +2548 -0
  47. package/dist/credentials-Dh0Q6HzY.mjs.map +1 -0
  48. package/dist/credentials-K961ThG3.cjs +2680 -0
  49. package/dist/credentials-K961ThG3.cjs.map +1 -0
  50. package/dist/deploy/sniffer-routes-worker.cjs +6 -2
  51. package/dist/deploy/sniffer-routes-worker.cjs.map +1 -1
  52. package/dist/deploy/sniffer-routes-worker.mjs +6 -2
  53. package/dist/deploy/sniffer-routes-worker.mjs.map +1 -1
  54. package/dist/discover-CAlFgYec.mjs +229 -0
  55. package/dist/discover-CAlFgYec.mjs.map +1 -0
  56. package/dist/discover-DTmFeloL.cjs +271 -0
  57. package/dist/discover-DTmFeloL.cjs.map +1 -0
  58. package/dist/dokploy-api-BS2xnJLZ.mjs +3 -0
  59. package/dist/{dokploy-api-CqOIKHme.cjs → dokploy-api-BsVH0y_s.cjs} +141 -32
  60. package/dist/dokploy-api-BsVH0y_s.cjs.map +1 -0
  61. package/dist/dokploy-api-BuxDRo3l.cjs +3 -0
  62. package/dist/{dokploy-api-sfZFlWuE.mjs → dokploy-api-aTFPz7_4.mjs} +141 -32
  63. package/dist/dokploy-api-aTFPz7_4.mjs.map +1 -0
  64. package/dist/emit-CbcRolsa.cjs +236 -0
  65. package/dist/emit-CbcRolsa.cjs.map +1 -0
  66. package/dist/emit-CiZS_5Ub.mjs +206 -0
  67. package/dist/emit-CiZS_5Ub.mjs.map +1 -0
  68. package/dist/{encryption-MfXAiFTm.cjs → encryption-C6jaU0hE.cjs} +1 -1
  69. package/dist/{encryption-MfXAiFTm.cjs.map → encryption-C6jaU0hE.cjs.map} +1 -1
  70. package/dist/{encryption-BVS7Vmzs.cjs → encryption-CHzzeR8a.cjs} +1 -1
  71. package/dist/encryption-CQUncu7v.mjs +3 -0
  72. package/dist/{encryption-CO5Q4Bhf.mjs → encryption-D-abyhZx.mjs} +1 -1
  73. package/dist/{encryption-CO5Q4Bhf.mjs.map → encryption-D-abyhZx.mjs.map} +1 -1
  74. package/dist/fullstack-secrets-C-GGohke.cjs +111 -0
  75. package/dist/fullstack-secrets-C-GGohke.cjs.map +1 -0
  76. package/dist/fullstack-secrets-D1o9-G5l.mjs +87 -0
  77. package/dist/fullstack-secrets-D1o9-G5l.mjs.map +1 -0
  78. package/dist/{fullstack-secrets-BYzi6Hwl.cjs → generator-CNzBw7g5.cjs} +1 -114
  79. package/dist/generator-CNzBw7g5.cjs.map +1 -0
  80. package/dist/{fullstack-secrets-l8s3II_H.mjs → generator-VE2JrFlY.mjs} +2 -85
  81. package/dist/generator-VE2JrFlY.mjs.map +1 -0
  82. package/dist/index-BThUzEIp.d.mts +175 -0
  83. package/dist/index-BThUzEIp.d.mts.map +1 -0
  84. package/dist/index-CHB4tSzX.d.cts +175 -0
  85. package/dist/index-CHB4tSzX.d.cts.map +1 -0
  86. package/dist/index.cjs +2329 -1584
  87. package/dist/index.cjs.map +1 -1
  88. package/dist/index.mjs +2306 -1561
  89. package/dist/index.mjs.map +1 -1
  90. package/dist/{openapi-Cfwi0fqF.mjs → openapi-CgpMWMmM.mjs} +174 -95
  91. package/dist/openapi-CgpMWMmM.mjs.map +1 -0
  92. package/dist/{openapi-BzNOC7_i.cjs → openapi-CljONd_M.cjs} +175 -108
  93. package/dist/openapi-CljONd_M.cjs.map +1 -0
  94. package/dist/{openapi-react-query-C4iIvpPf.mjs → openapi-react-query-Byltvm_7.mjs} +2 -2
  95. package/dist/openapi-react-query-Byltvm_7.mjs.map +1 -0
  96. package/dist/{openapi-react-query-CYWik72n.cjs → openapi-react-query-CmJ1xDbn.cjs} +2 -2
  97. package/dist/openapi-react-query-CmJ1xDbn.cjs.map +1 -0
  98. package/dist/openapi-react-query.cjs +1 -1
  99. package/dist/openapi-react-query.mjs +1 -1
  100. package/dist/openapi.cjs +4 -3
  101. package/dist/openapi.d.cts +1 -1
  102. package/dist/openapi.d.mts +1 -1
  103. package/dist/openapi.mjs +4 -3
  104. package/dist/reconcile/public.cjs +9 -0
  105. package/dist/reconcile/public.d.cts +125 -0
  106. package/dist/reconcile/public.d.cts.map +1 -0
  107. package/dist/reconcile/public.d.mts +125 -0
  108. package/dist/reconcile/public.d.mts.map +1 -0
  109. package/dist/reconcile/public.mjs +4 -0
  110. package/dist/{reconcile-B2FoJE0a.mjs → reconcile-CFs8C_1a.mjs} +5 -4
  111. package/dist/reconcile-CFs8C_1a.mjs.map +1 -0
  112. package/dist/{reconcile-BzqKJ2Rt.cjs → reconcile-D0pimNiy.cjs} +5 -4
  113. package/dist/reconcile-D0pimNiy.cjs.map +1 -0
  114. package/dist/setup-CJiQM2pX.cjs +473 -0
  115. package/dist/setup-CJiQM2pX.cjs.map +1 -0
  116. package/dist/setup-DMtU3p41.cjs +11 -0
  117. package/dist/setup-DOsYueeQ.mjs +443 -0
  118. package/dist/setup-DOsYueeQ.mjs.map +1 -0
  119. package/dist/setup-DSutDAlt.mjs +11 -0
  120. package/dist/{storage-B1wvztiJ.cjs → storage-BJmzYxt8.cjs} +1 -1
  121. package/dist/{storage-B1wvztiJ.cjs.map → storage-BJmzYxt8.cjs.map} +1 -1
  122. package/dist/{storage-DOEtT2Hr.cjs → storage-BM9hGpgv.cjs} +1 -1
  123. package/dist/{storage-dbb9RyBl.mjs → storage-Bi24WfoW.mjs} +1 -1
  124. package/dist/{storage-dbb9RyBl.mjs.map → storage-Bi24WfoW.mjs.map} +1 -1
  125. package/dist/{storage-Cs4WBsc4.mjs → storage-CYlGwWTj.mjs} +1 -1
  126. package/dist/{sync-CSooqRQ8.mjs → sync-CmEuNZsB.mjs} +2 -2
  127. package/dist/{sync-CSooqRQ8.mjs.map → sync-CmEuNZsB.mjs.map} +1 -1
  128. package/dist/sync-D306yOWu.cjs +4 -0
  129. package/dist/{sync-o_CtEbvR.cjs → sync-SizaChmC.cjs} +2 -2
  130. package/dist/{sync-o_CtEbvR.cjs.map → sync-SizaChmC.cjs.map} +1 -1
  131. package/dist/{sync-B5UHXwRM.mjs → sync-hOqAWHR6.mjs} +1 -1
  132. package/dist/{index-Bw548Bta.d.mts → types-C-arnQ1r.d.mts} +590 -143
  133. package/dist/types-C-arnQ1r.d.mts.map +1 -0
  134. package/dist/{index-DTpkeFb8.d.cts → types-abJQuk7m.d.cts} +590 -143
  135. package/dist/types-abJQuk7m.d.cts.map +1 -0
  136. package/dist/workspace/index.cjs +5 -1
  137. package/dist/workspace/index.d.cts +3 -3
  138. package/dist/workspace/index.d.mts +3 -3
  139. package/dist/workspace/index.mjs +2 -2
  140. package/dist/{workspace-D-37Ylqo.mjs → workspace-7FqprxuJ.mjs} +117 -30
  141. package/dist/workspace-7FqprxuJ.mjs.map +1 -0
  142. package/dist/workspace-8acupeaI.cjs +9 -0
  143. package/dist/{workspace-CQTT7HJQ.cjs → workspace-XvqO9jIv.cjs} +139 -28
  144. package/dist/workspace-XvqO9jIv.cjs.map +1 -0
  145. package/dist/workspace-yP5AHnrn.mjs +8 -0
  146. package/package.json +26 -9
  147. package/CHANGELOG.md +0 -623
  148. package/FUNCTION_CRON_SUPPORT.md +0 -266
  149. package/dist/CachedStateProvider-GcGziXh1.mjs +0 -3
  150. package/dist/HostingerProvider-B2ZYz7Yc.mjs.map +0 -1
  151. package/dist/HostingerProvider-CrHfsgz9.cjs.map +0 -1
  152. package/dist/bundler-DkA4qzUD.mjs.map +0 -1
  153. package/dist/bundler-Dufq3uvI.cjs.map +0 -1
  154. package/dist/config-Bbu1JKvf.mjs +0 -211
  155. package/dist/config-Bbu1JKvf.mjs.map +0 -1
  156. package/dist/config-DujV8DbR.cjs +0 -253
  157. package/dist/config-DujV8DbR.cjs.map +0 -1
  158. package/dist/credentials-C8DWtnMY.cjs.map +0 -1
  159. package/dist/credentials-s1kLcIzK.mjs.map +0 -1
  160. package/dist/dokploy-api-BPYkG-ZZ.cjs +0 -3
  161. package/dist/dokploy-api-BiSzWM4v.mjs +0 -3
  162. package/dist/dokploy-api-CqOIKHme.cjs.map +0 -1
  163. package/dist/dokploy-api-sfZFlWuE.mjs.map +0 -1
  164. package/dist/encryption-Bd_m4q3g.mjs +0 -3
  165. package/dist/fullstack-secrets-BYzi6Hwl.cjs.map +0 -1
  166. package/dist/fullstack-secrets-l8s3II_H.mjs.map +0 -1
  167. package/dist/index-Bw548Bta.d.mts.map +0 -1
  168. package/dist/index-DTpkeFb8.d.cts.map +0 -1
  169. package/dist/openapi-BzNOC7_i.cjs.map +0 -1
  170. package/dist/openapi-Cfwi0fqF.mjs.map +0 -1
  171. package/dist/openapi-react-query-C4iIvpPf.mjs.map +0 -1
  172. package/dist/openapi-react-query-CYWik72n.cjs.map +0 -1
  173. package/dist/reconcile-B2FoJE0a.mjs.map +0 -1
  174. package/dist/reconcile-BzqKJ2Rt.cjs.map +0 -1
  175. package/dist/setup-DDXUXzzl.mjs +0 -765
  176. package/dist/setup-DDXUXzzl.mjs.map +0 -1
  177. package/dist/setup-DLwhfyt-.cjs +0 -8
  178. package/dist/setup-Dh-B7YTX.mjs +0 -8
  179. package/dist/setup-WZ-xqAQO.cjs +0 -849
  180. package/dist/setup-WZ-xqAQO.cjs.map +0 -1
  181. package/dist/sync-BLA94rgC.cjs +0 -4
  182. package/dist/types-B3GQUg3k.d.mts +0 -280
  183. package/dist/types-B3GQUg3k.d.mts.map +0 -1
  184. package/dist/types-BWQDiooe.d.cts +0 -280
  185. package/dist/types-BWQDiooe.d.cts.map +0 -1
  186. package/dist/workspace-CQTT7HJQ.cjs.map +0 -1
  187. package/dist/workspace-D-37Ylqo.mjs.map +0 -1
  188. package/docs/OPENAPI_TYPESCRIPT_DESIGN.md +0 -408
  189. package/docs/dev-server-resilience-design.md +0 -189
  190. package/docs/manifest-refactor-design.md +0 -287
  191. package/examples/cron-example.ts +0 -45
  192. package/examples/env.ts +0 -33
  193. package/examples/function-example.ts +0 -40
  194. package/examples/gkm.config.json +0 -22
  195. package/examples/gkm.config.ts +0 -14
  196. package/examples/gkm.minimal.config.json +0 -7
  197. package/examples/gkm.production.config.json +0 -27
  198. package/examples/logger.ts +0 -10
  199. package/scripts/sync-versions.ts +0 -108
  200. package/src/__tests__/EndpointGenerator.hooks.spec.ts +0 -204
  201. package/src/__tests__/config.spec.ts +0 -422
  202. package/src/__tests__/loadEnvFiles.spec.ts +0 -131
  203. package/src/__tests__/normalizeHooksConfig.spec.ts +0 -63
  204. package/src/__tests__/openapi-react-query.spec.ts +0 -506
  205. package/src/__tests__/openapi.spec.ts +0 -625
  206. package/src/__tests__/test-helpers.ts +0 -181
  207. package/src/auth/__tests__/credentials.spec.ts +0 -331
  208. package/src/auth/__tests__/index.spec.ts +0 -237
  209. package/src/auth/credentials.ts +0 -286
  210. package/src/auth/index.ts +0 -233
  211. package/src/build/__tests__/bundler.spec.ts +0 -446
  212. package/src/build/__tests__/endpoint-analyzer.spec.ts +0 -623
  213. package/src/build/__tests__/handler-templates.spec.ts +0 -1287
  214. package/src/build/__tests__/index-new.spec.ts +0 -550
  215. package/src/build/__tests__/manifests.spec.ts +0 -583
  216. package/src/build/__tests__/partitions.spec.ts +0 -110
  217. package/src/build/__tests__/workspace-build.spec.ts +0 -215
  218. package/src/build/bundler.ts +0 -256
  219. package/src/build/endpoint-analyzer.ts +0 -236
  220. package/src/build/handler-templates.ts +0 -1253
  221. package/src/build/index.ts +0 -616
  222. package/src/build/manifests.ts +0 -285
  223. package/src/build/partitions.ts +0 -58
  224. package/src/build/providerResolver.ts +0 -184
  225. package/src/build/types.ts +0 -104
  226. package/src/config.ts +0 -330
  227. package/src/credentials/__tests__/fullDockerPorts.spec.ts +0 -144
  228. package/src/credentials/__tests__/helpers.ts +0 -112
  229. package/src/credentials/__tests__/prepareEntryCredentials.spec.ts +0 -125
  230. package/src/credentials/__tests__/readonlyDockerPorts.spec.ts +0 -190
  231. package/src/credentials/__tests__/workspaceCredentials.spec.ts +0 -209
  232. package/src/credentials/index.ts +0 -843
  233. package/src/debug.ts +0 -68
  234. package/src/deploy/CachedStateProvider.ts +0 -86
  235. package/src/deploy/LocalStateProvider.ts +0 -57
  236. package/src/deploy/SSMStateProvider.ts +0 -117
  237. package/src/deploy/StateProvider.ts +0 -175
  238. package/src/deploy/__tests__/CachedStateProvider.spec.ts +0 -235
  239. package/src/deploy/__tests__/HostingerProvider.spec.ts +0 -347
  240. package/src/deploy/__tests__/LocalStateProvider.spec.ts +0 -130
  241. package/src/deploy/__tests__/Route53Provider.spec.ts +0 -425
  242. package/src/deploy/__tests__/SSMStateProvider.spec.ts +0 -201
  243. package/src/deploy/__tests__/__fixtures__/entry-apps/async-entry.ts +0 -24
  244. package/src/deploy/__tests__/__fixtures__/entry-apps/nested-config-entry.ts +0 -24
  245. package/src/deploy/__tests__/__fixtures__/entry-apps/no-env-entry.ts +0 -12
  246. package/src/deploy/__tests__/__fixtures__/entry-apps/simple-entry.ts +0 -14
  247. package/src/deploy/__tests__/__fixtures__/entry-apps/throwing-entry.ts +0 -16
  248. package/src/deploy/__tests__/__fixtures__/env-parsers/non-function-export.ts +0 -10
  249. package/src/deploy/__tests__/__fixtures__/env-parsers/optional-env-parser.ts +0 -21
  250. package/src/deploy/__tests__/__fixtures__/env-parsers/parseable-env-parser.ts +0 -18
  251. package/src/deploy/__tests__/__fixtures__/env-parsers/throwing-env-parser.ts +0 -16
  252. package/src/deploy/__tests__/__fixtures__/env-parsers/valid-env-parser.ts +0 -16
  253. package/src/deploy/__tests__/__fixtures__/route-apps/endpoints/auth.ts +0 -16
  254. package/src/deploy/__tests__/__fixtures__/route-apps/endpoints/health.ts +0 -13
  255. package/src/deploy/__tests__/__fixtures__/route-apps/endpoints/users.ts +0 -15
  256. package/src/deploy/__tests__/__fixtures__/route-apps/services.ts +0 -55
  257. package/src/deploy/__tests__/backup-provisioner.spec.ts +0 -428
  258. package/src/deploy/__tests__/createDnsProvider.spec.ts +0 -195
  259. package/src/deploy/__tests__/createStateProvider.spec.ts +0 -126
  260. package/src/deploy/__tests__/dns-orchestration.spec.ts +0 -192
  261. package/src/deploy/__tests__/dns-verification.spec.ts +0 -229
  262. package/src/deploy/__tests__/docker.spec.ts +0 -149
  263. package/src/deploy/__tests__/dokploy-api.spec.ts +0 -697
  264. package/src/deploy/__tests__/dokploy.spec.ts +0 -435
  265. package/src/deploy/__tests__/domain.spec.ts +0 -235
  266. package/src/deploy/__tests__/env-resolver.spec.ts +0 -903
  267. package/src/deploy/__tests__/index.spec.ts +0 -1091
  268. package/src/deploy/__tests__/init.spec.ts +0 -793
  269. package/src/deploy/__tests__/secrets.spec.ts +0 -303
  270. package/src/deploy/__tests__/sniffer.spec.ts +0 -838
  271. package/src/deploy/__tests__/state-e2e.spec.ts +0 -387
  272. package/src/deploy/__tests__/state.spec.ts +0 -876
  273. package/src/deploy/__tests__/undeploy.spec.ts +0 -758
  274. package/src/deploy/backup-provisioner.ts +0 -316
  275. package/src/deploy/dns/DnsProvider.ts +0 -201
  276. package/src/deploy/dns/HostingerProvider.ts +0 -174
  277. package/src/deploy/dns/Route53Provider.ts +0 -340
  278. package/src/deploy/dns/hostinger-api.ts +0 -261
  279. package/src/deploy/dns/index.ts +0 -627
  280. package/src/deploy/docker.ts +0 -260
  281. package/src/deploy/dokploy-api.ts +0 -1101
  282. package/src/deploy/dokploy.ts +0 -177
  283. package/src/deploy/domain.ts +0 -134
  284. package/src/deploy/env-resolver.ts +0 -305
  285. package/src/deploy/index.ts +0 -2094
  286. package/src/deploy/init.ts +0 -427
  287. package/src/deploy/secrets.ts +0 -187
  288. package/src/deploy/sniffer-envkit-patch.ts +0 -61
  289. package/src/deploy/sniffer-hooks.ts +0 -57
  290. package/src/deploy/sniffer-loader.ts +0 -28
  291. package/src/deploy/sniffer-routes-worker.ts +0 -104
  292. package/src/deploy/sniffer-worker.ts +0 -75
  293. package/src/deploy/sniffer.ts +0 -578
  294. package/src/deploy/state-commands.ts +0 -274
  295. package/src/deploy/state.ts +0 -482
  296. package/src/deploy/types.ts +0 -102
  297. package/src/deploy/undeploy.ts +0 -407
  298. package/src/dev/__tests__/entry-integration.spec.ts +0 -347
  299. package/src/dev/__tests__/entry.spec.ts +0 -144
  300. package/src/dev/__tests__/index.spec.ts +0 -2084
  301. package/src/dev/index.ts +0 -1649
  302. package/src/docker/__tests__/compose.spec.ts +0 -1142
  303. package/src/docker/__tests__/templates.spec.ts +0 -694
  304. package/src/docker/compose.ts +0 -808
  305. package/src/docker/index.ts +0 -523
  306. package/src/docker/templates.ts +0 -1067
  307. package/src/exec/index.ts +0 -118
  308. package/src/generators/CronGenerator.ts +0 -105
  309. package/src/generators/EndpointGenerator.ts +0 -954
  310. package/src/generators/FunctionGenerator.ts +0 -117
  311. package/src/generators/Generator.ts +0 -147
  312. package/src/generators/OpenApiTsGenerator.ts +0 -821
  313. package/src/generators/QueueGenerator.ts +0 -245
  314. package/src/generators/SubscriberGenerator.ts +0 -282
  315. package/src/generators/TopicGenerator.ts +0 -45
  316. package/src/generators/__tests__/CronGenerator.spec.ts +0 -445
  317. package/src/generators/__tests__/EndpointGenerator.spec.ts +0 -544
  318. package/src/generators/__tests__/FunctionGenerator.spec.ts +0 -256
  319. package/src/generators/__tests__/Generator.bustCache.spec.ts +0 -72
  320. package/src/generators/__tests__/OpenApiTsGenerator.registry.spec.ts +0 -98
  321. package/src/generators/__tests__/OpenApiTsGenerator.responseType.spec.ts +0 -56
  322. package/src/generators/__tests__/QueueGenerator.spec.ts +0 -141
  323. package/src/generators/__tests__/SubscriberGenerator.spec.ts +0 -410
  324. package/src/generators/index.ts +0 -11
  325. package/src/index.ts +0 -972
  326. package/src/init/__tests__/generators.spec.ts +0 -1070
  327. package/src/init/__tests__/init.spec.ts +0 -577
  328. package/src/init/__tests__/utils.spec.ts +0 -104
  329. package/src/init/generators/auth.ts +0 -225
  330. package/src/init/generators/config.ts +0 -316
  331. package/src/init/generators/docker.ts +0 -388
  332. package/src/init/generators/env.ts +0 -62
  333. package/src/init/generators/index.ts +0 -6
  334. package/src/init/generators/mobile-expo.ts +0 -576
  335. package/src/init/generators/models.ts +0 -153
  336. package/src/init/generators/monorepo.ts +0 -475
  337. package/src/init/generators/package.ts +0 -95
  338. package/src/init/generators/source.ts +0 -15
  339. package/src/init/generators/test.ts +0 -178
  340. package/src/init/generators/ui.ts +0 -1473
  341. package/src/init/generators/web-tanstack.ts +0 -348
  342. package/src/init/generators/web.ts +0 -363
  343. package/src/init/index.ts +0 -542
  344. package/src/init/templates/api.ts +0 -404
  345. package/src/init/templates/index.ts +0 -342
  346. package/src/init/templates/minimal.ts +0 -207
  347. package/src/init/templates/serverless.ts +0 -148
  348. package/src/init/templates/worker.ts +0 -216
  349. package/src/init/utils.ts +0 -197
  350. package/src/init/versions.ts +0 -52
  351. package/src/openapi-react-query.ts +0 -288
  352. package/src/openapi.ts +0 -259
  353. package/src/secrets/__tests__/encryption.spec.ts +0 -226
  354. package/src/secrets/__tests__/generator.spec.ts +0 -575
  355. package/src/secrets/__tests__/index.spec.ts +0 -91
  356. package/src/secrets/__tests__/reconcile.spec.ts +0 -123
  357. package/src/secrets/__tests__/storage.spec.ts +0 -645
  358. package/src/secrets/encryption.ts +0 -91
  359. package/src/secrets/generator.ts +0 -329
  360. package/src/secrets/index.ts +0 -417
  361. package/src/secrets/keystore.ts +0 -144
  362. package/src/secrets/reconcile.ts +0 -53
  363. package/src/secrets/storage.ts +0 -337
  364. package/src/secrets/sync.ts +0 -136
  365. package/src/secrets/types.ts +0 -70
  366. package/src/setup/__tests__/auto-setup.spec.ts +0 -147
  367. package/src/setup/__tests__/reconcile-secrets.spec.ts +0 -439
  368. package/src/setup/fullstack-secrets.ts +0 -140
  369. package/src/setup/index.ts +0 -411
  370. package/src/test/__tests__/__fixtures__/workspace.ts +0 -104
  371. package/src/test/__tests__/api.spec.ts +0 -199
  372. package/src/test/__tests__/auth.spec.ts +0 -162
  373. package/src/test/__tests__/index.spec.ts +0 -502
  374. package/src/test/__tests__/web.spec.ts +0 -210
  375. package/src/test/index.ts +0 -198
  376. package/src/types.ts +0 -363
  377. package/src/upgrade/__tests__/index.spec.ts +0 -354
  378. package/src/upgrade/index.ts +0 -253
  379. package/src/workspace/__tests__/client-generator.spec.ts +0 -326
  380. package/src/workspace/__tests__/index.spec.ts +0 -766
  381. package/src/workspace/__tests__/publicEnv.spec.ts +0 -64
  382. package/src/workspace/__tests__/schema.spec.ts +0 -737
  383. package/src/workspace/__tests__/type-inference.spec.ts +0 -251
  384. package/src/workspace/client-generator.ts +0 -109
  385. package/src/workspace/index.ts +0 -433
  386. package/src/workspace/publicEnv.ts +0 -57
  387. package/src/workspace/schema.ts +0 -861
  388. package/src/workspace/types.ts +0 -943
  389. package/tsconfig.json +0 -9
  390. package/tsdown.config.ts +0 -22
@@ -1,81 +1,13 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_config = require('./config-DujV8DbR.cjs');
2
+ const require_discover = require('./discover-DTmFeloL.cjs');
3
+ const require_config = require('./config-DbPE1KXF.cjs');
3
4
  const node_path = require_chunk.__toESM(require("node:path"));
4
5
  const node_fs_promises = require_chunk.__toESM(require("node:fs/promises"));
5
6
  const node_child_process = require_chunk.__toESM(require("node:child_process"));
6
- const fast_glob = require_chunk.__toESM(require("fast-glob"));
7
- const lodash_kebabcase = require_chunk.__toESM(require("lodash.kebabcase"));
8
7
  const __geekmidas_constructs_endpoints = require_chunk.__toESM(require("@geekmidas/constructs/endpoints"));
9
8
  const node_url = require_chunk.__toESM(require("node:url"));
10
9
  const __geekmidas_schema_conversion = require_chunk.__toESM(require("@geekmidas/schema/conversion"));
11
10
 
12
- //#region src/types.ts
13
- function isPartitionedRoutes(routes) {
14
- return typeof routes === "object" && routes !== null && !Array.isArray(routes) && "paths" in routes;
15
- }
16
-
17
- //#endregion
18
- //#region src/generators/Generator.ts
19
- /**
20
- * Zod v4 maintains a process-wide registry of schemas registered via
21
- * `.meta({ id })`. When we cache-bust user module imports (by appending a
22
- * `?t=timestamp` query), those modules re-execute and try to register the
23
- * same ids again, which throws `ID X already exists in the registry`.
24
- *
25
- * Clearing the registry in the CLI process is safe: the user's running
26
- * server lives in a subprocess and has its own isolated registry.
27
- *
28
- * Exported for tests.
29
- */
30
- function clearZodGlobalRegistry() {
31
- const registry = globalThis.__zod_globalRegistry;
32
- if (registry && typeof registry.clear === "function") registry.clear();
33
- }
34
- var ConstructGenerator = class {
35
- static async build(context, outputDir, generator, patterns, options) {
36
- const constructs = await generator.load(patterns);
37
- return generator.build(context, constructs, outputDir, options);
38
- }
39
- async load(patterns, cwd = process.cwd(), bustCache = false) {
40
- const logger = console;
41
- let globPatterns;
42
- let partitionFn;
43
- if (isPartitionedRoutes(patterns)) {
44
- globPatterns = Array.isArray(patterns.paths) ? patterns.paths : [patterns.paths];
45
- partitionFn = patterns.partition;
46
- } else globPatterns = Array.isArray(patterns) ? patterns : patterns ? [patterns] : [];
47
- const files = fast_glob.default.stream(globPatterns, {
48
- cwd,
49
- absolute: true
50
- });
51
- if (bustCache) clearZodGlobalRegistry();
52
- const constructs = [];
53
- for await (const f of files) try {
54
- const file = f.toString();
55
- const importPath = bustCache ? `${file}?t=${Date.now()}` : file;
56
- const module$1 = await import(importPath);
57
- const partition = partitionFn ? partitionFn(file) : void 0;
58
- for (const [key, construct] of Object.entries(module$1)) if (this.isConstruct(construct)) constructs.push({
59
- key,
60
- name: (0, lodash_kebabcase.default)(key),
61
- construct,
62
- path: {
63
- absolute: file,
64
- relative: (0, node_path.relative)(process.cwd(), file)
65
- },
66
- partition
67
- });
68
- } catch (error) {
69
- const err = error;
70
- logger.error(`Failed to load ${f}: ${err.message}`);
71
- if (err.stack) logger.error(err.stack);
72
- throw error;
73
- }
74
- return constructs;
75
- }
76
- };
77
-
78
- //#endregion
79
11
  //#region src/build/endpoint-analyzer.ts
80
12
  /**
81
13
  * Analyze an endpoint to extract its features
@@ -657,7 +589,95 @@ export async function setupEndpoints(
657
589
 
658
590
  //#endregion
659
591
  //#region src/generators/EndpointGenerator.ts
660
- var EndpointGenerator = class extends ConstructGenerator {
592
+ /**
593
+ * How a generated entry gets its logger and environment parser.
594
+ *
595
+ * From the surface it serves, when there is one: the surface holds both as
596
+ * *objects*, and discovery already recorded which module declares it, so the
597
+ * entry imports that module and reads them off it.
598
+ *
599
+ * The alternative — the shape this replaces — was naming both in config as
600
+ * module paths, `envParser: './config/env#envParser'`, and printing an import
601
+ * for each. Two strings per app, checked by nothing, describing files the
602
+ * surface was already holding the contents of.
603
+ *
604
+ * Falls back to the configured paths for an app that declares no surface.
605
+ */
606
+ function runtimeFor(context, fromDir) {
607
+ const module$1 = context.surface?.module;
608
+ if (module$1) {
609
+ const specifier = importSpecifier(fromDir, module$1.specifier);
610
+ return {
611
+ imports: `import { ${module$1.exportName} as __surface } from '${specifier}';`,
612
+ bindings: [
613
+ "// What this surface was declared with. Objects, not module paths:",
614
+ "// the entry imports the surface, so there is nothing to print.",
615
+ "const envParser = __surface.envParser;",
616
+ "const logger = __surface.logger;"
617
+ ].join("\n")
618
+ };
619
+ }
620
+ return {
621
+ imports: [`import ${context.envParserImportPattern} from '${importSpecifier(fromDir, context.envParserPath)}';`, `import ${context.loggerImportPattern} from '${importSpecifier(fromDir, context.loggerPath)}';`].join("\n"),
622
+ bindings: ""
623
+ };
624
+ }
625
+ /** A relative specifier ESM will accept: always prefixed, never bare. */
626
+ function importSpecifier(fromDir, target) {
627
+ const rel = (0, node_path.relative)(fromDir, target).replace(/\.ts$/, ".js");
628
+ return rel.startsWith(".") ? rel : `./${rel}`;
629
+ }
630
+ /**
631
+ * CORS for a surface, derived rather than hand-written.
632
+ *
633
+ * Who may call a surface is already in the graph — every construct that
634
+ * declared an edge to it — and reaches the process as one comma-separated
635
+ * value. An application that maintained this by hand maintained a list that was
636
+ * wrong in two directions at once: it trusted origins nothing was serving, and
637
+ * it could not name hosts a deploy had not chosen yet.
638
+ *
639
+ * Only the parts a graph cannot answer are configurable, and every one has a
640
+ * default: a surface that says nothing about CORS still gets it.
641
+ */
642
+ function corsFor(surface) {
643
+ if (!surface) return {
644
+ imports: "",
645
+ setup: ""
646
+ };
647
+ const cors = surface.cors ?? {};
648
+ const allowHeaders = [
649
+ "content-type",
650
+ "authorization",
651
+ ...cors.allowHeaders ?? []
652
+ ];
653
+ return {
654
+ imports: `import { cors } from 'hono/cors';`,
655
+ setup: `
656
+ // Who may call ${surface.id}, read off the graph rather than listed here.
657
+ {
658
+ const { origins } = envParser
659
+ .create((get) => ({
660
+ origins: get('${surface.trustedOriginsKey}')
661
+ .string()
662
+ .default('')
663
+ .transform((value: string) =>
664
+ value.split(',').map((origin) => origin.trim()).filter(Boolean),
665
+ ),
666
+ }))
667
+ .parse();
668
+
669
+ honoApp.use('*', cors({
670
+ origin: origins,
671
+ allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
672
+ allowHeaders: ${JSON.stringify(allowHeaders)},${cors.exposeHeaders ? `\n exposeHeaders: ${JSON.stringify(cors.exposeHeaders)},` : ""}
673
+ credentials: ${cors.credentials ?? true},
674
+ maxAge: ${cors.maxAge ?? 86400},
675
+ }));
676
+ }
677
+ `
678
+ };
679
+ }
680
+ var EndpointGenerator = class extends require_discover.ConstructGenerator {
661
681
  isConstruct(value) {
662
682
  return __geekmidas_constructs_endpoints.Endpoint.isEndpoint(value);
663
683
  }
@@ -689,6 +709,7 @@ var EndpointGenerator = class extends ConstructGenerator {
689
709
  timeout: construct.timeout,
690
710
  memorySize: construct.memorySize,
691
711
  environment: await construct.getEnvironment({ markOptional: context.markOptional }),
712
+ dependencies: construct.constructs,
692
713
  authorizer: construct.authorizer?.name ?? "none"
693
714
  };
694
715
  routes.push(routeInfo);
@@ -703,6 +724,7 @@ var EndpointGenerator = class extends ConstructGenerator {
703
724
  timeout: construct.timeout,
704
725
  memorySize: construct.memorySize,
705
726
  environment: await construct.getEnvironment({ markOptional: context.markOptional }),
727
+ dependencies: construct.constructs,
706
728
  authorizer: construct.authorizer?.name ?? "none"
707
729
  };
708
730
  routes.push(routeInfo);
@@ -715,14 +737,13 @@ var EndpointGenerator = class extends ConstructGenerator {
715
737
  const handlerPath = (0, node_path.join)(outputDir, handlerFileName);
716
738
  const relativePath = (0, node_path.relative)((0, node_path.dirname)(handlerPath), sourceFile);
717
739
  const importPath = relativePath.replace(/\.ts$/, ".js");
718
- const relativeEnvParserPath = (0, node_path.relative)((0, node_path.dirname)(handlerPath), context.envParserPath);
719
740
  let content;
720
741
  switch (provider) {
721
742
  case "aws-apigatewayv1":
722
- content = this.generateAWSApiGatewayV1Handler(importPath, exportName, relativeEnvParserPath, context.envParserImportPattern);
743
+ content = this.generateAWSApiGatewayV1Handler(importPath, exportName, context.storageDrivers);
723
744
  break;
724
745
  case "aws-apigatewayv2":
725
- content = this.generateAWSApiGatewayV2Handler(importPath, exportName, relativeEnvParserPath, context.envParserImportPattern);
746
+ content = this.generateAWSApiGatewayV2Handler(importPath, exportName, context.storageDrivers);
726
747
  break;
727
748
  case "server":
728
749
  content = this.generateServerHandler(importPath, exportName);
@@ -832,15 +853,17 @@ export async function setupEndpoints(
832
853
  if (context.production?.enabled) return this.generateProductionAppFile(outputDir, context);
833
854
  const appFileName = "app.ts";
834
855
  const appPath = (0, node_path.join)(outputDir, appFileName);
835
- const relativeLoggerPath = (0, node_path.relative)((0, node_path.dirname)(appPath), context.loggerPath);
836
- const relativeEnvParserPath = (0, node_path.relative)((0, node_path.dirname)(appPath), context.envParserPath);
856
+ const runtime = runtimeFor(context, (0, node_path.dirname)(appPath));
837
857
  const telescopeEnabled = context.telescope?.enabled;
838
858
  const telescopeWebSocketEnabled = context.telescope?.websocket;
839
859
  const usesExternalTelescope = !!context.telescope?.telescopePath;
840
860
  const studioEnabled = context.studio?.enabled;
841
861
  const usesExternalStudio = !!context.studio?.studioPath;
862
+ const studioFromDatabase = !usesExternalStudio && !!context.studio?.database;
863
+ const telescopeFromSurface = !!context.surface?.module && !usesExternalTelescope;
842
864
  let telescopeImports = "";
843
- if (telescopeEnabled) if (usesExternalTelescope) {
865
+ if (telescopeEnabled) if (telescopeFromSurface) telescopeImports = "import { createMiddleware, createUI } from '@geekmidas/telescope/hono';";
866
+ else if (usesExternalTelescope) {
844
867
  const relativeTelescopePath = (0, node_path.relative)((0, node_path.dirname)(appPath), context.telescope?.telescopePath);
845
868
  telescopeImports = `import ${context.telescope?.telescopeImportPattern} from '${relativeTelescopePath}';
846
869
  import { createMiddleware, createUI } from '@geekmidas/telescope/hono';`;
@@ -851,8 +874,14 @@ import { createMiddleware, createUI } from '@geekmidas/telescope/hono';`;
851
874
  const relativeStudioPath = (0, node_path.relative)((0, node_path.dirname)(appPath), context.studio?.studioPath);
852
875
  studioImports = `import ${context.studio?.studioImportPattern} from '${relativeStudioPath}';
853
876
  import { createStudioApp } from '@geekmidas/studio/server/hono';`;
854
- } else studioImports = `// Studio requires a configured instance - use studio config path
855
- // import { createStudioApp } from '@geekmidas/studio/server/hono';`;
877
+ } else if (studioFromDatabase) {
878
+ const dbSpecifier = importSpecifier((0, node_path.dirname)(appPath), context.studio.database.specifier);
879
+ studioImports = `import { snifferContext } from '@geekmidas/constructs';
880
+ import { Direction, InMemoryMonitoringStorage, Studio } from '@geekmidas/studio';
881
+ import { ${context.studio.database.exportName} as __studioDb } from '${dbSpecifier}';
882
+ import { createStudioApp } from '@geekmidas/studio/server/hono';`;
883
+ } else studioImports = "";
884
+ const cors = corsFor(context.surface);
856
885
  let hooksImports = "";
857
886
  let beforeSetupCall = "";
858
887
  let afterSetupCall = "";
@@ -904,7 +933,7 @@ import { createStudioApp } from '@geekmidas/studio/server/hono';`;
904
933
  }
905
934
  ` : "";
906
935
  let telescopeSetup = "";
907
- if (telescopeEnabled) if (usesExternalTelescope) telescopeSetup = `
936
+ if (telescopeEnabled) if (telescopeFromSurface || usesExternalTelescope) telescopeSetup = `
908
937
  ${telescopeWebSocketSetupCode}
909
938
  // Add telescope middleware (before endpoints to capture all requests)
910
939
  honoApp.use('*', createMiddleware(telescope));
@@ -932,7 +961,22 @@ ${telescopeWebSocketSetupCode}
932
961
  honoApp.route('${context.telescope?.path}', telescopeUI);
933
962
  `;
934
963
  let studioSetup = "";
935
- if (studioEnabled && usesExternalStudio) studioSetup = `
964
+ if (studioEnabled && studioFromDatabase) studioSetup = `
965
+ // Studio, built from the declared database. The client comes from the
966
+ // construct, so what you inspect is by definition what the handlers write to.
967
+ const studio = new Studio({
968
+ monitoring: { storage: new InMemoryMonitoringStorage({ maxEntries: 100 }) },
969
+ data: {
970
+ db: await __studioDb.service.register({ envParser, context: snifferContext }),
971
+ cursor: { field: 'id', direction: Direction.Desc },
972
+ },
973
+ enabled: true,
974
+ });
975
+
976
+ const studioApp = createStudioApp(studio);
977
+ honoApp.route('${context.studio?.path}', studioApp);
978
+ `;
979
+ else if (studioEnabled && usesExternalStudio) studioSetup = `
936
980
  // Mount Studio data browser UI
937
981
  const studioApp = createStudioApp(studio);
938
982
  honoApp.route('${context.studio?.path}', studioApp);
@@ -949,12 +993,21 @@ import type { Hono as HonoType } from 'hono';
949
993
  import { setupEndpoints } from './endpoints.js';
950
994
  import { setupSubscribers } from './subscribers.js';
951
995
  import { setupQueues } from './queues.js';
952
- import ${context.envParserImportPattern} from '${relativeEnvParserPath}';
953
- import ${context.loggerImportPattern} from '${relativeLoggerPath}';
996
+ ${runtime.imports}
954
997
  ${telescopeImports}
955
998
  ${studioImports}
956
999
  ${hooksImports}
1000
+ ${cors.imports}
1001
+ ${context.storageDrivers?.imports ?? ""}
957
1002
 
1003
+ ${runtime.bindings}
1004
+ ${telescopeFromSurface ? "const telescope = __surface.telescope;" : ""}
1005
+
1006
+ ${context.storageDrivers?.setup ? `// Which storage drivers exist is the entry point's decision: the scheme in
1007
+ // each injected URL picks one, so no construct and no application module names
1008
+ // a provider.
1009
+ ${context.storageDrivers.setup}
1010
+ ` : ""}
958
1011
  export interface ServerApp {
959
1012
  app: HonoType;
960
1013
  start: (options?: {
@@ -999,7 +1052,7 @@ export interface ServerApp {
999
1052
  */
1000
1053
  export async function createApp(app?: HonoType, enableOpenApi: boolean = true): Promise<ServerApp> {
1001
1054
  const honoApp = app || new Hono();
1002
- ${telescopeSetup}${beforeSetupCall}${studioSetup}
1055
+ ${telescopeSetup}${cors.setup}${beforeSetupCall}${studioSetup}
1003
1056
  // Setup HTTP endpoints
1004
1057
  await setupEndpoints(honoApp, envParser, logger, enableOpenApi);
1005
1058
  ${afterSetupCall}
@@ -1043,22 +1096,42 @@ export default createApp;
1043
1096
  await (0, node_fs_promises.writeFile)(appPath, content);
1044
1097
  return appPath;
1045
1098
  }
1046
- generateAWSApiGatewayV1Handler(importPath, exportName, envParserPath, envParserImportPattern) {
1099
+ /**
1100
+ * One Lambda, one endpoint — and no environment import.
1101
+ *
1102
+ * The endpoint was built from its surface, so it carries the parser the
1103
+ * adaptor needs. This used to read
1104
+ * `import { envParser } from '../../config/env'`, a line the build wrote
1105
+ * because a generator can print a module specifier and cannot print an
1106
+ * object. Nothing has to be printed now, which is also why nothing has to be
1107
+ * named in config.
1108
+ */
1109
+ generateAWSApiGatewayV1Handler(importPath, exportName, drivers) {
1047
1110
  return `import { AmazonApiGatewayV1Endpoint } from '@geekmidas/constructs/aws';
1048
1111
  import { ${exportName} } from '${importPath}';
1049
- import ${envParserImportPattern} from '${envParserPath}';
1050
-
1051
- const adapter = new AmazonApiGatewayV1Endpoint(envParser, ${exportName});
1112
+ ${drivers?.imports ?? ""}
1113
+ ${drivers?.setup ? `\n// The handler registers the drivers its target needs.\n${drivers.setup}\n` : ""}
1114
+ const adapter = new AmazonApiGatewayV1Endpoint(${exportName});
1052
1115
 
1053
1116
  export const handler = adapter.handler;
1054
1117
  `;
1055
1118
  }
1056
- generateAWSApiGatewayV2Handler(importPath, exportName, envParserPath, envParserImportPattern) {
1119
+ /**
1120
+ * One Lambda, one endpoint — and no environment import.
1121
+ *
1122
+ * The endpoint was built from its surface, so it carries the parser the
1123
+ * adaptor needs. This used to read
1124
+ * `import { envParser } from '../../config/env'`, a line the build wrote
1125
+ * because a generator can print a module specifier and cannot print an
1126
+ * object. Nothing has to be printed now, which is also why nothing has to be
1127
+ * named in config.
1128
+ */
1129
+ generateAWSApiGatewayV2Handler(importPath, exportName, drivers) {
1057
1130
  return `import { AmazonApiGatewayV2Endpoint } from '@geekmidas/constructs/aws';
1058
1131
  import { ${exportName} } from '${importPath}';
1059
- import ${envParserImportPattern} from '${envParserPath}';
1060
-
1061
- const adapter = new AmazonApiGatewayV2Endpoint(envParser, ${exportName});
1132
+ ${drivers?.imports ?? ""}
1133
+ ${drivers?.setup ? `\n// The handler registers the drivers its target needs.\n${drivers.setup}\n` : ""}
1134
+ const adapter = new AmazonApiGatewayV2Endpoint(${exportName});
1062
1135
 
1063
1136
  export const handler = adapter.handler;
1064
1137
  `;
@@ -1084,6 +1157,7 @@ export const handler = ${exportName};
1084
1157
  const enableGracefulShutdown = production.gracefulShutdown;
1085
1158
  const enableOpenApi = production.openapi;
1086
1159
  const includeSubscribers = production.subscribers === "include";
1160
+ const cors = corsFor(context.surface);
1087
1161
  let hooksImports = "";
1088
1162
  let beforeSetupCall = "";
1089
1163
  let afterSetupCall = "";
@@ -1148,7 +1222,12 @@ ${subscriberImport}
1148
1222
  import ${context.envParserImportPattern} from '${relativeEnvParserPath}';
1149
1223
  import ${context.loggerImportPattern} from '${relativeLoggerPath}';
1150
1224
  ${hooksImports}
1225
+ ${cors.imports}
1226
+ ${context.storageDrivers?.imports ?? ""}
1151
1227
 
1228
+ ${context.storageDrivers?.setup ? `// The entry point registers the drivers its target needs.
1229
+ ${context.storageDrivers.setup}
1230
+ ` : ""}
1152
1231
  export interface ServerApp {
1153
1232
  app: HonoType;
1154
1233
  start: (options?: {
@@ -1166,7 +1245,7 @@ export async function createApp(app?: HonoType): Promise<ServerApp> {
1166
1245
  // Health check endpoint (always first)
1167
1246
  honoApp.get('${healthCheckPath}', (c) => c.json({ status: 'ok', timestamp: Date.now() }));
1168
1247
  honoApp.get('/ready', (c) => c.json({ ready: true }));
1169
- ${beforeSetupCall}
1248
+ ${cors.setup}${beforeSetupCall}
1170
1249
  // Setup HTTP endpoints (OpenAPI: ${enableOpenApi})
1171
1250
  await setupEndpoints(honoApp, envParser, logger, ${enableOpenApi});
1172
1251
  ${afterSetupCall}
@@ -1733,7 +1812,7 @@ ${createApiSection}
1733
1812
  */
1734
1813
  function normalizeRoutes(routes) {
1735
1814
  if (!routes) return [];
1736
- if (isPartitionedRoutes(routes)) return Array.isArray(routes.paths) ? routes.paths : [routes.paths];
1815
+ if (require_discover.isPartitionedRoutes(routes)) return Array.isArray(routes.paths) ? routes.paths : [routes.paths];
1737
1816
  return Array.isArray(routes) ? routes : [routes];
1738
1817
  }
1739
1818
 
@@ -1803,7 +1882,7 @@ async function openapiCommand(options = {}) {
1803
1882
  } else {
1804
1883
  const { workspace } = loadedConfig;
1805
1884
  const workspaceRoot = workspace.root;
1806
- const backendApps = Object.entries(workspace.apps).filter(([_, app]) => app.type === "backend" && (app.openapi === true || typeof app.openapi === "object" && app.openapi.enabled !== false));
1885
+ const backendApps = Object.entries(workspace.apps).filter(([_, app]) => app.type === "backend" && app.routes !== void 0 && app.openapi !== false && (typeof app.openapi !== "object" || app.openapi.enabled !== false));
1807
1886
  if (backendApps.length === 0) {
1808
1887
  logger.log("No backend apps with OpenAPI enabled found");
1809
1888
  return;
@@ -1880,12 +1959,6 @@ async function runOpenApiInSubprocess(appCwd, appName) {
1880
1959
  }
1881
1960
 
1882
1961
  //#endregion
1883
- Object.defineProperty(exports, 'ConstructGenerator', {
1884
- enumerable: true,
1885
- get: function () {
1886
- return ConstructGenerator;
1887
- }
1888
- });
1889
1962
  Object.defineProperty(exports, 'EndpointGenerator', {
1890
1963
  enumerable: true,
1891
1964
  get: function () {
@@ -1904,12 +1977,6 @@ Object.defineProperty(exports, 'generateOpenApi', {
1904
1977
  return generateOpenApi;
1905
1978
  }
1906
1979
  });
1907
- Object.defineProperty(exports, 'isPartitionedRoutes', {
1908
- enumerable: true,
1909
- get: function () {
1910
- return isPartitionedRoutes;
1911
- }
1912
- });
1913
1980
  Object.defineProperty(exports, 'normalizeRoutes', {
1914
1981
  enumerable: true,
1915
1982
  get: function () {
@@ -1928,4 +1995,4 @@ Object.defineProperty(exports, 'resolveOpenApiConfig', {
1928
1995
  return resolveOpenApiConfig;
1929
1996
  }
1930
1997
  });
1931
- //# sourceMappingURL=openapi-BzNOC7_i.cjs.map
1998
+ //# sourceMappingURL=openapi-CljONd_M.cjs.map