@geekmidas/constructs 10.0.0-alpha.9 → 10.0.0-alpha.90
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 +222 -158
- package/dist/{Construct-BD5neF7w.mjs → Construct-B1vGBPme.mjs} +33 -34
- package/dist/Construct-B1vGBPme.mjs.map +1 -0
- package/dist/Construct-BQALFCh2.d.cts +230 -0
- package/dist/Construct-BQALFCh2.d.cts.map +1 -0
- package/dist/{Construct-CyS3RpTL.cjs → Construct-DUSXuTHP.cjs} +53 -48
- package/dist/Construct-DUSXuTHP.cjs.map +1 -0
- package/dist/Construct-QXnl3VqT.d.mts +230 -0
- package/dist/Construct-QXnl3VqT.d.mts.map +1 -0
- package/dist/{Cron-DmQ8vQ4b.d.cts → Cron-DI3nKoic.d.cts} +15 -9
- package/dist/Cron-DI3nKoic.d.cts.map +1 -0
- package/dist/{Cron-dh4rUgib.d.mts → Cron-uYAHPnp7.d.mts} +15 -9
- package/dist/Cron-uYAHPnp7.d.mts.map +1 -0
- package/dist/{CronBuilder-Da0C0edR.cjs → CronBuilder-C0Ek1-RA.cjs} +47 -31
- package/dist/CronBuilder-C0Ek1-RA.cjs.map +1 -0
- package/dist/CronBuilder-DaSUm2Na.d.mts +47 -0
- package/dist/CronBuilder-DaSUm2Na.d.mts.map +1 -0
- package/dist/{CronBuilder-CYKT5RiO.mjs → CronBuilder-Dmix_Pen.mjs} +37 -21
- package/dist/CronBuilder-Dmix_Pen.mjs.map +1 -0
- package/dist/CronBuilder-g1lZLWyG.d.cts +47 -0
- package/dist/CronBuilder-g1lZLWyG.d.cts.map +1 -0
- package/dist/{Endpoint-DCQPMdUX.mjs → Endpoint-BG4UJ9oA.mjs} +146 -109
- package/dist/Endpoint-BG4UJ9oA.mjs.map +1 -0
- package/dist/{Endpoint-DcWXE-SZ.cjs → Endpoint-BoUg8ocM.cjs} +174 -131
- package/dist/Endpoint-BoUg8ocM.cjs.map +1 -0
- package/dist/{Endpoint-BjWKinFA.d.mts → Endpoint-Du-NwPX2.d.mts} +83 -91
- package/dist/Endpoint-Du-NwPX2.d.mts.map +1 -0
- package/dist/{Endpoint-dav89W6-.d.cts → Endpoint-aCvBMPoH.d.cts} +82 -90
- package/dist/Endpoint-aCvBMPoH.d.cts.map +1 -0
- package/dist/{EndpointFactory-CjV8F_lJ.mjs → EndpointFactory-BDtsrEvJ.mjs} +57 -76
- package/dist/EndpointFactory-BDtsrEvJ.mjs.map +1 -0
- package/dist/{EndpointFactory-CdWB7wPw.cjs → EndpointFactory-DJ7gXLpR.cjs} +93 -112
- package/dist/EndpointFactory-DJ7gXLpR.cjs.map +1 -0
- package/dist/{index-Bd5FqCoe.d.cts → EndpointFactory-DMYdJCOj.d.mts} +78 -134
- package/dist/EndpointFactory-DMYdJCOj.d.mts.map +1 -0
- package/dist/{index-lAO9egTb.d.mts → EndpointFactory-I7s1co3Y.d.cts} +79 -135
- package/dist/EndpointFactory-I7s1co3Y.d.cts.map +1 -0
- package/dist/Function-DuqGcbOI.d.mts +76 -0
- package/dist/Function-DuqGcbOI.d.mts.map +1 -0
- package/dist/Function-Pu-1kKZz.d.cts +76 -0
- package/dist/Function-Pu-1kKZz.d.cts.map +1 -0
- package/dist/{HonoEndpointAdaptor-P1ahhZHu.mjs → HonoEndpointAdaptor-PtPlbeKY.mjs} +75 -56
- package/dist/HonoEndpointAdaptor-PtPlbeKY.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-DtL9j19R.cjs → HonoEndpointAdaptor-zVzVLJEO.cjs} +83 -61
- package/dist/HonoEndpointAdaptor-zVzVLJEO.cjs.map +1 -0
- package/dist/Queue-A3wfD0it.cjs +109 -0
- package/dist/Queue-A3wfD0it.cjs.map +1 -0
- package/dist/Queue-D6USGS4q.mjs +104 -0
- package/dist/Queue-D6USGS4q.mjs.map +1 -0
- package/dist/{Queue-D7ZuwBhy.d.cts → Queue-DlsHRzUp.d.mts} +48 -48
- package/dist/Queue-DlsHRzUp.d.mts.map +1 -0
- package/dist/{Queue-gVGfi2Yk.d.mts → Queue-HPyi0e1i.d.cts} +49 -49
- package/dist/Queue-HPyi0e1i.d.cts.map +1 -0
- package/dist/QueueBuilder-BjuF0UBl.cjs +135 -0
- package/dist/QueueBuilder-BjuF0UBl.cjs.map +1 -0
- package/dist/QueueBuilder-Cue73M4t.mjs +118 -0
- package/dist/QueueBuilder-Cue73M4t.mjs.map +1 -0
- package/dist/QueueBuilder-OSi6LkV9.d.cts +75 -0
- package/dist/QueueBuilder-OSi6LkV9.d.cts.map +1 -0
- package/dist/QueueBuilder-QHsnVt1P.d.mts +75 -0
- package/dist/QueueBuilder-QHsnVt1P.d.mts.map +1 -0
- package/dist/{Subscriber-2mEi0ImH.d.cts → Subscriber-Bpp02cGr.d.cts} +29 -20
- package/dist/Subscriber-Bpp02cGr.d.cts.map +1 -0
- package/dist/{Subscriber-xTJ9ayPN.d.mts → Subscriber-CtN9R48-.d.mts} +29 -20
- package/dist/Subscriber-CtN9R48-.d.mts.map +1 -0
- package/dist/{SubscriberBuilder-BjkbeT9l.mjs → SubscriberBuilder-CDy4nHCz.mjs} +50 -24
- package/dist/SubscriberBuilder-CDy4nHCz.mjs.map +1 -0
- package/dist/SubscriberBuilder-CuCMFpYW.d.mts +67 -0
- package/dist/SubscriberBuilder-CuCMFpYW.d.mts.map +1 -0
- package/dist/{SubscriberBuilder-4OPehf2R.cjs → SubscriberBuilder-D_owVoHo.cjs} +61 -36
- package/dist/SubscriberBuilder-D_owVoHo.cjs.map +1 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts +67 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts.map +1 -0
- package/dist/Topic-D74b5cgs.mjs +99 -0
- package/dist/Topic-D74b5cgs.mjs.map +1 -0
- package/dist/Topic-GHxcU8AG.cjs +104 -0
- package/dist/Topic-GHxcU8AG.cjs.map +1 -0
- package/dist/adaptors/aws.cjs +131 -220
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +34 -53
- package/dist/adaptors/aws.d.cts.map +1 -1
- package/dist/adaptors/aws.d.mts +34 -53
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +102 -193
- package/dist/adaptors/aws.mjs.map +1 -1
- package/dist/adaptors/hono.cjs +3 -10
- package/dist/adaptors/hono.d.cts +7 -16
- package/dist/adaptors/hono.d.cts.map +1 -1
- package/dist/adaptors/hono.d.mts +8 -17
- package/dist/adaptors/hono.d.mts.map +1 -1
- package/dist/adaptors/hono.mjs +2 -10
- package/dist/adaptors/testing.cjs +743 -89
- package/dist/adaptors/testing.cjs.map +1 -1
- package/dist/adaptors/testing.d.cts +351 -54
- package/dist/adaptors/testing.d.cts.map +1 -1
- package/dist/adaptors/testing.d.mts +351 -54
- package/dist/adaptors/testing.d.mts.map +1 -1
- package/dist/adaptors/testing.mjs +706 -70
- package/dist/adaptors/testing.mjs.map +1 -1
- package/dist/auth-BMCJN30Y.d.cts +268 -0
- package/dist/auth-BMCJN30Y.d.cts.map +1 -0
- package/dist/auth-CcuceLYo.d.mts +268 -0
- package/dist/auth-CcuceLYo.d.mts.map +1 -0
- package/dist/auth.cjs +301 -33
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.d.cts +2 -108
- package/dist/auth.d.mts +2 -108
- package/dist/auth.mjs +289 -27
- package/dist/auth.mjs.map +1 -1
- package/dist/{cache-BrRz3fEB.d.mts → cache-CXh6GIgb.d.mts} +3 -6
- package/dist/cache-CXh6GIgb.d.mts.map +1 -0
- package/dist/{cache-BtZY_tHe.d.cts → cache-DnGDGly3.d.cts} +3 -6
- package/dist/cache-DnGDGly3.d.cts.map +1 -0
- package/dist/cache.cjs +68 -2
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.cts +1 -2
- package/dist/cache.d.mts +1 -2
- package/dist/cache.mjs +67 -2
- package/dist/cache.mjs.map +1 -0
- package/dist/cipher-C1lEFX63.mjs +225 -0
- package/dist/cipher-C1lEFX63.mjs.map +1 -0
- package/dist/cipher-CVxfwLjk.cjs +332 -0
- package/dist/cipher-CVxfwLjk.cjs.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-D9d4Gm4p.d.cts → construct-interface-B1AfqRl4.d.cts} +42 -11
- package/dist/construct-interface-B1AfqRl4.d.cts.map +1 -0
- package/dist/{construct-interface-g5GM5pwR.d.mts → construct-interface-DluK3_da.d.mts} +42 -11
- package/dist/construct-interface-DluK3_da.d.mts.map +1 -0
- package/dist/construct-interface.cjs +113 -7
- package/dist/construct-interface.cjs.map +1 -0
- package/dist/construct-interface.d.cts +2 -2
- package/dist/construct-interface.d.mts +2 -2
- package/dist/construct-interface.mjs +106 -2
- package/dist/construct-interface.mjs.map +1 -0
- package/dist/credential.cjs +77 -17
- package/dist/credential.cjs.map +1 -1
- package/dist/credential.d.cts +34 -9
- package/dist/credential.d.cts.map +1 -1
- package/dist/credential.d.mts +34 -9
- package/dist/credential.d.mts.map +1 -1
- package/dist/credential.mjs +71 -13
- package/dist/credential.mjs.map +1 -1
- package/dist/crons/index.cjs +129 -7
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +45 -11
- package/dist/crons/index.d.cts.map +1 -1
- package/dist/crons/index.d.mts +45 -11
- package/dist/crons/index.d.mts.map +1 -1
- package/dist/crons/index.mjs +127 -8
- package/dist/crons/index.mjs.map +1 -1
- package/dist/database/kysely.cjs +4 -181
- package/dist/database/kysely.d.cts +2 -152
- package/dist/database/kysely.d.mts +2 -152
- package/dist/database/kysely.mjs +2 -180
- 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/encryption.cjs +96 -0
- package/dist/encryption.cjs.map +1 -0
- package/dist/encryption.d.cts +117 -0
- package/dist/encryption.d.cts.map +1 -0
- package/dist/encryption.d.mts +117 -0
- package/dist/encryption.d.mts.map +1 -0
- package/dist/encryption.mjs +83 -0
- package/dist/encryption.mjs.map +1 -0
- package/dist/endpoints/index.cjs +8 -10
- package/dist/endpoints/index.d.cts +51 -7
- package/dist/endpoints/index.d.cts.map +1 -0
- package/dist/endpoints/index.d.mts +51 -7
- package/dist/endpoints/index.d.mts.map +1 -0
- package/dist/endpoints/index.mjs +6 -10
- package/dist/external-api-MJ8id87V.d.mts +105 -0
- package/dist/external-api-MJ8id87V.d.mts.map +1 -0
- package/dist/external-api-O107yzZJ.d.cts +105 -0
- package/dist/external-api-O107yzZJ.d.cts.map +1 -0
- package/dist/external-api.cjs +142 -0
- package/dist/external-api.cjs.map +1 -0
- package/dist/external-api.d.cts +2 -0
- package/dist/external-api.d.mts +2 -0
- package/dist/external-api.mjs +139 -0
- package/dist/external-api.mjs.map +1 -0
- 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 +3 -4
- package/dist/functions/index.d.mts +3 -4
- package/dist/functions/index.mjs +2 -6
- package/dist/{functions-14lpEFL4.mjs → functions-BFizikJU.mjs} +376 -238
- package/dist/{functions-14lpEFL4.mjs.map → functions-BFizikJU.mjs.map} +1 -1
- package/dist/{functions-i_la-N5r.cjs → functions-CfzJG9hK.cjs} +414 -264
- package/dist/functions-CfzJG9hK.cjs.map +1 -0
- package/dist/index-BuzRvKOQ.d.cts +115 -0
- package/dist/index-BuzRvKOQ.d.cts.map +1 -0
- package/dist/index-CTkKOer4.d.mts +115 -0
- package/dist/index-CTkKOer4.d.mts.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.cjs +6 -3
- package/dist/index.d.cts +27 -4
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +27 -4
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +3 -3
- package/dist/kms-B-Hm3d5r.cjs +85 -0
- package/dist/kms-B-Hm3d5r.cjs.map +1 -0
- package/dist/kms-BdUlMJEZ.mjs +85 -0
- package/dist/kms-BdUlMJEZ.mjs.map +1 -0
- package/dist/kysely-Bii4l6eP.mjs +370 -0
- package/dist/kysely-Bii4l6eP.mjs.map +1 -0
- package/dist/kysely-CO_Dk43W.cjs +383 -0
- package/dist/kysely-CO_Dk43W.cjs.map +1 -0
- package/dist/kysely-D0bpzgPs.d.cts +175 -0
- package/dist/kysely-D0bpzgPs.d.cts.map +1 -0
- package/dist/kysely-DUqC3Ie0.d.mts +175 -0
- package/dist/kysely-DUqC3Ie0.d.mts.map +1 -0
- package/dist/{telemetry-C3L0iS28.d.cts → lambdaTelemetry-8vnmVZQ5.d.cts} +3 -6
- package/dist/lambdaTelemetry-8vnmVZQ5.d.cts.map +1 -0
- package/dist/{telemetry-D7bVFLGi.d.mts → lambdaTelemetry-8vnmVZQ5.d.mts} +3 -6
- package/dist/lambdaTelemetry-8vnmVZQ5.d.mts.map +1 -0
- package/dist/{lazyAccessors-BoJN3SMd.mjs → lazyAccessors-CFanua0O.mjs} +20 -60
- package/dist/lazyAccessors-CFanua0O.mjs.map +1 -0
- package/dist/{lazyAccessors-e3j2oE2m.cjs → lazyAccessors-hJKGv8Ay.cjs} +60 -113
- package/dist/lazyAccessors-hJKGv8Ay.cjs.map +1 -0
- package/dist/mobile-app.cjs +73 -0
- package/dist/mobile-app.cjs.map +1 -0
- package/dist/mobile-app.d.cts +61 -0
- package/dist/mobile-app.d.cts.map +1 -0
- package/dist/mobile-app.d.mts +61 -0
- package/dist/mobile-app.d.mts.map +1 -0
- package/dist/mobile-app.mjs +72 -0
- package/dist/mobile-app.mjs.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-BRRVVHUB.mjs +131 -0
- package/dist/processAudits-BRRVVHUB.mjs.map +1 -0
- package/dist/processAudits-DasOZjPl.cjs +154 -0
- package/dist/processAudits-DasOZjPl.cjs.map +1 -0
- package/dist/queue/index.cjs +6 -189
- package/dist/queue/index.d.cts +3 -60
- package/dist/queue/index.d.mts +3 -60
- package/dist/queue/index.mjs +3 -186
- package/dist/rest-api.cjs +90 -59
- package/dist/rest-api.cjs.map +1 -1
- package/dist/rest-api.d.cts +70 -42
- package/dist/rest-api.d.cts.map +1 -1
- package/dist/rest-api.d.mts +70 -42
- package/dist/rest-api.d.mts.map +1 -1
- package/dist/rest-api.mjs +82 -51
- package/dist/rest-api.mjs.map +1 -1
- package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
- package/dist/runSubscriber-BHvJ8POr.mjs +109 -0
- package/dist/runSubscriber-BHvJ8POr.mjs.map +1 -0
- package/dist/runSubscriber-D8nLXIv1.cjs +126 -0
- package/dist/runSubscriber-D8nLXIv1.cjs.map +1 -0
- package/dist/shutdown-BMJmAhSt.cjs +38 -0
- package/dist/shutdown-BMJmAhSt.cjs.map +1 -0
- package/dist/shutdown-C7xa8x9S.mjs +27 -0
- package/dist/shutdown-C7xa8x9S.mjs.map +1 -0
- package/dist/site.cjs +33 -7
- package/dist/site.cjs.map +1 -1
- package/dist/site.d.cts +17 -7
- package/dist/site.d.cts.map +1 -1
- package/dist/site.d.mts +17 -7
- package/dist/site.d.mts.map +1 -1
- package/dist/site.mjs +29 -3
- package/dist/site.mjs.map +1 -1
- package/dist/stages-BSCF19o2.d.cts +56 -0
- package/dist/stages-BSCF19o2.d.cts.map +1 -0
- package/dist/stages-BSCF19o2.d.mts +56 -0
- package/dist/stages-BSCF19o2.d.mts.map +1 -0
- package/dist/subscribers/index.cjs +118 -6
- package/dist/subscribers/index.cjs.map +1 -0
- package/dist/subscribers/index.d.cts +51 -6
- package/dist/subscribers/index.d.cts.map +1 -0
- package/dist/subscribers/index.d.mts +51 -6
- package/dist/subscribers/index.d.mts.map +1 -0
- package/dist/subscribers/index.mjs +115 -5
- package/dist/subscribers/index.mjs.map +1 -0
- 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-B48RLjyk.d.cts +40 -0
- package/dist/telemetry-B48RLjyk.d.cts.map +1 -0
- package/dist/telemetry-DRtT1_0A.d.mts +40 -0
- package/dist/telemetry-DRtT1_0A.d.mts.map +1 -0
- package/dist/telemetry.cjs +56 -0
- package/dist/telemetry.cjs.map +1 -0
- package/dist/telemetry.d.cts +2 -0
- package/dist/telemetry.d.mts +2 -0
- package/dist/telemetry.mjs +55 -0
- package/dist/telemetry.mjs.map +1 -0
- package/dist/topic/index.cjs +3 -137
- package/dist/topic/index.d.cts +2 -4
- package/dist/topic/index.d.mts +2 -4
- package/dist/topic/index.mjs +2 -134
- package/dist/tracing-CxaZ98IB.mjs +110 -0
- package/dist/tracing-CxaZ98IB.mjs.map +1 -0
- package/dist/tracing-DPMidF_r.cjs +127 -0
- package/dist/tracing-DPMidF_r.cjs.map +1 -0
- 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 +59 -34
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.cts +70 -45
- package/dist/worker.d.cts.map +1 -1
- package/dist/worker.d.mts +70 -44
- package/dist/worker.d.mts.map +1 -1
- package/dist/worker.mjs +54 -29
- package/dist/worker.mjs.map +1 -1
- package/package.json +96 -42
- package/dist/Construct-BD5neF7w.mjs.map +0 -1
- package/dist/Construct-C0ijr2qp.d.cts +0 -117
- package/dist/Construct-C0ijr2qp.d.cts.map +0 -1
- package/dist/Construct-Ct8nalEi.d.mts +0 -117
- 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 +0 -44
- package/dist/CronBuilder-BquXDbDI.d.cts.map +0 -1
- package/dist/CronBuilder-CGgY2080.d.mts +0 -44
- 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-DtL9j19R.cjs.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 +0 -62
- package/dist/SubscriberBuilder-Dptmo-1A.d.mts.map +0 -1
- package/dist/SubscriberBuilder-waNhzjSM.d.cts +0 -62
- package/dist/SubscriberBuilder-waNhzjSM.d.cts.map +0 -1
- package/dist/Topic-19QeHBIR.d.cts +0 -91
- package/dist/Topic-19QeHBIR.d.cts.map +0 -1
- package/dist/Topic-DuFeqkBh.d.mts +0 -91
- package/dist/Topic-DuFeqkBh.d.mts.map +0 -1
- package/dist/auth.d.cts.map +0 -1
- package/dist/auth.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.map +0 -1
- 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/database/kysely.cjs.map +0 -1
- package/dist/database/kysely.d.cts.map +0 -1
- package/dist/database/kysely.d.mts.map +0 -1
- package/dist/database/kysely.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 +0 -31
- package/dist/index-BknhM6Ux.d.mts.map +0 -1
- package/dist/index-CBSfrowv.d.cts +0 -31
- package/dist/index-CBSfrowv.d.cts.map +0 -1
- package/dist/index-D24Xm79M.d.cts +0 -171
- package/dist/index-D24Xm79M.d.cts.map +0 -1
- package/dist/index-_ajboYxK.d.mts +0 -171
- 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 +0 -92
- package/dist/processAudits-CGqttuXm.cjs.map +0 -1
- package/dist/processAudits-Dmts9H_b.mjs +0 -80
- package/dist/processAudits-Dmts9H_b.mjs.map +0 -1
- package/dist/queue/index.cjs.map +0 -1
- package/dist/queue/index.d.cts.map +0 -1
- package/dist/queue/index.d.mts.map +0 -1
- package/dist/queue/index.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/topic/index.cjs.map +0 -1
- package/dist/topic/index.mjs.map +0 -1
- package/dist/types-BlAkSuGI.d.cts.map +0 -1
- package/dist/types-aKksMEWL.d.mts.map +0 -1
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.mjs";
|
|
2
|
+
import { SniffResult } from "@geekmidas/envkit/sniffer";
|
|
3
|
+
import { ConstructName, Declaration } from "@geekmidas/manifest";
|
|
4
|
+
import { EventPublisher, PublishableMessage } from "@geekmidas/events";
|
|
5
|
+
import { Service, ServiceContext, ServiceDiscovery } from "@geekmidas/services";
|
|
6
|
+
import { AuditStorage } from "@geekmidas/audit";
|
|
7
|
+
import { Logger } from "@geekmidas/logger";
|
|
8
|
+
import { InferStandardSchema } from "@geekmidas/schema";
|
|
9
|
+
//#region src/topic/Topic.d.ts
|
|
10
|
+
/** A topic's event contract — a map of event type → payload schema. */
|
|
11
|
+
type TopicEvents = Record<string, StandardSchemaV1>;
|
|
12
|
+
/**
|
|
13
|
+
* The union of wire messages a topic carries, derived from its event map:
|
|
14
|
+
* `{ type: 'user.created'; payload: … } | { type: 'user.updated'; payload: … }`.
|
|
15
|
+
*/
|
|
16
|
+
type TopicMessage<TEvents extends TopicEvents> = { [K in keyof TEvents & string]: PublishableMessage<K, InferStandardSchema<TEvents[K]>>; }[keyof TEvents & string];
|
|
17
|
+
/**
|
|
18
|
+
* A topic — pub/sub fan-out. Unlike a `Queue` (point-to-point, one consumer), a
|
|
19
|
+
* topic is a *resource* owned by no single handler: it declares the event
|
|
20
|
+
* contract, and any number of subscribers (`worker.topic(topic)`) bind to it.
|
|
21
|
+
* `gkm build` discovers it into the manifest's `topics` field; infra provisions
|
|
22
|
+
* an SNS topic.
|
|
23
|
+
*
|
|
24
|
+
* A construct publishes with `.event(topic, { type, payload })`, repeatable
|
|
25
|
+
* across topics, each event going through its own topic's publisher. That also
|
|
26
|
+
* puts `services.<topic>` in the handler, as `.dependsOn([topic])` does, for an
|
|
27
|
+
* event the handler decides on itself.
|
|
28
|
+
*
|
|
29
|
+
* ```ts
|
|
30
|
+
* export const users = new Topic('Users', {
|
|
31
|
+
* events: { 'user.created': z.object({ userId: z.string() }) },
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare class Topic<TName extends string = string, TEvents extends TopicEvents = TopicEvents> extends Construct {
|
|
36
|
+
__IS_TOPIC__: boolean;
|
|
37
|
+
static isTopic(obj: unknown): obj is Topic<string, TopicEvents>;
|
|
38
|
+
/**
|
|
39
|
+
* The canonical id this topic is declared under.
|
|
40
|
+
*
|
|
41
|
+
* Derived from the name, so `users` and `Users` are one topic. The name is
|
|
42
|
+
* left alone: subscribers bind to it and it is what the broker routes on.
|
|
43
|
+
*/
|
|
44
|
+
readonly id: string;
|
|
45
|
+
/** The name it was declared with — what the broker routes on. */
|
|
46
|
+
readonly name: TName;
|
|
47
|
+
/**
|
|
48
|
+
* The event contract — a map of event type → payload schema. Named
|
|
49
|
+
* `eventSchemas` (not `events`) to avoid clashing with `Construct.events`,
|
|
50
|
+
* which is the array of `MappedEvent`s a construct *publishes*.
|
|
51
|
+
*/
|
|
52
|
+
readonly eventSchemas: TEvents;
|
|
53
|
+
/**
|
|
54
|
+
* The topic as a dependency — what `.dependsOn([users])` and
|
|
55
|
+
* `.event(users, …)` dissolve into, reachable as `services.users`.
|
|
56
|
+
*
|
|
57
|
+
* The producer, because publishing is the only thing depending on a topic
|
|
58
|
+
* can mean: a subscriber binds to the topic instead, and is never handed
|
|
59
|
+
* this. It reads `<NAME>_PUBLISHER_CONNECTION_STRING` and picks the
|
|
60
|
+
* transport from its protocol — `pgboss://` locally, `sns://` deployed.
|
|
61
|
+
*
|
|
62
|
+
* A field assigned once, not a getter: services are cached by object
|
|
63
|
+
* identity, and a fresh literal on every access never hit that cache.
|
|
64
|
+
*/
|
|
65
|
+
readonly service: Service<Uncapitalize<TName>, EventPublisher<TopicMessage<TEvents>>>;
|
|
66
|
+
/** The producer's env key, read by both {@link declare} and the service. */
|
|
67
|
+
private readonly connectionKey;
|
|
68
|
+
constructor(name: ConstructName<TName>, options: TopicOptions<TEvents>);
|
|
69
|
+
/**
|
|
70
|
+
* What this topic is in the manifest.
|
|
71
|
+
*
|
|
72
|
+
* Only the producer's key: a subscriber is *bound* to a topic rather than
|
|
73
|
+
* depending on it, so the binding is an edge the deploy target reads and not
|
|
74
|
+
* an env key anyone can hold. Locally both sides meet on the same broker.
|
|
75
|
+
*/
|
|
76
|
+
declare(): Declaration[];
|
|
77
|
+
/** The event type names this topic carries. */
|
|
78
|
+
get eventTypes(): (keyof TEvents & string)[];
|
|
79
|
+
}
|
|
80
|
+
interface TopicOptions<TEvents extends TopicEvents> {
|
|
81
|
+
/** Each event this topic carries — its type, and its payload's schema. */
|
|
82
|
+
events: TEvents;
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/publisher.d.ts
|
|
86
|
+
/**
|
|
87
|
+
* An event a construct publishes to a topic once its handler has succeeded.
|
|
88
|
+
*
|
|
89
|
+
* It carries its topic, so a construct can publish to as many topics as it
|
|
90
|
+
* names — each event goes through the publisher of the topic it was declared
|
|
91
|
+
* against, never a single shared one.
|
|
92
|
+
*/
|
|
93
|
+
interface TopicEvent<TOutput = any> {
|
|
94
|
+
/** The topic's service: the publisher this event is sent through. */
|
|
95
|
+
topic: Service<string, EventPublisher<any>>;
|
|
96
|
+
type: string;
|
|
97
|
+
/** The event's payload, from what the handler returned. */
|
|
98
|
+
payload: (output: TOutput) => unknown;
|
|
99
|
+
/** Publish only when this holds for what the handler returned. */
|
|
100
|
+
when?: (output: TOutput) => boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* What `.event(topic, …)` takes: one of the topic's event types, and a payload
|
|
104
|
+
* of that event's shape built from the handler's output.
|
|
105
|
+
*/
|
|
106
|
+
type EventFor<TTopic extends Topic<any, any>, TOutput> = TTopic extends Topic<string, infer TEvents> ? { [K in keyof TEvents & string]: {
|
|
107
|
+
type: K;
|
|
108
|
+
payload: (output: TOutput) => InferStandardSchema<TEvents[K]>;
|
|
109
|
+
when?: (output: TOutput) => boolean;
|
|
110
|
+
}; }[keyof TEvents & string] : never;
|
|
111
|
+
/** Publish a construct's declared events for what its handler returned. */
|
|
112
|
+
declare function publishConstructEvents<OutSchema extends StandardSchemaV1 | undefined = undefined>(construct: Pick<Construct, 'events' | 'logger'>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any>, logger?: Logger, provided?: Readonly<Record<string, unknown>>): Promise<void>;
|
|
113
|
+
//#endregion
|
|
114
|
+
//#region src/Construct.d.ts
|
|
115
|
+
/**
|
|
116
|
+
* Noop context for environment sniffing.
|
|
117
|
+
* Used when calling service.register() to detect env vars without a real request.
|
|
118
|
+
* Returns dummy values since services should only use context in instance methods,
|
|
119
|
+
* not during registration.
|
|
120
|
+
*/
|
|
121
|
+
declare const snifferContext: ServiceContext;
|
|
122
|
+
declare abstract class Construct<TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TAuditStorageServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TDatabaseServiceName extends string = string, TDatabase = unknown> {
|
|
123
|
+
readonly type: ConstructType;
|
|
124
|
+
readonly logger: TLogger;
|
|
125
|
+
readonly services: TServices;
|
|
126
|
+
/**
|
|
127
|
+
* What this construct publishes once its handler succeeds — each event
|
|
128
|
+
* bound to its own topic, so a construct publishes to as many as it names.
|
|
129
|
+
*/
|
|
130
|
+
readonly events: TopicEvent[];
|
|
131
|
+
outputSchema?: OutSchema | undefined;
|
|
132
|
+
readonly timeout?: number | undefined;
|
|
133
|
+
readonly memorySize?: number | undefined;
|
|
134
|
+
readonly auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>;
|
|
135
|
+
/**
|
|
136
|
+
* The constructs this one declared an edge to, by id.
|
|
137
|
+
*
|
|
138
|
+
* What the manifest records. `services` is the same information in the
|
|
139
|
+
* form a handler runs with — clients, keyed by name — and an id cannot be
|
|
140
|
+
* recovered from one of those reliably, so both are kept.
|
|
141
|
+
*
|
|
142
|
+
* Last in the list because every other parameter is positional and already
|
|
143
|
+
* spoken for; a new one anywhere else silently rebinds existing callers.
|
|
144
|
+
*/
|
|
145
|
+
readonly constructs: string[];
|
|
146
|
+
/** Database service for this construct (used by Endpoint for RLS/audit context) */
|
|
147
|
+
databaseService?: Service<TDatabaseServiceName, TDatabase>;
|
|
148
|
+
/**
|
|
149
|
+
* The deploy unit that runs this, by construct id.
|
|
150
|
+
*
|
|
151
|
+
* What an endpoint's `surface` is to it, and for the same reason: something
|
|
152
|
+
* has to say which process a runnable belongs to, and until this existed the
|
|
153
|
+
* only thing that said so was the directory its file sat in. Set by the
|
|
154
|
+
* factory it was built from — `worker.crons`, `api.get(…)` — so it is
|
|
155
|
+
* carried rather than configured.
|
|
156
|
+
*
|
|
157
|
+
* Undefined for a construct built from a free-standing builder, which is
|
|
158
|
+
* still how `c`, `s` and `f` work.
|
|
159
|
+
*/
|
|
160
|
+
owner?: string;
|
|
161
|
+
constructor(type: ConstructType, logger: TLogger, services: TServices,
|
|
162
|
+
/**
|
|
163
|
+
* What this construct publishes once its handler succeeds — each event
|
|
164
|
+
* bound to its own topic, so a construct publishes to as many as it names.
|
|
165
|
+
*/
|
|
166
|
+
events?: TopicEvent[], outputSchema?: OutSchema | undefined, timeout?: number | undefined, memorySize?: number | undefined, auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>,
|
|
167
|
+
/**
|
|
168
|
+
* The constructs this one declared an edge to, by id.
|
|
169
|
+
*
|
|
170
|
+
* What the manifest records. `services` is the same information in the
|
|
171
|
+
* form a handler runs with — clients, keyed by name — and an id cannot be
|
|
172
|
+
* recovered from one of those reliably, so both are kept.
|
|
173
|
+
*
|
|
174
|
+
* Last in the list because every other parameter is positional and already
|
|
175
|
+
* spoken for; a new one anywhere else silently rebinds existing callers.
|
|
176
|
+
*/
|
|
177
|
+
constructs?: string[]);
|
|
178
|
+
/**
|
|
179
|
+
* Returns an array of environment variable names required by this construct's services.
|
|
180
|
+
* This is determined by running a "sniffer" EnvironmentParser through each service's
|
|
181
|
+
* register method to track which environment variables are accessed.
|
|
182
|
+
*
|
|
183
|
+
* Results are cached per service class to handle singleton patterns where
|
|
184
|
+
* subsequent register() calls may short-circuit and not access env vars.
|
|
185
|
+
*
|
|
186
|
+
* @param markOptional - When true, optional vars (those accessed via `.optional()` or
|
|
187
|
+
* `.default()`) are suffixed with `?` in the returned array (e.g. `'PORT?'`).
|
|
188
|
+
* @returns Promise that resolves to array of environment variable names, sorted alphabetically
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```typescript
|
|
192
|
+
* const endpoint = e
|
|
193
|
+
* .services([databaseService, authService])
|
|
194
|
+
* .get('/users')
|
|
195
|
+
* .handle(async () => []);
|
|
196
|
+
*
|
|
197
|
+
* await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']
|
|
198
|
+
* await endpoint.getEnvironment({ markOptional: true }); // ['AUTH_SECRET', 'DATABASE_URL', 'PORT?']
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
getEnvironment(opts?: {
|
|
202
|
+
markOptional?: boolean;
|
|
203
|
+
}): Promise<string[]>;
|
|
204
|
+
}
|
|
205
|
+
declare enum ConstructType {
|
|
206
|
+
Cron = "dev.geekmidas.function.cron",
|
|
207
|
+
Endpoint = "dev.geekmidas.function.endpoint",
|
|
208
|
+
Function = "dev.geekmidas.function.function",
|
|
209
|
+
Subscriber = "dev.geekmidas.function.subscriber",
|
|
210
|
+
Queue = "dev.geekmidas.function.queue",
|
|
211
|
+
Topic = "dev.geekmidas.resource.topic"
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Utility to test sniffing a service for environment variables.
|
|
215
|
+
* Useful for debugging services that throw errors during sniffing.
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```typescript
|
|
219
|
+
* import { sniffService } from '@geekmidas/constructs';
|
|
220
|
+
* import { authService } from './services/AuthService';
|
|
221
|
+
*
|
|
222
|
+
* const result = await sniffService(authService);
|
|
223
|
+
* console.log('Env vars:', result.envVars);
|
|
224
|
+
* console.log('Error:', result.error);
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
declare function sniffService(service: Service): Promise<SniffResult>;
|
|
228
|
+
//#endregion
|
|
229
|
+
export { EventFor as a, Topic as c, TopicOptions as d, snifferContext as i, TopicEvents as l, ConstructType as n, TopicEvent as o, sniffService as r, publishConstructEvents as s, Construct as t, TopicMessage as u };
|
|
230
|
+
//# sourceMappingURL=Construct-QXnl3VqT.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Construct-QXnl3VqT.d.mts","names":[],"sources":["../src/topic/Topic.ts","../src/publisher.ts","../src/Construct.ts"],"mappings":";;;;;;;;;;KAoBY,cAAc,eAAe;;;;;KAM7B,aAAa,gBAAgB,kBACvC,WAAW,mBAAmB,mBAC9B,GACA,oBAAoB,QAAQ,cAEtB;;;;;;;;;;;;;;;;;;;cAoBK,MACZ,+BACA,gBAAgB,cAAc,qBACrB;EACT;SAEO,QAAQ,eAAe,OAAO,cAAc;;;;;;;WAc1C;;WAGA,MAAM;;;;;;WAON,cAAc;;;;;;;;;;;;;WAcd,SAAS,QACjB,aAAa,QACb,eAAe,aAAa;;mBAIZ;EAEjB,YAAY,MAAM,cAAc,QAAQ,SAAS,aAAa;;;;;;;;EAkC9D,WAAW;;MAmBP,qBAAqB;;UAKT,aAAa,gBAAgB;;EAE7C,QAAQ;;;;;;;;;;;UCpJQ,WAAW;;EAE3B,OAAO,gBAAgB;EACvB;;EAEA,UAAU,QAAQ;;EAElB,QAAQ,QAAQ;;;;;;KAOL,SACX,eAAe,iBACf,WACG,eAAe,oBAAoB,cAEnC,WAAW;EACX,MAAM;EACN,UAAU,QAAQ,YAAY,oBAAoB,QAAQ;EAC1D,QAAQ,QAAQ;WAEV;;iBAwFY,uBACrB,kBAAkB,0CAElB,WAAW,KAAK,iCAChB,UAAU,oBAAoB,YAC9B,kBAAkB,uBAClB,SAAQ,QACR,WAAU,SAAS,2BAA6B;;;;;;;;;cC5G3C,gBAAgB;uBAsBA,UACrB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,kBAAkB,gBAClB,kDACA,sBAAsB,sCACtB,8CACA;WAoBiB,MAAM;WACN,QAAQ;WACR,UAAU;;;;;WAKV,QAAQ;EACjB,eAAe;WACN;WACA;WACA,wBAAwB,QACvC,0BACA;;;;;;;;;;;WAYe;;EA1CV,kBAAkB,QAAQ,sBAAsB;;;;;;;;;;;;;EAchD;EAEP,YACiB,MAAM,eACN,QAAQ,SACR,UAAU,WAKV;;;;;EAAA,SAAQ,cACjB,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,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
|
|
2
|
+
import { o as TopicEvent } from "./Construct-BQALFCh2.cjs";
|
|
3
|
+
import { i as FunctionHandler, n as Function } from "./Function-Pu-1kKZz.cjs";
|
|
4
|
+
import "./index-BuzRvKOQ.cjs";
|
|
3
5
|
import { Logger } from "@geekmidas/logger";
|
|
4
6
|
import { ComposableStandardSchema } from "@geekmidas/schema";
|
|
5
7
|
import { Service } from "@geekmidas/services";
|
|
6
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
7
8
|
import { AuditableAction } from "@geekmidas/audit";
|
|
8
|
-
|
|
9
9
|
//#region src/crons/Cron.d.ts
|
|
10
|
-
declare class Cron<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined,
|
|
10
|
+
declare class Cron<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, undefined, string, TDatabase, TDatabaseServiceName, AuditableAction<string, unknown>, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>> {
|
|
11
11
|
protected _schedule?: ScheduleExpression | undefined;
|
|
12
12
|
/**
|
|
13
13
|
* Where this cron's schedule lives when a server runs it.
|
|
@@ -15,10 +15,16 @@ declare class Cron<TInput extends ComposableStandardSchema | undefined = undefin
|
|
|
15
15
|
* Carried from the worker that built it, which declared it once with
|
|
16
16
|
* `.database(db)`. Unread on AWS, where the schedule is an EventBridge rule
|
|
17
17
|
* and nothing in this process fires anything.
|
|
18
|
+
*
|
|
19
|
+
* A service rather than the construct, because what reads it is service
|
|
20
|
+
* discovery in the generated server — which registers services, and failed
|
|
21
|
+
* on the construct with `service.register is not a function`.
|
|
18
22
|
*/
|
|
19
|
-
scheduleStore?: unknown
|
|
23
|
+
scheduleStore?: Service<string, unknown>;
|
|
20
24
|
static isCron(obj: any): obj is Cron<any, any, any, any>;
|
|
21
|
-
constructor(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>, timeout?: number, _schedule?: ScheduleExpression | undefined, input?: TInput, outputSchema?: OutSchema, services?: TServices, logger?: TLogger,
|
|
25
|
+
constructor(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>, timeout?: number, _schedule?: ScheduleExpression | undefined, input?: TInput, outputSchema?: OutSchema, services?: TServices, logger?: TLogger,
|
|
26
|
+
/** What it publishes once it has run, each to its own topic. */
|
|
27
|
+
events?: TopicEvent[], memorySize?: number, databaseService?: Service<TDatabaseServiceName, TDatabase>,
|
|
22
28
|
/**
|
|
23
29
|
* The construct ids `.dependsOn()` named — last, so no existing positional
|
|
24
30
|
* argument moves.
|
|
@@ -35,5 +41,5 @@ type CronWeekday = '*' | number | `${number}` | `${number}-${number}` | `${numbe
|
|
|
35
41
|
type CronExpression = `cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;
|
|
36
42
|
type ScheduleExpression = RateExpression | CronExpression;
|
|
37
43
|
//#endregion
|
|
38
|
-
export {
|
|
39
|
-
//# sourceMappingURL=Cron-
|
|
44
|
+
export { ScheduleExpression as i, CronExpression as n, RateExpression as r, Cron as t };
|
|
45
|
+
//# sourceMappingURL=Cron-DI3nKoic.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cron-DI3nKoic.d.cts","names":[],"sources":["../src/crons/Cron.ts"],"mappings":";;;;;;;;;cAUa,KACZ,eAAe,kDACf,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,uBACA,sDACS,SACT,QACA,WACA,SACA,8BAGA,WACA,sBACA,kCACA,gBAAgB,QAAQ,WAAW,SAAS,WAAW;YA0B5C,YAAY;;;;;;;;;;;;EAbvB,gBAAgB;SAET,OAAO,WAAW,OAAO;EAQhC,YACC,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,YAC3D,kBACU,YAAY,gCACtB,QAAQ,QACR,eAAe,WACf,WAAU,WACV,SAAS,SAET;;EAAA,SAAQ,cACR,qBACA,kBAAkB,QAAQ,sBAAsB,YAKhD;;;;;EAAA;MAkBG,YAAY;;KAKL;KAEP;KAUA;KAUA;KAUA;KAqBA;KAiBO,yBACH,cAAc,YAAY,WAAW,aAAa;KAE/C,qBAAqB,iBAAiB"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.mjs";
|
|
2
|
+
import { o as TopicEvent } from "./Construct-QXnl3VqT.mjs";
|
|
3
|
+
import { i as FunctionHandler, n as Function } from "./Function-DuqGcbOI.mjs";
|
|
4
|
+
import "./index-CTkKOer4.mjs";
|
|
2
5
|
import { Service } from "@geekmidas/services";
|
|
3
6
|
import { AuditableAction } from "@geekmidas/audit";
|
|
4
|
-
import { EventPublisher } from "@geekmidas/events";
|
|
5
7
|
import { Logger } from "@geekmidas/logger";
|
|
6
8
|
import { ComposableStandardSchema } from "@geekmidas/schema";
|
|
7
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
8
|
-
|
|
9
9
|
//#region src/crons/Cron.d.ts
|
|
10
|
-
declare class Cron<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined,
|
|
10
|
+
declare class Cron<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, undefined, string, TDatabase, TDatabaseServiceName, AuditableAction<string, unknown>, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>> {
|
|
11
11
|
protected _schedule?: ScheduleExpression | undefined;
|
|
12
12
|
/**
|
|
13
13
|
* Where this cron's schedule lives when a server runs it.
|
|
@@ -15,10 +15,16 @@ declare class Cron<TInput extends ComposableStandardSchema | undefined = undefin
|
|
|
15
15
|
* Carried from the worker that built it, which declared it once with
|
|
16
16
|
* `.database(db)`. Unread on AWS, where the schedule is an EventBridge rule
|
|
17
17
|
* and nothing in this process fires anything.
|
|
18
|
+
*
|
|
19
|
+
* A service rather than the construct, because what reads it is service
|
|
20
|
+
* discovery in the generated server — which registers services, and failed
|
|
21
|
+
* on the construct with `service.register is not a function`.
|
|
18
22
|
*/
|
|
19
|
-
scheduleStore?: unknown
|
|
23
|
+
scheduleStore?: Service<string, unknown>;
|
|
20
24
|
static isCron(obj: any): obj is Cron<any, any, any, any>;
|
|
21
|
-
constructor(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>, timeout?: number, _schedule?: ScheduleExpression | undefined, input?: TInput, outputSchema?: OutSchema, services?: TServices, logger?: TLogger,
|
|
25
|
+
constructor(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>, timeout?: number, _schedule?: ScheduleExpression | undefined, input?: TInput, outputSchema?: OutSchema, services?: TServices, logger?: TLogger,
|
|
26
|
+
/** What it publishes once it has run, each to its own topic. */
|
|
27
|
+
events?: TopicEvent[], memorySize?: number, databaseService?: Service<TDatabaseServiceName, TDatabase>,
|
|
22
28
|
/**
|
|
23
29
|
* The construct ids `.dependsOn()` named — last, so no existing positional
|
|
24
30
|
* argument moves.
|
|
@@ -35,5 +41,5 @@ type CronWeekday = '*' | number | `${number}` | `${number}-${number}` | `${numbe
|
|
|
35
41
|
type CronExpression = `cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;
|
|
36
42
|
type ScheduleExpression = RateExpression | CronExpression;
|
|
37
43
|
//#endregion
|
|
38
|
-
export {
|
|
39
|
-
//# sourceMappingURL=Cron-
|
|
44
|
+
export { ScheduleExpression as i, CronExpression as n, RateExpression as r, Cron as t };
|
|
45
|
+
//# sourceMappingURL=Cron-uYAHPnp7.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cron-uYAHPnp7.d.mts","names":[],"sources":["../src/crons/Cron.ts"],"mappings":";;;;;;;;;cAUa,KACZ,eAAe,kDACf,kBAAkB,gBAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,uBACA,sDACS,SACT,QACA,WACA,SACA,8BAGA,WACA,sBACA,kCACA,gBAAgB,QAAQ,WAAW,SAAS,WAAW;YA0B5C,YAAY;;;;;;;;;;;;EAbvB,gBAAgB;SAET,OAAO,WAAW,OAAO;EAQhC,YACC,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,YAC3D,kBACU,YAAY,gCACtB,QAAQ,QACR,eAAe,WACf,WAAU,WACV,SAAS,SAET;;EAAA,SAAQ,cACR,qBACA,kBAAkB,QAAQ,sBAAsB,YAKhD;;;;;EAAA;MAkBG,YAAY;;KAKL;KAEP;KAUA;KAUA;KAUA;KAqBA;KAiBO,yBACH,cAAc,YAAY,WAAW,aAAa;KAE/C,qBAAqB,iBAAiB"}
|
|
@@ -1,38 +1,41 @@
|
|
|
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-DUSXuTHP.cjs");
|
|
3
|
+
const require_construct_interface = require("./construct-interface.cjs");
|
|
4
|
+
const require_functions = require("./functions-CfzJG9hK.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
|
*
|
|
12
13
|
* Carried from the worker that built it, which declared it once with
|
|
13
14
|
* `.database(db)`. Unread on AWS, where the schedule is an EventBridge rule
|
|
14
15
|
* and nothing in this process fires anything.
|
|
16
|
+
*
|
|
17
|
+
* A service rather than the construct, because what reads it is service
|
|
18
|
+
* discovery in the generated server — which registers services, and failed
|
|
19
|
+
* on the construct with `service.register is not a function`.
|
|
15
20
|
*/
|
|
16
21
|
scheduleStore;
|
|
17
22
|
static isCron(obj) {
|
|
18
|
-
return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type ===
|
|
23
|
+
return Boolean(obj && obj.__IS_FUNCTION__ === true && obj.type === "dev.geekmidas.function.cron");
|
|
19
24
|
}
|
|
20
|
-
constructor(fn, timeout, _schedule, input, outputSchema, services = [], logger,
|
|
21
|
-
super(fn, timeout,
|
|
25
|
+
constructor(fn, timeout, _schedule, input, outputSchema, services = [], logger, events = [], memorySize, databaseService, constructs = []) {
|
|
26
|
+
super(fn, timeout, "dev.geekmidas.function.cron", input, outputSchema, services, logger, events, memorySize, void 0, databaseService, constructs);
|
|
22
27
|
this._schedule = _schedule;
|
|
23
28
|
}
|
|
24
29
|
get schedule() {
|
|
25
30
|
return this._schedule;
|
|
26
31
|
}
|
|
27
32
|
};
|
|
28
|
-
|
|
29
33
|
//#endregion
|
|
30
34
|
//#region src/crons/CronBuilder.ts
|
|
31
|
-
var import_lodash = require_chunk.__toESM(require_functions.require_lodash(), 1);
|
|
32
35
|
var CronBuilder = class extends require_functions.FunctionBuilder {
|
|
33
36
|
_schedule;
|
|
34
37
|
constructor() {
|
|
35
|
-
super(
|
|
38
|
+
super("dev.geekmidas.function.cron");
|
|
36
39
|
}
|
|
37
40
|
memorySize(memorySize) {
|
|
38
41
|
return require_clone.cloneWith(this, { _memorySize: memorySize });
|
|
@@ -60,18 +63,23 @@ var CronBuilder = class extends require_functions.FunctionBuilder {
|
|
|
60
63
|
dependsOn(constructs) {
|
|
61
64
|
const services = require_construct_interface.servicesOf(constructs);
|
|
62
65
|
return require_clone.cloneWith(this, {
|
|
63
|
-
_services: (0,
|
|
66
|
+
_services: (0, import_lodash_uniqby.default)([...this._services, ...services], (s) => s.serviceName),
|
|
64
67
|
_constructs: require_construct_interface.idsOf(constructs, this._constructs)
|
|
65
68
|
});
|
|
66
69
|
}
|
|
67
70
|
services(services) {
|
|
68
|
-
return require_clone.cloneWith(this, { _services: (0,
|
|
71
|
+
return require_clone.cloneWith(this, { _services: (0, import_lodash_uniqby.default)([...this._services, ...services], (s) => s.serviceName) });
|
|
69
72
|
}
|
|
70
73
|
logger(logger) {
|
|
71
74
|
return require_clone.cloneWith(this, { _logger: logger });
|
|
72
75
|
}
|
|
73
|
-
|
|
74
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Publish `event` to `topic` each time the cron has run successfully —
|
|
78
|
+
* repeatable, to as many topics as it names. The topic becomes a dependency
|
|
79
|
+
* as with `.dependsOn([topic])`, so `services.<topic>` is there too.
|
|
80
|
+
*/
|
|
81
|
+
event(topic, event) {
|
|
82
|
+
return this.withEvent(topic, event);
|
|
75
83
|
}
|
|
76
84
|
/**
|
|
77
85
|
* Set the database service for this cron job.
|
|
@@ -79,27 +87,35 @@ var CronBuilder = class extends require_functions.FunctionBuilder {
|
|
|
79
87
|
*/
|
|
80
88
|
database(source) {
|
|
81
89
|
const service = require_construct_interface.serviceOf(source);
|
|
82
|
-
return require_clone.cloneWith(this, {
|
|
90
|
+
return require_clone.cloneWith(this, {
|
|
91
|
+
_databaseService: service,
|
|
92
|
+
...require_construct_interface.databaseEdges({
|
|
93
|
+
constructs: this._constructs,
|
|
94
|
+
edge: this._databaseEdge,
|
|
95
|
+
service: this._databaseService,
|
|
96
|
+
services: this._services
|
|
97
|
+
}, source)
|
|
98
|
+
});
|
|
83
99
|
}
|
|
84
100
|
handle(fn) {
|
|
85
|
-
const cron = new Cron(fn, this._timeout, this._schedule, this.inputSchema, this.outputSchema, this._services, this._logger, this.
|
|
101
|
+
const cron = new Cron(fn, this._timeout, this._schedule, this.inputSchema, this.outputSchema, this._services, this._logger, this._events, this._memorySize, this._databaseService, this._constructs);
|
|
86
102
|
cron.owner = this._owner;
|
|
87
|
-
cron.scheduleStore = this._scheduleStore;
|
|
103
|
+
cron.scheduleStore = this._scheduleStore ? require_construct_interface.serviceOf(this._scheduleStore) : void 0;
|
|
88
104
|
return cron;
|
|
89
105
|
}
|
|
90
106
|
};
|
|
91
|
-
|
|
92
107
|
//#endregion
|
|
93
|
-
Object.defineProperty(exports,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
108
|
+
Object.defineProperty(exports, "Cron", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
get: function() {
|
|
111
|
+
return Cron;
|
|
112
|
+
}
|
|
98
113
|
});
|
|
99
|
-
Object.defineProperty(exports,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
114
|
+
Object.defineProperty(exports, "CronBuilder", {
|
|
115
|
+
enumerable: true,
|
|
116
|
+
get: function() {
|
|
117
|
+
return CronBuilder;
|
|
118
|
+
}
|
|
104
119
|
});
|
|
105
|
-
|
|
120
|
+
|
|
121
|
+
//# sourceMappingURL=CronBuilder-C0Ek1-RA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CronBuilder-C0Ek1-RA.cjs","names":["Function","FunctionBuilder","cloneWith","servicesOf","uniqBy","idsOf","serviceOf","databaseEdges"],"sources":["../src/crons/Cron.ts","../src/crons/CronBuilder.ts"],"sourcesContent":["import type { AuditableAction } from '@geekmidas/audit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { ConstructType } from '../Construct';\nimport { Function, type FunctionHandler } from '../functions';\nimport type { TopicEvent } from '../publisher';\n\nexport class Cron<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends Function<\n\tTInput,\n\tTServices,\n\tTLogger,\n\tOutSchema,\n\tundefined,\n\tstring,\n\tTDatabase,\n\tTDatabaseServiceName,\n\tAuditableAction<string, unknown>,\n\tFunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>\n> {\n\t/**\n\t * Where this cron's schedule lives when a server runs it.\n\t *\n\t * Carried from the worker that built it, which declared it once with\n\t * `.database(db)`. Unread on AWS, where the schedule is an EventBridge rule\n\t * and nothing in this process fires anything.\n\t *\n\t * A service rather than the construct, because what reads it is service\n\t * discovery in the generated server — which registers services, and failed\n\t * on the construct with `service.register is not a function`.\n\t */\n\tscheduleStore?: Service<string, unknown>;\n\n\tstatic isCron(obj: any): obj is Cron<any, any, any, any> {\n\t\treturn Boolean(\n\t\t\tobj &&\n\t\t\t\t(obj as Function).__IS_FUNCTION__ === true &&\n\t\t\t\tobj.type === ConstructType.Cron,\n\t\t);\n\t}\n\n\tconstructor(\n\t\tfn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,\n\t\ttimeout?: number,\n\t\tprotected _schedule?: ScheduleExpression,\n\t\tinput?: TInput,\n\t\toutputSchema?: OutSchema,\n\t\tservices: TServices = [] as unknown as TServices,\n\t\tlogger?: TLogger,\n\t\t/** What it publishes once it has run, each to its own topic. */\n\t\tevents: TopicEvent[] = [],\n\t\tmemorySize?: number,\n\t\tdatabaseService?: Service<TDatabaseServiceName, TDatabase>,\n\t\t/**\n\t\t * The construct ids `.dependsOn()` named — last, so no existing positional\n\t\t * argument moves.\n\t\t */\n\t\tconstructs: string[] = [],\n\t) {\n\t\tsuper(\n\t\t\tfn,\n\t\t\ttimeout,\n\t\t\tConstructType.Cron,\n\t\t\tinput,\n\t\t\toutputSchema,\n\t\t\tservices,\n\t\t\tlogger,\n\t\t\tevents,\n\t\t\tmemorySize,\n\t\t\tundefined, // auditorStorageService\n\t\t\tdatabaseService,\n\t\t\tconstructs,\n\t\t);\n\t}\n\n\tget schedule(): ScheduleExpression | undefined {\n\t\treturn this._schedule;\n\t}\n}\n\nexport type RateExpression = `rate(${string})`;\n\ntype CronMinute =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronHour =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronDay =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronMonth =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| 'JAN'\n\t| 'FEB'\n\t| 'MAR'\n\t| 'APR'\n\t| 'MAY'\n\t| 'JUN'\n\t| 'JUL'\n\t| 'AUG'\n\t| 'SEP'\n\t| 'OCT'\n\t| 'NOV'\n\t| 'DEC'\n\t| string; // Allow more complex patterns\n\ntype CronWeekday =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| 'SUN'\n\t| 'MON'\n\t| 'TUE'\n\t| 'WED'\n\t| 'THU'\n\t| 'FRI'\n\t| 'SAT'\n\t| `${string}-${string}` // Allow patterns like MON-FRI\n\t| string; // Allow more complex patterns\n\nexport type CronExpression =\n\t`cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;\n\nexport type ScheduleExpression = RateExpression | CronExpression;\n","import type { Logger } from '@geekmidas/logger';\nimport type {\n\tComposableStandardSchema,\n\tInferStandardSchema,\n} from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport uniqBy from 'lodash.uniqby';\nimport { ConstructType } from '../Construct';\nimport { cloneWith } from '../clone';\nimport {\n\ttype Consumable,\n\tdatabaseEdges,\n\tidsOf,\n\ttype ServicesOf,\n\tserviceOf,\n\tservicesOf,\n} from '../construct-interface';\nimport { FunctionBuilder, type FunctionHandler } from '../functions';\nimport type { EventFor } from '../publisher';\nimport type { Topic } from '../topic/Topic';\nimport { Cron, type ScheduleExpression } from './Cron';\n\nexport class CronBuilder<\n\tTInput extends ComposableStandardSchema,\n\tTServices extends Service[],\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends FunctionBuilder<\n\tTInput,\n\tOutSchema,\n\tTServices,\n\tTLogger,\n\tundefined,\n\tstring,\n\tTDatabase,\n\tTDatabaseServiceName\n> {\n\tprivate _schedule?: ScheduleExpression;\n\n\tconstructor() {\n\t\tsuper(ConstructType.Cron);\n\t}\n\n\toverride memorySize(memorySize: number): this {\n\t\treturn cloneWith(this, { _memorySize: memorySize });\n\t}\n\n\tschedule(\n\t\t_expression: ScheduleExpression,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, { _schedule: _expression });\n\t}\n\n\toverride input<T extends ComposableStandardSchema>(\n\t\tschema: T,\n\t): CronBuilder<\n\t\tT,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\tinputSchema: schema as unknown as TInput,\n\t\t}) as unknown as CronBuilder<\n\t\t\tT,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride output<T extends StandardSchemaV1>(\n\t\tschema: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tT,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\toutputSchema: schema as unknown as OutSchema,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tT,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Depend on constructs — a database, a bucket, a mail sender, a queue, a\n\t * topic.\n\t *\n\t * It records the edge and dissolves each construct's client into the\n\t * handler's service record under the construct's own id, so\n\t * `.dependsOn([uploads])` is what makes `services.uploads` exist and type.\n\t *\n\t * Constructs only. A `Service` does not match the shape, which is what keeps\n\t * env sniffing confined to `.services()` and the explicit lift.\n\t */\n\toverride dependsOn<const T extends readonly Consumable[]>(\n\t\tconstructs: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\t[...TServices, ...ServicesOf<T>],\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\t// Both halves of the edge, from one call and one clone: the services the\n\t\t// handler runs with, and the ids the manifest records. Recording them\n\t\t// separately is what let them drift apart.\n\t\t//\n\t\t// `servicesOf` is the half that validates, so it runs first — recording\n\t\t// ids ahead of it left a caught `NotAConstruct` with `undefined` already\n\t\t// on a `string[]`.\n\t\tconst services = servicesOf(constructs) as unknown as Service[];\n\n\t\treturn cloneWith(this, {\n\t\t\t_services: uniqBy(\n\t\t\t\t[...this._services, ...services],\n\t\t\t\t(s: Service) => s.serviceName,\n\t\t\t),\n\t\t\t_constructs: idsOf(constructs, this._constructs),\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\t[...TServices, ...ServicesOf<T>],\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride services<T extends Service[]>(\n\t\tservices: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\t[...TServices, ...T],\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\t_services: uniqBy(\n\t\t\t\t[...this._services, ...services],\n\t\t\t\t(s) => s.serviceName,\n\t\t\t) as TServices,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\t[...TServices, ...T],\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\toverride logger<T extends Logger>(\n\t\tlogger: T,\n\t): CronBuilder<\n\t\tTInput,\n\t\tTServices,\n\t\tT,\n\t\tOutSchema,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn cloneWith(this, {\n\t\t\t_logger: logger as unknown as TLogger,\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tT,\n\t\t\tOutSchema,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Publish `event` to `topic` each time the cron has run successfully —\n\t * repeatable, to as many topics as it names. The topic becomes a dependency\n\t * as with `.dependsOn([topic])`, so `services.<topic>` is there too.\n\t */\n\toverride event<TTopic extends Topic<any, any>>(\n\t\ttopic: TTopic,\n\t\tevent: EventFor<TTopic, InferStandardSchema<OutSchema>>,\n\t): CronBuilder<\n\t\tTInput,\n\t\t[...TServices, TTopic['service']],\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\treturn this.withEvent(topic, event as never) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\t[...TServices, TTopic['service']],\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Set the database service for this cron job.\n\t * The database will be available in the handler context as `db`.\n\t */\n\toverride database<T, TName extends string>(\n\t\tsource: Consumable<TName, T> | Service<TName, T>,\n\t): CronBuilder<TInput, TServices, TLogger, OutSchema, T, TName> {\n\t\tconst service = serviceOf(source);\n\n\t\treturn cloneWith(this, {\n\t\t\t_databaseService: service as unknown as Service<\n\t\t\t\tTDatabaseServiceName,\n\t\t\t\tTDatabase\n\t\t\t>,\n\t\t\t// The edge, as `.dependsOn()` records one — see EndpointFactory —\n\t\t\t// in place of the one a previous `.database()` added, which is how a\n\t\t\t// worker's default database is overridden rather than added to.\n\t\t\t...databaseEdges(\n\t\t\t\t{\n\t\t\t\t\tconstructs: this._constructs,\n\t\t\t\t\tedge: this._databaseEdge,\n\t\t\t\t\tservice: this._databaseService as Service | undefined,\n\t\t\t\t\tservices: this._services,\n\t\t\t\t},\n\t\t\t\tsource,\n\t\t\t),\n\t\t}) as unknown as CronBuilder<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tOutSchema,\n\t\t\tT,\n\t\t\tTName\n\t\t>;\n\t}\n\n\toverride handle(\n\t\tfn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,\n\t): Cron<\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tOutSchema,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\tconst cron = new Cron(\n\t\t\tfn,\n\t\t\tthis._timeout,\n\t\t\tthis._schedule,\n\t\t\tthis.inputSchema,\n\t\t\tthis.outputSchema,\n\t\t\tthis._services,\n\t\t\tthis._logger,\n\t\t\tthis._events,\n\t\t\tthis._memorySize,\n\t\t\tthis._databaseService,\n\t\t\tthis._constructs,\n\t\t);\n\n\t\t// Which process runs it. Carried from the factory rather than inferred\n\t\t// from the directory the file happens to sit in.\n\t\tcron.owner = this._owner;\n\n\t\t// And where that process keeps the schedule, when a server is what runs\n\t\t// it. Declared once on the worker rather than repeated per cron.\n\t\tcron.scheduleStore = this._scheduleStore\n\t\t\t? serviceOf(this._scheduleStore as Consumable<string, unknown>)\n\t\t\t: undefined;\n\n\t\t// No reset. `.handle()` reads this builder and leaves it alone, so a\n\t\t// configured base — `const fn = f.logger(log).timeout(60_000)` — keeps\n\t\t// its configuration for every construct built from it. The reset that\n\t\t// used to be here wiped the base on first use, which made a base usable\n\t\t// exactly once, and quietly reverted the logger to the default.\n\n\t\treturn cron;\n\t}\n}\n"],"mappings":";;;;;;;AAUA,IAAa,OAAb,cAOUA,kBAAAA,SAWR;CAyBU;;;;;;;;;;;;CAbX;CAEA,OAAO,OAAO,KAA2C;EACxD,OAAO,QACN,OACE,IAAiB,oBAAoB,QACtC,IAAI,SAAA,6BACN;CACD;CAEA,YACC,IACA,SACA,WACA,OACA,cACA,WAAsB,CAAC,GACvB,QAEA,SAAuB,CAAC,GACxB,YACA,iBAKA,aAAuB,CAAC,GACvB;EACD,MACC,IACA,SAAA,+BAEA,OACA,cACA,UACA,QACA,QACA,YACA,KAAA,GACA,iBACA,UACD;EA5BU,KAAA,YAAA;CA6BX;CAEA,IAAI,WAA2C;EAC9C,OAAO,KAAK;CACb;AACD;;;AChEA,IAAa,cAAb,cAOUC,kBAAAA,gBASR;CACD;CAEA,cAAc;EACb,MAAA,6BAAwB;CACzB;CAEA,WAAoB,YAA0B;EAC7C,OAAOC,cAAAA,UAAU,MAAM,EAAE,aAAa,WAAW,CAAC;CACnD;CAEA,SACC,aAQC;EACD,OAAOA,cAAAA,UAAU,MAAM,EAAE,WAAW,YAAY,CAAC;CAClD;CAEA,MACC,QAQC;EACD,OAAOA,cAAAA,UAAU,MAAM,EACtB,aAAa,OACd,CAAC;CAQF;CAEA,OACC,QAQC;EACD,OAAOA,cAAAA,UAAU,MAAM,EACtB,cAAc,OACf,CAAC;CAQF;;;;;;;;;;;;CAaA,UACC,YAQC;EAQD,MAAM,WAAWC,4BAAAA,WAAW,UAAU;EAEtC,OAAOD,cAAAA,UAAU,MAAM;GACtB,YAAA,GAAWE,qBAAAA,QAAAA,CACV,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,IAC9B,MAAe,EAAE,WACnB;GACA,aAAaC,4BAAAA,MAAM,YAAY,KAAK,WAAW;EAChD,CAAC;CAQF;CAEA,SACC,UAQC;EACD,OAAOH,cAAAA,UAAU,MAAM,EACtB,YAAA,GAAWE,qBAAAA,QAAAA,CACV,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,IAC9B,MAAM,EAAE,WACV,EACD,CAAC;CAQF;CAEA,OACC,QAQC;EACD,OAAOF,cAAAA,UAAU,MAAM,EACtB,SAAS,OACV,CAAC;CAQF;;;;;;CAOA,MACC,OACA,OAQC;EACD,OAAO,KAAK,UAAU,OAAO,KAAc;CAQ5C;;;;;CAMA,SACC,QAC+D;EAC/D,MAAM,UAAUI,4BAAAA,UAAU,MAAM;EAEhC,OAAOJ,cAAAA,UAAU,MAAM;GACtB,kBAAkB;GAOlB,GAAGK,4BAAAA,cACF;IACC,YAAY,KAAK;IACjB,MAAM,KAAK;IACX,SAAS,KAAK;IACd,UAAU,KAAK;GAChB,GACA,MACD;EACD,CAAC;CAQF;CAEA,OACC,IAQC;EACD,MAAM,OAAO,IAAI,KAChB,IACA,KAAK,UACL,KAAK,WACL,KAAK,aACL,KAAK,cACL,KAAK,WACL,KAAK,SACL,KAAK,SACL,KAAK,aACL,KAAK,kBACL,KAAK,WACN;EAIA,KAAK,QAAQ,KAAK;EAIlB,KAAK,gBAAgB,KAAK,iBACvBD,4BAAAA,UAAU,KAAK,cAA6C,IAC5D,KAAA;EAQH,OAAO;CACR;AACD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.mjs";
|
|
2
|
+
import { a as EventFor, c as Topic } from "./Construct-QXnl3VqT.mjs";
|
|
3
|
+
import { i as FunctionHandler } from "./Function-DuqGcbOI.mjs";
|
|
4
|
+
import { c as ServicesOf, r as Consumable } from "./construct-interface-DluK3_da.mjs";
|
|
5
|
+
import { t as FunctionBuilder } from "./index-CTkKOer4.mjs";
|
|
6
|
+
import { i as ScheduleExpression, t as Cron } from "./Cron-uYAHPnp7.mjs";
|
|
7
|
+
import { Service } from "@geekmidas/services";
|
|
8
|
+
import { Logger } from "@geekmidas/logger";
|
|
9
|
+
import { ComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
|
|
10
|
+
//#region src/crons/CronBuilder.d.ts
|
|
11
|
+
declare class CronBuilder<TInput extends ComposableStandardSchema, TServices extends Service[], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TDatabaseServiceName extends string = string> extends FunctionBuilder<TInput, OutSchema, TServices, TLogger, undefined, string, TDatabase, TDatabaseServiceName> {
|
|
12
|
+
private _schedule?;
|
|
13
|
+
constructor();
|
|
14
|
+
memorySize(memorySize: number): this;
|
|
15
|
+
schedule(_expression: ScheduleExpression): CronBuilder<TInput, TServices, TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
|
|
16
|
+
input<T extends ComposableStandardSchema>(schema: T): CronBuilder<T, TServices, TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
|
|
17
|
+
output<T extends StandardSchemaV1>(schema: T): CronBuilder<TInput, TServices, TLogger, T, TDatabase, TDatabaseServiceName>;
|
|
18
|
+
/**
|
|
19
|
+
* Depend on constructs — a database, a bucket, a mail sender, a queue, a
|
|
20
|
+
* topic.
|
|
21
|
+
*
|
|
22
|
+
* It records the edge and dissolves each construct's client into the
|
|
23
|
+
* handler's service record under the construct's own id, so
|
|
24
|
+
* `.dependsOn([uploads])` is what makes `services.uploads` exist and type.
|
|
25
|
+
*
|
|
26
|
+
* Constructs only. A `Service` does not match the shape, which is what keeps
|
|
27
|
+
* env sniffing confined to `.services()` and the explicit lift.
|
|
28
|
+
*/
|
|
29
|
+
dependsOn<const T extends readonly Consumable[]>(constructs: T): CronBuilder<TInput, [...TServices, ...ServicesOf<T>], TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
|
|
30
|
+
services<T extends Service[]>(services: T): CronBuilder<TInput, [...TServices, ...T], TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
|
|
31
|
+
logger<T extends Logger>(logger: T): CronBuilder<TInput, TServices, T, OutSchema, TDatabase, TDatabaseServiceName>;
|
|
32
|
+
/**
|
|
33
|
+
* Publish `event` to `topic` each time the cron has run successfully —
|
|
34
|
+
* repeatable, to as many topics as it names. The topic becomes a dependency
|
|
35
|
+
* as with `.dependsOn([topic])`, so `services.<topic>` is there too.
|
|
36
|
+
*/
|
|
37
|
+
event<TTopic extends Topic<any, any>>(topic: TTopic, event: EventFor<TTopic, InferStandardSchema<OutSchema>>): CronBuilder<TInput, [...TServices, TTopic['service']], TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
|
|
38
|
+
/**
|
|
39
|
+
* Set the database service for this cron job.
|
|
40
|
+
* The database will be available in the handler context as `db`.
|
|
41
|
+
*/
|
|
42
|
+
database<T, TName extends string>(source: Consumable<TName, T> | Service<TName, T>): CronBuilder<TInput, TServices, TLogger, OutSchema, T, TName>;
|
|
43
|
+
handle(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>): Cron<TInput, TServices, TLogger, OutSchema, TDatabase, TDatabaseServiceName>;
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { CronBuilder as t };
|
|
47
|
+
//# sourceMappingURL=CronBuilder-DaSUm2Na.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CronBuilder-DaSUm2Na.d.mts","names":[],"sources":["../src/crons/CronBuilder.ts"],"mappings":";;;;;;;;;;cAuBa,YACZ,eAAe,0BACf,kBAAkB,WAClB,gBAAgB,SAAS,QACzB,kBAAkB,0CAClB,uBACA,sDACS,gBACT,QACA,WACA,WACA,4BAGA,WACA;UAEQ;EAER;EAIS,WAAW;EAIpB,SACC,aAAa,qBACX,YACF,QACA,WACA,SACA,WACA,WACA;EAKQ,MAAM,UAAU,0BACxB,QAAQ,IACN,YACF,GACA,WACA,SACA,WACA,WACA;EAcQ,OAAO,UAAU,kBACzB,QAAQ,IACN,YACF,QACA,WACA,SACA,GACA,WACA;;;;;;;;;;;;EAyBQ,gBAAgB,mBAAmB,cAC3C,YAAY,IACV,YACF,YACI,cAAc,WAAW,KAC7B,SACA,WACA,WACA;EA2BQ,SAAS,UAAU,WAC3B,UAAU,IACR,YACF,YACI,cAAc,IAClB,SACA,WACA,WACA;EAiBQ,OAAO,UAAU,QACzB,QAAQ,IACN,YACF,QACA,WACA,GACA,WACA,WACA;;;;;;EAmBQ,MAAM,eAAe,iBAC7B,OAAO,QACP,OAAO,SAAS,QAAQ,oBAAoB,cAC1C,YACF,YACI,WAAW,oBACf,SACA,WACA,WACA;;;;;EAgBQ,SAAS,GAAG,sBACpB,QAAQ,WAAW,OAAO,KAAK,QAAQ,OAAO,KAC5C,YAAY,QAAQ,WAAW,SAAS,WAAW,GAAG;EA8BhD,OACR,IAAI,gBAAgB,QAAQ,WAAW,SAAS,WAAW,aACzD,KACF,QACA,WACA,SACA,WACA,WACA"}
|