@geekmidas/constructs 10.0.0-alpha.12 → 10.0.0-alpha.14
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/dist/{Construct-BD5neF7w.mjs → Construct-BeYVu_QF.mjs} +30 -28
- package/dist/Construct-BeYVu_QF.mjs.map +1 -0
- package/dist/{Construct-Ct8nalEi.d.mts → Construct-DfbwIntp.d.cts} +10 -12
- package/dist/Construct-DfbwIntp.d.cts.map +1 -0
- package/dist/{Construct-CyS3RpTL.cjs → Construct-DqdlARxq.cjs} +50 -42
- package/dist/{Construct-BD5neF7w.mjs.map → Construct-DqdlARxq.cjs.map} +1 -1
- package/dist/{Construct-C0ijr2qp.d.cts → Construct-l5aOn_jv.d.mts} +9 -11
- package/dist/Construct-l5aOn_jv.d.mts.map +1 -0
- package/dist/{Cron-DmQ8vQ4b.d.cts → Cron-DKqnnTdH.d.cts} +4 -5
- package/dist/Cron-DKqnnTdH.d.cts.map +1 -0
- package/dist/{Cron-dh4rUgib.d.mts → Cron-SyqS5oWJ.d.mts} +5 -6
- package/dist/Cron-SyqS5oWJ.d.mts.map +1 -0
- package/dist/{CronBuilder-Da0C0edR.cjs → CronBuilder-BdnI6lxF.cjs} +24 -25
- package/dist/CronBuilder-BdnI6lxF.cjs.map +1 -0
- package/dist/{CronBuilder-BquXDbDI.d.cts → CronBuilder-CRGnDfTq.d.mts} +7 -10
- package/dist/CronBuilder-CRGnDfTq.d.mts.map +1 -0
- package/dist/{CronBuilder-CYKT5RiO.mjs → CronBuilder-D_0HNBTr.mjs} +14 -15
- package/dist/CronBuilder-D_0HNBTr.mjs.map +1 -0
- package/dist/{CronBuilder-CGgY2080.d.mts → CronBuilder-Df1q9PNy.d.cts} +7 -10
- package/dist/CronBuilder-Df1q9PNy.d.cts.map +1 -0
- package/dist/{Endpoint-DcWXE-SZ.cjs → Endpoint-BpZHtJ2W.cjs} +109 -130
- package/dist/Endpoint-BpZHtJ2W.cjs.map +1 -0
- package/dist/{Endpoint-BjWKinFA.d.mts → Endpoint-C6yyHpRS.d.cts} +14 -65
- package/dist/Endpoint-C6yyHpRS.d.cts.map +1 -0
- package/dist/{Endpoint-dav89W6-.d.cts → Endpoint-DuT4TEEq.d.mts} +14 -65
- package/dist/Endpoint-DuT4TEEq.d.mts.map +1 -0
- package/dist/{Endpoint-DCQPMdUX.mjs → Endpoint-ONsly_dq.mjs} +87 -108
- package/dist/Endpoint-ONsly_dq.mjs.map +1 -0
- package/dist/{EndpointFactory-CjV8F_lJ.mjs → EndpointFactory-Bm3aKRdV.mjs} +20 -29
- package/dist/EndpointFactory-Bm3aKRdV.mjs.map +1 -0
- package/dist/{EndpointFactory-CdWB7wPw.cjs → EndpointFactory-CLvWuHyt.cjs} +57 -66
- package/dist/EndpointFactory-CLvWuHyt.cjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-DtL9j19R.cjs → HonoEndpointAdaptor-92zavCsV.cjs} +48 -52
- package/dist/HonoEndpointAdaptor-92zavCsV.cjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-P1ahhZHu.mjs → HonoEndpointAdaptor-yYaU7jVJ.mjs} +40 -47
- package/dist/{HonoEndpointAdaptor-DtL9j19R.cjs.map → HonoEndpointAdaptor-yYaU7jVJ.mjs.map} +1 -1
- package/dist/{Queue-D7ZuwBhy.d.cts → Queue-D9X6OoON.d.mts} +10 -11
- package/dist/Queue-D9X6OoON.d.mts.map +1 -0
- package/dist/{Queue-gVGfi2Yk.d.mts → Queue-DYPB2KWL.d.cts} +10 -11
- package/dist/Queue-DYPB2KWL.d.cts.map +1 -0
- package/dist/{Subscriber-2mEi0ImH.d.cts → Subscriber-C4heaAyO.d.mts} +7 -8
- package/dist/Subscriber-C4heaAyO.d.mts.map +1 -0
- package/dist/{Subscriber-xTJ9ayPN.d.mts → Subscriber-CotDUELC.d.cts} +7 -8
- package/dist/Subscriber-CotDUELC.d.cts.map +1 -0
- package/dist/{SubscriberBuilder-Dptmo-1A.d.mts → SubscriberBuilder-BEv0eoHy.d.cts} +8 -11
- package/dist/SubscriberBuilder-BEv0eoHy.d.cts.map +1 -0
- package/dist/{SubscriberBuilder-4OPehf2R.cjs → SubscriberBuilder-C0ZEtGDI.cjs} +28 -23
- package/dist/SubscriberBuilder-C0ZEtGDI.cjs.map +1 -0
- package/dist/{SubscriberBuilder-BjkbeT9l.mjs → SubscriberBuilder-h7B_cHMr.mjs} +16 -10
- package/dist/SubscriberBuilder-h7B_cHMr.mjs.map +1 -0
- package/dist/{SubscriberBuilder-waNhzjSM.d.cts → SubscriberBuilder-tyH5yTk5.d.mts} +8 -11
- package/dist/SubscriberBuilder-tyH5yTk5.d.mts.map +1 -0
- package/dist/{Topic-19QeHBIR.d.cts → Topic-DEVGo0Dm.d.cts} +5 -7
- package/dist/Topic-DEVGo0Dm.d.cts.map +1 -0
- package/dist/{Topic-DuFeqkBh.d.mts → Topic-zk_6Gthr.d.mts} +6 -8
- package/dist/Topic-zk_6Gthr.d.mts.map +1 -0
- package/dist/adaptors/aws.cjs +87 -106
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +14 -27
- package/dist/adaptors/aws.d.cts.map +1 -1
- package/dist/adaptors/aws.d.mts +16 -29
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +60 -81
- package/dist/adaptors/aws.mjs.map +1 -1
- package/dist/adaptors/hono.cjs +3 -10
- package/dist/adaptors/hono.d.cts +5 -13
- package/dist/adaptors/hono.d.cts.map +1 -1
- package/dist/adaptors/hono.d.mts +7 -15
- package/dist/adaptors/hono.d.mts.map +1 -1
- package/dist/adaptors/hono.mjs +2 -10
- package/dist/adaptors/testing.cjs +60 -73
- package/dist/adaptors/testing.cjs.map +1 -1
- package/dist/adaptors/testing.d.cts +17 -28
- package/dist/adaptors/testing.d.cts.map +1 -1
- package/dist/adaptors/testing.d.mts +18 -29
- package/dist/adaptors/testing.d.mts.map +1 -1
- package/dist/adaptors/testing.mjs +42 -55
- package/dist/adaptors/testing.mjs.map +1 -1
- package/dist/auth.cjs +39 -14
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.d.cts +5 -9
- package/dist/auth.d.cts.map +1 -1
- package/dist/auth.d.mts +5 -9
- package/dist/auth.d.mts.map +1 -1
- package/dist/auth.mjs +30 -5
- package/dist/auth.mjs.map +1 -1
- package/dist/cache.cjs +68 -2
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.cts +43 -3
- package/dist/cache.d.cts.map +1 -0
- package/dist/cache.d.mts +43 -3
- package/dist/cache.d.mts.map +1 -0
- package/dist/cache.mjs +67 -2
- package/dist/cache.mjs.map +1 -0
- package/dist/{clone-DblgEZZa.mjs → clone-EKNovYHu.mjs} +3 -3
- package/dist/clone-EKNovYHu.mjs.map +1 -0
- package/dist/{clone-Dy0cR2SZ.cjs → clone-UGJpvQnL.cjs} +7 -8
- package/dist/clone-UGJpvQnL.cjs.map +1 -0
- package/dist/{construct-interface-g5GM5pwR.d.mts → construct-interface-DPlxfpoS.d.mts} +3 -6
- package/dist/construct-interface-DPlxfpoS.d.mts.map +1 -0
- package/dist/{construct-interface-D9d4Gm4p.d.cts → construct-interface-DgXTJcOD.d.cts} +3 -6
- package/dist/construct-interface-DgXTJcOD.d.cts.map +1 -0
- package/dist/construct-interface.cjs +87 -7
- package/dist/construct-interface.cjs.map +1 -0
- package/dist/construct-interface.d.cts +1 -1
- package/dist/construct-interface.d.mts +1 -1
- package/dist/construct-interface.mjs +81 -2
- package/dist/construct-interface.mjs.map +1 -0
- package/dist/credential.cjs +43 -9
- package/dist/credential.cjs.map +1 -1
- package/dist/credential.d.cts +5 -8
- package/dist/credential.d.cts.map +1 -1
- package/dist/credential.d.mts +5 -8
- package/dist/credential.d.mts.map +1 -1
- package/dist/credential.mjs +36 -2
- package/dist/credential.mjs.map +1 -1
- package/dist/crons/index.cjs +4 -7
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +5 -11
- package/dist/crons/index.d.cts.map +1 -1
- package/dist/crons/index.d.mts +5 -11
- package/dist/crons/index.d.mts.map +1 -1
- package/dist/crons/index.mjs +3 -7
- package/dist/crons/index.mjs.map +1 -1
- package/dist/database/kysely.cjs +28 -14
- package/dist/database/kysely.cjs.map +1 -1
- package/dist/database/kysely.d.cts +5 -8
- package/dist/database/kysely.d.cts.map +1 -1
- package/dist/database/kysely.d.mts +6 -9
- package/dist/database/kysely.d.mts.map +1 -1
- package/dist/database/kysely.mjs +16 -4
- package/dist/database/kysely.mjs.map +1 -1
- package/dist/email.cjs +25 -12
- package/dist/email.cjs.map +1 -1
- package/dist/email.d.cts +3 -7
- package/dist/email.d.cts.map +1 -1
- package/dist/email.d.mts +3 -7
- package/dist/email.d.mts.map +1 -1
- package/dist/email.mjs +16 -3
- package/dist/email.mjs.map +1 -1
- package/dist/endpoints/index.cjs +6 -10
- package/dist/endpoints/index.d.cts +3 -7
- package/dist/endpoints/index.d.mts +3 -7
- package/dist/endpoints/index.mjs +5 -10
- package/dist/file-server.cjs +42 -10
- package/dist/file-server.cjs.map +1 -1
- package/dist/file-server.d.cts +6 -10
- package/dist/file-server.d.cts.map +1 -1
- package/dist/file-server.d.mts +6 -10
- package/dist/file-server.d.mts.map +1 -1
- package/dist/file-server.mjs +34 -2
- package/dist/file-server.mjs.map +1 -1
- package/dist/functions/index.cjs +3 -6
- package/dist/functions/index.d.cts +2 -4
- package/dist/functions/index.d.mts +2 -4
- package/dist/functions/index.mjs +2 -6
- package/dist/{functions-i_la-N5r.cjs → functions-B6qCvfmy.cjs} +298 -252
- package/dist/functions-B6qCvfmy.cjs.map +1 -0
- package/dist/{functions-14lpEFL4.mjs → functions-C53GW2eQ.mjs} +272 -229
- package/dist/functions-C53GW2eQ.mjs.map +1 -0
- package/dist/{index-BknhM6Ux.d.mts → index-B2urf3YI.d.cts} +4 -9
- package/dist/index-B2urf3YI.d.cts.map +1 -0
- package/dist/{index-Bd5FqCoe.d.cts → index-BPSZ_Lp_.d.cts} +9 -38
- package/dist/index-BPSZ_Lp_.d.cts.map +1 -0
- package/dist/{index-lAO9egTb.d.mts → index-BoZ-iisU.d.mts} +12 -41
- package/dist/index-BoZ-iisU.d.mts.map +1 -0
- package/dist/{index-_ajboYxK.d.mts → index-CdaU--_B.d.cts} +10 -16
- package/dist/index-CdaU--_B.d.cts.map +1 -0
- package/dist/index-CeEtxDmK.d.cts +79 -0
- package/dist/index-CeEtxDmK.d.cts.map +1 -0
- package/dist/index-CeEtxDmK.d.mts +79 -0
- package/dist/index-CeEtxDmK.d.mts.map +1 -0
- package/dist/{index-CBSfrowv.d.cts → index-DMCDvnsM.d.mts} +4 -9
- package/dist/index-DMCDvnsM.d.mts.map +1 -0
- package/dist/{index-D24Xm79M.d.cts → index-PQRWOQj4.d.mts} +10 -16
- package/dist/index-PQRWOQj4.d.mts.map +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +4 -4
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +2 -3
- package/dist/{lazyAccessors-BoJN3SMd.mjs → lazyAccessors-BHtcqgz2.mjs} +22 -25
- package/dist/lazyAccessors-BHtcqgz2.mjs.map +1 -0
- package/dist/{lazyAccessors-e3j2oE2m.cjs → lazyAccessors-Dx9NLwJZ.cjs} +72 -76
- package/dist/lazyAccessors-Dx9NLwJZ.cjs.map +1 -0
- package/dist/object-storage.cjs +18 -10
- package/dist/object-storage.cjs.map +1 -1
- package/dist/object-storage.d.cts +3 -7
- package/dist/object-storage.d.cts.map +1 -1
- package/dist/object-storage.d.mts +3 -7
- package/dist/object-storage.d.mts.map +1 -1
- package/dist/object-storage.mjs +11 -3
- package/dist/object-storage.mjs.map +1 -1
- package/dist/{processAudits-Dmts9H_b.mjs → processAudits-BpRlPQMW.mjs} +16 -19
- package/dist/processAudits-BpRlPQMW.mjs.map +1 -0
- package/dist/{processAudits-CGqttuXm.cjs → processAudits-D_2W5x8k.cjs} +26 -30
- package/dist/processAudits-D_2W5x8k.cjs.map +1 -0
- package/dist/queue/index.cjs +25 -21
- package/dist/queue/index.cjs.map +1 -1
- package/dist/queue/index.d.cts +8 -15
- package/dist/queue/index.d.cts.map +1 -1
- package/dist/queue/index.d.mts +8 -15
- package/dist/queue/index.d.mts.map +1 -1
- package/dist/queue/index.mjs +15 -11
- package/dist/queue/index.mjs.map +1 -1
- package/dist/rest-api.cjs +22 -18
- package/dist/rest-api.cjs.map +1 -1
- package/dist/rest-api.d.cts +15 -20
- package/dist/rest-api.d.cts.map +1 -1
- package/dist/rest-api.d.mts +9 -14
- package/dist/rest-api.d.mts.map +1 -1
- package/dist/rest-api.mjs +14 -10
- package/dist/rest-api.mjs.map +1 -1
- package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
- package/dist/site.cjs +31 -7
- package/dist/site.cjs.map +1 -1
- package/dist/site.d.cts +3 -7
- package/dist/site.d.cts.map +1 -1
- package/dist/site.d.mts +3 -7
- package/dist/site.d.mts.map +1 -1
- package/dist/site.mjs +27 -3
- package/dist/site.mjs.map +1 -1
- package/dist/subscribers/index.cjs +3 -6
- package/dist/subscribers/index.d.cts +2 -5
- package/dist/subscribers/index.d.mts +2 -5
- package/dist/subscribers/index.mjs +2 -6
- package/dist/surfaceEnv-CNimK76p.cjs +56 -0
- package/dist/surfaceEnv-CNimK76p.cjs.map +1 -0
- package/dist/surfaceEnv-wMT5QzgZ.mjs +45 -0
- package/dist/surfaceEnv-wMT5QzgZ.mjs.map +1 -0
- package/dist/{telemetry-C3L0iS28.d.cts → telemetry-DGcFlVpB.d.cts} +2 -5
- package/dist/telemetry-DGcFlVpB.d.cts.map +1 -0
- package/dist/{telemetry-D7bVFLGi.d.mts → telemetry-DGcFlVpB.d.mts} +2 -5
- package/dist/telemetry-DGcFlVpB.d.mts.map +1 -0
- package/dist/topic/index.cjs +18 -20
- package/dist/topic/index.cjs.map +1 -1
- package/dist/topic/index.d.cts +3 -4
- package/dist/topic/index.d.mts +3 -4
- package/dist/topic/index.mjs +8 -10
- package/dist/topic/index.mjs.map +1 -1
- package/dist/{types-BlAkSuGI.d.cts → types-DMuSQeLL.d.cts} +3 -5
- package/dist/types-DMuSQeLL.d.cts.map +1 -0
- package/dist/{types-aKksMEWL.d.mts → types-DMuSQeLL.d.mts} +3 -5
- package/dist/types-DMuSQeLL.d.mts.map +1 -0
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.mjs +1 -0
- package/dist/worker.cjs +13 -14
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.cts +21 -27
- package/dist/worker.d.cts.map +1 -1
- package/dist/worker.d.mts +14 -19
- package/dist/worker.d.mts.map +1 -1
- package/dist/worker.mjs +8 -9
- package/dist/worker.mjs.map +1 -1
- package/package.json +30 -30
- package/dist/Construct-C0ijr2qp.d.cts.map +0 -1
- package/dist/Construct-Ct8nalEi.d.mts.map +0 -1
- package/dist/Construct-CyS3RpTL.cjs.map +0 -1
- package/dist/Cron-DmQ8vQ4b.d.cts.map +0 -1
- package/dist/Cron-dh4rUgib.d.mts.map +0 -1
- package/dist/CronBuilder-BquXDbDI.d.cts.map +0 -1
- package/dist/CronBuilder-CGgY2080.d.mts.map +0 -1
- package/dist/CronBuilder-CYKT5RiO.mjs.map +0 -1
- package/dist/CronBuilder-Da0C0edR.cjs.map +0 -1
- package/dist/Endpoint-BjWKinFA.d.mts.map +0 -1
- package/dist/Endpoint-DCQPMdUX.mjs.map +0 -1
- package/dist/Endpoint-DcWXE-SZ.cjs.map +0 -1
- package/dist/Endpoint-dav89W6-.d.cts.map +0 -1
- package/dist/EndpointFactory-CdWB7wPw.cjs.map +0 -1
- package/dist/EndpointFactory-CjV8F_lJ.mjs.map +0 -1
- package/dist/HonoEndpointAdaptor-P1ahhZHu.mjs.map +0 -1
- package/dist/Queue-D7ZuwBhy.d.cts.map +0 -1
- package/dist/Queue-gVGfi2Yk.d.mts.map +0 -1
- package/dist/Subscriber-2mEi0ImH.d.cts.map +0 -1
- package/dist/Subscriber-xTJ9ayPN.d.mts.map +0 -1
- package/dist/SubscriberBuilder-4OPehf2R.cjs.map +0 -1
- package/dist/SubscriberBuilder-BjkbeT9l.mjs.map +0 -1
- package/dist/SubscriberBuilder-Dptmo-1A.d.mts.map +0 -1
- package/dist/SubscriberBuilder-waNhzjSM.d.cts.map +0 -1
- package/dist/Topic-19QeHBIR.d.cts.map +0 -1
- package/dist/Topic-DuFeqkBh.d.mts.map +0 -1
- package/dist/cache-0ANvRQnD.mjs +0 -51
- package/dist/cache-0ANvRQnD.mjs.map +0 -1
- package/dist/cache-3WSvAulx.cjs +0 -57
- package/dist/cache-3WSvAulx.cjs.map +0 -1
- package/dist/cache-BrRz3fEB.d.mts +0 -47
- package/dist/cache-BrRz3fEB.d.mts.map +0 -1
- package/dist/cache-BtZY_tHe.d.cts +0 -47
- package/dist/cache-BtZY_tHe.d.cts.map +0 -1
- package/dist/clone-DblgEZZa.mjs.map +0 -1
- package/dist/clone-Dy0cR2SZ.cjs.map +0 -1
- package/dist/construct-interface-BfjcOD_E.cjs +0 -117
- package/dist/construct-interface-BfjcOD_E.cjs.map +0 -1
- package/dist/construct-interface-D9d4Gm4p.d.cts.map +0 -1
- package/dist/construct-interface-Z4CpS8tK.mjs +0 -81
- package/dist/construct-interface-Z4CpS8tK.mjs.map +0 -1
- package/dist/construct-interface-g5GM5pwR.d.mts.map +0 -1
- package/dist/functions-14lpEFL4.mjs.map +0 -1
- package/dist/functions-i_la-N5r.cjs.map +0 -1
- package/dist/index-Bd5FqCoe.d.cts.map +0 -1
- package/dist/index-BknhM6Ux.d.mts.map +0 -1
- package/dist/index-CBSfrowv.d.cts.map +0 -1
- package/dist/index-D24Xm79M.d.cts.map +0 -1
- package/dist/index-_ajboYxK.d.mts.map +0 -1
- package/dist/index-lAO9egTb.d.mts.map +0 -1
- package/dist/lazyAccessors-BoJN3SMd.mjs.map +0 -1
- package/dist/lazyAccessors-e3j2oE2m.cjs.map +0 -1
- package/dist/processAudits-CGqttuXm.cjs.map +0 -1
- package/dist/processAudits-Dmts9H_b.mjs.map +0 -1
- package/dist/surfaceEnv-BFXEms2f.cjs +0 -39
- package/dist/surfaceEnv-BFXEms2f.cjs.map +0 -1
- package/dist/surfaceEnv-C3Ktahea.mjs +0 -27
- package/dist/surfaceEnv-C3Ktahea.mjs.map +0 -1
- package/dist/telemetry-C3L0iS28.d.cts.map +0 -1
- package/dist/telemetry-D7bVFLGi.d.mts.map +0 -1
- package/dist/types-BlAkSuGI.d.cts.map +0 -1
- package/dist/types-aKksMEWL.d.mts.map +0 -1
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { SnifferEnvironmentParser, sniffWithFireAndForget } from "@geekmidas/envkit/sniffer";
|
|
2
|
-
|
|
3
|
-
//#region rolldown:runtime
|
|
2
|
+
//#region \0rolldown/runtime.js
|
|
4
3
|
var __create = Object.create;
|
|
5
4
|
var __defProp = Object.defineProperty;
|
|
6
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
9
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var
|
|
11
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
12
|
-
};
|
|
9
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
13
10
|
var __copyProps = (to, from, except, desc) => {
|
|
14
11
|
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
15
12
|
key = keys[i];
|
|
@@ -20,14 +17,13 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
20
17
|
}
|
|
21
18
|
return to;
|
|
22
19
|
};
|
|
23
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
|
24
21
|
value: mod,
|
|
25
22
|
enumerable: true
|
|
26
23
|
}) : target, mod));
|
|
27
|
-
|
|
28
24
|
//#endregion
|
|
29
|
-
//#region
|
|
30
|
-
var
|
|
25
|
+
//#region src/Construct.ts
|
|
26
|
+
var import_lodash_compact = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
31
27
|
/**
|
|
32
28
|
* lodash 3.0.1 (Custom Build) <https://lodash.com/>
|
|
33
29
|
* Build: `lodash modularize exports="npm" -o ./`
|
|
@@ -50,7 +46,7 @@ var require_lodash = __commonJS({ "../../node_modules/.pnpm/lodash.compact@3.0.1
|
|
|
50
46
|
* _.compact([0, 1, false, 2, '', 3]);
|
|
51
47
|
* // => [1, 2, 3]
|
|
52
48
|
*/
|
|
53
|
-
function compact
|
|
49
|
+
function compact(array) {
|
|
54
50
|
var index = -1, length = array ? array.length : 0, resIndex = 0, result = [];
|
|
55
51
|
while (++index < length) {
|
|
56
52
|
var value = array[index];
|
|
@@ -58,12 +54,8 @@ var require_lodash = __commonJS({ "../../node_modules/.pnpm/lodash.compact@3.0.1
|
|
|
58
54
|
}
|
|
59
55
|
return result;
|
|
60
56
|
}
|
|
61
|
-
module.exports = compact
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
//#endregion
|
|
65
|
-
//#region src/Construct.ts
|
|
66
|
-
var import_lodash = __toESM(require_lodash(), 1);
|
|
57
|
+
module.exports = compact;
|
|
58
|
+
})))(), 1);
|
|
67
59
|
const serviceEnvCache = /* @__PURE__ */ new Map();
|
|
68
60
|
/**
|
|
69
61
|
* Noop context for environment sniffing.
|
|
@@ -92,6 +84,16 @@ const snifferContext = {
|
|
|
92
84
|
}
|
|
93
85
|
};
|
|
94
86
|
var Construct = class {
|
|
87
|
+
type;
|
|
88
|
+
logger;
|
|
89
|
+
services;
|
|
90
|
+
events;
|
|
91
|
+
publisherService;
|
|
92
|
+
outputSchema;
|
|
93
|
+
timeout;
|
|
94
|
+
memorySize;
|
|
95
|
+
auditorStorageService;
|
|
96
|
+
constructs;
|
|
95
97
|
/** Database service for this construct (used by Endpoint for RLS/audit context) */
|
|
96
98
|
databaseService;
|
|
97
99
|
/**
|
|
@@ -146,7 +148,7 @@ var Construct = class {
|
|
|
146
148
|
const { markOptional = false } = opts;
|
|
147
149
|
const envVars = /* @__PURE__ */ new Set();
|
|
148
150
|
const optionalVars = /* @__PURE__ */ new Set();
|
|
149
|
-
const services = (0,
|
|
151
|
+
const services = (0, import_lodash_compact.default)([
|
|
150
152
|
...this.services,
|
|
151
153
|
this.publisherService,
|
|
152
154
|
this.publisherService,
|
|
@@ -186,14 +188,14 @@ var Construct = class {
|
|
|
186
188
|
}
|
|
187
189
|
}
|
|
188
190
|
};
|
|
189
|
-
let ConstructType = /* @__PURE__ */ function(ConstructType
|
|
190
|
-
ConstructType
|
|
191
|
-
ConstructType
|
|
192
|
-
ConstructType
|
|
193
|
-
ConstructType
|
|
194
|
-
ConstructType
|
|
195
|
-
ConstructType
|
|
196
|
-
return ConstructType
|
|
191
|
+
let ConstructType = /* @__PURE__ */ function(ConstructType) {
|
|
192
|
+
ConstructType["Cron"] = "dev.geekmidas.function.cron";
|
|
193
|
+
ConstructType["Endpoint"] = "dev.geekmidas.function.endpoint";
|
|
194
|
+
ConstructType["Function"] = "dev.geekmidas.function.function";
|
|
195
|
+
ConstructType["Subscriber"] = "dev.geekmidas.function.subscriber";
|
|
196
|
+
ConstructType["Queue"] = "dev.geekmidas.function.queue";
|
|
197
|
+
ConstructType["Topic"] = "dev.geekmidas.resource.topic";
|
|
198
|
+
return ConstructType;
|
|
197
199
|
}({});
|
|
198
200
|
/**
|
|
199
201
|
* Utility to test sniffing a service for environment variables.
|
|
@@ -216,7 +218,7 @@ async function sniffService(service) {
|
|
|
216
218
|
context: snifferContext
|
|
217
219
|
}));
|
|
218
220
|
}
|
|
219
|
-
|
|
220
221
|
//#endregion
|
|
221
|
-
export {
|
|
222
|
-
|
|
222
|
+
export { __commonJSMin as a, snifferContext as i, ConstructType as n, __toESM as o, sniffService as r, Construct as t };
|
|
223
|
+
|
|
224
|
+
//# sourceMappingURL=Construct-BeYVu_QF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Construct-BeYVu_QF.mjs","names":["compact"],"sources":["../../../node_modules/.pnpm/lodash.compact@3.0.1/node_modules/lodash.compact/index.js","../src/Construct.ts"],"sourcesContent":["/**\n * lodash 3.0.1 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array ? array.length : 0,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","import type { AuditStorage } from '@geekmidas/audit';\nimport {\n\tSnifferEnvironmentParser,\n\ttype SniffResult,\n\tsniffWithFireAndForget,\n} from '@geekmidas/envkit/sniffer';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { Service, ServiceContext } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport compact from 'lodash.compact';\n\n// Cache for service environment variables to handle singleton services\n// Stores both the full list and the optional subset so the same sniff result\n// can satisfy both getEnvironment() and getEnvironment({ markOptional: true }).\nconst serviceEnvCache = new Map<\n\tService,\n\t{ envVars: string[]; optionalEnvVars: string[] }\n>();\n\n/**\n * Noop context for environment sniffing.\n * Used when calling service.register() to detect env vars without a real request.\n * Returns dummy values since services should only use context in instance methods,\n * not during registration.\n */\nconst snifferContext: ServiceContext = {\n\tgetLogger() {\n\t\t// Return a noop logger for sniffing - services shouldn't log during registration\n\t\treturn {\n\t\t\tdebug: () => {},\n\t\t\tinfo: () => {},\n\t\t\twarn: () => {},\n\t\t\terror: () => {},\n\t\t\tchild: () => snifferContext.getLogger(),\n\t\t} as unknown as Logger;\n\t},\n\tgetRequestId() {\n\t\treturn 'sniffer-context';\n\t},\n\tgetRequestStartTime() {\n\t\treturn Date.now();\n\t},\n\thasContext() {\n\t\treturn false;\n\t},\n};\n\nexport abstract class Construct<\n\tTLogger extends Logger = Logger,\n\tTServiceName extends string = string,\n\tT extends EventPublisher<any> | undefined = undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTDatabase = unknown,\n> {\n\t/** Database service for this construct (used by Endpoint for RLS/audit context) */\n\tpublic databaseService?: Service<TDatabaseServiceName, TDatabase>;\n\n\t/**\n\t * The deploy unit that runs this, by construct id.\n\t *\n\t * What an endpoint's `surface` is to it, and for the same reason: something\n\t * has to say which process a runnable belongs to, and until this existed the\n\t * only thing that said so was the directory its file sat in. Set by the\n\t * factory it was built from — `worker.crons`, `api.endpoints` — so it is\n\t * carried rather than configured.\n\t *\n\t * Undefined for a construct built from a free-standing builder, which is\n\t * still how `c`, `s` and `f` work.\n\t */\n\tpublic owner?: string;\n\n\tconstructor(\n\t\tpublic readonly type: ConstructType,\n\t\tpublic readonly logger: TLogger,\n\t\tpublic readonly services: TServices,\n\t\tpublic readonly events: MappedEvent<T, any>[] = [],\n\t\tpublic readonly publisherService?: Service<TServiceName, T>,\n\t\tpublic outputSchema?: OutSchema,\n\t\tpublic readonly timeout?: number,\n\t\tpublic readonly memorySize?: number,\n\t\tpublic readonly auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>,\n\t\t/**\n\t\t * The constructs this one declared an edge to, by id.\n\t\t *\n\t\t * What the manifest records. `services` is the same information in the\n\t\t * form a handler runs with — clients, keyed by name — and an id cannot be\n\t\t * recovered from one of those reliably, so both are kept.\n\t\t *\n\t\t * Last in the list because every other parameter is positional and already\n\t\t * spoken for; a new one anywhere else silently rebinds existing callers.\n\t\t */\n\t\tpublic readonly constructs: string[] = [],\n\t) {}\n\n\t/**\n\t * Returns an array of environment variable names required by this construct's services.\n\t * This is determined by running a \"sniffer\" EnvironmentParser through each service's\n\t * register method to track which environment variables are accessed.\n\t *\n\t * Results are cached per service class to handle singleton patterns where\n\t * subsequent register() calls may short-circuit and not access env vars.\n\t *\n\t * @param markOptional - When true, optional vars (those accessed via `.optional()` or\n\t * `.default()`) are suffixed with `?` in the returned array (e.g. `'PORT?'`).\n\t * @returns Promise that resolves to array of environment variable names, sorted alphabetically\n\t *\n\t * @example\n\t * ```typescript\n\t * const endpoint = e\n\t * .services([databaseService, authService])\n\t * .get('/users')\n\t * .handle(async () => []);\n\t *\n\t * await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']\n\t * await endpoint.getEnvironment({ markOptional: true }); // ['AUTH_SECRET', 'DATABASE_URL', 'PORT?']\n\t * ```\n\t */\n\tasync getEnvironment(\n\t\topts: { markOptional?: boolean } = {},\n\t): Promise<string[]> {\n\t\tconst { markOptional = false } = opts;\n\t\tconst envVars = new Set<string>();\n\t\tconst optionalVars = new Set<string>();\n\t\tconst services: Service[] = compact([\n\t\t\t...this.services,\n\t\t\tthis.publisherService,\n\t\t\tthis.publisherService,\n\t\t\tthis.auditorStorageService,\n\t\t\tthis.databaseService,\n\t\t]);\n\n\t\ttry {\n\t\t\tfor (const service of services) {\n\t\t\t\t// Check cache first - handles singleton services that short-circuit\n\t\t\t\tif (serviceEnvCache.has(service)) {\n\t\t\t\t\tconst cached = serviceEnvCache.get(service)!;\n\t\t\t\t\tcached.envVars.forEach((v) => envVars.add(v));\n\t\t\t\t\tcached.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Use sniffService to properly handle all error scenarios\n\t\t\t\tconst result = await sniffService(service);\n\n\t\t\t\t// Log any issues for debugging\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{ error: result.error.message, service: service.serviceName },\n\t\t\t\t\t\t'Service threw error during env sniffing (env vars still captured)',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (result.unhandledRejections.length > 0) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terrors: result.unhandledRejections.map((e) => e.message),\n\t\t\t\t\t\t\tservice: service.serviceName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'Fire-and-forget rejections during env sniffing (suppressed)',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Cache and collect env vars (both required and optional)\n\t\t\t\tserviceEnvCache.set(service, {\n\t\t\t\t\tenvVars: result.envVars,\n\t\t\t\t\toptionalEnvVars: result.optionalEnvVars,\n\t\t\t\t});\n\t\t\t\tresult.envVars.forEach((v) => envVars.add(v));\n\t\t\t\tresult.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t}\n\n\t\t\tconst sorted = Array.from(envVars).sort();\n\t\t\tif (!markOptional || optionalVars.size === 0) return sorted;\n\t\t\treturn sorted.map((v) => (optionalVars.has(v) ? `${v}?` : v));\n\t\t} catch (error) {\n\t\t\tthis.logger.error(\n\t\t\t\t{ error },\n\t\t\t\t'Error determining environment variables for construct',\n\t\t\t);\n\n\t\t\treturn [];\n\t\t}\n\t}\n}\n\nexport enum ConstructType {\n\tCron = 'dev.geekmidas.function.cron',\n\tEndpoint = 'dev.geekmidas.function.endpoint',\n\tFunction = 'dev.geekmidas.function.function',\n\tSubscriber = 'dev.geekmidas.function.subscriber',\n\tQueue = 'dev.geekmidas.function.queue',\n\tTopic = 'dev.geekmidas.resource.topic',\n}\n\n/**\n * Utility to test sniffing a service for environment variables.\n * Useful for debugging services that throw errors during sniffing.\n *\n * @example\n * ```typescript\n * import { sniffService } from '@geekmidas/constructs';\n * import { authService } from './services/AuthService';\n *\n * const result = await sniffService(authService);\n * console.log('Env vars:', result.envVars);\n * console.log('Error:', result.error);\n * ```\n */\nexport async function sniffService(service: Service): Promise<SniffResult> {\n\tconst sniffer = new SnifferEnvironmentParser();\n\n\treturn sniffWithFireAndForget(sniffer, () =>\n\t\tservice.register({\n\t\t\tenvParser: sniffer as any,\n\t\t\tcontext: snifferContext,\n\t\t}),\n\t);\n}\n\n// Export for testing\nexport { snifferContext };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Service, ServiceContext } from "@geekmidas/services";
|
|
3
|
-
import { AuditStorage } from "@geekmidas/audit";
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
|
|
4
2
|
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
5
3
|
import { Logger } from "@geekmidas/logger";
|
|
6
|
-
import {
|
|
7
|
-
|
|
4
|
+
import { Service, ServiceContext } from "@geekmidas/services";
|
|
5
|
+
import { AuditStorage } from "@geekmidas/audit";
|
|
6
|
+
import { SniffResult } from "@geekmidas/envkit/sniffer";
|
|
8
7
|
//#region src/Construct.d.ts
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* Noop context for environment sniffing.
|
|
12
10
|
* Used when calling service.register() to detect env vars without a real request.
|
|
@@ -19,11 +17,11 @@ declare abstract class Construct<TLogger extends Logger = Logger, TServiceName e
|
|
|
19
17
|
readonly logger: TLogger;
|
|
20
18
|
readonly services: TServices;
|
|
21
19
|
readonly events: MappedEvent<T, any>[];
|
|
22
|
-
readonly publisherService?: Service<TServiceName, T
|
|
20
|
+
readonly publisherService?: Service<TServiceName, T>;
|
|
23
21
|
outputSchema?: OutSchema | undefined;
|
|
24
22
|
readonly timeout?: number | undefined;
|
|
25
23
|
readonly memorySize?: number | undefined;
|
|
26
|
-
readonly auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage
|
|
24
|
+
readonly auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>;
|
|
27
25
|
/**
|
|
28
26
|
* The constructs this one declared an edge to, by id.
|
|
29
27
|
*
|
|
@@ -50,7 +48,7 @@ declare abstract class Construct<TLogger extends Logger = Logger, TServiceName e
|
|
|
50
48
|
* still how `c`, `s` and `f` work.
|
|
51
49
|
*/
|
|
52
50
|
owner?: string;
|
|
53
|
-
constructor(type: ConstructType, logger: TLogger, services: TServices, events?: MappedEvent<T, any>[], publisherService?: Service<TServiceName, T
|
|
51
|
+
constructor(type: ConstructType, logger: TLogger, services: TServices, events?: MappedEvent<T, any>[], publisherService?: Service<TServiceName, T>, outputSchema?: OutSchema | undefined, timeout?: number | undefined, memorySize?: number | undefined, auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>,
|
|
54
52
|
/**
|
|
55
53
|
* The constructs this one declared an edge to, by id.
|
|
56
54
|
*
|
|
@@ -95,7 +93,7 @@ declare enum ConstructType {
|
|
|
95
93
|
Function = "dev.geekmidas.function.function",
|
|
96
94
|
Subscriber = "dev.geekmidas.function.subscriber",
|
|
97
95
|
Queue = "dev.geekmidas.function.queue",
|
|
98
|
-
Topic = "dev.geekmidas.resource.topic"
|
|
96
|
+
Topic = "dev.geekmidas.resource.topic"
|
|
99
97
|
}
|
|
100
98
|
/**
|
|
101
99
|
* Utility to test sniffing a service for environment variables.
|
|
@@ -113,5 +111,5 @@ declare enum ConstructType {
|
|
|
113
111
|
*/
|
|
114
112
|
declare function sniffService(service: Service): Promise<SniffResult>;
|
|
115
113
|
//#endregion
|
|
116
|
-
export {
|
|
117
|
-
//# sourceMappingURL=Construct-
|
|
114
|
+
export { snifferContext as i, ConstructType as n, sniffService as r, Construct as t };
|
|
115
|
+
//# sourceMappingURL=Construct-DfbwIntp.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Construct-DfbwIntp.d.cts","names":[],"sources":["../src/Construct.ts"],"mappings":";;;;;;;;;;;;;cA0BM,gBAAgB;uBAsBA,UACrB,gBAAgB,SAAS,QACzB,sCACA,UAAU,6CACV,kBAAkB,0CAClB,kBAAkB,gBAClB,kDACA,sBAAsB,sCACtB,8CACA;WAoBiB,MAAM;WACN,QAAQ;WACR,UAAU;WACV,QAAQ,YAAY;WACpB,mBAAmB,QAAQ,cAAc;EAClD,eAAe;WACN;WACA;WACA,wBAAwB,QACvC,0BACA;;;;;;;;;;;WAYe;;EAvCV,kBAAkB,QAAQ,sBAAsB;;;;;;;;;;;;;EAchD;EAGU,YAAA,MAAM,eACN,QAAQ,SACR,UAAU,WACV,SAAQ,YAAY,WACpB,mBAAmB,QAAQ,cAAc,IAClD,eAAe,uBACN,8BACA,iCACA,wBAAwB,QACvC,0BACA,gBAYe;;;;;;;;;;;EAAA;;;;;;;;;;;;;;;;;;;;;;;;EA0BX,eACL;IAAQ;MACN;;aAiEQ;EACX;EACA;EACA;EACA;EACA;EACA;;;;;;;;;;;;;;;;iBAiBqB,aAAa,SAAS,UAAU,QAAQ"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const require_rolldown_runtime = require("./rolldown-runtime-y5ARvAq5.cjs");
|
|
2
|
+
let _geekmidas_envkit_sniffer = require("@geekmidas/envkit/sniffer");
|
|
4
3
|
//#region ../../node_modules/.pnpm/lodash.compact@3.0.1/node_modules/lodash.compact/index.js
|
|
5
|
-
var
|
|
4
|
+
var require_lodash_compact = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports, module) => {
|
|
6
5
|
/**
|
|
7
6
|
* lodash 3.0.1 (Custom Build) <https://lodash.com/>
|
|
8
7
|
* Build: `lodash modularize exports="npm" -o ./`
|
|
@@ -25,7 +24,7 @@ var require_lodash = require_chunk.__commonJS({ "../../node_modules/.pnpm/lodash
|
|
|
25
24
|
* _.compact([0, 1, false, 2, '', 3]);
|
|
26
25
|
* // => [1, 2, 3]
|
|
27
26
|
*/
|
|
28
|
-
function compact
|
|
27
|
+
function compact(array) {
|
|
29
28
|
var index = -1, length = array ? array.length : 0, resIndex = 0, result = [];
|
|
30
29
|
while (++index < length) {
|
|
31
30
|
var value = array[index];
|
|
@@ -33,12 +32,11 @@ var require_lodash = require_chunk.__commonJS({ "../../node_modules/.pnpm/lodash
|
|
|
33
32
|
}
|
|
34
33
|
return result;
|
|
35
34
|
}
|
|
36
|
-
module.exports = compact
|
|
37
|
-
}
|
|
38
|
-
|
|
35
|
+
module.exports = compact;
|
|
36
|
+
}));
|
|
39
37
|
//#endregion
|
|
40
38
|
//#region src/Construct.ts
|
|
41
|
-
var
|
|
39
|
+
var import_lodash_compact = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_lodash_compact(), 1);
|
|
42
40
|
const serviceEnvCache = /* @__PURE__ */ new Map();
|
|
43
41
|
/**
|
|
44
42
|
* Noop context for environment sniffing.
|
|
@@ -67,6 +65,16 @@ const snifferContext = {
|
|
|
67
65
|
}
|
|
68
66
|
};
|
|
69
67
|
var Construct = class {
|
|
68
|
+
type;
|
|
69
|
+
logger;
|
|
70
|
+
services;
|
|
71
|
+
events;
|
|
72
|
+
publisherService;
|
|
73
|
+
outputSchema;
|
|
74
|
+
timeout;
|
|
75
|
+
memorySize;
|
|
76
|
+
auditorStorageService;
|
|
77
|
+
constructs;
|
|
70
78
|
/** Database service for this construct (used by Endpoint for RLS/audit context) */
|
|
71
79
|
databaseService;
|
|
72
80
|
/**
|
|
@@ -121,7 +129,7 @@ var Construct = class {
|
|
|
121
129
|
const { markOptional = false } = opts;
|
|
122
130
|
const envVars = /* @__PURE__ */ new Set();
|
|
123
131
|
const optionalVars = /* @__PURE__ */ new Set();
|
|
124
|
-
const services = (0,
|
|
132
|
+
const services = (0, import_lodash_compact.default)([
|
|
125
133
|
...this.services,
|
|
126
134
|
this.publisherService,
|
|
127
135
|
this.publisherService,
|
|
@@ -161,14 +169,14 @@ var Construct = class {
|
|
|
161
169
|
}
|
|
162
170
|
}
|
|
163
171
|
};
|
|
164
|
-
let ConstructType = /* @__PURE__ */ function(ConstructType
|
|
165
|
-
ConstructType
|
|
166
|
-
ConstructType
|
|
167
|
-
ConstructType
|
|
168
|
-
ConstructType
|
|
169
|
-
ConstructType
|
|
170
|
-
ConstructType
|
|
171
|
-
return ConstructType
|
|
172
|
+
let ConstructType = /* @__PURE__ */ function(ConstructType) {
|
|
173
|
+
ConstructType["Cron"] = "dev.geekmidas.function.cron";
|
|
174
|
+
ConstructType["Endpoint"] = "dev.geekmidas.function.endpoint";
|
|
175
|
+
ConstructType["Function"] = "dev.geekmidas.function.function";
|
|
176
|
+
ConstructType["Subscriber"] = "dev.geekmidas.function.subscriber";
|
|
177
|
+
ConstructType["Queue"] = "dev.geekmidas.function.queue";
|
|
178
|
+
ConstructType["Topic"] = "dev.geekmidas.resource.topic";
|
|
179
|
+
return ConstructType;
|
|
172
180
|
}({});
|
|
173
181
|
/**
|
|
174
182
|
* Utility to test sniffing a service for environment variables.
|
|
@@ -185,36 +193,36 @@ let ConstructType = /* @__PURE__ */ function(ConstructType$1) {
|
|
|
185
193
|
* ```
|
|
186
194
|
*/
|
|
187
195
|
async function sniffService(service) {
|
|
188
|
-
const sniffer = new
|
|
189
|
-
return (0,
|
|
196
|
+
const sniffer = new _geekmidas_envkit_sniffer.SnifferEnvironmentParser();
|
|
197
|
+
return (0, _geekmidas_envkit_sniffer.sniffWithFireAndForget)(sniffer, () => service.register({
|
|
190
198
|
envParser: sniffer,
|
|
191
199
|
context: snifferContext
|
|
192
200
|
}));
|
|
193
201
|
}
|
|
194
|
-
|
|
195
202
|
//#endregion
|
|
196
|
-
Object.defineProperty(exports,
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
203
|
+
Object.defineProperty(exports, "Construct", {
|
|
204
|
+
enumerable: true,
|
|
205
|
+
get: function() {
|
|
206
|
+
return Construct;
|
|
207
|
+
}
|
|
201
208
|
});
|
|
202
|
-
Object.defineProperty(exports,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
209
|
+
Object.defineProperty(exports, "ConstructType", {
|
|
210
|
+
enumerable: true,
|
|
211
|
+
get: function() {
|
|
212
|
+
return ConstructType;
|
|
213
|
+
}
|
|
207
214
|
});
|
|
208
|
-
Object.defineProperty(exports,
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
215
|
+
Object.defineProperty(exports, "sniffService", {
|
|
216
|
+
enumerable: true,
|
|
217
|
+
get: function() {
|
|
218
|
+
return sniffService;
|
|
219
|
+
}
|
|
213
220
|
});
|
|
214
|
-
Object.defineProperty(exports,
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
221
|
+
Object.defineProperty(exports, "snifferContext", {
|
|
222
|
+
enumerable: true,
|
|
223
|
+
get: function() {
|
|
224
|
+
return snifferContext;
|
|
225
|
+
}
|
|
219
226
|
});
|
|
220
|
-
|
|
227
|
+
|
|
228
|
+
//# sourceMappingURL=Construct-DqdlARxq.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Construct-BD5neF7w.mjs","names":["compact","snifferContext: ServiceContext","type: ConstructType","logger: TLogger","services: TServices","events: MappedEvent<T, any>[]","publisherService?: Service<TServiceName, T>","outputSchema?: OutSchema","timeout?: number","memorySize?: number","auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>","constructs: string[]","opts: { markOptional?: boolean }","services: Service[]","service: Service"],"sources":["../../../node_modules/.pnpm/lodash.compact@3.0.1/node_modules/lodash.compact/index.js","../src/Construct.ts"],"sourcesContent":["/**\n * lodash 3.0.1 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array ? array.length : 0,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","import type { AuditStorage } from '@geekmidas/audit';\nimport {\n\tSnifferEnvironmentParser,\n\ttype SniffResult,\n\tsniffWithFireAndForget,\n} from '@geekmidas/envkit/sniffer';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { Service, ServiceContext } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport compact from 'lodash.compact';\n\n// Cache for service environment variables to handle singleton services\n// Stores both the full list and the optional subset so the same sniff result\n// can satisfy both getEnvironment() and getEnvironment({ markOptional: true }).\nconst serviceEnvCache = new Map<\n\tService,\n\t{ envVars: string[]; optionalEnvVars: string[] }\n>();\n\n/**\n * Noop context for environment sniffing.\n * Used when calling service.register() to detect env vars without a real request.\n * Returns dummy values since services should only use context in instance methods,\n * not during registration.\n */\nconst snifferContext: ServiceContext = {\n\tgetLogger() {\n\t\t// Return a noop logger for sniffing - services shouldn't log during registration\n\t\treturn {\n\t\t\tdebug: () => {},\n\t\t\tinfo: () => {},\n\t\t\twarn: () => {},\n\t\t\terror: () => {},\n\t\t\tchild: () => snifferContext.getLogger(),\n\t\t} as unknown as Logger;\n\t},\n\tgetRequestId() {\n\t\treturn 'sniffer-context';\n\t},\n\tgetRequestStartTime() {\n\t\treturn Date.now();\n\t},\n\thasContext() {\n\t\treturn false;\n\t},\n};\n\nexport abstract class Construct<\n\tTLogger extends Logger = Logger,\n\tTServiceName extends string = string,\n\tT extends EventPublisher<any> | undefined = undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTDatabase = unknown,\n> {\n\t/** Database service for this construct (used by Endpoint for RLS/audit context) */\n\tpublic databaseService?: Service<TDatabaseServiceName, TDatabase>;\n\n\t/**\n\t * The deploy unit that runs this, by construct id.\n\t *\n\t * What an endpoint's `surface` is to it, and for the same reason: something\n\t * has to say which process a runnable belongs to, and until this existed the\n\t * only thing that said so was the directory its file sat in. Set by the\n\t * factory it was built from — `worker.crons`, `api.endpoints` — so it is\n\t * carried rather than configured.\n\t *\n\t * Undefined for a construct built from a free-standing builder, which is\n\t * still how `c`, `s` and `f` work.\n\t */\n\tpublic owner?: string;\n\n\tconstructor(\n\t\tpublic readonly type: ConstructType,\n\t\tpublic readonly logger: TLogger,\n\t\tpublic readonly services: TServices,\n\t\tpublic readonly events: MappedEvent<T, any>[] = [],\n\t\tpublic readonly publisherService?: Service<TServiceName, T>,\n\t\tpublic outputSchema?: OutSchema,\n\t\tpublic readonly timeout?: number,\n\t\tpublic readonly memorySize?: number,\n\t\tpublic readonly auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>,\n\t\t/**\n\t\t * The constructs this one declared an edge to, by id.\n\t\t *\n\t\t * What the manifest records. `services` is the same information in the\n\t\t * form a handler runs with — clients, keyed by name — and an id cannot be\n\t\t * recovered from one of those reliably, so both are kept.\n\t\t *\n\t\t * Last in the list because every other parameter is positional and already\n\t\t * spoken for; a new one anywhere else silently rebinds existing callers.\n\t\t */\n\t\tpublic readonly constructs: string[] = [],\n\t) {}\n\n\t/**\n\t * Returns an array of environment variable names required by this construct's services.\n\t * This is determined by running a \"sniffer\" EnvironmentParser through each service's\n\t * register method to track which environment variables are accessed.\n\t *\n\t * Results are cached per service class to handle singleton patterns where\n\t * subsequent register() calls may short-circuit and not access env vars.\n\t *\n\t * @param markOptional - When true, optional vars (those accessed via `.optional()` or\n\t * `.default()`) are suffixed with `?` in the returned array (e.g. `'PORT?'`).\n\t * @returns Promise that resolves to array of environment variable names, sorted alphabetically\n\t *\n\t * @example\n\t * ```typescript\n\t * const endpoint = e\n\t * .services([databaseService, authService])\n\t * .get('/users')\n\t * .handle(async () => []);\n\t *\n\t * await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']\n\t * await endpoint.getEnvironment({ markOptional: true }); // ['AUTH_SECRET', 'DATABASE_URL', 'PORT?']\n\t * ```\n\t */\n\tasync getEnvironment(\n\t\topts: { markOptional?: boolean } = {},\n\t): Promise<string[]> {\n\t\tconst { markOptional = false } = opts;\n\t\tconst envVars = new Set<string>();\n\t\tconst optionalVars = new Set<string>();\n\t\tconst services: Service[] = compact([\n\t\t\t...this.services,\n\t\t\tthis.publisherService,\n\t\t\tthis.publisherService,\n\t\t\tthis.auditorStorageService,\n\t\t\tthis.databaseService,\n\t\t]);\n\n\t\ttry {\n\t\t\tfor (const service of services) {\n\t\t\t\t// Check cache first - handles singleton services that short-circuit\n\t\t\t\tif (serviceEnvCache.has(service)) {\n\t\t\t\t\tconst cached = serviceEnvCache.get(service)!;\n\t\t\t\t\tcached.envVars.forEach((v) => envVars.add(v));\n\t\t\t\t\tcached.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Use sniffService to properly handle all error scenarios\n\t\t\t\tconst result = await sniffService(service);\n\n\t\t\t\t// Log any issues for debugging\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{ error: result.error.message, service: service.serviceName },\n\t\t\t\t\t\t'Service threw error during env sniffing (env vars still captured)',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (result.unhandledRejections.length > 0) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terrors: result.unhandledRejections.map((e) => e.message),\n\t\t\t\t\t\t\tservice: service.serviceName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'Fire-and-forget rejections during env sniffing (suppressed)',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Cache and collect env vars (both required and optional)\n\t\t\t\tserviceEnvCache.set(service, {\n\t\t\t\t\tenvVars: result.envVars,\n\t\t\t\t\toptionalEnvVars: result.optionalEnvVars,\n\t\t\t\t});\n\t\t\t\tresult.envVars.forEach((v) => envVars.add(v));\n\t\t\t\tresult.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t}\n\n\t\t\tconst sorted = Array.from(envVars).sort();\n\t\t\tif (!markOptional || optionalVars.size === 0) return sorted;\n\t\t\treturn sorted.map((v) => (optionalVars.has(v) ? `${v}?` : v));\n\t\t} catch (error) {\n\t\t\tthis.logger.error(\n\t\t\t\t{ error },\n\t\t\t\t'Error determining environment variables for construct',\n\t\t\t);\n\n\t\t\treturn [];\n\t\t}\n\t}\n}\n\nexport enum ConstructType {\n\tCron = 'dev.geekmidas.function.cron',\n\tEndpoint = 'dev.geekmidas.function.endpoint',\n\tFunction = 'dev.geekmidas.function.function',\n\tSubscriber = 'dev.geekmidas.function.subscriber',\n\tQueue = 'dev.geekmidas.function.queue',\n\tTopic = 'dev.geekmidas.resource.topic',\n}\n\n/**\n * Utility to test sniffing a service for environment variables.\n * Useful for debugging services that throw errors during sniffing.\n *\n * @example\n * ```typescript\n * import { sniffService } from '@geekmidas/constructs';\n * import { authService } from './services/AuthService';\n *\n * const result = await sniffService(authService);\n * console.log('Env vars:', result.envVars);\n * console.log('Error:', result.error);\n * ```\n */\nexport async function sniffService(service: Service): Promise<SniffResult> {\n\tconst sniffer = new SnifferEnvironmentParser();\n\n\treturn sniffWithFireAndForget(sniffer, () =>\n\t\tservice.register({\n\t\t\tenvParser: sniffer as any,\n\t\t\tcontext: snifferContext,\n\t\t}),\n\t);\n}\n\n// Export for testing\nexport { snifferContext };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Construct-DqdlARxq.cjs","names":["compact","SnifferEnvironmentParser","sniffWithFireAndForget"],"sources":["../../../node_modules/.pnpm/lodash.compact@3.0.1/node_modules/lodash.compact/index.js","../src/Construct.ts"],"sourcesContent":["/**\n * lodash 3.0.1 (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <https://lodash.com/license>\n */\n\n/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array ? array.length : 0,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","import type { AuditStorage } from '@geekmidas/audit';\nimport {\n\tSnifferEnvironmentParser,\n\ttype SniffResult,\n\tsniffWithFireAndForget,\n} from '@geekmidas/envkit/sniffer';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { Service, ServiceContext } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport compact from 'lodash.compact';\n\n// Cache for service environment variables to handle singleton services\n// Stores both the full list and the optional subset so the same sniff result\n// can satisfy both getEnvironment() and getEnvironment({ markOptional: true }).\nconst serviceEnvCache = new Map<\n\tService,\n\t{ envVars: string[]; optionalEnvVars: string[] }\n>();\n\n/**\n * Noop context for environment sniffing.\n * Used when calling service.register() to detect env vars without a real request.\n * Returns dummy values since services should only use context in instance methods,\n * not during registration.\n */\nconst snifferContext: ServiceContext = {\n\tgetLogger() {\n\t\t// Return a noop logger for sniffing - services shouldn't log during registration\n\t\treturn {\n\t\t\tdebug: () => {},\n\t\t\tinfo: () => {},\n\t\t\twarn: () => {},\n\t\t\terror: () => {},\n\t\t\tchild: () => snifferContext.getLogger(),\n\t\t} as unknown as Logger;\n\t},\n\tgetRequestId() {\n\t\treturn 'sniffer-context';\n\t},\n\tgetRequestStartTime() {\n\t\treturn Date.now();\n\t},\n\thasContext() {\n\t\treturn false;\n\t},\n};\n\nexport abstract class Construct<\n\tTLogger extends Logger = Logger,\n\tTServiceName extends string = string,\n\tT extends EventPublisher<any> | undefined = undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTDatabase = unknown,\n> {\n\t/** Database service for this construct (used by Endpoint for RLS/audit context) */\n\tpublic databaseService?: Service<TDatabaseServiceName, TDatabase>;\n\n\t/**\n\t * The deploy unit that runs this, by construct id.\n\t *\n\t * What an endpoint's `surface` is to it, and for the same reason: something\n\t * has to say which process a runnable belongs to, and until this existed the\n\t * only thing that said so was the directory its file sat in. Set by the\n\t * factory it was built from — `worker.crons`, `api.endpoints` — so it is\n\t * carried rather than configured.\n\t *\n\t * Undefined for a construct built from a free-standing builder, which is\n\t * still how `c`, `s` and `f` work.\n\t */\n\tpublic owner?: string;\n\n\tconstructor(\n\t\tpublic readonly type: ConstructType,\n\t\tpublic readonly logger: TLogger,\n\t\tpublic readonly services: TServices,\n\t\tpublic readonly events: MappedEvent<T, any>[] = [],\n\t\tpublic readonly publisherService?: Service<TServiceName, T>,\n\t\tpublic outputSchema?: OutSchema,\n\t\tpublic readonly timeout?: number,\n\t\tpublic readonly memorySize?: number,\n\t\tpublic readonly auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>,\n\t\t/**\n\t\t * The constructs this one declared an edge to, by id.\n\t\t *\n\t\t * What the manifest records. `services` is the same information in the\n\t\t * form a handler runs with — clients, keyed by name — and an id cannot be\n\t\t * recovered from one of those reliably, so both are kept.\n\t\t *\n\t\t * Last in the list because every other parameter is positional and already\n\t\t * spoken for; a new one anywhere else silently rebinds existing callers.\n\t\t */\n\t\tpublic readonly constructs: string[] = [],\n\t) {}\n\n\t/**\n\t * Returns an array of environment variable names required by this construct's services.\n\t * This is determined by running a \"sniffer\" EnvironmentParser through each service's\n\t * register method to track which environment variables are accessed.\n\t *\n\t * Results are cached per service class to handle singleton patterns where\n\t * subsequent register() calls may short-circuit and not access env vars.\n\t *\n\t * @param markOptional - When true, optional vars (those accessed via `.optional()` or\n\t * `.default()`) are suffixed with `?` in the returned array (e.g. `'PORT?'`).\n\t * @returns Promise that resolves to array of environment variable names, sorted alphabetically\n\t *\n\t * @example\n\t * ```typescript\n\t * const endpoint = e\n\t * .services([databaseService, authService])\n\t * .get('/users')\n\t * .handle(async () => []);\n\t *\n\t * await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']\n\t * await endpoint.getEnvironment({ markOptional: true }); // ['AUTH_SECRET', 'DATABASE_URL', 'PORT?']\n\t * ```\n\t */\n\tasync getEnvironment(\n\t\topts: { markOptional?: boolean } = {},\n\t): Promise<string[]> {\n\t\tconst { markOptional = false } = opts;\n\t\tconst envVars = new Set<string>();\n\t\tconst optionalVars = new Set<string>();\n\t\tconst services: Service[] = compact([\n\t\t\t...this.services,\n\t\t\tthis.publisherService,\n\t\t\tthis.publisherService,\n\t\t\tthis.auditorStorageService,\n\t\t\tthis.databaseService,\n\t\t]);\n\n\t\ttry {\n\t\t\tfor (const service of services) {\n\t\t\t\t// Check cache first - handles singleton services that short-circuit\n\t\t\t\tif (serviceEnvCache.has(service)) {\n\t\t\t\t\tconst cached = serviceEnvCache.get(service)!;\n\t\t\t\t\tcached.envVars.forEach((v) => envVars.add(v));\n\t\t\t\t\tcached.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Use sniffService to properly handle all error scenarios\n\t\t\t\tconst result = await sniffService(service);\n\n\t\t\t\t// Log any issues for debugging\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{ error: result.error.message, service: service.serviceName },\n\t\t\t\t\t\t'Service threw error during env sniffing (env vars still captured)',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (result.unhandledRejections.length > 0) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terrors: result.unhandledRejections.map((e) => e.message),\n\t\t\t\t\t\t\tservice: service.serviceName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'Fire-and-forget rejections during env sniffing (suppressed)',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Cache and collect env vars (both required and optional)\n\t\t\t\tserviceEnvCache.set(service, {\n\t\t\t\t\tenvVars: result.envVars,\n\t\t\t\t\toptionalEnvVars: result.optionalEnvVars,\n\t\t\t\t});\n\t\t\t\tresult.envVars.forEach((v) => envVars.add(v));\n\t\t\t\tresult.optionalEnvVars.forEach((v) => optionalVars.add(v));\n\t\t\t}\n\n\t\t\tconst sorted = Array.from(envVars).sort();\n\t\t\tif (!markOptional || optionalVars.size === 0) return sorted;\n\t\t\treturn sorted.map((v) => (optionalVars.has(v) ? `${v}?` : v));\n\t\t} catch (error) {\n\t\t\tthis.logger.error(\n\t\t\t\t{ error },\n\t\t\t\t'Error determining environment variables for construct',\n\t\t\t);\n\n\t\t\treturn [];\n\t\t}\n\t}\n}\n\nexport enum ConstructType {\n\tCron = 'dev.geekmidas.function.cron',\n\tEndpoint = 'dev.geekmidas.function.endpoint',\n\tFunction = 'dev.geekmidas.function.function',\n\tSubscriber = 'dev.geekmidas.function.subscriber',\n\tQueue = 'dev.geekmidas.function.queue',\n\tTopic = 'dev.geekmidas.resource.topic',\n}\n\n/**\n * Utility to test sniffing a service for environment variables.\n * Useful for debugging services that throw errors during sniffing.\n *\n * @example\n * ```typescript\n * import { sniffService } from '@geekmidas/constructs';\n * import { authService } from './services/AuthService';\n *\n * const result = await sniffService(authService);\n * console.log('Env vars:', result.envVars);\n * console.log('Error:', result.error);\n * ```\n */\nexport async function sniffService(service: Service): Promise<SniffResult> {\n\tconst sniffer = new SnifferEnvironmentParser();\n\n\treturn sniffWithFireAndForget(sniffer, () =>\n\t\tservice.register({\n\t\t\tenvParser: sniffer as any,\n\t\t\tcontext: snifferContext,\n\t\t}),\n\t);\n}\n\n// Export for testing\nexport { snifferContext };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.mjs";
|
|
2
|
+
import { SniffResult } from "@geekmidas/envkit/sniffer";
|
|
1
3
|
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
2
|
-
import { Logger } from "@geekmidas/logger";
|
|
3
4
|
import { Service, ServiceContext } from "@geekmidas/services";
|
|
4
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
5
5
|
import { AuditStorage } from "@geekmidas/audit";
|
|
6
|
-
import {
|
|
7
|
-
|
|
6
|
+
import { Logger } from "@geekmidas/logger";
|
|
8
7
|
//#region src/Construct.d.ts
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* Noop context for environment sniffing.
|
|
12
10
|
* Used when calling service.register() to detect env vars without a real request.
|
|
@@ -19,11 +17,11 @@ declare abstract class Construct<TLogger extends Logger = Logger, TServiceName e
|
|
|
19
17
|
readonly logger: TLogger;
|
|
20
18
|
readonly services: TServices;
|
|
21
19
|
readonly events: MappedEvent<T, any>[];
|
|
22
|
-
readonly publisherService?: Service<TServiceName, T
|
|
20
|
+
readonly publisherService?: Service<TServiceName, T>;
|
|
23
21
|
outputSchema?: OutSchema | undefined;
|
|
24
22
|
readonly timeout?: number | undefined;
|
|
25
23
|
readonly memorySize?: number | undefined;
|
|
26
|
-
readonly auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage
|
|
24
|
+
readonly auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>;
|
|
27
25
|
/**
|
|
28
26
|
* The constructs this one declared an edge to, by id.
|
|
29
27
|
*
|
|
@@ -50,7 +48,7 @@ declare abstract class Construct<TLogger extends Logger = Logger, TServiceName e
|
|
|
50
48
|
* still how `c`, `s` and `f` work.
|
|
51
49
|
*/
|
|
52
50
|
owner?: string;
|
|
53
|
-
constructor(type: ConstructType, logger: TLogger, services: TServices, events?: MappedEvent<T, any>[], publisherService?: Service<TServiceName, T
|
|
51
|
+
constructor(type: ConstructType, logger: TLogger, services: TServices, events?: MappedEvent<T, any>[], publisherService?: Service<TServiceName, T>, outputSchema?: OutSchema | undefined, timeout?: number | undefined, memorySize?: number | undefined, auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>,
|
|
54
52
|
/**
|
|
55
53
|
* The constructs this one declared an edge to, by id.
|
|
56
54
|
*
|
|
@@ -95,7 +93,7 @@ declare enum ConstructType {
|
|
|
95
93
|
Function = "dev.geekmidas.function.function",
|
|
96
94
|
Subscriber = "dev.geekmidas.function.subscriber",
|
|
97
95
|
Queue = "dev.geekmidas.function.queue",
|
|
98
|
-
Topic = "dev.geekmidas.resource.topic"
|
|
96
|
+
Topic = "dev.geekmidas.resource.topic"
|
|
99
97
|
}
|
|
100
98
|
/**
|
|
101
99
|
* Utility to test sniffing a service for environment variables.
|
|
@@ -113,5 +111,5 @@ declare enum ConstructType {
|
|
|
113
111
|
*/
|
|
114
112
|
declare function sniffService(service: Service): Promise<SniffResult>;
|
|
115
113
|
//#endregion
|
|
116
|
-
export {
|
|
117
|
-
//# sourceMappingURL=Construct-
|
|
114
|
+
export { snifferContext as i, ConstructType as n, sniffService as r, Construct as t };
|
|
115
|
+
//# sourceMappingURL=Construct-l5aOn_jv.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Construct-l5aOn_jv.d.mts","names":[],"sources":["../src/Construct.ts"],"mappings":";;;;;;;;;;;;;cA0BM,gBAAgB;uBAsBA,UACrB,gBAAgB,SAAS,QACzB,sCACA,UAAU,6CACV,kBAAkB,0CAClB,kBAAkB,gBAClB,kDACA,sBAAsB,sCACtB,8CACA;WAoBiB,MAAM;WACN,QAAQ;WACR,UAAU;WACV,QAAQ,YAAY;WACpB,mBAAmB,QAAQ,cAAc;EAClD,eAAe;WACN;WACA;WACA,wBAAwB,QACvC,0BACA;;;;;;;;;;;WAYe;;EAvCV,kBAAkB,QAAQ,sBAAsB;;;;;;;;;;;;;EAchD;EAGU,YAAA,MAAM,eACN,QAAQ,SACR,UAAU,WACV,SAAQ,YAAY,WACpB,mBAAmB,QAAQ,cAAc,IAClD,eAAe,uBACN,8BACA,iCACA,wBAAwB,QACvC,0BACA,gBAYe;;;;;;;;;;;EAAA;;;;;;;;;;;;;;;;;;;;;;;;EA0BX,eACL;IAAQ;MACN;;aAiEQ;EACX;EACA;EACA;EACA;EACA;EACA;;;;;;;;;;;;;;;;iBAiBqB,aAAa,SAAS,UAAU,QAAQ"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
|
|
2
|
+
import { a as FunctionHandler, r as Function } from "./index-CdaU--_B.cjs";
|
|
2
3
|
import { EventPublisher } from "@geekmidas/events";
|
|
3
4
|
import { Logger } from "@geekmidas/logger";
|
|
4
5
|
import { ComposableStandardSchema } from "@geekmidas/schema";
|
|
5
6
|
import { Service } from "@geekmidas/services";
|
|
6
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
7
7
|
import { AuditableAction } from "@geekmidas/audit";
|
|
8
|
-
|
|
9
8
|
//#region src/crons/Cron.d.ts
|
|
10
9
|
declare class Cron<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, undefined, string, TDatabase, TDatabaseServiceName, AuditableAction<string, unknown>, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>> {
|
|
11
10
|
protected _schedule?: ScheduleExpression | undefined;
|
|
@@ -35,5 +34,5 @@ type CronWeekday = '*' | number | `${number}` | `${number}-${number}` | `${numbe
|
|
|
35
34
|
type CronExpression = `cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;
|
|
36
35
|
type ScheduleExpression = RateExpression | CronExpression;
|
|
37
36
|
//#endregion
|
|
38
|
-
export {
|
|
39
|
-
//# sourceMappingURL=Cron-
|
|
37
|
+
export { ScheduleExpression as i, CronExpression as n, RateExpression as r, Cron as t };
|
|
38
|
+
//# sourceMappingURL=Cron-DKqnnTdH.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cron-DKqnnTdH.d.cts","names":[],"sources":["../src/crons/Cron.ts"],"mappings":";;;;;;;;cAUa,KACZ,eAAe,kDACf,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,wBAAwB,6CACxB,oDACA,uBACA,sDACS,SACT,QACA,WACA,SACA,WACA,iBACA,+CAGA,WACA,sBACA,kCACA,gBAAgB,QAAQ,WAAW,SAAS,WAAW;YAsB5C,YAAY;;;;;;;;EAbvB;SAEO,OAAO,WAAW,OAAO;EAS/B,YAAA,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,YAC3D,kBACU,YAAY,gCACtB,QAAQ,QACR,eAAe,WACf,WAAU,WACV,SAAS,SACT,mBAAmB,QAAQ,4BAA4B,kBACvD,gBACA,qBACA,kBAAkB,QAAQ,sBAAsB,YAKhD;;;;;EAAA;MAmBG,YAAY;;KAKL;KAEP;KAUA;KAUA;KAUA;KAqBA;KAiBO,yBACH,cAAc,YAAY,WAAW,aAAa;KAE/C,qBAAqB,iBAAiB"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.mjs";
|
|
2
|
+
import { a as FunctionHandler, r as Function } from "./index-PQRWOQj4.mjs";
|
|
3
|
+
import { EventPublisher } from "@geekmidas/events";
|
|
2
4
|
import { Service } from "@geekmidas/services";
|
|
3
5
|
import { AuditableAction } from "@geekmidas/audit";
|
|
4
|
-
import { EventPublisher } from "@geekmidas/events";
|
|
5
6
|
import { Logger } from "@geekmidas/logger";
|
|
6
7
|
import { ComposableStandardSchema } from "@geekmidas/schema";
|
|
7
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
8
|
-
|
|
9
8
|
//#region src/crons/Cron.d.ts
|
|
10
9
|
declare class Cron<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, undefined, string, TDatabase, TDatabaseServiceName, AuditableAction<string, unknown>, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>> {
|
|
11
10
|
protected _schedule?: ScheduleExpression | undefined;
|
|
@@ -35,5 +34,5 @@ type CronWeekday = '*' | number | `${number}` | `${number}-${number}` | `${numbe
|
|
|
35
34
|
type CronExpression = `cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;
|
|
36
35
|
type ScheduleExpression = RateExpression | CronExpression;
|
|
37
36
|
//#endregion
|
|
38
|
-
export {
|
|
39
|
-
//# sourceMappingURL=Cron-
|
|
37
|
+
export { ScheduleExpression as i, CronExpression as n, RateExpression as r, Cron as t };
|
|
38
|
+
//# sourceMappingURL=Cron-SyqS5oWJ.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cron-SyqS5oWJ.d.mts","names":[],"sources":["../src/crons/Cron.ts"],"mappings":";;;;;;;;cAUa,KACZ,eAAe,kDACf,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,wBAAwB,6CACxB,oDACA,uBACA,sDACS,SACT,QACA,WACA,SACA,WACA,iBACA,+CAGA,WACA,sBACA,kCACA,gBAAgB,QAAQ,WAAW,SAAS,WAAW;YAsB5C,YAAY;;;;;;;;EAbvB;SAEO,OAAO,WAAW,OAAO;EAS/B,YAAA,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,YAC3D,kBACU,YAAY,gCACtB,QAAQ,QACR,eAAe,WACf,WAAU,WACV,SAAS,SACT,mBAAmB,QAAQ,4BAA4B,kBACvD,gBACA,qBACA,kBAAkB,QAAQ,sBAAsB,YAKhD;;;;;EAAA;MAmBG,YAAY;;KAKL;KAEP;KAUA;KAUA;KAUA;KAqBA;KAiBO,yBACH,cAAc,YAAY,WAAW,aAAa;KAE/C,qBAAqB,iBAAiB"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const require_functions = require(
|
|
5
|
-
const require_clone = require(
|
|
6
|
-
|
|
1
|
+
const require_rolldown_runtime = require("./rolldown-runtime-y5ARvAq5.cjs");
|
|
2
|
+
require("./Construct-DqdlARxq.cjs");
|
|
3
|
+
const require_construct_interface = require("./construct-interface.cjs");
|
|
4
|
+
const require_functions = require("./functions-B6qCvfmy.cjs");
|
|
5
|
+
const require_clone = require("./clone-UGJpvQnL.cjs");
|
|
7
6
|
//#region src/crons/Cron.ts
|
|
7
|
+
var import_lodash_uniqby = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_functions.require_lodash_uniqby(), 1);
|
|
8
8
|
var Cron = class extends require_functions.Function {
|
|
9
|
+
_schedule;
|
|
9
10
|
/**
|
|
10
11
|
* Where this cron's schedule lives when a server runs it.
|
|
11
12
|
*
|
|
@@ -15,24 +16,22 @@ var Cron = class extends require_functions.Function {
|
|
|
15
16
|
*/
|
|
16
17
|
scheduleStore;
|
|
17
18
|
static isCron(obj) {
|
|
18
|
-
return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type ===
|
|
19
|
+
return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type === "dev.geekmidas.function.cron");
|
|
19
20
|
}
|
|
20
21
|
constructor(fn, timeout, _schedule, input, outputSchema, services = [], logger, publisherService, events = [], memorySize, databaseService, constructs = []) {
|
|
21
|
-
super(fn, timeout,
|
|
22
|
+
super(fn, timeout, "dev.geekmidas.function.cron", input, outputSchema, services, logger, publisherService, events, memorySize, void 0, databaseService, constructs);
|
|
22
23
|
this._schedule = _schedule;
|
|
23
24
|
}
|
|
24
25
|
get schedule() {
|
|
25
26
|
return this._schedule;
|
|
26
27
|
}
|
|
27
28
|
};
|
|
28
|
-
|
|
29
29
|
//#endregion
|
|
30
30
|
//#region src/crons/CronBuilder.ts
|
|
31
|
-
var import_lodash = require_chunk.__toESM(require_functions.require_lodash(), 1);
|
|
32
31
|
var CronBuilder = class extends require_functions.FunctionBuilder {
|
|
33
32
|
_schedule;
|
|
34
33
|
constructor() {
|
|
35
|
-
super(
|
|
34
|
+
super("dev.geekmidas.function.cron");
|
|
36
35
|
}
|
|
37
36
|
memorySize(memorySize) {
|
|
38
37
|
return require_clone.cloneWith(this, { _memorySize: memorySize });
|
|
@@ -60,12 +59,12 @@ var CronBuilder = class extends require_functions.FunctionBuilder {
|
|
|
60
59
|
dependsOn(constructs) {
|
|
61
60
|
const services = require_construct_interface.servicesOf(constructs);
|
|
62
61
|
return require_clone.cloneWith(this, {
|
|
63
|
-
_services: (0,
|
|
62
|
+
_services: (0, import_lodash_uniqby.default)([...this._services, ...services], (s) => s.serviceName),
|
|
64
63
|
_constructs: require_construct_interface.idsOf(constructs, this._constructs)
|
|
65
64
|
});
|
|
66
65
|
}
|
|
67
66
|
services(services) {
|
|
68
|
-
return require_clone.cloneWith(this, { _services: (0,
|
|
67
|
+
return require_clone.cloneWith(this, { _services: (0, import_lodash_uniqby.default)([...this._services, ...services], (s) => s.serviceName) });
|
|
69
68
|
}
|
|
70
69
|
logger(logger) {
|
|
71
70
|
return require_clone.cloneWith(this, { _logger: logger });
|
|
@@ -88,18 +87,18 @@ var CronBuilder = class extends require_functions.FunctionBuilder {
|
|
|
88
87
|
return cron;
|
|
89
88
|
}
|
|
90
89
|
};
|
|
91
|
-
|
|
92
90
|
//#endregion
|
|
93
|
-
Object.defineProperty(exports,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
91
|
+
Object.defineProperty(exports, "Cron", {
|
|
92
|
+
enumerable: true,
|
|
93
|
+
get: function() {
|
|
94
|
+
return Cron;
|
|
95
|
+
}
|
|
98
96
|
});
|
|
99
|
-
Object.defineProperty(exports,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
97
|
+
Object.defineProperty(exports, "CronBuilder", {
|
|
98
|
+
enumerable: true,
|
|
99
|
+
get: function() {
|
|
100
|
+
return CronBuilder;
|
|
101
|
+
}
|
|
104
102
|
});
|
|
105
|
-
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=CronBuilder-BdnI6lxF.cjs.map
|