@geekmidas/cli 9.0.2 → 10.0.0-alpha.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.
- package/README.md +66 -122
- package/dist/{CachedStateProvider-BdX7klRc.cjs → CachedStateProvider-BLo7zv7S.cjs} +1 -1
- package/dist/CachedStateProvider-BxoAm-B2.mjs +3 -0
- package/dist/{CachedStateProvider-klLWZXWF.cjs → CachedStateProvider-CqPdW7CB.cjs} +1 -1
- package/dist/{CachedStateProvider-klLWZXWF.cjs.map → CachedStateProvider-CqPdW7CB.cjs.map} +1 -1
- package/dist/{CachedStateProvider-CzyFct42.mjs → CachedStateProvider-DTniehMP.mjs} +1 -1
- package/dist/{CachedStateProvider-CzyFct42.mjs.map → CachedStateProvider-DTniehMP.mjs.map} +1 -1
- package/dist/{HostingerProvider-B2ZYz7Yc.mjs → HostingerProvider-Cft7lEYr.mjs} +4 -3
- package/dist/HostingerProvider-Cft7lEYr.mjs.map +1 -0
- package/dist/{HostingerProvider-CrHfsgz9.cjs → HostingerProvider-h3EbEp-Z.cjs} +4 -3
- package/dist/HostingerProvider-h3EbEp-Z.cjs.map +1 -0
- package/dist/{LocalStateProvider-CP49rjzt.mjs → LocalStateProvider-Bn6tS-oL.mjs} +1 -1
- package/dist/{LocalStateProvider-CP49rjzt.mjs.map → LocalStateProvider-Bn6tS-oL.mjs.map} +1 -1
- package/dist/{LocalStateProvider-CalzNfNA.cjs → LocalStateProvider-Db9SEjyH.cjs} +1 -1
- package/dist/{LocalStateProvider-CalzNfNA.cjs.map → LocalStateProvider-Db9SEjyH.cjs.map} +1 -1
- package/dist/{Route53Provider-tlgBzrRQ.mjs → Route53Provider-RdpUDJQk.mjs} +1 -1
- package/dist/{Route53Provider-tlgBzrRQ.mjs.map → Route53Provider-RdpUDJQk.mjs.map} +1 -1
- package/dist/{Route53Provider-DwgXiLxt.cjs → Route53Provider-di2fMM5N.cjs} +1 -1
- package/dist/{Route53Provider-DwgXiLxt.cjs.map → Route53Provider-di2fMM5N.cjs.map} +1 -1
- package/dist/{SSMStateProvider-BlrTiV5m.mjs → SSMStateProvider-BRt2py-A.mjs} +1 -1
- package/dist/{SSMStateProvider-BlrTiV5m.mjs.map → SSMStateProvider-BRt2py-A.mjs.map} +1 -1
- package/dist/{SSMStateProvider-Bt6r8CTL.cjs → SSMStateProvider-DyX8s9HI.cjs} +1 -1
- package/dist/{SSMStateProvider-Bt6r8CTL.cjs.map → SSMStateProvider-DyX8s9HI.cjs.map} +1 -1
- package/dist/{backup-provisioner-Xunq-p_8.mjs → backup-provisioner-Bgj5Vi_L.mjs} +2 -2
- package/dist/{backup-provisioner-Xunq-p_8.mjs.map → backup-provisioner-Bgj5Vi_L.mjs.map} +1 -1
- package/dist/{backup-provisioner-B3HBN-2k.cjs → backup-provisioner-BrsHwYG0.cjs} +2 -2
- package/dist/{backup-provisioner-B3HBN-2k.cjs.map → backup-provisioner-BrsHwYG0.cjs.map} +1 -1
- package/dist/{bundler-Dufq3uvI.cjs → bundler-BY1OmV1e.cjs} +44 -14
- package/dist/bundler-BY1OmV1e.cjs.map +1 -0
- package/dist/{bundler-DkA4qzUD.mjs → bundler-Be8Zg4Wd.mjs} +45 -15
- package/dist/bundler-Be8Zg4Wd.mjs.map +1 -0
- package/dist/config-D8o6I_7Z.mjs +469 -0
- package/dist/config-D8o6I_7Z.mjs.map +1 -0
- package/dist/config-DbPE1KXF.cjs +535 -0
- package/dist/config-DbPE1KXF.cjs.map +1 -0
- package/dist/config.cjs +3 -2
- package/dist/config.d.cts +2 -2
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.mts +2 -2
- package/dist/config.d.mts.map +1 -1
- package/dist/config.mjs +3 -2
- package/dist/{credentials-s1kLcIzK.mjs → credentials-B5zRHdAl.mjs} +21 -6
- package/dist/credentials-B5zRHdAl.mjs.map +1 -0
- package/dist/{credentials-C8DWtnMY.cjs → credentials-BapzjyV5.cjs} +26 -5
- package/dist/credentials-BapzjyV5.cjs.map +1 -0
- package/dist/credentials-Dh0Q6HzY.mjs +2548 -0
- package/dist/credentials-Dh0Q6HzY.mjs.map +1 -0
- package/dist/credentials-K961ThG3.cjs +2680 -0
- package/dist/credentials-K961ThG3.cjs.map +1 -0
- package/dist/deploy/sniffer-routes-worker.cjs +6 -2
- package/dist/deploy/sniffer-routes-worker.cjs.map +1 -1
- package/dist/deploy/sniffer-routes-worker.mjs +6 -2
- package/dist/deploy/sniffer-routes-worker.mjs.map +1 -1
- package/dist/discover-CAlFgYec.mjs +229 -0
- package/dist/discover-CAlFgYec.mjs.map +1 -0
- package/dist/discover-DTmFeloL.cjs +271 -0
- package/dist/discover-DTmFeloL.cjs.map +1 -0
- package/dist/dokploy-api-BS2xnJLZ.mjs +3 -0
- package/dist/{dokploy-api-CqOIKHme.cjs → dokploy-api-BsVH0y_s.cjs} +141 -32
- package/dist/dokploy-api-BsVH0y_s.cjs.map +1 -0
- package/dist/dokploy-api-BuxDRo3l.cjs +3 -0
- package/dist/{dokploy-api-sfZFlWuE.mjs → dokploy-api-aTFPz7_4.mjs} +141 -32
- package/dist/dokploy-api-aTFPz7_4.mjs.map +1 -0
- package/dist/emit-CbcRolsa.cjs +236 -0
- package/dist/emit-CbcRolsa.cjs.map +1 -0
- package/dist/emit-CiZS_5Ub.mjs +206 -0
- package/dist/emit-CiZS_5Ub.mjs.map +1 -0
- package/dist/{encryption-MfXAiFTm.cjs → encryption-C6jaU0hE.cjs} +1 -1
- package/dist/{encryption-MfXAiFTm.cjs.map → encryption-C6jaU0hE.cjs.map} +1 -1
- package/dist/{encryption-BVS7Vmzs.cjs → encryption-CHzzeR8a.cjs} +1 -1
- package/dist/encryption-CQUncu7v.mjs +3 -0
- package/dist/{encryption-CO5Q4Bhf.mjs → encryption-D-abyhZx.mjs} +1 -1
- package/dist/{encryption-CO5Q4Bhf.mjs.map → encryption-D-abyhZx.mjs.map} +1 -1
- package/dist/fullstack-secrets-C-GGohke.cjs +111 -0
- package/dist/fullstack-secrets-C-GGohke.cjs.map +1 -0
- package/dist/fullstack-secrets-D1o9-G5l.mjs +87 -0
- package/dist/fullstack-secrets-D1o9-G5l.mjs.map +1 -0
- package/dist/{fullstack-secrets-BYzi6Hwl.cjs → generator-CNzBw7g5.cjs} +1 -114
- package/dist/generator-CNzBw7g5.cjs.map +1 -0
- package/dist/{fullstack-secrets-l8s3II_H.mjs → generator-VE2JrFlY.mjs} +2 -85
- package/dist/generator-VE2JrFlY.mjs.map +1 -0
- package/dist/index-BThUzEIp.d.mts +175 -0
- package/dist/index-BThUzEIp.d.mts.map +1 -0
- package/dist/index-CHB4tSzX.d.cts +175 -0
- package/dist/index-CHB4tSzX.d.cts.map +1 -0
- package/dist/index.cjs +2530 -1810
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +2506 -1786
- package/dist/index.mjs.map +1 -1
- package/dist/{openapi-Cfwi0fqF.mjs → openapi-CgpMWMmM.mjs} +174 -95
- package/dist/openapi-CgpMWMmM.mjs.map +1 -0
- package/dist/{openapi-BzNOC7_i.cjs → openapi-CljONd_M.cjs} +175 -108
- package/dist/openapi-CljONd_M.cjs.map +1 -0
- package/dist/{openapi-react-query-C4iIvpPf.mjs → openapi-react-query-Byltvm_7.mjs} +2 -2
- package/dist/openapi-react-query-Byltvm_7.mjs.map +1 -0
- package/dist/{openapi-react-query-CYWik72n.cjs → openapi-react-query-CmJ1xDbn.cjs} +2 -2
- package/dist/openapi-react-query-CmJ1xDbn.cjs.map +1 -0
- package/dist/openapi-react-query.cjs +1 -1
- package/dist/openapi-react-query.mjs +1 -1
- package/dist/openapi.cjs +4 -3
- package/dist/openapi.d.cts +1 -1
- package/dist/openapi.d.mts +1 -1
- package/dist/openapi.mjs +4 -3
- package/dist/reconcile/public.cjs +9 -0
- package/dist/reconcile/public.d.cts +125 -0
- package/dist/reconcile/public.d.cts.map +1 -0
- package/dist/reconcile/public.d.mts +125 -0
- package/dist/reconcile/public.d.mts.map +1 -0
- package/dist/reconcile/public.mjs +4 -0
- package/dist/{reconcile-B2FoJE0a.mjs → reconcile-CFs8C_1a.mjs} +5 -4
- package/dist/reconcile-CFs8C_1a.mjs.map +1 -0
- package/dist/{reconcile-BzqKJ2Rt.cjs → reconcile-D0pimNiy.cjs} +5 -4
- package/dist/reconcile-D0pimNiy.cjs.map +1 -0
- package/dist/setup-CJiQM2pX.cjs +473 -0
- package/dist/setup-CJiQM2pX.cjs.map +1 -0
- package/dist/setup-DMtU3p41.cjs +11 -0
- package/dist/setup-DOsYueeQ.mjs +443 -0
- package/dist/setup-DOsYueeQ.mjs.map +1 -0
- package/dist/setup-DSutDAlt.mjs +11 -0
- package/dist/{storage-B1wvztiJ.cjs → storage-BJmzYxt8.cjs} +1 -1
- package/dist/{storage-B1wvztiJ.cjs.map → storage-BJmzYxt8.cjs.map} +1 -1
- package/dist/{storage-DOEtT2Hr.cjs → storage-BM9hGpgv.cjs} +1 -1
- package/dist/{storage-dbb9RyBl.mjs → storage-Bi24WfoW.mjs} +1 -1
- package/dist/{storage-dbb9RyBl.mjs.map → storage-Bi24WfoW.mjs.map} +1 -1
- package/dist/{storage-Cs4WBsc4.mjs → storage-CYlGwWTj.mjs} +1 -1
- package/dist/{sync-CSooqRQ8.mjs → sync-CmEuNZsB.mjs} +2 -2
- package/dist/{sync-CSooqRQ8.mjs.map → sync-CmEuNZsB.mjs.map} +1 -1
- package/dist/sync-D306yOWu.cjs +4 -0
- package/dist/{sync-o_CtEbvR.cjs → sync-SizaChmC.cjs} +2 -2
- package/dist/{sync-o_CtEbvR.cjs.map → sync-SizaChmC.cjs.map} +1 -1
- package/dist/{sync-B5UHXwRM.mjs → sync-hOqAWHR6.mjs} +1 -1
- package/dist/{index-Bw548Bta.d.mts → types-C-arnQ1r.d.mts} +590 -143
- package/dist/types-C-arnQ1r.d.mts.map +1 -0
- package/dist/{index-DTpkeFb8.d.cts → types-abJQuk7m.d.cts} +590 -143
- package/dist/types-abJQuk7m.d.cts.map +1 -0
- package/dist/workspace/index.cjs +5 -1
- package/dist/workspace/index.d.cts +3 -3
- package/dist/workspace/index.d.mts +3 -3
- package/dist/workspace/index.mjs +2 -2
- package/dist/{workspace-D-37Ylqo.mjs → workspace-7FqprxuJ.mjs} +117 -30
- package/dist/workspace-7FqprxuJ.mjs.map +1 -0
- package/dist/workspace-8acupeaI.cjs +9 -0
- package/dist/{workspace-CQTT7HJQ.cjs → workspace-XvqO9jIv.cjs} +139 -28
- package/dist/workspace-XvqO9jIv.cjs.map +1 -0
- package/dist/workspace-yP5AHnrn.mjs +8 -0
- package/package.json +26 -9
- package/CHANGELOG.md +0 -650
- package/FUNCTION_CRON_SUPPORT.md +0 -266
- package/dist/CachedStateProvider-GcGziXh1.mjs +0 -3
- package/dist/HostingerProvider-B2ZYz7Yc.mjs.map +0 -1
- package/dist/HostingerProvider-CrHfsgz9.cjs.map +0 -1
- package/dist/bundler-DkA4qzUD.mjs.map +0 -1
- package/dist/bundler-Dufq3uvI.cjs.map +0 -1
- package/dist/config-Bbu1JKvf.mjs +0 -211
- package/dist/config-Bbu1JKvf.mjs.map +0 -1
- package/dist/config-DujV8DbR.cjs +0 -253
- package/dist/config-DujV8DbR.cjs.map +0 -1
- package/dist/credentials-C8DWtnMY.cjs.map +0 -1
- package/dist/credentials-s1kLcIzK.mjs.map +0 -1
- package/dist/dokploy-api-BPYkG-ZZ.cjs +0 -3
- package/dist/dokploy-api-BiSzWM4v.mjs +0 -3
- package/dist/dokploy-api-CqOIKHme.cjs.map +0 -1
- package/dist/dokploy-api-sfZFlWuE.mjs.map +0 -1
- package/dist/encryption-Bd_m4q3g.mjs +0 -3
- package/dist/fullstack-secrets-BYzi6Hwl.cjs.map +0 -1
- package/dist/fullstack-secrets-l8s3II_H.mjs.map +0 -1
- package/dist/index-Bw548Bta.d.mts.map +0 -1
- package/dist/index-DTpkeFb8.d.cts.map +0 -1
- package/dist/openapi-BzNOC7_i.cjs.map +0 -1
- package/dist/openapi-Cfwi0fqF.mjs.map +0 -1
- package/dist/openapi-react-query-C4iIvpPf.mjs.map +0 -1
- package/dist/openapi-react-query-CYWik72n.cjs.map +0 -1
- package/dist/reconcile-B2FoJE0a.mjs.map +0 -1
- package/dist/reconcile-BzqKJ2Rt.cjs.map +0 -1
- package/dist/setup-DDXUXzzl.mjs +0 -765
- package/dist/setup-DDXUXzzl.mjs.map +0 -1
- package/dist/setup-DLwhfyt-.cjs +0 -8
- package/dist/setup-Dh-B7YTX.mjs +0 -8
- package/dist/setup-WZ-xqAQO.cjs +0 -849
- package/dist/setup-WZ-xqAQO.cjs.map +0 -1
- package/dist/sync-BLA94rgC.cjs +0 -4
- package/dist/types-B3GQUg3k.d.mts +0 -280
- package/dist/types-B3GQUg3k.d.mts.map +0 -1
- package/dist/types-BWQDiooe.d.cts +0 -280
- package/dist/types-BWQDiooe.d.cts.map +0 -1
- package/dist/workspace-CQTT7HJQ.cjs.map +0 -1
- package/dist/workspace-D-37Ylqo.mjs.map +0 -1
- package/docs/OPENAPI_TYPESCRIPT_DESIGN.md +0 -408
- package/docs/dev-server-resilience-design.md +0 -189
- package/docs/manifest-refactor-design.md +0 -287
- package/examples/cron-example.ts +0 -45
- package/examples/env.ts +0 -33
- package/examples/function-example.ts +0 -40
- package/examples/gkm.config.json +0 -22
- package/examples/gkm.config.ts +0 -14
- package/examples/gkm.minimal.config.json +0 -7
- package/examples/gkm.production.config.json +0 -27
- package/examples/logger.ts +0 -10
- package/scripts/sync-versions.ts +0 -108
- package/src/__tests__/EndpointGenerator.hooks.spec.ts +0 -204
- package/src/__tests__/config.spec.ts +0 -422
- package/src/__tests__/loadEnvFiles.spec.ts +0 -131
- package/src/__tests__/normalizeHooksConfig.spec.ts +0 -63
- package/src/__tests__/openapi-react-query.spec.ts +0 -506
- package/src/__tests__/openapi.spec.ts +0 -625
- package/src/__tests__/test-helpers.ts +0 -181
- package/src/auth/__tests__/credentials.spec.ts +0 -331
- package/src/auth/__tests__/index.spec.ts +0 -237
- package/src/auth/credentials.ts +0 -286
- package/src/auth/index.ts +0 -233
- package/src/build/__tests__/bundler.spec.ts +0 -446
- package/src/build/__tests__/endpoint-analyzer.spec.ts +0 -623
- package/src/build/__tests__/handler-templates.spec.ts +0 -1287
- package/src/build/__tests__/index-new.spec.ts +0 -550
- package/src/build/__tests__/manifests.spec.ts +0 -583
- package/src/build/__tests__/partitions.spec.ts +0 -110
- package/src/build/__tests__/workspace-build.spec.ts +0 -215
- package/src/build/bundler.ts +0 -256
- package/src/build/endpoint-analyzer.ts +0 -236
- package/src/build/handler-templates.ts +0 -1253
- package/src/build/index.ts +0 -616
- package/src/build/manifests.ts +0 -285
- package/src/build/partitions.ts +0 -58
- package/src/build/providerResolver.ts +0 -184
- package/src/build/types.ts +0 -104
- package/src/config.ts +0 -330
- package/src/credentials/__tests__/fullDockerPorts.spec.ts +0 -144
- package/src/credentials/__tests__/helpers.ts +0 -112
- package/src/credentials/__tests__/prepareEntryCredentials.spec.ts +0 -125
- package/src/credentials/__tests__/readonlyDockerPorts.spec.ts +0 -190
- package/src/credentials/__tests__/workspaceCredentials.spec.ts +0 -209
- package/src/credentials/index.ts +0 -843
- package/src/debug.ts +0 -68
- package/src/deploy/CachedStateProvider.ts +0 -86
- package/src/deploy/LocalStateProvider.ts +0 -57
- package/src/deploy/SSMStateProvider.ts +0 -117
- package/src/deploy/StateProvider.ts +0 -175
- package/src/deploy/__tests__/CachedStateProvider.spec.ts +0 -235
- package/src/deploy/__tests__/HostingerProvider.spec.ts +0 -347
- package/src/deploy/__tests__/LocalStateProvider.spec.ts +0 -130
- package/src/deploy/__tests__/Route53Provider.spec.ts +0 -425
- package/src/deploy/__tests__/SSMStateProvider.spec.ts +0 -201
- package/src/deploy/__tests__/__fixtures__/entry-apps/async-entry.ts +0 -24
- package/src/deploy/__tests__/__fixtures__/entry-apps/nested-config-entry.ts +0 -24
- package/src/deploy/__tests__/__fixtures__/entry-apps/no-env-entry.ts +0 -12
- package/src/deploy/__tests__/__fixtures__/entry-apps/simple-entry.ts +0 -14
- package/src/deploy/__tests__/__fixtures__/entry-apps/throwing-entry.ts +0 -16
- package/src/deploy/__tests__/__fixtures__/env-parsers/non-function-export.ts +0 -10
- package/src/deploy/__tests__/__fixtures__/env-parsers/optional-env-parser.ts +0 -21
- package/src/deploy/__tests__/__fixtures__/env-parsers/parseable-env-parser.ts +0 -18
- package/src/deploy/__tests__/__fixtures__/env-parsers/throwing-env-parser.ts +0 -16
- package/src/deploy/__tests__/__fixtures__/env-parsers/valid-env-parser.ts +0 -16
- package/src/deploy/__tests__/__fixtures__/route-apps/endpoints/auth.ts +0 -16
- package/src/deploy/__tests__/__fixtures__/route-apps/endpoints/health.ts +0 -13
- package/src/deploy/__tests__/__fixtures__/route-apps/endpoints/users.ts +0 -15
- package/src/deploy/__tests__/__fixtures__/route-apps/services.ts +0 -55
- package/src/deploy/__tests__/backup-provisioner.spec.ts +0 -428
- package/src/deploy/__tests__/createDnsProvider.spec.ts +0 -195
- package/src/deploy/__tests__/createStateProvider.spec.ts +0 -126
- package/src/deploy/__tests__/dns-orchestration.spec.ts +0 -192
- package/src/deploy/__tests__/dns-verification.spec.ts +0 -229
- package/src/deploy/__tests__/docker.spec.ts +0 -149
- package/src/deploy/__tests__/dokploy-api.spec.ts +0 -697
- package/src/deploy/__tests__/dokploy.spec.ts +0 -435
- package/src/deploy/__tests__/domain.spec.ts +0 -235
- package/src/deploy/__tests__/env-resolver.spec.ts +0 -903
- package/src/deploy/__tests__/index.spec.ts +0 -1091
- package/src/deploy/__tests__/init.spec.ts +0 -793
- package/src/deploy/__tests__/secrets.spec.ts +0 -303
- package/src/deploy/__tests__/sniffer.spec.ts +0 -838
- package/src/deploy/__tests__/state-e2e.spec.ts +0 -387
- package/src/deploy/__tests__/state.spec.ts +0 -876
- package/src/deploy/__tests__/undeploy.spec.ts +0 -758
- package/src/deploy/backup-provisioner.ts +0 -316
- package/src/deploy/dns/DnsProvider.ts +0 -201
- package/src/deploy/dns/HostingerProvider.ts +0 -174
- package/src/deploy/dns/Route53Provider.ts +0 -340
- package/src/deploy/dns/hostinger-api.ts +0 -261
- package/src/deploy/dns/index.ts +0 -627
- package/src/deploy/docker.ts +0 -260
- package/src/deploy/dokploy-api.ts +0 -1101
- package/src/deploy/dokploy.ts +0 -177
- package/src/deploy/domain.ts +0 -134
- package/src/deploy/env-resolver.ts +0 -305
- package/src/deploy/index.ts +0 -2094
- package/src/deploy/init.ts +0 -427
- package/src/deploy/secrets.ts +0 -187
- package/src/deploy/sniffer-envkit-patch.ts +0 -61
- package/src/deploy/sniffer-hooks.ts +0 -57
- package/src/deploy/sniffer-loader.ts +0 -28
- package/src/deploy/sniffer-routes-worker.ts +0 -104
- package/src/deploy/sniffer-worker.ts +0 -75
- package/src/deploy/sniffer.ts +0 -578
- package/src/deploy/state-commands.ts +0 -274
- package/src/deploy/state.ts +0 -482
- package/src/deploy/types.ts +0 -102
- package/src/deploy/undeploy.ts +0 -407
- package/src/dev/__tests__/entry-integration.spec.ts +0 -347
- package/src/dev/__tests__/entry.spec.ts +0 -144
- package/src/dev/__tests__/index.spec.ts +0 -2084
- package/src/dev/index.ts +0 -1649
- package/src/docker/__tests__/compose.spec.ts +0 -1142
- package/src/docker/__tests__/templates.spec.ts +0 -694
- package/src/docker/compose.ts +0 -808
- package/src/docker/index.ts +0 -523
- package/src/docker/templates.ts +0 -1067
- package/src/exec/index.ts +0 -118
- package/src/generators/CronGenerator.ts +0 -105
- package/src/generators/EndpointGenerator.ts +0 -954
- package/src/generators/FunctionGenerator.ts +0 -117
- package/src/generators/Generator.ts +0 -147
- package/src/generators/OpenApiTsGenerator.ts +0 -821
- package/src/generators/QueueGenerator.ts +0 -245
- package/src/generators/SubscriberGenerator.ts +0 -282
- package/src/generators/TopicGenerator.ts +0 -45
- package/src/generators/__tests__/CronGenerator.spec.ts +0 -445
- package/src/generators/__tests__/EndpointGenerator.spec.ts +0 -544
- package/src/generators/__tests__/FunctionGenerator.spec.ts +0 -256
- package/src/generators/__tests__/Generator.bustCache.spec.ts +0 -72
- package/src/generators/__tests__/OpenApiTsGenerator.registry.spec.ts +0 -98
- package/src/generators/__tests__/OpenApiTsGenerator.responseType.spec.ts +0 -56
- package/src/generators/__tests__/QueueGenerator.spec.ts +0 -141
- package/src/generators/__tests__/SubscriberGenerator.spec.ts +0 -410
- package/src/generators/index.ts +0 -11
- package/src/index.ts +0 -972
- package/src/init/__tests__/generators.spec.ts +0 -1070
- package/src/init/__tests__/init.spec.ts +0 -577
- package/src/init/__tests__/utils.spec.ts +0 -104
- package/src/init/generators/auth.ts +0 -225
- package/src/init/generators/config.ts +0 -316
- package/src/init/generators/docker.ts +0 -388
- package/src/init/generators/env.ts +0 -62
- package/src/init/generators/index.ts +0 -6
- package/src/init/generators/mobile-expo.ts +0 -576
- package/src/init/generators/models.ts +0 -153
- package/src/init/generators/monorepo.ts +0 -475
- package/src/init/generators/package.ts +0 -95
- package/src/init/generators/source.ts +0 -15
- package/src/init/generators/test.ts +0 -178
- package/src/init/generators/ui.ts +0 -1473
- package/src/init/generators/web-tanstack.ts +0 -348
- package/src/init/generators/web.ts +0 -363
- package/src/init/index.ts +0 -542
- package/src/init/templates/api.ts +0 -404
- package/src/init/templates/index.ts +0 -342
- package/src/init/templates/minimal.ts +0 -207
- package/src/init/templates/serverless.ts +0 -148
- package/src/init/templates/worker.ts +0 -216
- package/src/init/utils.ts +0 -197
- package/src/init/versions.ts +0 -52
- package/src/openapi-react-query.ts +0 -288
- package/src/openapi.ts +0 -259
- package/src/secrets/__tests__/encryption.spec.ts +0 -226
- package/src/secrets/__tests__/generator.spec.ts +0 -575
- package/src/secrets/__tests__/index.spec.ts +0 -91
- package/src/secrets/__tests__/reconcile.spec.ts +0 -123
- package/src/secrets/__tests__/storage.spec.ts +0 -645
- package/src/secrets/encryption.ts +0 -91
- package/src/secrets/generator.ts +0 -329
- package/src/secrets/index.ts +0 -417
- package/src/secrets/keystore.ts +0 -144
- package/src/secrets/reconcile.ts +0 -53
- package/src/secrets/storage.ts +0 -337
- package/src/secrets/sync.ts +0 -136
- package/src/secrets/types.ts +0 -70
- package/src/setup/__tests__/auto-setup.spec.ts +0 -147
- package/src/setup/__tests__/reconcile-secrets.spec.ts +0 -439
- package/src/setup/fullstack-secrets.ts +0 -140
- package/src/setup/index.ts +0 -411
- package/src/test/__tests__/__fixtures__/workspace.ts +0 -104
- package/src/test/__tests__/api.spec.ts +0 -199
- package/src/test/__tests__/auth.spec.ts +0 -162
- package/src/test/__tests__/index.spec.ts +0 -502
- package/src/test/__tests__/web.spec.ts +0 -210
- package/src/test/index.ts +0 -198
- package/src/types.ts +0 -363
- package/src/upgrade/__tests__/index.spec.ts +0 -354
- package/src/upgrade/index.ts +0 -253
- package/src/workspace/__tests__/client-generator.spec.ts +0 -326
- package/src/workspace/__tests__/index.spec.ts +0 -766
- package/src/workspace/__tests__/publicEnv.spec.ts +0 -64
- package/src/workspace/__tests__/schema.spec.ts +0 -737
- package/src/workspace/__tests__/type-inference.spec.ts +0 -251
- package/src/workspace/client-generator.ts +0 -109
- package/src/workspace/index.ts +0 -433
- package/src/workspace/publicEnv.ts +0 -57
- package/src/workspace/schema.ts +0 -861
- package/src/workspace/types.ts +0 -943
- package/tsconfig.json +0 -9
- package/tsdown.config.ts +0 -22
|
@@ -1,81 +1,13 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
-
const
|
|
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
|
-
|
|
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,
|
|
743
|
+
content = this.generateAWSApiGatewayV1Handler(importPath, exportName, context.storageDrivers);
|
|
723
744
|
break;
|
|
724
745
|
case "aws-apigatewayv2":
|
|
725
|
-
content = this.generateAWSApiGatewayV2Handler(importPath, exportName,
|
|
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
|
|
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 (
|
|
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
|
|
855
|
-
|
|
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 &&
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1050
|
-
|
|
1051
|
-
const adapter = new AmazonApiGatewayV1Endpoint(
|
|
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
|
-
|
|
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
|
-
|
|
1060
|
-
|
|
1061
|
-
const adapter = new AmazonApiGatewayV2Endpoint(
|
|
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" &&
|
|
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-
|
|
1998
|
+
//# sourceMappingURL=openapi-CljONd_M.cjs.map
|