@geekmidas/constructs 10.0.0-alpha.6 → 10.0.0-alpha.60
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 +223 -158
- package/dist/{Construct-BD5neF7w.mjs → Construct-BO1X-kt9.mjs} +32 -33
- package/dist/Construct-BO1X-kt9.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-DmvXceVY.cjs} +52 -47
- package/dist/Construct-DmvXceVY.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-BoHzlWU_.cjs} +47 -31
- package/dist/CronBuilder-BoHzlWU_.cjs.map +1 -0
- package/dist/{CronBuilder-CYKT5RiO.mjs → CronBuilder-CCgt0wCE.mjs} +37 -21
- package/dist/CronBuilder-CCgt0wCE.mjs.map +1 -0
- package/dist/CronBuilder-DaSUm2Na.d.mts +47 -0
- package/dist/CronBuilder-DaSUm2Na.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-Bm9HjTPc.d.cts} +70 -93
- package/dist/Endpoint-Bm9HjTPc.d.cts.map +1 -0
- package/dist/{Endpoint-DCQPMdUX.mjs → Endpoint-CQ9RJ7p2.mjs} +130 -109
- package/dist/Endpoint-CQ9RJ7p2.mjs.map +1 -0
- package/dist/{Endpoint-DcWXE-SZ.cjs → Endpoint-DOi8c_Gy.cjs} +158 -131
- package/dist/Endpoint-DOi8c_Gy.cjs.map +1 -0
- package/dist/{Endpoint-dav89W6-.d.cts → Endpoint-KyMeR-B-.d.mts} +71 -94
- package/dist/Endpoint-KyMeR-B-.d.mts.map +1 -0
- package/dist/{index-Bd5FqCoe.d.cts → EndpointFactory-B6eZ3RDd.d.cts} +62 -132
- package/dist/EndpointFactory-B6eZ3RDd.d.cts.map +1 -0
- package/dist/{EndpointFactory-CdWB7wPw.cjs → EndpointFactory-Bo9lkMqB.cjs} +75 -110
- package/dist/EndpointFactory-Bo9lkMqB.cjs.map +1 -0
- package/dist/{EndpointFactory-CjV8F_lJ.mjs → EndpointFactory-DR1rebok.mjs} +39 -74
- package/dist/EndpointFactory-DR1rebok.mjs.map +1 -0
- package/dist/{index-lAO9egTb.d.mts → EndpointFactory-GYkAuG3u.d.mts} +63 -133
- package/dist/EndpointFactory-GYkAuG3u.d.mts.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-XyxwoFnE.cjs} +52 -54
- package/dist/HonoEndpointAdaptor-XyxwoFnE.cjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-P1ahhZHu.mjs → HonoEndpointAdaptor-ja49poBI.mjs} +42 -47
- package/dist/HonoEndpointAdaptor-ja49poBI.mjs.map +1 -0
- package/dist/Queue-D5jcw0mu.cjs +109 -0
- package/dist/Queue-D5jcw0mu.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-hwPN-t31.mjs +104 -0
- package/dist/Queue-hwPN-t31.mjs.map +1 -0
- package/dist/QueueBuilder-BFQn3OzZ.cjs +135 -0
- package/dist/QueueBuilder-BFQn3OzZ.cjs.map +1 -0
- package/dist/QueueBuilder-DCuYdjMw.mjs +118 -0
- package/dist/QueueBuilder-DCuYdjMw.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-4OPehf2R.cjs → SubscriberBuilder-C2PwqwIl.cjs} +61 -36
- package/dist/SubscriberBuilder-C2PwqwIl.cjs.map +1 -0
- package/dist/SubscriberBuilder-CuCMFpYW.d.mts +67 -0
- package/dist/SubscriberBuilder-CuCMFpYW.d.mts.map +1 -0
- package/dist/{SubscriberBuilder-BjkbeT9l.mjs → SubscriberBuilder-DMFk_Ap1.mjs} +50 -24
- package/dist/SubscriberBuilder-DMFk_Ap1.mjs.map +1 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts +67 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts.map +1 -0
- package/dist/Topic-CkxOTrMv.cjs +104 -0
- package/dist/Topic-CkxOTrMv.cjs.map +1 -0
- package/dist/Topic-hPffOsot.mjs +99 -0
- package/dist/Topic-hPffOsot.mjs.map +1 -0
- package/dist/adaptors/aws.cjs +118 -216
- 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 +35 -54
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +91 -191
- 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 +711 -89
- package/dist/adaptors/testing.cjs.map +1 -1
- package/dist/adaptors/testing.d.cts +325 -54
- package/dist/adaptors/testing.d.cts.map +1 -1
- package/dist/adaptors/testing.d.mts +325 -54
- package/dist/adaptors/testing.d.mts.map +1 -1
- package/dist/adaptors/testing.mjs +676 -70
- package/dist/adaptors/testing.mjs.map +1 -1
- package/dist/auth-CIFXNuDk.d.cts +194 -0
- package/dist/auth-CIFXNuDk.d.cts.map +1 -0
- package/dist/auth-CJ9Ff6Lu.d.mts +194 -0
- package/dist/auth-CJ9Ff6Lu.d.mts.map +1 -0
- package/dist/auth.cjs +172 -31
- 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 +161 -24
- 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 +63 -16
- package/dist/credential.cjs.map +1 -1
- package/dist/credential.d.cts +16 -9
- package/dist/credential.d.cts.map +1 -1
- package/dist/credential.d.mts +16 -9
- package/dist/credential.d.mts.map +1 -1
- package/dist/credential.mjs +58 -12
- package/dist/credential.mjs.map +1 -1
- package/dist/crons/index.cjs +105 -7
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +40 -11
- package/dist/crons/index.d.cts.map +1 -1
- package/dist/crons/index.d.mts +40 -11
- package/dist/crons/index.d.mts.map +1 -1
- package/dist/crons/index.mjs +103 -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-CWY9orcO.d.mts +86 -0
- package/dist/external-api-CWY9orcO.d.mts.map +1 -0
- package/dist/external-api-D-5WB-sr.d.cts +86 -0
- package/dist/external-api-D-5WB-sr.d.cts.map +1 -0
- package/dist/external-api.cjs +124 -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 +121 -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-i_la-N5r.cjs → functions-CbP5ZKma.cjs} +414 -264
- package/dist/functions-CbP5ZKma.cjs.map +1 -0
- package/dist/{functions-14lpEFL4.mjs → functions-Di6n5ltG.mjs} +376 -238
- package/dist/{functions-14lpEFL4.mjs.map → functions-Di6n5ltG.mjs.map} +1 -1
- 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 +26 -4
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +26 -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-BEm5sDlU.d.cts +173 -0
- package/dist/kysely-BEm5sDlU.d.cts.map +1 -0
- package/dist/kysely-BRzzawr2.cjs +301 -0
- package/dist/kysely-BRzzawr2.cjs.map +1 -0
- package/dist/kysely-BYfM6Zby.mjs +288 -0
- package/dist/kysely-BYfM6Zby.mjs.map +1 -0
- package/dist/kysely-CjuvdXEV.d.mts +173 -0
- package/dist/kysely-CjuvdXEV.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-Dmts9H_b.mjs → processAudits-BpRlPQMW.mjs} +16 -19
- package/dist/processAudits-BpRlPQMW.mjs.map +1 -0
- package/dist/{processAudits-CGqttuXm.cjs → processAudits-D_2W5x8k.cjs} +26 -30
- package/dist/processAudits-D_2W5x8k.cjs.map +1 -0
- package/dist/queue/index.cjs +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 +88 -63
- package/dist/rest-api.cjs.map +1 -1
- package/dist/rest-api.d.cts +68 -61
- package/dist/rest-api.d.cts.map +1 -1
- package/dist/rest-api.d.mts +68 -61
- package/dist/rest-api.d.mts.map +1 -1
- package/dist/rest-api.mjs +80 -55
- package/dist/rest-api.mjs.map +1 -1
- package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
- package/dist/runSubscriber-BRp9a_qi.cjs +126 -0
- package/dist/runSubscriber-BRp9a_qi.cjs.map +1 -0
- package/dist/runSubscriber-BYEY_bfA.mjs +109 -0
- package/dist/runSubscriber-BYEY_bfA.mjs.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 +34 -9
- package/dist/site.cjs.map +1 -1
- package/dist/site.d.cts +17 -22
- package/dist/site.d.cts.map +1 -1
- package/dist/site.d.mts +17 -22
- package/dist/site.d.mts.map +1 -1
- package/dist/site.mjs +30 -5
- package/dist/site.mjs.map +1 -1
- package/dist/subscribers/index.cjs +111 -6
- package/dist/subscribers/index.cjs.map +1 -0
- package/dist/subscribers/index.d.cts +50 -6
- package/dist/subscribers/index.d.cts.map +1 -0
- package/dist/subscribers/index.d.mts +50 -6
- package/dist/subscribers/index.d.mts.map +1 -0
- package/dist/subscribers/index.mjs +108 -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-C3L0iS28.d.cts → telemetry-DGcFlVpB.d.cts} +2 -5
- package/dist/telemetry-DGcFlVpB.d.cts.map +1 -0
- package/dist/{telemetry-D7bVFLGi.d.mts → telemetry-DGcFlVpB.d.mts} +2 -5
- package/dist/telemetry-DGcFlVpB.d.mts.map +1 -0
- package/dist/topic/index.cjs +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/{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 +58 -34
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.cts +63 -45
- package/dist/worker.d.cts.map +1 -1
- package/dist/worker.d.mts +63 -44
- package/dist/worker.d.mts.map +1 -1
- package/dist/worker.mjs +53 -29
- package/dist/worker.mjs.map +1 -1
- package/package.json +82 -41
- 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.map +0 -1
- 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
package/dist/adaptors/aws.mjs
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { __toESM } from "../Construct-
|
|
2
|
-
import "../
|
|
3
|
-
import {
|
|
4
|
-
import "../
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { createAuditContext, executeWithAuditTransaction } from "../processAudits-Dmts9H_b.mjs";
|
|
1
|
+
import { o as __toESM } from "../Construct-BO1X-kt9.mjs";
|
|
2
|
+
import { a as publishEvents, i as publishConstructEvents, t as FunctionBuilder } from "../functions-Di6n5ltG.mjs";
|
|
3
|
+
import { i as require_lodash_set, n as ResponseBuilder, t as Endpoint } from "../Endpoint-CQ9RJ7p2.mjs";
|
|
4
|
+
import { n as envParserFor } from "../surfaceEnv-wMT5QzgZ.mjs";
|
|
5
|
+
import { t as createApiGatewayCookies } from "../lazyAccessors-CFanua0O.mjs";
|
|
6
|
+
import { n as subscribedEvents, r as subscriberContext, t as runSubscriber } from "../runSubscriber-BYEY_bfA.mjs";
|
|
7
|
+
import { n as executeWithAuditTransaction, t as createAuditContext } from "../processAudits-BpRlPQMW.mjs";
|
|
9
8
|
import { ForbiddenError, UnprocessableEntityError, wrapError } from "@geekmidas/errors";
|
|
10
9
|
import { ServiceDiscovery, runWithRequestContext } from "@geekmidas/services";
|
|
11
|
-
import middy from "@middy/core";
|
|
12
|
-
import { DefaultAuditor } from "@geekmidas/audit";
|
|
13
|
-
import { withAuditableTransaction } from "@geekmidas/audit/kysely";
|
|
14
10
|
import { withRlsContext } from "@geekmidas/db/rls";
|
|
15
11
|
import qs from "qs";
|
|
16
|
-
|
|
12
|
+
import { DefaultAuditor } from "@geekmidas/audit";
|
|
13
|
+
import middy from "@middy/core";
|
|
14
|
+
import { withAuditableTransaction } from "@geekmidas/audit/kysely";
|
|
17
15
|
//#region src/functions/FunctionExecutionWrapper.ts
|
|
18
16
|
var FunctionExecutionWrapper = class {
|
|
17
|
+
envParser;
|
|
18
|
+
fn;
|
|
19
19
|
constructor(envParser, fn) {
|
|
20
20
|
this.envParser = envParser;
|
|
21
21
|
this.fn = fn;
|
|
@@ -25,25 +25,22 @@ var FunctionExecutionWrapper = class {
|
|
|
25
25
|
return this._logger || this.fn.logger;
|
|
26
26
|
}
|
|
27
27
|
get serviceDiscovery() {
|
|
28
|
-
|
|
29
|
-
return serviceDiscovery;
|
|
28
|
+
return ServiceDiscovery.getInstance(this.envParser);
|
|
30
29
|
}
|
|
31
30
|
getServices() {
|
|
32
31
|
return this.serviceDiscovery.register(this.fn.services);
|
|
33
32
|
}
|
|
34
33
|
async getDatabase() {
|
|
35
|
-
if (!this.fn.databaseService) return
|
|
36
|
-
|
|
37
|
-
return services[this.fn.databaseService.serviceName];
|
|
34
|
+
if (!this.fn.databaseService) return;
|
|
35
|
+
return (await this.serviceDiscovery.register([this.fn.databaseService]))[this.fn.databaseService.serviceName];
|
|
38
36
|
}
|
|
39
37
|
/**
|
|
40
38
|
* Get the audit storage service if configured.
|
|
41
39
|
* Returns undefined if no auditor storage is configured.
|
|
42
40
|
*/
|
|
43
41
|
async getAuditStorage() {
|
|
44
|
-
if (!this.fn.auditorStorageService) return
|
|
45
|
-
|
|
46
|
-
return services[this.fn.auditorStorageService.serviceName];
|
|
42
|
+
if (!this.fn.auditorStorageService) return;
|
|
43
|
+
return (await this.serviceDiscovery.register([this.fn.auditorStorageService]))[this.fn.auditorStorageService.serviceName];
|
|
47
44
|
}
|
|
48
45
|
/**
|
|
49
46
|
* Create an auditor instance for the function.
|
|
@@ -51,7 +48,7 @@ var FunctionExecutionWrapper = class {
|
|
|
51
48
|
*/
|
|
52
49
|
async createAuditor() {
|
|
53
50
|
const storage = await this.getAuditStorage();
|
|
54
|
-
if (!storage) return
|
|
51
|
+
if (!storage) return;
|
|
55
52
|
return new DefaultAuditor({
|
|
56
53
|
actor: {
|
|
57
54
|
id: "system",
|
|
@@ -72,51 +69,44 @@ var FunctionExecutionWrapper = class {
|
|
|
72
69
|
async executeWithAudit(handler) {
|
|
73
70
|
const auditor = await this.createAuditor();
|
|
74
71
|
const storage = await this.getAuditStorage();
|
|
75
|
-
if (!auditor || !storage) {
|
|
76
|
-
const db$1 = await this.getDatabase();
|
|
77
|
-
return handler({ db: db$1 });
|
|
78
|
-
}
|
|
72
|
+
if (!auditor || !storage) return handler({ db: await this.getDatabase() });
|
|
79
73
|
const storageDb = storage.getDatabase?.();
|
|
80
74
|
const databaseServiceName = this.fn.databaseService?.serviceName;
|
|
81
75
|
const auditDbServiceName = this.fn.auditorStorageService?.serviceName;
|
|
82
76
|
if (storageDb && databaseServiceName && auditDbServiceName) return withAuditableTransaction(storageDb, auditor, async (trx) => {
|
|
83
|
-
|
|
77
|
+
return await handler({
|
|
84
78
|
auditor,
|
|
85
79
|
db: trx
|
|
86
80
|
});
|
|
87
|
-
return response$1;
|
|
88
81
|
});
|
|
89
|
-
const db = await this.getDatabase();
|
|
90
82
|
const response = await handler({
|
|
91
83
|
auditor,
|
|
92
|
-
db
|
|
84
|
+
db: await this.getDatabase()
|
|
93
85
|
});
|
|
94
86
|
await auditor.flush();
|
|
95
87
|
return response;
|
|
96
88
|
}
|
|
97
89
|
async getFunctionInput(event) {
|
|
98
|
-
|
|
99
|
-
return parsedInput;
|
|
90
|
+
return await FunctionBuilder.parseComposableStandardSchema(event, this.fn.input);
|
|
100
91
|
}
|
|
101
92
|
async publishEvents(response) {
|
|
102
|
-
await publishEvents(this.logger, this.serviceDiscovery, this.fn.events, response
|
|
93
|
+
await publishEvents(this.logger, this.serviceDiscovery, this.fn.events, response);
|
|
103
94
|
}
|
|
104
95
|
async parseComposableStandardSchema(data, schema) {
|
|
105
96
|
return FunctionBuilder.parseComposableStandardSchema(data, schema);
|
|
106
97
|
}
|
|
107
98
|
};
|
|
108
|
-
|
|
109
99
|
//#endregion
|
|
110
100
|
//#region src/functions/AWSLambdaFunction.ts
|
|
111
101
|
var AWSLambdaFunction = class extends FunctionExecutionWrapper {
|
|
102
|
+
fn;
|
|
112
103
|
constructor(envParser, fn) {
|
|
113
104
|
super(envParser, fn);
|
|
114
105
|
this.fn = fn;
|
|
115
106
|
}
|
|
116
107
|
error() {
|
|
117
108
|
return { onError: (req) => {
|
|
118
|
-
|
|
119
|
-
logger.error(req.error || {}, "Error processing function");
|
|
109
|
+
(req.event?.logger || this.fn.logger).error(req.error || {}, "Error processing function");
|
|
120
110
|
throw wrapError(req.error);
|
|
121
111
|
} };
|
|
122
112
|
}
|
|
@@ -192,8 +182,7 @@ var AWSLambdaFunction = class extends FunctionExecutionWrapper {
|
|
|
192
182
|
db: event.db,
|
|
193
183
|
auditor: event.auditor
|
|
194
184
|
});
|
|
195
|
-
|
|
196
|
-
return output;
|
|
185
|
+
return await this.fn.parseOutput(result);
|
|
197
186
|
}
|
|
198
187
|
get handler() {
|
|
199
188
|
const handler = this._handler.bind(this);
|
|
@@ -205,13 +194,13 @@ var AWSLambdaFunction = class extends FunctionExecutionWrapper {
|
|
|
205
194
|
return runWithRequestContext({
|
|
206
195
|
logger,
|
|
207
196
|
requestId,
|
|
208
|
-
startTime
|
|
197
|
+
startTime,
|
|
198
|
+
operation: context.functionName
|
|
209
199
|
}, () => chain(event, context));
|
|
210
200
|
};
|
|
211
201
|
return wrappedHandler;
|
|
212
202
|
}
|
|
213
203
|
};
|
|
214
|
-
|
|
215
204
|
//#endregion
|
|
216
205
|
//#region src/crons/AWSScheduledFunction.ts
|
|
217
206
|
/**
|
|
@@ -245,11 +234,11 @@ var AWSScheduledFunction = class extends AWSLambdaFunction {
|
|
|
245
234
|
super(envParser, cron);
|
|
246
235
|
}
|
|
247
236
|
};
|
|
248
|
-
|
|
249
237
|
//#endregion
|
|
250
238
|
//#region src/endpoints/AmazonApiGatewayEndpointAdaptor.ts
|
|
251
|
-
var
|
|
239
|
+
var import_lodash_set = /* @__PURE__ */ __toESM(require_lodash_set(), 1);
|
|
252
240
|
var AmazonApiGatewayEndpoint = class {
|
|
241
|
+
endpoint;
|
|
253
242
|
options;
|
|
254
243
|
/**
|
|
255
244
|
* The parser this adaptor discovers services with.
|
|
@@ -287,8 +276,7 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
287
276
|
static decodeBody(body, isBase64Encoded, contentType) {
|
|
288
277
|
if (!body) return void 0;
|
|
289
278
|
const raw = isBase64Encoded ? Buffer.from(body, "base64").toString("utf-8") : body;
|
|
290
|
-
|
|
291
|
-
if (isJson) return JSON.parse(raw);
|
|
279
|
+
if (!contentType || contentType.toLowerCase().includes("application/json")) return JSON.parse(raw);
|
|
292
280
|
return raw;
|
|
293
281
|
}
|
|
294
282
|
getCookies(e) {
|
|
@@ -302,11 +290,11 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
302
290
|
const headers = req.event.headers;
|
|
303
291
|
const header = Endpoint.createHeaders(headers);
|
|
304
292
|
const cookie = this.getCookies(req.event);
|
|
305
|
-
(0,
|
|
306
|
-
(0,
|
|
307
|
-
(0,
|
|
308
|
-
(0,
|
|
309
|
-
(0,
|
|
293
|
+
(0, import_lodash_set.default)(req.event, "body", await this.endpoint.parseInput(body, "body"));
|
|
294
|
+
(0, import_lodash_set.default)(req.event, "query", await this.endpoint.parseInput(query, "query"));
|
|
295
|
+
(0, import_lodash_set.default)(req.event, "params", await this.endpoint.parseInput(params, "params"));
|
|
296
|
+
(0, import_lodash_set.default)(req.event, "header", header);
|
|
297
|
+
(0, import_lodash_set.default)(req.event, "cookie", cookie);
|
|
310
298
|
} catch (error) {
|
|
311
299
|
if (error && typeof error === "object" && Array.isArray(error)) throw new UnprocessableEntityError("Validation failed", error);
|
|
312
300
|
throw error;
|
|
@@ -325,9 +313,8 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
325
313
|
}
|
|
326
314
|
services() {
|
|
327
315
|
return { before: async (req) => {
|
|
328
|
-
|
|
329
|
-
const
|
|
330
|
-
const services = await serviceDiscovery.register(this.endpoint.services);
|
|
316
|
+
req.event.logger;
|
|
317
|
+
const services = await ServiceDiscovery.getInstance(this.envParser).register(this.endpoint.services);
|
|
331
318
|
req.event.services = services;
|
|
332
319
|
} };
|
|
333
320
|
}
|
|
@@ -338,7 +325,7 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
338
325
|
const header = req.event.header;
|
|
339
326
|
const cookie = req.event.cookie;
|
|
340
327
|
const session = req.event.session;
|
|
341
|
-
|
|
328
|
+
if (!await this.endpoint.authorize({
|
|
342
329
|
header,
|
|
343
330
|
cookie,
|
|
344
331
|
services,
|
|
@@ -348,8 +335,7 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
348
335
|
body: req.event.body,
|
|
349
336
|
query: req.event.query,
|
|
350
337
|
params: req.event.params
|
|
351
|
-
})
|
|
352
|
-
if (!isAuthorized) {
|
|
338
|
+
})) {
|
|
353
339
|
logger.warn("Forbidden access attempt");
|
|
354
340
|
throw new ForbiddenError("Forbidden access to the endpoint", "You do not have permission to access this resource.");
|
|
355
341
|
}
|
|
@@ -358,9 +344,8 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
358
344
|
database() {
|
|
359
345
|
return { before: async (req) => {
|
|
360
346
|
if (!this.endpoint.databaseService) return;
|
|
361
|
-
|
|
362
|
-
const
|
|
363
|
-
const db = await serviceDiscovery.register([this.endpoint.databaseService]).then((s) => s[this.endpoint.databaseService?.serviceName]);
|
|
347
|
+
req.event.logger;
|
|
348
|
+
const db = await ServiceDiscovery.getInstance(this.envParser).register([this.endpoint.databaseService]).then((s) => s[this.endpoint.databaseService?.serviceName]);
|
|
364
349
|
req.event.db = db;
|
|
365
350
|
} };
|
|
366
351
|
}
|
|
@@ -411,9 +396,8 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
411
396
|
cookie: event.cookie,
|
|
412
397
|
logger
|
|
413
398
|
}) : void 0;
|
|
414
|
-
const
|
|
415
|
-
const
|
|
416
|
-
const baseDb = sameDatabase ? auditor?.getTransaction?.() ?? rawDb : rawDb;
|
|
399
|
+
const { output, metadata } = await executeWithAuditTransaction(auditContext, async (auditor) => {
|
|
400
|
+
const baseDb = auditContext?.storage?.databaseServiceName && auditContext.storage.databaseServiceName === this.endpoint.databaseService?.serviceName ? auditor?.getTransaction?.() ?? rawDb : rawDb;
|
|
417
401
|
const executeHandler = async (db) => {
|
|
418
402
|
const responseBuilder = new ResponseBuilder();
|
|
419
403
|
const response = await this.endpoint.handler({
|
|
@@ -427,33 +411,31 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
427
411
|
...input
|
|
428
412
|
}, responseBuilder);
|
|
429
413
|
let data = response;
|
|
430
|
-
let metadata
|
|
414
|
+
let metadata = responseBuilder.getMetadata();
|
|
431
415
|
if (Endpoint.hasMetadata(response)) {
|
|
432
416
|
data = response.data;
|
|
433
|
-
metadata
|
|
417
|
+
metadata = response.metadata;
|
|
434
418
|
}
|
|
435
|
-
const output$1 = this.endpoint.outputSchema ? await this.endpoint.parseOutput(data) : void 0;
|
|
436
419
|
return {
|
|
437
|
-
output:
|
|
438
|
-
metadata
|
|
420
|
+
output: this.endpoint.outputSchema ? await this.endpoint.parseOutput(data) : void 0,
|
|
421
|
+
metadata,
|
|
439
422
|
responseBuilder
|
|
440
423
|
};
|
|
441
424
|
};
|
|
442
425
|
if (rlsActive && rlsContext && baseDb) return withRlsContext(baseDb, rlsContext, async (trx) => executeHandler(trx), { prefix: this.endpoint.rlsConfig?.prefix });
|
|
443
426
|
return executeHandler(baseDb);
|
|
444
|
-
}, async (result
|
|
427
|
+
}, async (result, auditor) => {
|
|
445
428
|
if (!audits?.length) return;
|
|
446
429
|
for (const audit of audits) {
|
|
447
|
-
if (audit.when && !audit.when(result
|
|
448
|
-
const payload = audit.payload(result
|
|
449
|
-
const entityId = audit.entityId?.(result
|
|
430
|
+
if (audit.when && !audit.when(result.output)) continue;
|
|
431
|
+
const payload = audit.payload(result.output);
|
|
432
|
+
const entityId = audit.entityId?.(result.output);
|
|
450
433
|
auditor.audit(audit.type, payload, {
|
|
451
434
|
table: audit.table,
|
|
452
435
|
entityId
|
|
453
436
|
});
|
|
454
437
|
}
|
|
455
438
|
}, { db: rawDb });
|
|
456
|
-
const { output, metadata } = result;
|
|
457
439
|
const isJsonResponse = this.endpoint.responseType === "application/json";
|
|
458
440
|
const body = output === void 0 ? void 0 : isJsonResponse ? JSON.stringify(output) : typeof output === "string" ? output : String(output);
|
|
459
441
|
event.__response = output;
|
|
@@ -512,16 +494,17 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
512
494
|
const startTime = Date.now();
|
|
513
495
|
const requestId = context.awsRequestId;
|
|
514
496
|
const logger = this.endpoint.logger.child({ requestId });
|
|
497
|
+
const operation = `${this.endpoint.method} ${this.endpoint.route}`;
|
|
515
498
|
return runWithRequestContext({
|
|
516
499
|
logger,
|
|
517
500
|
requestId,
|
|
518
|
-
startTime
|
|
501
|
+
startTime,
|
|
502
|
+
operation
|
|
519
503
|
}, () => chain(event, context));
|
|
520
504
|
};
|
|
521
505
|
return wrappedHandler;
|
|
522
506
|
}
|
|
523
507
|
};
|
|
524
|
-
|
|
525
508
|
//#endregion
|
|
526
509
|
//#region src/endpoints/parseQueryParams.ts
|
|
527
510
|
/**
|
|
@@ -542,10 +525,10 @@ function parseQueryParams(queryParams) {
|
|
|
542
525
|
}
|
|
543
526
|
return qs.parse(parts.join("&"));
|
|
544
527
|
}
|
|
545
|
-
|
|
546
528
|
//#endregion
|
|
547
529
|
//#region src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts
|
|
548
530
|
var AmazonApiGatewayV1Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
531
|
+
endpoint;
|
|
549
532
|
getInput(e) {
|
|
550
533
|
const multiValueParams = e.multiValueQueryStringParameters || {};
|
|
551
534
|
const singleValueParams = e.queryStringParameters || {};
|
|
@@ -578,17 +561,16 @@ var AmazonApiGatewayV1Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
|
578
561
|
this.endpoint = endpoint;
|
|
579
562
|
}
|
|
580
563
|
};
|
|
581
|
-
|
|
582
564
|
//#endregion
|
|
583
565
|
//#region src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts
|
|
584
566
|
var AmazonApiGatewayV2Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
567
|
+
endpoint;
|
|
585
568
|
getCookies(e) {
|
|
586
569
|
return createApiGatewayCookies(e.cookies, e.headers?.cookie);
|
|
587
570
|
}
|
|
588
571
|
getInput(e) {
|
|
589
|
-
const raw = AmazonApiGatewayEndpoint.decodeBody(e.body, e.isBase64Encoded, e.headers?.["content-type"]);
|
|
590
572
|
return {
|
|
591
|
-
body:
|
|
573
|
+
body: AmazonApiGatewayEndpoint.decodeBody(e.body, e.isBase64Encoded, e.headers?.["content-type"]),
|
|
592
574
|
query: qs.parse(e.rawQueryString),
|
|
593
575
|
params: e.pathParameters || {}
|
|
594
576
|
};
|
|
@@ -613,7 +595,6 @@ var AmazonApiGatewayV2Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
|
613
595
|
this.endpoint = endpoint;
|
|
614
596
|
}
|
|
615
597
|
};
|
|
616
|
-
|
|
617
598
|
//#endregion
|
|
618
599
|
//#region src/queue/AWSLambdaQueueAdaptor.ts
|
|
619
600
|
/**
|
|
@@ -628,6 +609,8 @@ var AmazonApiGatewayV2Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
|
628
609
|
* retries only those records.
|
|
629
610
|
*/
|
|
630
611
|
var AWSLambdaQueue = class {
|
|
612
|
+
envParser;
|
|
613
|
+
queue;
|
|
631
614
|
_services;
|
|
632
615
|
constructor(envParser, queue) {
|
|
633
616
|
this.envParser = envParser;
|
|
@@ -642,6 +625,12 @@ var AWSLambdaQueue = class {
|
|
|
642
625
|
this._services = this.queue.services.length > 0 ? await serviceDiscovery.register(this.queue.services) : {};
|
|
643
626
|
return this._services;
|
|
644
627
|
}
|
|
628
|
+
/** The queue's database, registered as functions register theirs. */
|
|
629
|
+
async getDatabase() {
|
|
630
|
+
const service = this.queue.databaseService;
|
|
631
|
+
if (!service) return void 0;
|
|
632
|
+
return (await ServiceDiscovery.getInstance(this.envParser).register([service]))[service.serviceName];
|
|
633
|
+
}
|
|
645
634
|
safeJsonParse(value) {
|
|
646
635
|
try {
|
|
647
636
|
return JSON.parse(value);
|
|
@@ -667,6 +656,7 @@ var AWSLambdaQueue = class {
|
|
|
667
656
|
req: { id: context.awsRequestId }
|
|
668
657
|
});
|
|
669
658
|
const services = await this.getServices();
|
|
659
|
+
const db = await this.getDatabase();
|
|
670
660
|
const schema = this.queue.messageSchema;
|
|
671
661
|
const batchItemFailures = [];
|
|
672
662
|
const messages = [];
|
|
@@ -694,7 +684,8 @@ var AWSLambdaQueue = class {
|
|
|
694
684
|
await this.queue.handler({
|
|
695
685
|
messages,
|
|
696
686
|
services,
|
|
697
|
-
logger
|
|
687
|
+
logger,
|
|
688
|
+
db
|
|
698
689
|
});
|
|
699
690
|
} catch (error) {
|
|
700
691
|
logger.error(wrapError(error), "Queue handler failed; retrying batch");
|
|
@@ -704,24 +695,25 @@ var AWSLambdaQueue = class {
|
|
|
704
695
|
}
|
|
705
696
|
get handler() {
|
|
706
697
|
const handler = this._handler.bind(this);
|
|
707
|
-
return async (event, context) => {
|
|
698
|
+
return (async (event, context) => {
|
|
708
699
|
const startTime = Date.now();
|
|
709
700
|
const requestId = context.awsRequestId;
|
|
710
701
|
const logger = this.queue.logger.child({ requestId });
|
|
711
702
|
return runWithRequestContext({
|
|
712
703
|
logger,
|
|
713
704
|
requestId,
|
|
714
|
-
startTime
|
|
705
|
+
startTime,
|
|
706
|
+
operation: `queue ${this.queue.name}`
|
|
715
707
|
}, () => handler(event, context));
|
|
716
|
-
};
|
|
708
|
+
});
|
|
717
709
|
}
|
|
718
710
|
};
|
|
719
|
-
|
|
720
711
|
//#endregion
|
|
721
712
|
//#region src/subscribers/AWSLambdaSubscriberAdaptor.ts
|
|
722
713
|
var AWSLambdaSubscriber = class {
|
|
714
|
+
envParser;
|
|
715
|
+
subscriber;
|
|
723
716
|
_logger;
|
|
724
|
-
_services;
|
|
725
717
|
constructor(envParser, subscriber) {
|
|
726
718
|
this.envParser = envParser;
|
|
727
719
|
this.subscriber = subscriber;
|
|
@@ -730,19 +722,9 @@ var AWSLambdaSubscriber = class {
|
|
|
730
722
|
get logger() {
|
|
731
723
|
return this._logger;
|
|
732
724
|
}
|
|
733
|
-
async getServices() {
|
|
734
|
-
if (this._services) return this._services;
|
|
735
|
-
const serviceDiscovery = ServiceDiscovery.getInstance(this.envParser);
|
|
736
|
-
if (this.subscriber.services.length > 0) {
|
|
737
|
-
const registered = await serviceDiscovery.register(this.subscriber.services);
|
|
738
|
-
this._services = registered;
|
|
739
|
-
} else this._services = {};
|
|
740
|
-
return this._services;
|
|
741
|
-
}
|
|
742
725
|
error() {
|
|
743
726
|
return { onError: (req) => {
|
|
744
|
-
|
|
745
|
-
logger.error(req.error || {}, "Error processing subscriber");
|
|
727
|
+
(req.event?.logger || this.subscriber.logger).error(req.error || {}, "Error processing subscriber");
|
|
746
728
|
throw wrapError(req.error);
|
|
747
729
|
} };
|
|
748
730
|
}
|
|
@@ -761,110 +743,26 @@ var AWSLambdaSubscriber = class {
|
|
|
761
743
|
}
|
|
762
744
|
services() {
|
|
763
745
|
return { before: async (req) => {
|
|
764
|
-
|
|
746
|
+
const { services, db } = await subscriberContext(this.subscriber, this.envParser);
|
|
747
|
+
req.event.services = services;
|
|
748
|
+
req.event.db = db;
|
|
765
749
|
} };
|
|
766
750
|
}
|
|
767
751
|
parseEvents() {
|
|
768
752
|
return { before: async (req) => {
|
|
769
|
-
const { logger
|
|
770
|
-
const rawEvent = e;
|
|
753
|
+
const { logger, ...rawEvent } = req.event;
|
|
771
754
|
logger.info({ rawEvent });
|
|
772
|
-
|
|
773
|
-
if ("Records" in rawEvent) {
|
|
774
|
-
if (this.isSQSEvent(rawEvent)) for (const record of rawEvent.Records) try {
|
|
775
|
-
const event = this.parseSQSRecord(record);
|
|
776
|
-
if (this.shouldIncludeEvent(event)) events.push(event);
|
|
777
|
-
} catch (error) {
|
|
778
|
-
this.logger.error({
|
|
779
|
-
error,
|
|
780
|
-
record
|
|
781
|
-
}, "Failed to parse SQS record");
|
|
782
|
-
}
|
|
783
|
-
else if (this.isSNSEvent(rawEvent)) for (const record of rawEvent.Records) try {
|
|
784
|
-
const event = this.parseSNSRecord(record);
|
|
785
|
-
if (this.shouldIncludeEvent(event)) events.push(event);
|
|
786
|
-
} catch (error) {
|
|
787
|
-
this.logger.error({
|
|
788
|
-
error,
|
|
789
|
-
record
|
|
790
|
-
}, "Failed to parse SNS record");
|
|
791
|
-
}
|
|
792
|
-
}
|
|
793
|
-
req.event.events = events;
|
|
755
|
+
req.event.events = subscribedEvents(this.subscriber, rawEvent, this.logger);
|
|
794
756
|
} };
|
|
795
757
|
}
|
|
796
|
-
isSQSEvent(event) {
|
|
797
|
-
const firstRecord = event.Records[0];
|
|
798
|
-
return "Records" in event && event.Records.length > 0 && firstRecord !== void 0 && "eventSource" in firstRecord && firstRecord.eventSource === "aws:sqs";
|
|
799
|
-
}
|
|
800
|
-
isSNSEvent(event) {
|
|
801
|
-
const firstRecord = event.Records[0];
|
|
802
|
-
return "Records" in event && event.Records.length > 0 && firstRecord !== void 0 && "EventSource" in firstRecord && firstRecord.EventSource === "aws:sns";
|
|
803
|
-
}
|
|
804
|
-
parseSNSRecord(record) {
|
|
805
|
-
const message = this.safeJsonParse(record.Sns.Message);
|
|
806
|
-
const messageType = record.Sns.MessageAttributes?.type?.Value;
|
|
807
|
-
if (message === null) return messageType ? {
|
|
808
|
-
type: messageType,
|
|
809
|
-
payload: record.Sns.Message
|
|
810
|
-
} : record.Sns.Message;
|
|
811
|
-
const resolvedType = messageType ?? message.type;
|
|
812
|
-
if (message.type) return message;
|
|
813
|
-
return resolvedType ? {
|
|
814
|
-
type: resolvedType,
|
|
815
|
-
payload: message
|
|
816
|
-
} : message;
|
|
817
|
-
}
|
|
818
|
-
parseSQSRecord(record) {
|
|
819
|
-
const body = this.safeJsonParse(record.body);
|
|
820
|
-
if (body === null) return record.body;
|
|
821
|
-
if (body.Type === "Notification" && body.Message) {
|
|
822
|
-
const snsMessage = this.safeJsonParse(body.Message);
|
|
823
|
-
const messageType = body.MessageAttributes?.type?.Value;
|
|
824
|
-
if (snsMessage === null) return messageType ? {
|
|
825
|
-
type: messageType,
|
|
826
|
-
payload: body.Message
|
|
827
|
-
} : body.Message;
|
|
828
|
-
if (snsMessage.type) return snsMessage;
|
|
829
|
-
const resolvedType = messageType ?? snsMessage.type;
|
|
830
|
-
return resolvedType ? {
|
|
831
|
-
type: resolvedType,
|
|
832
|
-
payload: snsMessage
|
|
833
|
-
} : snsMessage;
|
|
834
|
-
}
|
|
835
|
-
return body;
|
|
836
|
-
}
|
|
837
|
-
safeJsonParse(value) {
|
|
838
|
-
try {
|
|
839
|
-
return JSON.parse(value);
|
|
840
|
-
} catch {
|
|
841
|
-
return null;
|
|
842
|
-
}
|
|
843
|
-
}
|
|
844
|
-
shouldIncludeEvent(event) {
|
|
845
|
-
if (typeof event !== "object" || !event?.type) return true;
|
|
846
|
-
if (!this.subscriber.subscribedEvents) return true;
|
|
847
|
-
return this.subscriber.subscribedEvents.includes(event.type);
|
|
848
|
-
}
|
|
849
758
|
async _handler(event) {
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
services: event.services,
|
|
857
|
-
logger: event.logger
|
|
759
|
+
const { events, services, logger, db } = event;
|
|
760
|
+
return runSubscriber(this.subscriber, {
|
|
761
|
+
events,
|
|
762
|
+
services,
|
|
763
|
+
logger,
|
|
764
|
+
db
|
|
858
765
|
});
|
|
859
|
-
if (this.subscriber.outputSchema && result) {
|
|
860
|
-
const validationResult = await this.subscriber.outputSchema["~standard"].validate(result);
|
|
861
|
-
if (validationResult.issues) {
|
|
862
|
-
this.logger.error({ issues: validationResult.issues }, "Subscriber output validation failed");
|
|
863
|
-
throw new Error("Subscriber output validation failed");
|
|
864
|
-
}
|
|
865
|
-
return validationResult.value;
|
|
866
|
-
}
|
|
867
|
-
return result;
|
|
868
766
|
}
|
|
869
767
|
get handler() {
|
|
870
768
|
const handler = this._handler.bind(this);
|
|
@@ -873,16 +771,18 @@ var AWSLambdaSubscriber = class {
|
|
|
873
771
|
const startTime = Date.now();
|
|
874
772
|
const requestId = context.awsRequestId;
|
|
875
773
|
const logger = this.subscriber.logger.child({ requestId });
|
|
774
|
+
const operation = `subscriber ${this.subscriber.topicName ?? context.functionName}`;
|
|
876
775
|
return runWithRequestContext({
|
|
877
776
|
logger,
|
|
878
777
|
requestId,
|
|
879
|
-
startTime
|
|
778
|
+
startTime,
|
|
779
|
+
operation
|
|
880
780
|
}, () => chain(event, context));
|
|
881
781
|
};
|
|
882
782
|
return wrappedHandler;
|
|
883
783
|
}
|
|
884
784
|
};
|
|
885
|
-
|
|
886
785
|
//#endregion
|
|
887
786
|
export { AWSLambdaFunction, AWSLambdaQueue, AWSLambdaSubscriber, AWSScheduledFunction, AmazonApiGatewayV1Endpoint, AmazonApiGatewayV2Endpoint };
|
|
787
|
+
|
|
888
788
|
//# sourceMappingURL=aws.mjs.map
|