@geekmidas/constructs 10.0.0-alpha.11 → 10.0.0-alpha.111
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-BQALFCh2.d.cts +230 -0
- package/dist/Construct-BQALFCh2.d.cts.map +1 -0
- package/dist/{Construct-BD5neF7w.mjs → Construct-CKUA-CTA.mjs} +35 -35
- package/dist/Construct-CKUA-CTA.mjs.map +1 -0
- package/dist/{Construct-CyS3RpTL.cjs → Construct-DEOVauyA.cjs} +55 -49
- package/dist/Construct-DEOVauyA.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-CQJqqkhY.d.mts} +17 -11
- package/dist/Cron-CQJqqkhY.d.mts.map +1 -0
- package/dist/{Cron-dh4rUgib.d.mts → Cron-DI3nKoic.d.cts} +17 -11
- package/dist/Cron-DI3nKoic.d.cts.map +1 -0
- package/dist/{CronBuilder-Da0C0edR.cjs → CronBuilder-BXTG10u5.cjs} +47 -31
- package/dist/CronBuilder-BXTG10u5.cjs.map +1 -0
- package/dist/{CronBuilder-CYKT5RiO.mjs → CronBuilder-D3sF9tS_.mjs} +37 -21
- package/dist/CronBuilder-D3sF9tS_.mjs.map +1 -0
- package/dist/CronBuilder-Xx_zakuc.d.mts +47 -0
- package/dist/CronBuilder-Xx_zakuc.d.mts.map +1 -0
- package/dist/CronBuilder-g1lZLWyG.d.cts +47 -0
- package/dist/CronBuilder-g1lZLWyG.d.cts.map +1 -0
- package/dist/{Endpoint-BjWKinFA.d.mts → Endpoint-BWyKCa2x.d.cts} +130 -100
- package/dist/Endpoint-BWyKCa2x.d.cts.map +1 -0
- package/dist/{Endpoint-dav89W6-.d.cts → Endpoint-CrE9Ppdk.d.mts} +130 -100
- package/dist/Endpoint-CrE9Ppdk.d.mts.map +1 -0
- package/dist/{Endpoint-DCQPMdUX.mjs → Endpoint-gPXhHKhJ.mjs} +208 -100
- package/dist/Endpoint-gPXhHKhJ.mjs.map +1 -0
- package/dist/{Endpoint-DcWXE-SZ.cjs → Endpoint-yhR2T2Wt.cjs} +248 -122
- package/dist/Endpoint-yhR2T2Wt.cjs.map +1 -0
- package/dist/{index-lAO9egTb.d.mts → EndpointFactory-BV-nfnaP.d.mts} +85 -136
- package/dist/EndpointFactory-BV-nfnaP.d.mts.map +1 -0
- package/dist/{EndpointFactory-CdWB7wPw.cjs → EndpointFactory-BVv6EIDu.cjs} +98 -112
- package/dist/EndpointFactory-BVv6EIDu.cjs.map +1 -0
- package/dist/{index-Bd5FqCoe.d.cts → EndpointFactory-C1-IBwm4.d.cts} +84 -135
- package/dist/EndpointFactory-C1-IBwm4.d.cts.map +1 -0
- package/dist/{EndpointFactory-CjV8F_lJ.mjs → EndpointFactory-Cs8IHvwF.mjs} +62 -76
- package/dist/EndpointFactory-Cs8IHvwF.mjs.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-DtL9j19R.cjs → HonoEndpointAdaptor-CN1jjUBJ.cjs} +115 -71
- package/dist/HonoEndpointAdaptor-CN1jjUBJ.cjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-P1ahhZHu.mjs → HonoEndpointAdaptor-euH1oSdY.mjs} +105 -64
- package/dist/HonoEndpointAdaptor-euH1oSdY.mjs.map +1 -0
- package/dist/Queue-BhuofM3k.cjs +109 -0
- package/dist/Queue-BhuofM3k.cjs.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/Queue-cmhqEBOB.mjs +104 -0
- package/dist/Queue-cmhqEBOB.mjs.map +1 -0
- package/dist/QueueBuilder-Cx9lKC5d.d.mts +75 -0
- package/dist/QueueBuilder-Cx9lKC5d.d.mts.map +1 -0
- package/dist/QueueBuilder-DXu1qxT1.mjs +118 -0
- package/dist/QueueBuilder-DXu1qxT1.mjs.map +1 -0
- package/dist/QueueBuilder-DdU2klPu.cjs +135 -0
- package/dist/QueueBuilder-DdU2klPu.cjs.map +1 -0
- package/dist/QueueBuilder-OSi6LkV9.d.cts +75 -0
- package/dist/QueueBuilder-OSi6LkV9.d.cts.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-4DWe9feX.d.mts +67 -0
- package/dist/SubscriberBuilder-4DWe9feX.d.mts.map +1 -0
- package/dist/{SubscriberBuilder-BjkbeT9l.mjs → SubscriberBuilder-DRXfxWn_.mjs} +50 -24
- package/dist/SubscriberBuilder-DRXfxWn_.mjs.map +1 -0
- package/dist/{SubscriberBuilder-4OPehf2R.cjs → SubscriberBuilder-M2EAgQhC.cjs} +61 -36
- package/dist/SubscriberBuilder-M2EAgQhC.cjs.map +1 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts +67 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts.map +1 -0
- package/dist/Topic-D2R0r24C.mjs +99 -0
- package/dist/Topic-D2R0r24C.mjs.map +1 -0
- package/dist/Topic-DwS3QO0m.cjs +104 -0
- package/dist/Topic-DwS3QO0m.cjs.map +1 -0
- package/dist/adaptors/aws.cjs +200 -246
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +58 -62
- package/dist/adaptors/aws.d.cts.map +1 -1
- package/dist/adaptors/aws.d.mts +59 -63
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +171 -219
- 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 +9 -18
- package/dist/adaptors/hono.d.mts.map +1 -1
- package/dist/adaptors/hono.mjs +2 -10
- package/dist/adaptors/testing.cjs +765 -99
- 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 +726 -78
- 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-D_0788uW.d.mts +268 -0
- package/dist/auth-D_0788uW.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-5QZzh5Er.d.mts} +3 -6
- package/dist/cache-5QZzh5Er.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-ZvYQbivO.d.mts} +42 -11
- package/dist/construct-interface-ZvYQbivO.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-DYymbp_7.cjs +257 -0
- package/dist/credential-DYymbp_7.cjs.map +1 -0
- package/dist/credential-DfSAOOdY.mjs +222 -0
- package/dist/credential-DfSAOOdY.mjs.map +1 -0
- package/dist/credential.cjs +8 -96
- package/dist/credential.d.cts +2 -61
- package/dist/credential.d.mts +2 -61
- package/dist/credential.mjs +2 -94
- 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 +4 -8
- 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 +20 -16
- package/dist/endpoints/index.d.cts +105 -7
- package/dist/endpoints/index.d.cts.map +1 -0
- package/dist/endpoints/index.d.mts +105 -7
- package/dist/endpoints/index.d.mts.map +1 -0
- package/dist/endpoints/index.mjs +6 -10
- package/dist/external-api.cjs +106 -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 +103 -0
- package/dist/external-api.mjs.map +1 -0
- package/dist/fake-DqKo8INJ.d.mts +201 -0
- package/dist/fake-DqKo8INJ.d.mts.map +1 -0
- package/dist/fake-Dvion_Fh.d.cts +201 -0
- package/dist/fake-Dvion_Fh.d.cts.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-CTI-hDem.mjs} +376 -238
- package/dist/{functions-14lpEFL4.mjs.map → functions-CTI-hDem.mjs.map} +1 -1
- package/dist/{functions-i_la-N5r.cjs → functions-D7O5SGVc.cjs} +414 -264
- package/dist/functions-D7O5SGVc.cjs.map +1 -0
- package/dist/index-B13kQB_U.d.mts +115 -0
- package/dist/index-B13kQB_U.d.mts.map +1 -0
- package/dist/index-BuzRvKOQ.d.cts +115 -0
- package/dist/index-BuzRvKOQ.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.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-B3zfg9ti.cjs +383 -0
- package/dist/kysely-B3zfg9ti.cjs.map +1 -0
- package/dist/kysely-B_0BAr0T.mjs +370 -0
- package/dist/kysely-B_0BAr0T.mjs.map +1 -0
- package/dist/kysely-D0bpzgPs.d.cts +175 -0
- package/dist/kysely-D0bpzgPs.d.cts.map +1 -0
- package/dist/kysely-DKwnl0nf.d.mts +175 -0
- package/dist/kysely-DKwnl0nf.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/mobile-app.cjs +74 -0
- package/dist/mobile-app.cjs.map +1 -0
- package/dist/mobile-app.d.cts +73 -0
- package/dist/mobile-app.d.cts.map +1 -0
- package/dist/mobile-app.d.mts +73 -0
- package/dist/mobile-app.d.mts.map +1 -0
- package/dist/mobile-app.mjs +73 -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/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/random-password.cjs +86 -0
- package/dist/random-password.cjs.map +1 -0
- package/dist/random-password.d.cts +30 -0
- package/dist/random-password.d.cts.map +1 -0
- package/dist/random-password.d.mts +30 -0
- package/dist/random-password.d.mts.map +1 -0
- package/dist/random-password.mjs +84 -0
- package/dist/random-password.mjs.map +1 -0
- package/dist/{lazyAccessors-BoJN3SMd.mjs → readRequestBody-BTIl3k-D.mjs} +117 -60
- package/dist/readRequestBody-BTIl3k-D.mjs.map +1 -0
- package/dist/readRequestBody-Dej_L3c4.cjs +342 -0
- package/dist/readRequestBody-Dej_L3c4.cjs.map +1 -0
- package/dist/requestLogger-BZcXwdBs.cjs +207 -0
- package/dist/requestLogger-BZcXwdBs.cjs.map +1 -0
- package/dist/requestLogger-pA4gi3E1.mjs +178 -0
- package/dist/requestLogger-pA4gi3E1.mjs.map +1 -0
- 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-BEoBn6GO.d.mts +40 -0
- package/dist/telemetry-BEoBn6GO.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-Bbj1uoFJ.mjs +127 -0
- package/dist/tracing-Bbj1uoFJ.mjs.map +1 -0
- package/dist/tracing-C0ooU0V2.cjs +150 -0
- package/dist/tracing-C0ooU0V2.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 +71 -46
- package/dist/worker.d.mts.map +1 -1
- package/dist/worker.mjs +54 -29
- package/dist/worker.mjs.map +1 -1
- package/package.json +106 -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/credential.cjs.map +0 -1
- package/dist/credential.d.cts.map +0 -1
- package/dist/credential.d.mts.map +0 -1
- package/dist/credential.mjs.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 +0 -274
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"CronBuilder-D3sF9tS_.mjs","names":["uniqBy"],"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,cAOU,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,cAOU,gBASR;CACD;CAEA,cAAc;EACb,MAAA,6BAAwB;CACzB;CAEA,WAAoB,YAA0B;EAC7C,OAAO,UAAU,MAAM,EAAE,aAAa,WAAW,CAAC;CACnD;CAEA,SACC,aAQC;EACD,OAAO,UAAU,MAAM,EAAE,WAAW,YAAY,CAAC;CAClD;CAEA,MACC,QAQC;EACD,OAAO,UAAU,MAAM,EACtB,aAAa,OACd,CAAC;CAQF;CAEA,OACC,QAQC;EACD,OAAO,UAAU,MAAM,EACtB,cAAc,OACf,CAAC;CAQF;;;;;;;;;;;;CAaA,UACC,YAQC;EAQD,MAAM,WAAW,WAAW,UAAU;EAEtC,OAAO,UAAU,MAAM;GACtB,YAAA,GAAWA,qBAAAA,QAAAA,CACV,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,IAC9B,MAAe,EAAE,WACnB;GACA,aAAa,MAAM,YAAY,KAAK,WAAW;EAChD,CAAC;CAQF;CAEA,SACC,UAQC;EACD,OAAO,UAAU,MAAM,EACtB,YAAA,GAAWA,qBAAAA,QAAAA,CACV,CAAC,GAAG,KAAK,WAAW,GAAG,QAAQ,IAC9B,MAAM,EAAE,WACV,EACD,CAAC;CAQF;CAEA,OACC,QAQC;EACD,OAAO,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,UAAU,UAAU,MAAM;EAEhC,OAAO,UAAU,MAAM;GACtB,kBAAkB;GAOlB,GAAG,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,iBACvB,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-ZvYQbivO.mjs";
|
|
5
|
+
import { t as FunctionBuilder } from "./index-B13kQB_U.mjs";
|
|
6
|
+
import { i as ScheduleExpression, t as Cron } from "./Cron-CQJqqkhY.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-Xx_zakuc.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CronBuilder-Xx_zakuc.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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { t as StandardSchemaV1 } from "./index-CeEtxDmK.cjs";
|
|
2
|
+
import { a as EventFor, c as Topic } from "./Construct-BQALFCh2.cjs";
|
|
3
|
+
import { i as FunctionHandler } from "./Function-Pu-1kKZz.cjs";
|
|
4
|
+
import { c as ServicesOf, r as Consumable } from "./construct-interface-B1AfqRl4.cjs";
|
|
5
|
+
import { t as FunctionBuilder } from "./index-BuzRvKOQ.cjs";
|
|
6
|
+
import { i as ScheduleExpression, t as Cron } from "./Cron-DI3nKoic.cjs";
|
|
7
|
+
import { Logger } from "@geekmidas/logger";
|
|
8
|
+
import { ComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
|
|
9
|
+
import { Service } from "@geekmidas/services";
|
|
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-g1lZLWyG.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CronBuilder-g1lZLWyG.d.cts","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"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
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 { t as Authenticator } from "./construct-interface-B1AfqRl4.cjs";
|
|
5
|
+
import "./index-BuzRvKOQ.cjs";
|
|
6
|
+
import { n as LowerHttpMethod, t as HttpMethod } from "./types-DMuSQeLL.cjs";
|
|
7
|
+
import { t as EndpointTelemetry } from "./telemetry-B48RLjyk.cjs";
|
|
8
|
+
import { i as AuthSession } from "./auth-BMCJN30Y.cjs";
|
|
4
9
|
import { EnvironmentParser } from "@geekmidas/envkit";
|
|
10
|
+
import { Logger } from "@geekmidas/logger";
|
|
11
|
+
import { InferComposableStandardSchema, InferStandardSchema, InferStandardSchemaInput } from "@geekmidas/schema";
|
|
5
12
|
import { Service, ServiceRecord } from "@geekmidas/services";
|
|
6
13
|
import { AuditActor, AuditStorage, AuditableAction, Auditor, ExtractAuditPayload, ExtractAuditType } from "@geekmidas/audit";
|
|
7
14
|
import { RateLimitConfig } from "@geekmidas/rate-limit";
|
|
8
|
-
import {
|
|
9
|
-
import { Logger } from "@geekmidas/logger";
|
|
10
|
-
import { InferComposableStandardSchema, InferStandardSchema, InferStandardSchemaInput } from "@geekmidas/schema";
|
|
11
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
15
|
+
import { ComponentCollector, OpenApiSchemaOptions } from "@geekmidas/schema/openapi";
|
|
12
16
|
import { OpenAPIV3_1 } from "openapi-types";
|
|
13
|
-
|
|
14
17
|
//#region src/endpoints/Authorizer.d.ts
|
|
15
18
|
/**
|
|
16
19
|
* OpenAPI 3.1 compliant security scheme definition.
|
|
@@ -57,38 +60,38 @@ interface OAuthFlow {
|
|
|
57
60
|
*/
|
|
58
61
|
declare const BUILT_IN_SECURITY_SCHEMES: {
|
|
59
62
|
readonly jwt: {
|
|
60
|
-
readonly type:
|
|
61
|
-
readonly scheme:
|
|
62
|
-
readonly bearerFormat:
|
|
63
|
-
readonly description:
|
|
63
|
+
readonly type: 'http';
|
|
64
|
+
readonly scheme: 'bearer';
|
|
65
|
+
readonly bearerFormat: 'JWT';
|
|
66
|
+
readonly description: 'JWT Bearer token authentication';
|
|
64
67
|
};
|
|
65
68
|
readonly bearer: {
|
|
66
|
-
readonly type:
|
|
67
|
-
readonly scheme:
|
|
68
|
-
readonly description:
|
|
69
|
+
readonly type: 'http';
|
|
70
|
+
readonly scheme: 'bearer';
|
|
71
|
+
readonly description: 'Bearer token authentication';
|
|
69
72
|
};
|
|
70
73
|
readonly apiKey: {
|
|
71
|
-
readonly type:
|
|
72
|
-
readonly in:
|
|
73
|
-
readonly name:
|
|
74
|
-
readonly description:
|
|
74
|
+
readonly type: 'apiKey';
|
|
75
|
+
readonly in: 'header';
|
|
76
|
+
readonly name: 'X-API-Key';
|
|
77
|
+
readonly description: 'API key authentication via header';
|
|
75
78
|
};
|
|
76
79
|
readonly oauth2: {
|
|
77
|
-
readonly type:
|
|
80
|
+
readonly type: 'oauth2';
|
|
78
81
|
readonly flows: {};
|
|
79
|
-
readonly description:
|
|
82
|
+
readonly description: 'OAuth 2.0 authentication';
|
|
80
83
|
};
|
|
81
84
|
readonly oidc: {
|
|
82
|
-
readonly type:
|
|
83
|
-
readonly openIdConnectUrl:
|
|
84
|
-
readonly description:
|
|
85
|
+
readonly type: 'openIdConnect';
|
|
86
|
+
readonly openIdConnectUrl: '';
|
|
87
|
+
readonly description: 'OpenID Connect authentication';
|
|
85
88
|
};
|
|
86
89
|
readonly iam: {
|
|
87
|
-
readonly type:
|
|
88
|
-
readonly in:
|
|
89
|
-
readonly name:
|
|
90
|
-
readonly description:
|
|
91
|
-
readonly 'x-amazon-apigateway-authtype':
|
|
90
|
+
readonly type: 'apiKey';
|
|
91
|
+
readonly in: 'header';
|
|
92
|
+
readonly name: 'Authorization';
|
|
93
|
+
readonly description: 'AWS IAM Signature Version 4 authentication';
|
|
94
|
+
readonly 'x-amazon-apigateway-authtype': 'awsSigv4';
|
|
92
95
|
};
|
|
93
96
|
};
|
|
94
97
|
/** Names of built-in security schemes */
|
|
@@ -133,7 +136,6 @@ declare function isBuiltInSecurityScheme(name: string): name is BuiltInSecurityS
|
|
|
133
136
|
* Get a security scheme by name (built-in or custom)
|
|
134
137
|
*/
|
|
135
138
|
declare function getSecurityScheme(name: string, customSchemes?: Record<string, SecurityScheme>): SecurityScheme | undefined;
|
|
136
|
-
//# sourceMappingURL=Authorizer.d.ts.map
|
|
137
139
|
//#endregion
|
|
138
140
|
//#region src/endpoints/audit.d.ts
|
|
139
141
|
/**
|
|
@@ -169,9 +171,6 @@ type ActorExtractor<TServices extends Service[] = [], TSession = unknown, TLogge
|
|
|
169
171
|
cookie: CookieFn;
|
|
170
172
|
logger: TLogger;
|
|
171
173
|
}) => AuditActor | Promise<AuditActor>;
|
|
172
|
-
/**
|
|
173
|
-
* Configuration for the auditor on an endpoint.
|
|
174
|
-
*/
|
|
175
174
|
//#endregion
|
|
176
175
|
//#region src/endpoints/rls.d.ts
|
|
177
176
|
/**
|
|
@@ -225,7 +224,23 @@ declare const RLS_BYPASS: unique symbol;
|
|
|
225
224
|
* Type for RLS bypass marker.
|
|
226
225
|
*/
|
|
227
226
|
type RlsBypass = typeof RLS_BYPASS;
|
|
228
|
-
//#
|
|
227
|
+
//#endregion
|
|
228
|
+
//#region src/endpoints/sessionAuth.d.ts
|
|
229
|
+
/**
|
|
230
|
+
* The surface's authenticator, as a session callback sees it.
|
|
231
|
+
*
|
|
232
|
+
* Bound to the request being handled, so reading the session takes no
|
|
233
|
+
* argument: `session(async ({ auth }) => auth.getSession())`.
|
|
234
|
+
*/
|
|
235
|
+
interface SessionAuth {
|
|
236
|
+
/** This request's session, verified by the `.auth()` construct — or `null`. */
|
|
237
|
+
getSession(): Promise<AuthSession | null>;
|
|
238
|
+
}
|
|
239
|
+
/** `auth.getSession()` was called on a surface that names no authenticator. */
|
|
240
|
+
declare class NoAuthenticator extends Error {
|
|
241
|
+
readonly surface: string | undefined;
|
|
242
|
+
constructor(surface: string | undefined);
|
|
243
|
+
}
|
|
229
244
|
//#endregion
|
|
230
245
|
//#region src/endpoints/Endpoint.d.ts
|
|
231
246
|
/**
|
|
@@ -253,7 +268,7 @@ type RlsBypass = typeof RLS_BYPASS;
|
|
|
253
268
|
* });
|
|
254
269
|
* ```
|
|
255
270
|
*/
|
|
256
|
-
declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown,
|
|
271
|
+
declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, TAuditStorage, TAuditStorageServiceName, TDatabase, TDatabaseServiceName, TAuditAction, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>> {
|
|
257
272
|
operationId?: string;
|
|
258
273
|
/** The route path pattern with parameter placeholders */
|
|
259
274
|
route: TRoute;
|
|
@@ -271,18 +286,30 @@ declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput
|
|
|
271
286
|
description?: string;
|
|
272
287
|
/** Optional tags for OpenAPI documentation */
|
|
273
288
|
tags?: string[];
|
|
274
|
-
/** The HTTP
|
|
275
|
-
readonly status:
|
|
289
|
+
/** The HTTP status code to return (default: 200) */
|
|
290
|
+
readonly status: EndpointStatus;
|
|
276
291
|
/**
|
|
277
292
|
* Response content type for this endpoint. Defaults to `'application/json'`.
|
|
278
293
|
* Non-JSON types cause adaptors to emit the body as-is with the declared
|
|
279
294
|
* Content-Type header instead of JSON-serializing.
|
|
280
295
|
*/
|
|
281
296
|
readonly responseType: string;
|
|
297
|
+
/**
|
|
298
|
+
* This route's telemetry — `.telemetry({ ignore, attributes })` — read by
|
|
299
|
+
* the build, which hands it to the request middleware.
|
|
300
|
+
*/
|
|
301
|
+
telemetry?: EndpointTelemetry;
|
|
282
302
|
/** Default headers to apply to all responses */
|
|
283
303
|
readonly defaultHeaders: Record<string, string>;
|
|
284
304
|
/** Function to extract session data from the request context */
|
|
285
305
|
getSession: SessionFn<TServices, TLogger, TSession, TDatabase>;
|
|
306
|
+
/**
|
|
307
|
+
* Whether a session callback was given — `.session()` on the factory it was
|
|
308
|
+
* built from. A generated handler reads the session only when it is, so
|
|
309
|
+
* an endpoint with a session and no authorizer must say so: it used to be
|
|
310
|
+
* handed `undefined` in a production build and its session in `gkm dev`.
|
|
311
|
+
*/
|
|
312
|
+
readonly hasSession: boolean;
|
|
286
313
|
/** Function to determine if the request is authorized */
|
|
287
314
|
authorize: AuthorizeFn<TServices, TLogger, TSession, TInput, TDatabase>;
|
|
288
315
|
/** Optional rate limiting configuration */
|
|
@@ -319,7 +346,7 @@ declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput
|
|
|
319
346
|
* });
|
|
320
347
|
* ```
|
|
321
348
|
*/
|
|
322
|
-
static buildOpenApiSchema(endpoints: Endpoint<any, any, any, any, any, any>[], options?: OpenApiSchemaOptions): Promise<
|
|
349
|
+
static buildOpenApiSchema(endpoints: Endpoint<any, any, any, any, any, any>[], options?: OpenApiSchemaOptions): Promise<any>;
|
|
323
350
|
/**
|
|
324
351
|
* Gets the full path including HTTP method and route.
|
|
325
352
|
* @returns Formatted string like 'GET /users/{id}'
|
|
@@ -343,6 +370,12 @@ declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput
|
|
|
343
370
|
*/
|
|
344
371
|
parseBody(body: unknown): Promise<InferStandardSchema<TInput['body']>>;
|
|
345
372
|
static isSuccessStatus(status: number): boolean;
|
|
373
|
+
/**
|
|
374
|
+
* Whether `status` sends the client elsewhere. A redirect has no body, so
|
|
375
|
+
* its response is not checked against the output schema, and what is
|
|
376
|
+
* derived from the output — declared events and audits — is not sent.
|
|
377
|
+
*/
|
|
378
|
+
static isRedirectStatus(status: number | undefined): boolean;
|
|
346
379
|
/**
|
|
347
380
|
* Creates a case-insensitive header lookup function from a headers object.
|
|
348
381
|
*
|
|
@@ -399,7 +432,7 @@ declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput
|
|
|
399
432
|
* @internal
|
|
400
433
|
*/
|
|
401
434
|
refineInput(ctx: EndpointContext<TInput, TServices, TLogger, TSession>): InferComposableStandardSchema<TInput>;
|
|
402
|
-
handler: (ctx: EndpointContext<TInput, TServices, TLogger, TSession, TAuditAction, TDatabase, TAuditStorage>, response: ResponseBuilder) => OutSchema extends StandardSchemaV1 ? InferStandardSchemaInput<OutSchema> | ResponseWithMetadata<InferStandardSchemaInput<OutSchema>> | Promise<InferStandardSchemaInput<OutSchema
|
|
435
|
+
handler: (ctx: EndpointContext<TInput, TServices, TLogger, TSession, TAuditAction, TDatabase, TAuditStorage>, response: ResponseBuilder) => OutSchema extends StandardSchemaV1 ? InferStandardSchemaInput<OutSchema> | ResponseWithMetadata<InferStandardSchemaInput<OutSchema>> | Promise<InferStandardSchemaInput<OutSchema> | ResponseWithMetadata<InferStandardSchemaInput<OutSchema>>> : any | ResponseWithMetadata<any> | Promise<any> | Promise<ResponseWithMetadata<any>>;
|
|
403
436
|
/**
|
|
404
437
|
* Type guard to check if an object is an Endpoint instance.
|
|
405
438
|
*
|
|
@@ -441,53 +474,8 @@ declare class Endpoint<TRoute extends string, TMethod extends HttpMethod, TInput
|
|
|
441
474
|
* @param options.status - Success HTTP status code (default: 200)
|
|
442
475
|
* @param options.authorizer - Optional authorizer configuration
|
|
443
476
|
*/
|
|
444
|
-
constructor({
|
|
445
|
-
fn,
|
|
446
|
-
method,
|
|
447
|
-
route,
|
|
448
|
-
description,
|
|
449
|
-
tags,
|
|
450
|
-
input,
|
|
451
|
-
logger,
|
|
452
|
-
output: outputSchema,
|
|
453
|
-
services,
|
|
454
|
-
constructs,
|
|
455
|
-
timeout,
|
|
456
|
-
memorySize,
|
|
457
|
-
getSession,
|
|
458
|
-
authorize,
|
|
459
|
-
rateLimit,
|
|
460
|
-
status,
|
|
461
|
-
publisherService,
|
|
462
|
-
events,
|
|
463
|
-
authorizer,
|
|
464
|
-
surface,
|
|
465
|
-
auditorStorageService,
|
|
466
|
-
actorExtractor,
|
|
467
|
-
audits,
|
|
468
|
-
databaseService,
|
|
469
|
-
rlsConfig,
|
|
470
|
-
rlsBypass,
|
|
471
|
-
responseType
|
|
472
|
-
}: EndpointOptions<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, OutSchema, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>);
|
|
477
|
+
constructor({ fn, method, route, description, tags, input, logger, output: outputSchema, services, constructs, timeout, memorySize, getSession, authorize, rateLimit, status, events, authorizer, surface, auditorStorageService, actorExtractor, audits, databaseService, rlsConfig, rlsBypass, responseType, telemetry }: EndpointOptions<TRoute, TMethod, TInput, OutSchema, TServices, TLogger, TSession, OutSchema, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>);
|
|
473
478
|
}
|
|
474
|
-
/**
|
|
475
|
-
* Defines the input schema structure for an endpoint.
|
|
476
|
-
*
|
|
477
|
-
* @template TBody - Schema for request body validation
|
|
478
|
-
* @template TSearch - Schema for query string validation
|
|
479
|
-
* @template TParams - Schema for URL path parameters validation
|
|
480
|
-
*
|
|
481
|
-
* @example
|
|
482
|
-
* ```typescript
|
|
483
|
-
* type UserInput = EndpointInput<
|
|
484
|
-
* typeof createUserBodySchema,
|
|
485
|
-
* typeof userQuerySchema,
|
|
486
|
-
* typeof userParamsSchema
|
|
487
|
-
* >;
|
|
488
|
-
* ```
|
|
489
|
-
*/
|
|
490
|
-
|
|
491
479
|
/**
|
|
492
480
|
* The surface an endpoint was built from.
|
|
493
481
|
*
|
|
@@ -516,6 +504,11 @@ interface EndpointSurface {
|
|
|
516
504
|
* file or throws on a missing variable would do it at build time.
|
|
517
505
|
*/
|
|
518
506
|
envParser: EnvironmentParser<{}>;
|
|
507
|
+
/**
|
|
508
|
+
* What authenticates requests to this surface — the construct named in
|
|
509
|
+
* `RestApi.auth()`, which session callbacks read from as `auth`.
|
|
510
|
+
*/
|
|
511
|
+
auth?: Authenticator;
|
|
519
512
|
}
|
|
520
513
|
/**
|
|
521
514
|
* Configuration options for creating an Endpoint instance.
|
|
@@ -528,7 +521,7 @@ interface EndpointSurface {
|
|
|
528
521
|
* @template TLogger - Logger type
|
|
529
522
|
* @template TSession - Session data type
|
|
530
523
|
*/
|
|
531
|
-
interface EndpointOptions<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutput extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, OutSchema extends StandardSchemaV1 | undefined = undefined,
|
|
524
|
+
interface EndpointOptions<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutput extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, OutSchema extends StandardSchemaV1 | undefined = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string> {
|
|
532
525
|
/** The route path with parameter placeholders */
|
|
533
526
|
route: TRoute;
|
|
534
527
|
/** The HTTP method for this endpoint */
|
|
@@ -565,12 +558,9 @@ interface EndpointOptions<TRoute extends string, TMethod extends HttpMethod, TIn
|
|
|
565
558
|
/** Optional rate limiting configuration */
|
|
566
559
|
rateLimit?: RateLimitConfig;
|
|
567
560
|
/** Success HTTP status code */
|
|
568
|
-
status:
|
|
569
|
-
/**
|
|
570
|
-
|
|
571
|
-
*/
|
|
572
|
-
publisherService?: Service<TEventPublisherServiceName, TEventPublisher>;
|
|
573
|
-
events?: MappedEvent<TEventPublisher, OutSchema>[];
|
|
561
|
+
status: EndpointStatus | undefined;
|
|
562
|
+
/** What it publishes once its handler succeeds, each to its own topic. */
|
|
563
|
+
events?: TopicEvent[];
|
|
574
564
|
/** Optional authorizer configuration */
|
|
575
565
|
authorizer?: Authorizer;
|
|
576
566
|
/** The surface this endpoint was built from. Every endpoint has one. */
|
|
@@ -594,6 +584,8 @@ interface EndpointOptions<TRoute extends string, TMethod extends HttpMethod, TIn
|
|
|
594
584
|
* Defaults to `'application/json'` when omitted.
|
|
595
585
|
*/
|
|
596
586
|
responseType?: string;
|
|
587
|
+
/** This route's telemetry — `.telemetry({ ignore, attributes })`. */
|
|
588
|
+
telemetry?: EndpointTelemetry;
|
|
597
589
|
}
|
|
598
590
|
/**
|
|
599
591
|
* Defines the possible input schema types for an endpoint.
|
|
@@ -640,6 +632,12 @@ type BaseSessionContext<TServices extends Service[] = [], TLogger extends Logger
|
|
|
640
632
|
logger: TLogger;
|
|
641
633
|
header: HeaderFn;
|
|
642
634
|
cookie: CookieFn;
|
|
635
|
+
/**
|
|
636
|
+
* The surface's authenticator — the construct named in `.auth()` — bound to
|
|
637
|
+
* this request: `await auth.getSession()` is this request's session, or
|
|
638
|
+
* `null`.
|
|
639
|
+
*/
|
|
640
|
+
auth: SessionAuth;
|
|
643
641
|
};
|
|
644
642
|
/**
|
|
645
643
|
* Conditional database context for session - only present when database service is configured
|
|
@@ -706,9 +704,9 @@ type ConvertRouteParams<T extends string> = T extends `${infer Start}:${infer Pa
|
|
|
706
704
|
* // Results in: { '/users/{id}': { get: OperationObject, parameters?: ParameterObject[] } }
|
|
707
705
|
* ```
|
|
708
706
|
*/
|
|
709
|
-
type EndpointOpenApiSchema<TRoute extends string, TMethod extends HttpMethod> = { [key in ConvertRouteParams<TRoute>]: { [key in LowerHttpMethod<TMethod>]: OpenAPIV3_1.OperationObject<{}
|
|
707
|
+
type EndpointOpenApiSchema<TRoute extends string, TMethod extends HttpMethod> = { [key in ConvertRouteParams<TRoute>]: { [key in LowerHttpMethod<TMethod>]: OpenAPIV3_1.OperationObject<{}>; } & {
|
|
710
708
|
parameters?: OpenAPIV3_1.ParameterObject[];
|
|
711
|
-
} };
|
|
709
|
+
}; };
|
|
712
710
|
/**
|
|
713
711
|
* Function type for retrieving HTTP header values.
|
|
714
712
|
* Supports two calling patterns:
|
|
@@ -770,7 +768,7 @@ interface ResponseMetadata {
|
|
|
770
768
|
value: string;
|
|
771
769
|
options?: CookieOptions;
|
|
772
770
|
}>;
|
|
773
|
-
status?:
|
|
771
|
+
status?: EndpointStatus;
|
|
774
772
|
}
|
|
775
773
|
/**
|
|
776
774
|
* Return type for handlers that want to set response metadata
|
|
@@ -787,7 +785,21 @@ declare class ResponseBuilder {
|
|
|
787
785
|
header(key: string, value: string): this;
|
|
788
786
|
cookie(name: string, value: string, options?: CookieOptions): this;
|
|
789
787
|
deleteCookie(name: string, options?: Pick<CookieOptions, 'domain' | 'path'>): this;
|
|
790
|
-
status(code:
|
|
788
|
+
status(code: EndpointStatus): this;
|
|
789
|
+
/**
|
|
790
|
+
* Send the client to `url` — `Location` and a 3xx, with no body. 303 by
|
|
791
|
+
* default: after a form post, the browser follows it with a GET, so a
|
|
792
|
+
* reload does not post the form again.
|
|
793
|
+
*
|
|
794
|
+
* A redirect is not checked against the endpoint's `.output()` schema, so
|
|
795
|
+
* an endpoint that renders a page can redirect instead.
|
|
796
|
+
*
|
|
797
|
+
* @example
|
|
798
|
+
* ```typescript
|
|
799
|
+
* return response.cookie('session', token).redirect('/dashboard');
|
|
800
|
+
* ```
|
|
801
|
+
*/
|
|
802
|
+
redirect(url: string, status?: RedirectStatus): ResponseWithMetadata<never>;
|
|
791
803
|
send<T>(data: T): ResponseWithMetadata<T>;
|
|
792
804
|
getMetadata(): ResponseMetadata;
|
|
793
805
|
}
|
|
@@ -872,7 +884,7 @@ type EndpointContext<Input extends EndpointSchemas | undefined = undefined, TSer
|
|
|
872
884
|
* };
|
|
873
885
|
* ```
|
|
874
886
|
*/
|
|
875
|
-
type EndpointHandler<TInput extends EndpointSchemas | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TSession = unknown, TDatabase = undefined, TAuditStorage = undefined, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> = (ctx: EndpointContext<TInput, TServices, TLogger, TSession, TAuditAction, TDatabase, TAuditStorage>, response: ResponseBuilder) => OutSchema extends StandardSchemaV1 ? InferStandardSchemaInput<OutSchema> | ResponseWithMetadata<InferStandardSchemaInput<OutSchema>> | Promise<InferStandardSchemaInput<OutSchema
|
|
887
|
+
type EndpointHandler<TInput extends EndpointSchemas | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TSession = unknown, TDatabase = undefined, TAuditStorage = undefined, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> = (ctx: EndpointContext<TInput, TServices, TLogger, TSession, TAuditAction, TDatabase, TAuditStorage>, response: ResponseBuilder) => OutSchema extends StandardSchemaV1 ? InferStandardSchemaInput<OutSchema> | ResponseWithMetadata<InferStandardSchemaInput<OutSchema>> | Promise<InferStandardSchemaInput<OutSchema> | ResponseWithMetadata<InferStandardSchemaInput<OutSchema>>> : unknown | ResponseWithMetadata<unknown> | Promise<unknown> | Promise<ResponseWithMetadata<unknown>>;
|
|
876
888
|
/**
|
|
877
889
|
* HTTP success status codes that can be returned by endpoints.
|
|
878
890
|
*/
|
|
@@ -888,9 +900,27 @@ declare enum SuccessStatus {
|
|
|
888
900
|
/** Server successfully processed the request and is not returning any content, client should reset the document view */
|
|
889
901
|
ResetContent = 205,
|
|
890
902
|
/** Server is delivering only part of the resource due to a range header */
|
|
891
|
-
PartialContent = 206
|
|
903
|
+
PartialContent = 206
|
|
904
|
+
}
|
|
905
|
+
/**
|
|
906
|
+
* HTTP redirect status codes an endpoint can answer with —
|
|
907
|
+
* `response.redirect(url, status)`, or `.status()` with a `Location` header.
|
|
908
|
+
*/
|
|
909
|
+
declare enum RedirectStatus {
|
|
910
|
+
/** The resource has moved for good; a POST may become a GET */
|
|
911
|
+
MovedPermanently = 301,
|
|
912
|
+
/** The resource is elsewhere for now; a POST may become a GET */
|
|
913
|
+
Found = 302,
|
|
914
|
+
/** See the resource elsewhere, with a GET — the answer to a form post */
|
|
915
|
+
SeeOther = 303,
|
|
916
|
+
/** The resource is elsewhere for now; the method and body are kept */
|
|
917
|
+
TemporaryRedirect = 307,
|
|
918
|
+
/** The resource has moved for good; the method and body are kept */
|
|
919
|
+
PermanentRedirect = 308
|
|
892
920
|
}
|
|
921
|
+
/** A status an endpoint answers with when its handler succeeds. */
|
|
922
|
+
type EndpointStatus = SuccessStatus | RedirectStatus;
|
|
893
923
|
type EndpointOutput<T> = T extends Endpoint<any, any, any, infer OutSchema, any, any, any, any> ? InferStandardSchema<OutSchema> : never;
|
|
894
924
|
//#endregion
|
|
895
|
-
export {
|
|
896
|
-
//# sourceMappingURL=Endpoint-
|
|
925
|
+
export { SecurityScheme as A, ActorExtractor as C, BuiltInSecuritySchemeId as D, BUILT_IN_SECURITY_SCHEMES as E, getSecurityScheme as M, isBuiltInSecurityScheme as N, OAuthFlow as O, RlsContextExtractor as S, Authorizer as T, SessionAuth as _, EndpointContext as a, RlsConfig as b, EndpointSchemas as c, HeaderFn as d, RedirectStatus as f, NoAuthenticator as g, SuccessStatus as h, Endpoint as i, createAuthorizer as j, OAuthFlows as k, EndpointStatus as l, SessionFn as m, ConvertRouteParams as n, EndpointHandler as o, ResponseBuilder as p, CookieFn as r, EndpointOutput as s, AuthorizeFn as t, EndpointSurface as u, RLS_BYPASS as v, MappedAudit as w, RlsContext as x, RlsBypass as y };
|
|
926
|
+
//# sourceMappingURL=Endpoint-BWyKCa2x.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Endpoint-BWyKCa2x.d.cts","names":[],"sources":["../src/endpoints/Authorizer.ts","../src/endpoints/audit.ts","../src/endpoints/rls.ts","../src/endpoints/sessionAuth.ts","../src/endpoints/Endpoint.ts"],"mappings":"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"}
|