@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,287 +0,0 @@
|
|
|
1
|
-
# Manifest Refactoring Design
|
|
2
|
-
|
|
3
|
-
## Current State
|
|
4
|
-
|
|
5
|
-
Currently, the CLI generates a single `manifest.json` file at `.gkm/manifest.json` that aggregates all routes, functions, crons, and subscribers across all providers.
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
.gkm/
|
|
9
|
-
├── manifest.json # Single JSON manifest
|
|
10
|
-
├── aws-apigatewayv2/ # AWS handlers
|
|
11
|
-
│ ├── getUsers.ts
|
|
12
|
-
│ └── createUser.ts
|
|
13
|
-
└── server/ # Server handlers
|
|
14
|
-
├── app.ts
|
|
15
|
-
└── endpoints.ts
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
### Problems
|
|
19
|
-
|
|
20
|
-
1. **Mixed provider data**: AWS and server routes are combined, causing `method: 'ALL'` to appear in manifests used for AWS infrastructure
|
|
21
|
-
2. **JSON format**: No TypeScript types available, consumers must define their own types
|
|
22
|
-
3. **No derived types**: Consumers can't easily extract types like `Authorizer` from the manifest
|
|
23
|
-
|
|
24
|
-
## Proposed Changes
|
|
25
|
-
|
|
26
|
-
### 1. Folder Structure
|
|
27
|
-
|
|
28
|
-
Change from single `manifest.json` to a `manifest/` folder with TypeScript files per provider:
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
.gkm/
|
|
32
|
-
├── manifest/
|
|
33
|
-
│ ├── aws.ts # AWS-specific manifest
|
|
34
|
-
│ └── server.ts # Server-specific manifest
|
|
35
|
-
├── aws-apigatewayv2/
|
|
36
|
-
│ ├── getUsers.ts
|
|
37
|
-
│ └── createUser.ts
|
|
38
|
-
└── server/
|
|
39
|
-
├── app.ts
|
|
40
|
-
└── endpoints.ts
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### 2. AWS Manifest (`manifest/aws.ts`)
|
|
44
|
-
|
|
45
|
-
Contains only AWS routes with actual HTTP methods (no `method: 'ALL'`):
|
|
46
|
-
|
|
47
|
-
```typescript
|
|
48
|
-
export const manifest = {
|
|
49
|
-
routes: [
|
|
50
|
-
{
|
|
51
|
-
path: '/users',
|
|
52
|
-
method: 'GET',
|
|
53
|
-
handler: '.gkm/aws-apigatewayv2/getUsers.handler',
|
|
54
|
-
timeout: 30,
|
|
55
|
-
memorySize: 256,
|
|
56
|
-
environment: ['DATABASE_URL', 'API_KEY'],
|
|
57
|
-
authorizer: 'jwt',
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
path: '/users',
|
|
61
|
-
method: 'POST',
|
|
62
|
-
handler: '.gkm/aws-apigatewayv2/createUser.handler',
|
|
63
|
-
timeout: 30,
|
|
64
|
-
memorySize: 256,
|
|
65
|
-
environment: ['DATABASE_URL'],
|
|
66
|
-
authorizer: 'jwt',
|
|
67
|
-
},
|
|
68
|
-
],
|
|
69
|
-
functions: [
|
|
70
|
-
{
|
|
71
|
-
name: 'processPayment',
|
|
72
|
-
handler: '.gkm/aws-lambda/processPayment.handler',
|
|
73
|
-
timeout: 60,
|
|
74
|
-
memorySize: 512,
|
|
75
|
-
environment: ['STRIPE_KEY'],
|
|
76
|
-
},
|
|
77
|
-
],
|
|
78
|
-
crons: [
|
|
79
|
-
{
|
|
80
|
-
name: 'dailyReport',
|
|
81
|
-
handler: '.gkm/aws-lambda/dailyReport.handler',
|
|
82
|
-
schedule: 'rate(1 day)',
|
|
83
|
-
timeout: 300,
|
|
84
|
-
memorySize: 256,
|
|
85
|
-
environment: [],
|
|
86
|
-
},
|
|
87
|
-
],
|
|
88
|
-
subscribers: [
|
|
89
|
-
{
|
|
90
|
-
name: 'orderCreated',
|
|
91
|
-
handler: '.gkm/aws-lambda/orderCreated.handler',
|
|
92
|
-
subscribedEvents: ['order.created'],
|
|
93
|
-
timeout: 30,
|
|
94
|
-
memorySize: 256,
|
|
95
|
-
environment: [],
|
|
96
|
-
},
|
|
97
|
-
],
|
|
98
|
-
} as const;
|
|
99
|
-
|
|
100
|
-
// Derived types
|
|
101
|
-
export type Route = (typeof manifest.routes)[number];
|
|
102
|
-
export type Function = (typeof manifest.functions)[number];
|
|
103
|
-
export type Cron = (typeof manifest.crons)[number];
|
|
104
|
-
export type Subscriber = (typeof manifest.subscribers)[number];
|
|
105
|
-
|
|
106
|
-
// Useful union types
|
|
107
|
-
export type Authorizer = Route['authorizer'];
|
|
108
|
-
export type HttpMethod = Route['method'];
|
|
109
|
-
export type RoutePath = Route['path'];
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### 3. Server Manifest (`manifest/server.ts`)
|
|
113
|
-
|
|
114
|
-
Contains server app info and route metadata for documentation/type derivation:
|
|
115
|
-
|
|
116
|
-
```typescript
|
|
117
|
-
export const manifest = {
|
|
118
|
-
app: {
|
|
119
|
-
handler: '.gkm/server/app.ts',
|
|
120
|
-
endpoints: '.gkm/server/endpoints.ts',
|
|
121
|
-
},
|
|
122
|
-
routes: [
|
|
123
|
-
{
|
|
124
|
-
path: '/users',
|
|
125
|
-
method: 'GET',
|
|
126
|
-
authorizer: 'jwt',
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
path: '/users',
|
|
130
|
-
method: 'POST',
|
|
131
|
-
authorizer: 'jwt',
|
|
132
|
-
},
|
|
133
|
-
],
|
|
134
|
-
subscribers: [
|
|
135
|
-
{
|
|
136
|
-
name: 'orderCreated',
|
|
137
|
-
subscribedEvents: ['order.created'],
|
|
138
|
-
},
|
|
139
|
-
],
|
|
140
|
-
} as const;
|
|
141
|
-
|
|
142
|
-
// Derived types
|
|
143
|
-
export type Route = (typeof manifest.routes)[number];
|
|
144
|
-
export type Subscriber = (typeof manifest.subscribers)[number];
|
|
145
|
-
|
|
146
|
-
// Useful union types
|
|
147
|
-
export type Authorizer = Route['authorizer'];
|
|
148
|
-
export type HttpMethod = Route['method'];
|
|
149
|
-
export type RoutePath = Route['path'];
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
## Implementation Details
|
|
153
|
-
|
|
154
|
-
### Changes to `manifests.ts`
|
|
155
|
-
|
|
156
|
-
```typescript
|
|
157
|
-
export async function generateManifests(
|
|
158
|
-
outputDir: string,
|
|
159
|
-
provider: 'aws' | 'server',
|
|
160
|
-
routes: RouteInfo[],
|
|
161
|
-
functions: FunctionInfo[],
|
|
162
|
-
crons: CronInfo[],
|
|
163
|
-
subscribers: SubscriberInfo[],
|
|
164
|
-
): Promise<void> {
|
|
165
|
-
const manifestDir = join(outputDir, 'manifest');
|
|
166
|
-
await mkdir(manifestDir, { recursive: true });
|
|
167
|
-
|
|
168
|
-
if (provider === 'aws') {
|
|
169
|
-
await generateAwsManifest(manifestDir, routes, functions, crons, subscribers);
|
|
170
|
-
} else {
|
|
171
|
-
await generateServerManifest(manifestDir, routes, subscribers);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
async function generateAwsManifest(
|
|
176
|
-
manifestDir: string,
|
|
177
|
-
routes: RouteInfo[],
|
|
178
|
-
functions: FunctionInfo[],
|
|
179
|
-
crons: CronInfo[],
|
|
180
|
-
subscribers: SubscriberInfo[],
|
|
181
|
-
): Promise<void> {
|
|
182
|
-
// Filter out 'ALL' method routes (server-specific)
|
|
183
|
-
const awsRoutes = routes.filter(r => r.method !== 'ALL');
|
|
184
|
-
|
|
185
|
-
const content = `export const manifest = {
|
|
186
|
-
routes: ${JSON.stringify(awsRoutes, null, 2)},
|
|
187
|
-
functions: ${JSON.stringify(functions, null, 2)},
|
|
188
|
-
crons: ${JSON.stringify(crons, null, 2)},
|
|
189
|
-
subscribers: ${JSON.stringify(subscribers, null, 2)},
|
|
190
|
-
} as const;
|
|
191
|
-
|
|
192
|
-
// Derived types
|
|
193
|
-
export type Route = (typeof manifest.routes)[number];
|
|
194
|
-
export type Function = (typeof manifest.functions)[number];
|
|
195
|
-
export type Cron = (typeof manifest.crons)[number];
|
|
196
|
-
export type Subscriber = (typeof manifest.subscribers)[number];
|
|
197
|
-
|
|
198
|
-
// Useful union types
|
|
199
|
-
export type Authorizer = Route['authorizer'];
|
|
200
|
-
export type HttpMethod = Route['method'];
|
|
201
|
-
export type RoutePath = Route['path'];
|
|
202
|
-
`;
|
|
203
|
-
|
|
204
|
-
await writeFile(join(manifestDir, 'aws.ts'), content);
|
|
205
|
-
}
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### Changes to Build Flow
|
|
209
|
-
|
|
210
|
-
Currently `buildCommand` aggregates all providers into one manifest. Change to:
|
|
211
|
-
|
|
212
|
-
1. Generate per-provider manifests during each provider's build
|
|
213
|
-
2. Remove aggregation step
|
|
214
|
-
3. Each provider generates its own TypeScript manifest file
|
|
215
|
-
|
|
216
|
-
```typescript
|
|
217
|
-
async function buildForProvider(
|
|
218
|
-
provider: LegacyProvider,
|
|
219
|
-
// ...
|
|
220
|
-
): Promise<BuildResult> {
|
|
221
|
-
// ... existing build logic ...
|
|
222
|
-
|
|
223
|
-
// Generate provider-specific manifest
|
|
224
|
-
const manifestProvider = provider.startsWith('aws') ? 'aws' : 'server';
|
|
225
|
-
await generateManifests(
|
|
226
|
-
rootOutputDir,
|
|
227
|
-
manifestProvider,
|
|
228
|
-
routes,
|
|
229
|
-
functionInfos,
|
|
230
|
-
cronInfos,
|
|
231
|
-
subscriberInfos,
|
|
232
|
-
);
|
|
233
|
-
|
|
234
|
-
return { routes, functions: functionInfos, crons: cronInfos, subscribers: subscriberInfos };
|
|
235
|
-
}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
## Usage Examples
|
|
239
|
-
|
|
240
|
-
### AWS CDK / SST Integration
|
|
241
|
-
|
|
242
|
-
```typescript
|
|
243
|
-
import { manifest, type Route, type Authorizer } from './.gkm/manifest/aws';
|
|
244
|
-
|
|
245
|
-
// Type-safe iteration over routes
|
|
246
|
-
for (const route of manifest.routes) {
|
|
247
|
-
new ApiGatewayRoute(this, route.path, {
|
|
248
|
-
method: route.method,
|
|
249
|
-
handler: route.handler,
|
|
250
|
-
authorizer: getAuthorizer(route.authorizer),
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
// Use derived types
|
|
255
|
-
function getAuthorizer(name: Authorizer): IAuthorizer {
|
|
256
|
-
switch (name) {
|
|
257
|
-
case 'jwt':
|
|
258
|
-
return jwtAuthorizer;
|
|
259
|
-
case 'apiKey':
|
|
260
|
-
return apiKeyAuthorizer;
|
|
261
|
-
case 'none':
|
|
262
|
-
return undefined;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
### Type Checking Authorizer Values
|
|
268
|
-
|
|
269
|
-
```typescript
|
|
270
|
-
import type { Authorizer } from './.gkm/manifest/aws';
|
|
271
|
-
|
|
272
|
-
// Authorizer is a union type of all authorizer values
|
|
273
|
-
// e.g., 'jwt' | 'apiKey' | 'none'
|
|
274
|
-
const authorizer: Authorizer = 'jwt'; // ✓
|
|
275
|
-
const invalid: Authorizer = 'invalid'; // ✗ Type error
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
## Migration Notes
|
|
279
|
-
|
|
280
|
-
1. **Breaking change**: Consumers using `manifest.json` need to switch to TypeScript imports
|
|
281
|
-
2. **Benefit**: Full TypeScript support with derived types
|
|
282
|
-
|
|
283
|
-
## Design Decisions
|
|
284
|
-
|
|
285
|
-
1. **No backward compatibility**: `manifest.json` will not be generated
|
|
286
|
-
2. **Server manifest includes route metadata**: For documentation and type derivation
|
|
287
|
-
3. **No re-export index**: Each manifest is imported directly
|
package/examples/cron-example.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { c } from '@geekmidas/constructs/crons';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Example cron that generates a daily report at 9 AM UTC
|
|
5
|
-
*/
|
|
6
|
-
export const dailyReport = c
|
|
7
|
-
.schedule('cron(0 9 * * ? *)')
|
|
8
|
-
.timeout(600000) // 10 minutes
|
|
9
|
-
.handle(async ({ logger }) => {
|
|
10
|
-
logger.info('Generating daily report');
|
|
11
|
-
|
|
12
|
-
const reportDate = new Date().toISOString().split('T')[0];
|
|
13
|
-
|
|
14
|
-
// Generate report logic here
|
|
15
|
-
const reportData = {
|
|
16
|
-
date: reportDate,
|
|
17
|
-
totalOrders: 150,
|
|
18
|
-
totalRevenue: 12500.0,
|
|
19
|
-
topProducts: [
|
|
20
|
-
{ id: 'prod-1', name: 'Widget A', sales: 45 },
|
|
21
|
-
{ id: 'prod-2', name: 'Widget B', sales: 32 },
|
|
22
|
-
],
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
logger.info(reportData, 'Daily report generated');
|
|
26
|
-
|
|
27
|
-
return reportData;
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Example cron that runs every hour
|
|
32
|
-
*/
|
|
33
|
-
export const hourlyCleanup = c
|
|
34
|
-
.schedule('rate(1 hour)')
|
|
35
|
-
.timeout(300000) // 5 minutes
|
|
36
|
-
.handle(async ({ logger }) => {
|
|
37
|
-
logger.info('Running hourly cleanup');
|
|
38
|
-
|
|
39
|
-
// Cleanup logic here
|
|
40
|
-
const itemsCleaned = 42;
|
|
41
|
-
|
|
42
|
-
logger.info(`Cleaned ${itemsCleaned} items`);
|
|
43
|
-
|
|
44
|
-
return { itemsCleaned };
|
|
45
|
-
});
|
package/examples/env.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { EnvironmentParser } from '@geekmidas/envkit';
|
|
2
|
-
|
|
3
|
-
export const envParser = new EnvironmentParser(process.env)
|
|
4
|
-
.create((get) => ({
|
|
5
|
-
// Database configuration
|
|
6
|
-
database: {
|
|
7
|
-
url: get('DATABASE_URL').string().url(),
|
|
8
|
-
maxConnections: get('DB_MAX_CONNECTIONS')
|
|
9
|
-
.string()
|
|
10
|
-
.transform(Number)
|
|
11
|
-
.default('10'),
|
|
12
|
-
},
|
|
13
|
-
|
|
14
|
-
// API configuration
|
|
15
|
-
api: {
|
|
16
|
-
port: get('PORT').string().transform(Number).default('3000'),
|
|
17
|
-
cors: {
|
|
18
|
-
origin: get('CORS_ORIGIN').string().default('*'),
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
// AWS configuration (for Lambda deployments)
|
|
23
|
-
aws: {
|
|
24
|
-
region: get('AWS_REGION').string().default('us-east-1'),
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
// Application settings
|
|
28
|
-
app: {
|
|
29
|
-
environment: get('NODE_ENV').string().default('development'),
|
|
30
|
-
logLevel: get('LOG_LEVEL').string().default('info'),
|
|
31
|
-
},
|
|
32
|
-
}))
|
|
33
|
-
.parse();
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { f } from '@geekmidas/constructs/functions';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Example function that processes an order
|
|
6
|
-
*/
|
|
7
|
-
export const processOrder = f
|
|
8
|
-
.input(
|
|
9
|
-
z.object({
|
|
10
|
-
orderId: z.string(),
|
|
11
|
-
items: z.array(
|
|
12
|
-
z.object({
|
|
13
|
-
id: z.string(),
|
|
14
|
-
quantity: z.number().int().positive(),
|
|
15
|
-
}),
|
|
16
|
-
),
|
|
17
|
-
}),
|
|
18
|
-
)
|
|
19
|
-
.output(
|
|
20
|
-
z.object({
|
|
21
|
-
orderId: z.string(),
|
|
22
|
-
status: z.enum(['processing', 'completed', 'failed']),
|
|
23
|
-
processedAt: z.string().datetime(),
|
|
24
|
-
}),
|
|
25
|
-
)
|
|
26
|
-
.timeout(300000) // 5 minutes
|
|
27
|
-
.handle(async ({ input, logger }) => {
|
|
28
|
-
logger.info(`Processing order ${input.orderId}`);
|
|
29
|
-
|
|
30
|
-
// Process order logic here
|
|
31
|
-
for (const item of input.items) {
|
|
32
|
-
logger.info(`Processing item ${item.id}, quantity: ${item.quantity}`);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return {
|
|
36
|
-
orderId: input.orderId,
|
|
37
|
-
status: 'completed' as const,
|
|
38
|
-
processedAt: new Date().toISOString(),
|
|
39
|
-
};
|
|
40
|
-
});
|
package/examples/gkm.config.json
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"routes": "./src/endpoints/**/*.ts",
|
|
3
|
-
"functions": "./src/functions/**/*.ts",
|
|
4
|
-
"crons": "./src/crons/**/*.ts",
|
|
5
|
-
"envParser": "./src/env.ts#envParser",
|
|
6
|
-
"logger": "./src/logger.ts#logger",
|
|
7
|
-
"providers": {
|
|
8
|
-
"aws": {
|
|
9
|
-
"apiGateway": {
|
|
10
|
-
"v1": false,
|
|
11
|
-
"v2": true
|
|
12
|
-
},
|
|
13
|
-
"lambda": {
|
|
14
|
-
"functions": true,
|
|
15
|
-
"crons": true
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"server": {
|
|
19
|
-
"enableOpenApi": true
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
package/examples/gkm.config.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from '@geekmidas/cli/config';
|
|
2
|
-
|
|
3
|
-
export default defineConfig({
|
|
4
|
-
// Glob pattern to find endpoint files
|
|
5
|
-
routes: 'src/routes/**/*.ts',
|
|
6
|
-
|
|
7
|
-
// Environment parser configuration
|
|
8
|
-
// Format: path#exportName (if no #exportName, treats as default import)
|
|
9
|
-
envParser: './src/env.ts#envParser',
|
|
10
|
-
|
|
11
|
-
// Logger configuration
|
|
12
|
-
// Format: path#exportName (if no #exportName, treats as default import)
|
|
13
|
-
logger: './src/logger.ts#logger',
|
|
14
|
-
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"routes": "./src/endpoints/**/*.ts",
|
|
3
|
-
"functions": "./src/functions/**/*.ts",
|
|
4
|
-
"crons": "./src/crons/**/*.ts",
|
|
5
|
-
"envParser": "./src/env.ts#envParser",
|
|
6
|
-
"logger": "./src/logger.ts#logger",
|
|
7
|
-
"providers": {
|
|
8
|
-
"aws": {
|
|
9
|
-
"apiGateway": {
|
|
10
|
-
"v2": {
|
|
11
|
-
"enabled": true,
|
|
12
|
-
"outputDir": "dist/api-gateway"
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"lambda": {
|
|
16
|
-
"functions": {
|
|
17
|
-
"enabled": true,
|
|
18
|
-
"outputDir": "dist/functions"
|
|
19
|
-
},
|
|
20
|
-
"crons": {
|
|
21
|
-
"enabled": true,
|
|
22
|
-
"outputDir": "dist/crons"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
package/examples/logger.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ConsoleLogger } from '@geekmidas/logger/console';
|
|
2
|
-
|
|
3
|
-
// Create a console logger instance
|
|
4
|
-
export const logger = new ConsoleLogger({
|
|
5
|
-
level: process.env.LOG_LEVEL || 'info',
|
|
6
|
-
pretty: process.env.NODE_ENV !== 'production',
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
// You can also export a default logger
|
|
10
|
-
export default logger;
|
package/scripts/sync-versions.ts
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env tsx
|
|
2
|
-
/**
|
|
3
|
-
* Sync package versions from monorepo package.json files
|
|
4
|
-
*
|
|
5
|
-
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { readFileSync, writeFileSync } from 'node:fs';
|
|
9
|
-
import { dirname, join } from 'node:path';
|
|
10
|
-
import { fileURLToPath } from 'node:url';
|
|
11
|
-
|
|
12
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
13
|
-
const packagesDir = join(__dirname, '../../'); // packages/cli/scripts -> packages/
|
|
14
|
-
|
|
15
|
-
const PACKAGES = [
|
|
16
|
-
'audit',
|
|
17
|
-
'auth',
|
|
18
|
-
'cache',
|
|
19
|
-
'client',
|
|
20
|
-
'cloud',
|
|
21
|
-
'constructs',
|
|
22
|
-
'db',
|
|
23
|
-
'emailkit',
|
|
24
|
-
'envkit',
|
|
25
|
-
'errors',
|
|
26
|
-
'events',
|
|
27
|
-
'logger',
|
|
28
|
-
'rate-limit',
|
|
29
|
-
'schema',
|
|
30
|
-
'services',
|
|
31
|
-
'storage',
|
|
32
|
-
'studio',
|
|
33
|
-
'telescope',
|
|
34
|
-
'testkit',
|
|
35
|
-
] as const;
|
|
36
|
-
|
|
37
|
-
function getPackageVersion(pkgName: string): string {
|
|
38
|
-
const pkgJsonPath = join(packagesDir, pkgName, 'package.json');
|
|
39
|
-
try {
|
|
40
|
-
const pkgJson = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'));
|
|
41
|
-
return pkgJson.version;
|
|
42
|
-
} catch (error) {
|
|
43
|
-
console.error(`Failed to read version for ${pkgName}:`, error);
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function generateVersionsFile(): string {
|
|
49
|
-
const versions: Record<string, string> = {};
|
|
50
|
-
|
|
51
|
-
for (const pkg of PACKAGES) {
|
|
52
|
-
const version = getPackageVersion(pkg);
|
|
53
|
-
versions[`@geekmidas/${pkg}`] = `~${version}`;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const content = `import { createRequire } from 'node:module';
|
|
57
|
-
|
|
58
|
-
const require = createRequire(import.meta.url);
|
|
59
|
-
|
|
60
|
-
// Load package.json - handles both bundled (flat dist/) and source (nested src/init/)
|
|
61
|
-
function loadPackageJson(): { version: string } {
|
|
62
|
-
try {
|
|
63
|
-
// Try flat dist path first (../package.json from dist/)
|
|
64
|
-
return require('../package.json');
|
|
65
|
-
} catch {
|
|
66
|
-
// Fall back to nested source path (../../package.json from src/init/)
|
|
67
|
-
return require('../../package.json');
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const pkg = loadPackageJson();
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* CLI version resolved from package.json at runtime
|
|
75
|
-
*/
|
|
76
|
-
export const CLI_VERSION = \`~\${pkg.version}\`;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Package versions for @geekmidas packages
|
|
80
|
-
*
|
|
81
|
-
* AUTO-GENERATED (except CLI) - Do not edit manually
|
|
82
|
-
* Run: pnpm --filter @geekmidas/cli sync-versions
|
|
83
|
-
*/
|
|
84
|
-
export const GEEKMIDAS_VERSIONS = {
|
|
85
|
-
${Object.entries(versions)
|
|
86
|
-
.map(([pkg, version]) => `\t'${pkg}': '${version}',`)
|
|
87
|
-
.join('\n')}
|
|
88
|
-
'@geekmidas/cli': CLI_VERSION,
|
|
89
|
-
} as const;
|
|
90
|
-
|
|
91
|
-
export type GeekmidasPackage = keyof typeof GEEKMIDAS_VERSIONS;
|
|
92
|
-
`;
|
|
93
|
-
|
|
94
|
-
return content;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Main
|
|
98
|
-
const versionsPath = join(__dirname, '../src/init/versions.ts');
|
|
99
|
-
const content = generateVersionsFile();
|
|
100
|
-
writeFileSync(versionsPath, content);
|
|
101
|
-
console.log('✓ Updated packages/cli/src/init/versions.ts');
|
|
102
|
-
|
|
103
|
-
// Show versions
|
|
104
|
-
console.log('\nPackage versions:');
|
|
105
|
-
for (const pkg of PACKAGES) {
|
|
106
|
-
const version = getPackageVersion(pkg);
|
|
107
|
-
console.log(` @geekmidas/${pkg}: ${version}`);
|
|
108
|
-
}
|