@geekmidas/constructs 10.0.0-alpha.1 → 10.0.0-alpha.100
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-CdhThxDI.mjs → Construct-B1vGBPme.mjs} +45 -33
- package/dist/Construct-B1vGBPme.mjs.map +1 -0
- package/dist/Construct-BQALFCh2.d.cts +230 -0
- package/dist/Construct-BQALFCh2.d.cts.map +1 -0
- package/dist/{Construct-roId57cU.cjs → Construct-DUSXuTHP.cjs} +65 -47
- package/dist/Construct-DUSXuTHP.cjs.map +1 -0
- package/dist/Construct-QXnl3VqT.d.mts +230 -0
- package/dist/Construct-QXnl3VqT.d.mts.map +1 -0
- package/dist/Cron-DI3nKoic.d.cts +45 -0
- package/dist/Cron-DI3nKoic.d.cts.map +1 -0
- package/dist/Cron-uYAHPnp7.d.mts +45 -0
- package/dist/Cron-uYAHPnp7.d.mts.map +1 -0
- package/dist/CronBuilder-C0Ek1-RA.cjs +121 -0
- package/dist/CronBuilder-C0Ek1-RA.cjs.map +1 -0
- package/dist/CronBuilder-DaSUm2Na.d.mts +47 -0
- package/dist/CronBuilder-DaSUm2Na.d.mts.map +1 -0
- package/dist/CronBuilder-Dmix_Pen.mjs +109 -0
- package/dist/CronBuilder-Dmix_Pen.mjs.map +1 -0
- package/dist/CronBuilder-g1lZLWyG.d.cts +47 -0
- package/dist/CronBuilder-g1lZLWyG.d.cts.map +1 -0
- package/dist/{Endpoint-BTj58Gob.mjs → Endpoint-BG4UJ9oA.mjs} +146 -109
- package/dist/Endpoint-BG4UJ9oA.mjs.map +1 -0
- package/dist/{Endpoint-BBkV6l0k.cjs → Endpoint-BoUg8ocM.cjs} +174 -131
- package/dist/Endpoint-BoUg8ocM.cjs.map +1 -0
- package/dist/{Endpoint-BKR5QH6O.d.mts → Endpoint-Du-NwPX2.d.mts} +83 -91
- package/dist/Endpoint-Du-NwPX2.d.mts.map +1 -0
- package/dist/{Endpoint-BQ9O0P1w.d.cts → Endpoint-aCvBMPoH.d.cts} +82 -90
- package/dist/Endpoint-aCvBMPoH.d.cts.map +1 -0
- package/dist/{EndpointFactory-BejSTzbB.mjs → EndpointFactory-BDtsrEvJ.mjs} +60 -77
- package/dist/EndpointFactory-BDtsrEvJ.mjs.map +1 -0
- package/dist/{EndpointFactory-DYoGLaIT.cjs → EndpointFactory-DJ7gXLpR.cjs} +96 -113
- package/dist/EndpointFactory-DJ7gXLpR.cjs.map +1 -0
- package/dist/{index-D5zqAJ2e.d.cts → EndpointFactory-DMYdJCOj.d.mts} +78 -134
- package/dist/EndpointFactory-DMYdJCOj.d.mts.map +1 -0
- package/dist/{index-Cvz551AO.d.mts → EndpointFactory-I7s1co3Y.d.cts} +79 -135
- package/dist/EndpointFactory-I7s1co3Y.d.cts.map +1 -0
- package/dist/Function-DuqGcbOI.d.mts +76 -0
- package/dist/Function-DuqGcbOI.d.mts.map +1 -0
- package/dist/Function-Pu-1kKZz.d.cts +76 -0
- package/dist/Function-Pu-1kKZz.d.cts.map +1 -0
- package/dist/{HonoEndpointAdaptor-7aYNdqJq.mjs → HonoEndpointAdaptor-PtPlbeKY.mjs} +75 -57
- package/dist/HonoEndpointAdaptor-PtPlbeKY.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-wMsCyMgt.cjs → HonoEndpointAdaptor-zVzVLJEO.cjs} +83 -62
- package/dist/HonoEndpointAdaptor-zVzVLJEO.cjs.map +1 -0
- package/dist/Queue-A3wfD0it.cjs +109 -0
- package/dist/Queue-A3wfD0it.cjs.map +1 -0
- package/dist/Queue-D6USGS4q.mjs +104 -0
- package/dist/Queue-D6USGS4q.mjs.map +1 -0
- package/dist/{Queue-D6WeziRD.d.cts → Queue-DlsHRzUp.d.mts} +48 -48
- package/dist/Queue-DlsHRzUp.d.mts.map +1 -0
- package/dist/{Queue-DpUeqdC8.d.mts → Queue-HPyi0e1i.d.cts} +49 -49
- package/dist/Queue-HPyi0e1i.d.cts.map +1 -0
- package/dist/QueueBuilder-BjuF0UBl.cjs +135 -0
- package/dist/QueueBuilder-BjuF0UBl.cjs.map +1 -0
- package/dist/QueueBuilder-Cue73M4t.mjs +118 -0
- package/dist/QueueBuilder-Cue73M4t.mjs.map +1 -0
- package/dist/QueueBuilder-OSi6LkV9.d.cts +75 -0
- package/dist/QueueBuilder-OSi6LkV9.d.cts.map +1 -0
- package/dist/QueueBuilder-QHsnVt1P.d.mts +75 -0
- package/dist/QueueBuilder-QHsnVt1P.d.mts.map +1 -0
- package/dist/{Subscriber-4rBJgDKI.d.mts → Subscriber-Bpp02cGr.d.cts} +30 -21
- package/dist/Subscriber-Bpp02cGr.d.cts.map +1 -0
- package/dist/{Subscriber-DVQowdyj.d.cts → Subscriber-CtN9R48-.d.mts} +29 -20
- package/dist/Subscriber-CtN9R48-.d.mts.map +1 -0
- package/dist/SubscriberBuilder-CDy4nHCz.mjs +134 -0
- package/dist/SubscriberBuilder-CDy4nHCz.mjs.map +1 -0
- package/dist/SubscriberBuilder-CuCMFpYW.d.mts +67 -0
- package/dist/SubscriberBuilder-CuCMFpYW.d.mts.map +1 -0
- package/dist/SubscriberBuilder-D_owVoHo.cjs +145 -0
- package/dist/SubscriberBuilder-D_owVoHo.cjs.map +1 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts +67 -0
- package/dist/SubscriberBuilder-g3fAVWgs.d.cts.map +1 -0
- package/dist/Topic-D74b5cgs.mjs +99 -0
- package/dist/Topic-D74b5cgs.mjs.map +1 -0
- package/dist/Topic-GHxcU8AG.cjs +104 -0
- package/dist/Topic-GHxcU8AG.cjs.map +1 -0
- package/dist/adaptors/aws.cjs +332 -188
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +114 -44
- package/dist/adaptors/aws.d.cts.map +1 -1
- package/dist/adaptors/aws.d.mts +114 -44
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +308 -166
- package/dist/adaptors/aws.mjs.map +1 -1
- package/dist/adaptors/hono.cjs +3 -11
- 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 -11
- package/dist/adaptors/testing.cjs +743 -90
- package/dist/adaptors/testing.cjs.map +1 -1
- package/dist/adaptors/testing.d.cts +351 -54
- package/dist/adaptors/testing.d.cts.map +1 -1
- package/dist/adaptors/testing.d.mts +351 -54
- package/dist/adaptors/testing.d.mts.map +1 -1
- package/dist/adaptors/testing.mjs +706 -71
- package/dist/adaptors/testing.mjs.map +1 -1
- package/dist/auth-BMCJN30Y.d.cts +268 -0
- package/dist/auth-BMCJN30Y.d.cts.map +1 -0
- package/dist/auth-CcuceLYo.d.mts +268 -0
- package/dist/auth-CcuceLYo.d.mts.map +1 -0
- package/dist/auth.cjs +302 -34
- 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 +290 -28
- package/dist/auth.mjs.map +1 -1
- package/dist/{cache-CdQ7OLpR.d.cts → cache-CXh6GIgb.d.mts} +4 -7
- package/dist/cache-CXh6GIgb.d.mts.map +1 -0
- package/dist/{cache-DYoJFcfd.d.mts → cache-DnGDGly3.d.cts} +4 -7
- 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-BqwRNYA2.d.mts → construct-interface-B1AfqRl4.d.cts} +43 -12
- package/dist/construct-interface-B1AfqRl4.d.cts.map +1 -0
- package/dist/{construct-interface-D2nNkHUN.d.cts → construct-interface-DluK3_da.d.mts} +43 -12
- package/dist/construct-interface-DluK3_da.d.mts.map +1 -0
- package/dist/construct-interface.cjs +113 -7
- package/dist/construct-interface.cjs.map +1 -0
- package/dist/construct-interface.d.cts +2 -2
- package/dist/construct-interface.d.mts +2 -2
- package/dist/construct-interface.mjs +106 -2
- package/dist/construct-interface.mjs.map +1 -0
- package/dist/credential.cjs +77 -17
- package/dist/credential.cjs.map +1 -1
- package/dist/credential.d.cts +34 -9
- package/dist/credential.d.cts.map +1 -1
- package/dist/credential.d.mts +34 -9
- package/dist/credential.d.mts.map +1 -1
- package/dist/credential.mjs +71 -13
- package/dist/credential.mjs.map +1 -1
- package/dist/crons/index.cjs +189 -85
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +70 -48
- package/dist/crons/index.d.cts.map +1 -1
- package/dist/crons/index.d.mts +70 -48
- package/dist/crons/index.d.mts.map +1 -1
- package/dist/crons/index.mjs +183 -81
- 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 -11
- 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 -11
- package/dist/external-api-MJ8id87V.d.mts +105 -0
- package/dist/external-api-MJ8id87V.d.mts.map +1 -0
- package/dist/external-api-O107yzZJ.d.cts +105 -0
- package/dist/external-api-O107yzZJ.d.cts.map +1 -0
- package/dist/external-api.cjs +142 -0
- package/dist/external-api.cjs.map +1 -0
- package/dist/external-api.d.cts +2 -0
- package/dist/external-api.d.mts +2 -0
- package/dist/external-api.mjs +139 -0
- package/dist/external-api.mjs.map +1 -0
- package/dist/file-server.cjs +42 -10
- package/dist/file-server.cjs.map +1 -1
- package/dist/file-server.d.cts +6 -10
- package/dist/file-server.d.cts.map +1 -1
- package/dist/file-server.d.mts +6 -10
- package/dist/file-server.d.mts.map +1 -1
- package/dist/file-server.mjs +34 -2
- package/dist/file-server.mjs.map +1 -1
- package/dist/functions/index.cjs +2 -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-Cpff1uZH.mjs → functions-BFizikJU.mjs} +394 -243
- package/dist/functions-BFizikJU.mjs.map +1 -0
- package/dist/{functions-DukjG8ov.cjs → functions-CfzJG9hK.cjs} +432 -275
- package/dist/functions-CfzJG9hK.cjs.map +1 -0
- package/dist/index-BuzRvKOQ.d.cts +115 -0
- package/dist/index-BuzRvKOQ.d.cts.map +1 -0
- package/dist/index-CTkKOer4.d.mts +115 -0
- package/dist/index-CTkKOer4.d.mts.map +1 -0
- package/dist/index-CeEtxDmK.d.cts +79 -0
- package/dist/index-CeEtxDmK.d.cts.map +1 -0
- package/dist/index-CeEtxDmK.d.mts +79 -0
- package/dist/index-CeEtxDmK.d.mts.map +1 -0
- package/dist/index.cjs +6 -3
- package/dist/index.d.cts +27 -4
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +27 -4
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +3 -3
- package/dist/kms-B-Hm3d5r.cjs +85 -0
- package/dist/kms-B-Hm3d5r.cjs.map +1 -0
- package/dist/kms-BdUlMJEZ.mjs +85 -0
- package/dist/kms-BdUlMJEZ.mjs.map +1 -0
- package/dist/kysely-Bii4l6eP.mjs +370 -0
- package/dist/kysely-Bii4l6eP.mjs.map +1 -0
- package/dist/kysely-CO_Dk43W.cjs +383 -0
- package/dist/kysely-CO_Dk43W.cjs.map +1 -0
- package/dist/kysely-D0bpzgPs.d.cts +175 -0
- package/dist/kysely-D0bpzgPs.d.cts.map +1 -0
- package/dist/kysely-DUqC3Ie0.d.mts +175 -0
- package/dist/kysely-DUqC3Ie0.d.mts.map +1 -0
- package/dist/{telemetry-C3L0iS28.d.cts → lambdaTelemetry-8vnmVZQ5.d.cts} +3 -6
- package/dist/lambdaTelemetry-8vnmVZQ5.d.cts.map +1 -0
- package/dist/{telemetry-D7bVFLGi.d.mts → lambdaTelemetry-8vnmVZQ5.d.mts} +3 -6
- package/dist/lambdaTelemetry-8vnmVZQ5.d.mts.map +1 -0
- package/dist/{lazyAccessors-DM6HcXQk.mjs → lazyAccessors-CFanua0O.mjs} +20 -21
- package/dist/lazyAccessors-CFanua0O.mjs.map +1 -0
- package/dist/{lazyAccessors-DrJj8NpA.cjs → lazyAccessors-hJKGv8Ay.cjs} +60 -62
- package/dist/lazyAccessors-hJKGv8Ay.cjs.map +1 -0
- package/dist/mobile-app.cjs +73 -0
- package/dist/mobile-app.cjs.map +1 -0
- package/dist/mobile-app.d.cts +61 -0
- package/dist/mobile-app.d.cts.map +1 -0
- package/dist/mobile-app.d.mts +61 -0
- package/dist/mobile-app.d.mts.map +1 -0
- package/dist/mobile-app.mjs +72 -0
- package/dist/mobile-app.mjs.map +1 -0
- package/dist/object-storage.cjs +18 -10
- package/dist/object-storage.cjs.map +1 -1
- package/dist/object-storage.d.cts +3 -7
- package/dist/object-storage.d.cts.map +1 -1
- package/dist/object-storage.d.mts +3 -7
- package/dist/object-storage.d.mts.map +1 -1
- package/dist/object-storage.mjs +11 -3
- package/dist/object-storage.mjs.map +1 -1
- package/dist/processAudits-BRRVVHUB.mjs +131 -0
- package/dist/processAudits-BRRVVHUB.mjs.map +1 -0
- package/dist/processAudits-DasOZjPl.cjs +154 -0
- package/dist/processAudits-DasOZjPl.cjs.map +1 -0
- package/dist/queue/index.cjs +6 -189
- package/dist/queue/index.d.cts +3 -60
- package/dist/queue/index.d.mts +3 -60
- package/dist/queue/index.mjs +3 -186
- package/dist/rest-api.cjs +92 -63
- package/dist/rest-api.cjs.map +1 -1
- package/dist/rest-api.d.cts +81 -61
- package/dist/rest-api.d.cts.map +1 -1
- package/dist/rest-api.d.mts +81 -61
- package/dist/rest-api.d.mts.map +1 -1
- package/dist/rest-api.mjs +84 -55
- 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 +35 -9
- package/dist/site.cjs.map +1 -1
- package/dist/site.d.cts +25 -22
- package/dist/site.d.cts.map +1 -1
- package/dist/site.d.mts +25 -22
- package/dist/site.d.mts.map +1 -1
- package/dist/site.mjs +31 -5
- 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 +111 -101
- package/dist/subscribers/index.cjs.map +1 -1
- package/dist/subscribers/index.d.cts +44 -56
- package/dist/subscribers/index.d.cts.map +1 -1
- package/dist/subscribers/index.d.mts +44 -56
- package/dist/subscribers/index.d.mts.map +1 -1
- package/dist/subscribers/index.mjs +108 -98
- package/dist/subscribers/index.mjs.map +1 -1
- package/dist/surfaceEnv-CNimK76p.cjs +56 -0
- package/dist/surfaceEnv-CNimK76p.cjs.map +1 -0
- package/dist/surfaceEnv-wMT5QzgZ.mjs +45 -0
- package/dist/surfaceEnv-wMT5QzgZ.mjs.map +1 -0
- package/dist/telemetry-B48RLjyk.d.cts +40 -0
- package/dist/telemetry-B48RLjyk.d.cts.map +1 -0
- package/dist/telemetry-DRtT1_0A.d.mts +40 -0
- package/dist/telemetry-DRtT1_0A.d.mts.map +1 -0
- package/dist/telemetry.cjs +56 -0
- package/dist/telemetry.cjs.map +1 -0
- package/dist/telemetry.d.cts +2 -0
- package/dist/telemetry.d.mts +2 -0
- package/dist/telemetry.mjs +55 -0
- package/dist/telemetry.mjs.map +1 -0
- package/dist/topic/index.cjs +3 -137
- package/dist/topic/index.d.cts +2 -32
- package/dist/topic/index.d.mts +2 -32
- package/dist/topic/index.mjs +2 -134
- package/dist/tracing-CxaZ98IB.mjs +110 -0
- package/dist/tracing-CxaZ98IB.mjs.map +1 -0
- package/dist/tracing-DPMidF_r.cjs +127 -0
- package/dist/tracing-DPMidF_r.cjs.map +1 -0
- package/dist/{types-BlAkSuGI.d.cts → types-DMuSQeLL.d.cts} +3 -5
- package/dist/types-DMuSQeLL.d.cts.map +1 -0
- package/dist/{types-aKksMEWL.d.mts → types-DMuSQeLL.d.mts} +3 -5
- package/dist/types-DMuSQeLL.d.mts.map +1 -0
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.mjs +1 -0
- package/dist/worker.cjs +191 -0
- package/dist/worker.cjs.map +1 -0
- package/dist/worker.d.cts +171 -0
- package/dist/worker.d.cts.map +1 -0
- package/dist/worker.d.mts +171 -0
- package/dist/worker.d.mts.map +1 -0
- package/dist/worker.mjs +190 -0
- package/dist/worker.mjs.map +1 -0
- package/package.json +116 -70
- package/dist/AWSScheduledFunction-9bJS4WdJ.d.cts +0 -122
- package/dist/AWSScheduledFunction-9bJS4WdJ.d.cts.map +0 -1
- package/dist/AWSScheduledFunction-BJjj8B5V.mjs +0 -243
- package/dist/AWSScheduledFunction-BJjj8B5V.mjs.map +0 -1
- package/dist/AWSScheduledFunction-BO5iEMSh.d.mts +0 -122
- package/dist/AWSScheduledFunction-BO5iEMSh.d.mts.map +0 -1
- package/dist/AWSScheduledFunction-qu4ieRZR.cjs +0 -255
- package/dist/AWSScheduledFunction-qu4ieRZR.cjs.map +0 -1
- package/dist/Construct-B-xc0SE9.d.mts +0 -104
- package/dist/Construct-B-xc0SE9.d.mts.map +0 -1
- package/dist/Construct-CdhThxDI.mjs.map +0 -1
- package/dist/Construct-WhCXIOPV.d.cts +0 -104
- package/dist/Construct-WhCXIOPV.d.cts.map +0 -1
- package/dist/Construct-roId57cU.cjs.map +0 -1
- package/dist/Endpoint-BBkV6l0k.cjs.map +0 -1
- package/dist/Endpoint-BKR5QH6O.d.mts.map +0 -1
- package/dist/Endpoint-BQ9O0P1w.d.cts.map +0 -1
- package/dist/Endpoint-BTj58Gob.mjs.map +0 -1
- package/dist/EndpointFactory-BejSTzbB.mjs.map +0 -1
- package/dist/EndpointFactory-DYoGLaIT.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-7aYNdqJq.mjs.map +0 -1
- package/dist/HonoEndpointAdaptor-wMsCyMgt.cjs.map +0 -1
- package/dist/Queue-D6WeziRD.d.cts.map +0 -1
- package/dist/Queue-DpUeqdC8.d.mts.map +0 -1
- package/dist/Subscriber-4rBJgDKI.d.mts.map +0 -1
- package/dist/Subscriber-DVQowdyj.d.cts.map +0 -1
- package/dist/Topic-Ohx9dvWr.d.cts +0 -91
- package/dist/Topic-Ohx9dvWr.d.cts.map +0 -1
- package/dist/Topic-cmy2jOUy.d.mts +0 -91
- package/dist/Topic-cmy2jOUy.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-CdQ7OLpR.d.cts.map +0 -1
- package/dist/cache-DYoJFcfd.d.mts.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-BqwRNYA2.d.mts.map +0 -1
- package/dist/construct-interface-D2nNkHUN.d.cts.map +0 -1
- package/dist/construct-interface-Z4CpS8tK.mjs +0 -81
- package/dist/construct-interface-Z4CpS8tK.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-Cpff1uZH.mjs.map +0 -1
- package/dist/functions-DukjG8ov.cjs.map +0 -1
- package/dist/index-BTvozlUD.d.cts +0 -163
- package/dist/index-BTvozlUD.d.cts.map +0 -1
- package/dist/index-Cvz551AO.d.mts.map +0 -1
- package/dist/index-D5zqAJ2e.d.cts.map +0 -1
- package/dist/index-L7pz0R0T.d.mts +0 -162
- package/dist/index-L7pz0R0T.d.mts.map +0 -1
- package/dist/lazyAccessors-DM6HcXQk.mjs.map +0 -1
- package/dist/lazyAccessors-DrJj8NpA.cjs.map +0 -1
- package/dist/processAudits-Bc8rz6Ev.cjs +0 -92
- package/dist/processAudits-Bc8rz6Ev.cjs.map +0 -1
- package/dist/processAudits-D89tICM4.mjs +0 -80
- package/dist/processAudits-D89tICM4.mjs.map +0 -1
- package/dist/publisher-CGEo8UKD.mjs +0 -41
- package/dist/publisher-CGEo8UKD.mjs.map +0 -1
- package/dist/publisher-CqGsXB2X.cjs +0 -53
- package/dist/publisher-CqGsXB2X.cjs.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.d.cts.map +0 -1
- package/dist/topic/index.d.mts.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.cjs
CHANGED
|
@@ -1,23 +1,249 @@
|
|
|
1
|
-
|
|
2
|
-
require(
|
|
3
|
-
require(
|
|
4
|
-
require(
|
|
5
|
-
require(
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_rolldown_runtime = require("../rolldown-runtime-y5ARvAq5.cjs");
|
|
3
|
+
const require_tracing = require("../tracing-DPMidF_r.cjs");
|
|
4
|
+
const require_functions = require("../functions-CfzJG9hK.cjs");
|
|
5
|
+
const require_Endpoint = require("../Endpoint-BoUg8ocM.cjs");
|
|
6
|
+
const require_surfaceEnv = require("../surfaceEnv-CNimK76p.cjs");
|
|
7
|
+
const require_lazyAccessors = require("../lazyAccessors-hJKGv8Ay.cjs");
|
|
8
|
+
const require_runSubscriber = require("../runSubscriber-D8nLXIv1.cjs");
|
|
9
|
+
const require_processAudits = require("../processAudits-DasOZjPl.cjs");
|
|
10
|
+
let _geekmidas_events = require("@geekmidas/events");
|
|
11
|
+
let _geekmidas_errors = require("@geekmidas/errors");
|
|
12
|
+
let _geekmidas_services = require("@geekmidas/services");
|
|
13
|
+
let qs = require("qs");
|
|
14
|
+
qs = require_rolldown_runtime.__toESM(qs, 1);
|
|
15
|
+
let _middy_core = require("@middy/core");
|
|
16
|
+
_middy_core = require_rolldown_runtime.__toESM(_middy_core, 1);
|
|
17
|
+
let _geekmidas_audit = require("@geekmidas/audit");
|
|
18
|
+
let _geekmidas_audit_kysely = require("@geekmidas/audit/kysely");
|
|
19
|
+
let _geekmidas_db_rls = require("@geekmidas/db/rls");
|
|
20
|
+
//#region src/functions/FunctionExecutionWrapper.ts
|
|
21
|
+
var FunctionExecutionWrapper = class {
|
|
22
|
+
envParser;
|
|
23
|
+
fn;
|
|
24
|
+
constructor(envParser, fn) {
|
|
25
|
+
this.envParser = envParser;
|
|
26
|
+
this.fn = fn;
|
|
27
|
+
}
|
|
28
|
+
_logger;
|
|
29
|
+
get logger() {
|
|
30
|
+
return this._logger || this.fn.logger;
|
|
31
|
+
}
|
|
32
|
+
get serviceDiscovery() {
|
|
33
|
+
return _geekmidas_services.ServiceDiscovery.getInstance(this.envParser);
|
|
34
|
+
}
|
|
35
|
+
getServices() {
|
|
36
|
+
return this.serviceDiscovery.register(this.fn.services);
|
|
37
|
+
}
|
|
38
|
+
async getDatabase() {
|
|
39
|
+
if (!this.fn.databaseService) return;
|
|
40
|
+
return (await this.serviceDiscovery.register([this.fn.databaseService]))[this.fn.databaseService.serviceName];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get the audit storage service if configured.
|
|
44
|
+
* Returns undefined if no auditor storage is configured.
|
|
45
|
+
*/
|
|
46
|
+
async getAuditStorage() {
|
|
47
|
+
if (!this.fn.auditorStorageService) return;
|
|
48
|
+
return (await this.serviceDiscovery.register([this.fn.auditorStorageService]))[this.fn.auditorStorageService.serviceName];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create an auditor instance for the function.
|
|
52
|
+
* Returns undefined if no auditor storage is configured.
|
|
53
|
+
*/
|
|
54
|
+
async createAuditor() {
|
|
55
|
+
const storage = await this.getAuditStorage();
|
|
56
|
+
if (!storage) return;
|
|
57
|
+
return new _geekmidas_audit.DefaultAuditor({
|
|
58
|
+
actor: {
|
|
59
|
+
id: "system",
|
|
60
|
+
type: "system"
|
|
61
|
+
},
|
|
62
|
+
storage,
|
|
63
|
+
metadata: { function: this.fn.type }
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Execute handler with audit transaction support.
|
|
68
|
+
* If the audit storage has a database (via getDatabase()), wraps execution
|
|
69
|
+
* in a transaction so audits are atomic with handler's database operations.
|
|
70
|
+
*
|
|
71
|
+
* @param handler - The handler function to execute (receives auditor and db)
|
|
72
|
+
* @returns The handler result
|
|
73
|
+
*/
|
|
74
|
+
async executeWithAudit(handler) {
|
|
75
|
+
const auditor = await this.createAuditor();
|
|
76
|
+
const storage = await this.getAuditStorage();
|
|
77
|
+
if (!auditor || !storage) return handler({ db: await this.getDatabase() });
|
|
78
|
+
const storageDb = storage.getDatabase?.();
|
|
79
|
+
const databaseServiceName = this.fn.databaseService?.serviceName;
|
|
80
|
+
const auditDbServiceName = this.fn.auditorStorageService?.serviceName;
|
|
81
|
+
if (storageDb && databaseServiceName && auditDbServiceName) return (0, _geekmidas_audit_kysely.withAuditableTransaction)(storageDb, auditor, async (trx) => {
|
|
82
|
+
return await handler({
|
|
83
|
+
auditor,
|
|
84
|
+
db: trx
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
const response = await handler({
|
|
88
|
+
auditor,
|
|
89
|
+
db: await this.getDatabase()
|
|
90
|
+
});
|
|
91
|
+
await auditor.flush();
|
|
92
|
+
return response;
|
|
93
|
+
}
|
|
94
|
+
async getFunctionInput(event) {
|
|
95
|
+
return await require_functions.FunctionBuilder.parseComposableStandardSchema(event, this.fn.input);
|
|
96
|
+
}
|
|
97
|
+
async publishEvents(response) {
|
|
98
|
+
await require_functions.publishEvents(this.logger, this.serviceDiscovery, this.fn.events, response);
|
|
99
|
+
}
|
|
100
|
+
async parseComposableStandardSchema(data, schema) {
|
|
101
|
+
return require_functions.FunctionBuilder.parseComposableStandardSchema(data, schema);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
//#endregion
|
|
105
|
+
//#region src/functions/AWSLambdaFunction.ts
|
|
106
|
+
var AWSLambdaFunction = class extends FunctionExecutionWrapper {
|
|
107
|
+
fn;
|
|
108
|
+
constructor(envParser, fn) {
|
|
109
|
+
super(envParser, fn);
|
|
110
|
+
this.fn = fn;
|
|
111
|
+
}
|
|
112
|
+
error() {
|
|
113
|
+
return { onError: (req) => {
|
|
114
|
+
(req.event?.logger || this.fn.logger).error(req.error || {}, "Error processing function");
|
|
115
|
+
throw (0, _geekmidas_errors.wrapError)(req.error);
|
|
116
|
+
} };
|
|
117
|
+
}
|
|
118
|
+
baseInput() {
|
|
119
|
+
return { before: (_req) => {} };
|
|
120
|
+
}
|
|
121
|
+
input() {
|
|
122
|
+
return { before: async (req) => {
|
|
123
|
+
try {
|
|
124
|
+
if (this.fn.input) {
|
|
125
|
+
const parsedInput = await require_functions.FunctionBuilder.parseComposableStandardSchema(req.event, this.fn.input);
|
|
126
|
+
req.event.parsedInput = parsedInput;
|
|
127
|
+
} else req.event.parsedInput = req.event;
|
|
128
|
+
} catch (error) {
|
|
129
|
+
this.logger.error({
|
|
130
|
+
err: error,
|
|
131
|
+
event: req.event
|
|
132
|
+
}, "Failed to parse input");
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
} };
|
|
136
|
+
}
|
|
137
|
+
loggerMiddleware() {
|
|
138
|
+
return { before: (req) => {
|
|
139
|
+
this._logger = this.fn.logger.child({
|
|
140
|
+
fn: {
|
|
141
|
+
name: req.context.functionName,
|
|
142
|
+
version: req.context.functionVersion,
|
|
143
|
+
memory: req.context.memoryLimitInMB
|
|
144
|
+
},
|
|
145
|
+
req: { id: req.context.awsRequestId }
|
|
146
|
+
});
|
|
147
|
+
req.event.logger = this._logger;
|
|
148
|
+
} };
|
|
149
|
+
}
|
|
150
|
+
services() {
|
|
151
|
+
return { before: async (req) => {
|
|
152
|
+
req.event.services = await this.getServices();
|
|
153
|
+
} };
|
|
154
|
+
}
|
|
155
|
+
database() {
|
|
156
|
+
return { before: async (req) => {
|
|
157
|
+
req.event.db = await this.getDatabase();
|
|
158
|
+
} };
|
|
159
|
+
}
|
|
160
|
+
auditor() {
|
|
161
|
+
return {
|
|
162
|
+
before: async (req) => {
|
|
163
|
+
req.event.auditor = await this.createAuditor();
|
|
164
|
+
},
|
|
165
|
+
after: async (req) => {
|
|
166
|
+
if (req.event.auditor) {
|
|
167
|
+
const records = req.event.auditor.getRecords();
|
|
168
|
+
if (records.length > 0) {
|
|
169
|
+
this.logger.debug({ auditCount: records.length }, "Flushing function audits");
|
|
170
|
+
await req.event.auditor.flush();
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
events() {
|
|
177
|
+
return { after: async (req) => {
|
|
178
|
+
const response = req.response || void 0;
|
|
179
|
+
await this.publishEvents(response);
|
|
180
|
+
} };
|
|
181
|
+
}
|
|
182
|
+
async _handler(event) {
|
|
183
|
+
const result = await this.fn.fn({
|
|
184
|
+
input: event.parsedInput,
|
|
185
|
+
services: event.services,
|
|
186
|
+
logger: event.logger,
|
|
187
|
+
db: event.db,
|
|
188
|
+
auditor: event.auditor
|
|
189
|
+
});
|
|
190
|
+
return await this.fn.parseOutput(result);
|
|
191
|
+
}
|
|
192
|
+
get handler() {
|
|
193
|
+
const handler = this._handler.bind(this);
|
|
194
|
+
const chain = (0, _middy_core.default)(handler).use(this.loggerMiddleware()).use(this.baseInput()).use(this.error()).use(this.services()).use(this.database()).use(this.auditor()).use(this.input()).use(this.events());
|
|
195
|
+
const wrappedHandler = async (event, context) => {
|
|
196
|
+
const startTime = Date.now();
|
|
197
|
+
const requestId = context.awsRequestId;
|
|
198
|
+
const logger = this.fn.logger.child({ requestId });
|
|
199
|
+
return (0, _geekmidas_services.runWithRequestContext)({
|
|
200
|
+
logger,
|
|
201
|
+
requestId,
|
|
202
|
+
startTime,
|
|
203
|
+
operation: context.functionName
|
|
204
|
+
}, () => chain(event, context));
|
|
205
|
+
};
|
|
206
|
+
return wrappedHandler;
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
//#endregion
|
|
210
|
+
//#region src/crons/AWSScheduledFunction.ts
|
|
211
|
+
/**
|
|
212
|
+
* AWS Lambda adaptor for {@link Cron} constructs.
|
|
213
|
+
*
|
|
214
|
+
* A `Cron` is a {@link import('../functions').Function} that is invoked on a
|
|
215
|
+
* schedule (an EventBridge rule) rather than by an API request. Because of
|
|
216
|
+
* that, the runtime execution pipeline is identical to a regular Lambda
|
|
217
|
+
* function: input parsing, service/database/auditor wiring, event publishing,
|
|
218
|
+
* error handling, and the `runWithRequestContext` wrapper that powers
|
|
219
|
+
* request-scoped logging via `serviceContext.getLogger()`.
|
|
220
|
+
*
|
|
221
|
+
* This adaptor therefore reuses {@link AWSLambdaFunction} wholesale and only
|
|
222
|
+
* narrows the constructor to accept a `Cron`. The schedule expression itself
|
|
223
|
+
* (`cron.schedule`) is **deploy-time** infrastructure consumed by the CLI to
|
|
224
|
+
* provision the EventBridge rule — it is not needed at runtime.
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```typescript
|
|
228
|
+
* import { AWSScheduledFunction } from '@geekmidas/constructs/crons';
|
|
229
|
+
* import { cancelPastBookings } from '../../../src/crons/cancelPastBookings.js';
|
|
230
|
+
* import { envParser } from '../../../src/env';
|
|
231
|
+
*
|
|
232
|
+
* const adapter = new AWSScheduledFunction(envParser, cancelPastBookings);
|
|
233
|
+
*
|
|
234
|
+
* export const handler = adapter.handler;
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
var AWSScheduledFunction = class extends AWSLambdaFunction {
|
|
238
|
+
constructor(envParser, cron) {
|
|
239
|
+
super(envParser, cron);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
//#endregion
|
|
18
243
|
//#region src/endpoints/AmazonApiGatewayEndpointAdaptor.ts
|
|
19
|
-
var
|
|
244
|
+
var import_lodash_set = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_Endpoint.require_lodash_set(), 1);
|
|
20
245
|
var AmazonApiGatewayEndpoint = class {
|
|
246
|
+
endpoint;
|
|
21
247
|
options;
|
|
22
248
|
/**
|
|
23
249
|
* The parser this adaptor discovers services with.
|
|
@@ -37,7 +263,7 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
37
263
|
error() {
|
|
38
264
|
return { onError: (req) => {
|
|
39
265
|
(req.event.logger || this.endpoint.logger).error(req.error || {}, "Error processing request");
|
|
40
|
-
const wrappedError = (0,
|
|
266
|
+
const wrappedError = (0, _geekmidas_errors.wrapError)(req.error);
|
|
41
267
|
req.response = {
|
|
42
268
|
statusCode: wrappedError.statusCode,
|
|
43
269
|
body: wrappedError.body
|
|
@@ -55,8 +281,7 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
55
281
|
static decodeBody(body, isBase64Encoded, contentType) {
|
|
56
282
|
if (!body) return void 0;
|
|
57
283
|
const raw = isBase64Encoded ? Buffer.from(body, "base64").toString("utf-8") : body;
|
|
58
|
-
|
|
59
|
-
if (isJson) return JSON.parse(raw);
|
|
284
|
+
if (!contentType || contentType.toLowerCase().includes("application/json")) return JSON.parse(raw);
|
|
60
285
|
return raw;
|
|
61
286
|
}
|
|
62
287
|
getCookies(e) {
|
|
@@ -70,13 +295,13 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
70
295
|
const headers = req.event.headers;
|
|
71
296
|
const header = require_Endpoint.Endpoint.createHeaders(headers);
|
|
72
297
|
const cookie = this.getCookies(req.event);
|
|
73
|
-
(0,
|
|
74
|
-
(0,
|
|
75
|
-
(0,
|
|
76
|
-
(0,
|
|
77
|
-
(0,
|
|
298
|
+
(0, import_lodash_set.default)(req.event, "body", await this.endpoint.parseInput(body, "body"));
|
|
299
|
+
(0, import_lodash_set.default)(req.event, "query", await this.endpoint.parseInput(query, "query"));
|
|
300
|
+
(0, import_lodash_set.default)(req.event, "params", await this.endpoint.parseInput(params, "params"));
|
|
301
|
+
(0, import_lodash_set.default)(req.event, "header", header);
|
|
302
|
+
(0, import_lodash_set.default)(req.event, "cookie", cookie);
|
|
78
303
|
} catch (error) {
|
|
79
|
-
if (error && typeof error === "object" && Array.isArray(error)) throw new
|
|
304
|
+
if (error && typeof error === "object" && Array.isArray(error)) throw new _geekmidas_errors.UnprocessableEntityError("Validation failed", error);
|
|
80
305
|
throw error;
|
|
81
306
|
}
|
|
82
307
|
} };
|
|
@@ -93,9 +318,8 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
93
318
|
}
|
|
94
319
|
services() {
|
|
95
320
|
return { before: async (req) => {
|
|
96
|
-
|
|
97
|
-
const
|
|
98
|
-
const services = await serviceDiscovery.register(this.endpoint.services);
|
|
321
|
+
req.event.logger;
|
|
322
|
+
const services = await _geekmidas_services.ServiceDiscovery.getInstance(this.envParser).register(this.endpoint.services);
|
|
99
323
|
req.event.services = services;
|
|
100
324
|
} };
|
|
101
325
|
}
|
|
@@ -106,7 +330,7 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
106
330
|
const header = req.event.header;
|
|
107
331
|
const cookie = req.event.cookie;
|
|
108
332
|
const session = req.event.session;
|
|
109
|
-
|
|
333
|
+
if (!await this.endpoint.authorize({
|
|
110
334
|
header,
|
|
111
335
|
cookie,
|
|
112
336
|
services,
|
|
@@ -116,19 +340,17 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
116
340
|
body: req.event.body,
|
|
117
341
|
query: req.event.query,
|
|
118
342
|
params: req.event.params
|
|
119
|
-
})
|
|
120
|
-
if (!isAuthorized) {
|
|
343
|
+
})) {
|
|
121
344
|
logger.warn("Forbidden access attempt");
|
|
122
|
-
throw new
|
|
345
|
+
throw new _geekmidas_errors.ForbiddenError("Forbidden access to the endpoint", "You do not have permission to access this resource.");
|
|
123
346
|
}
|
|
124
347
|
} };
|
|
125
348
|
}
|
|
126
349
|
database() {
|
|
127
350
|
return { before: async (req) => {
|
|
128
351
|
if (!this.endpoint.databaseService) return;
|
|
129
|
-
|
|
130
|
-
const
|
|
131
|
-
const db = await serviceDiscovery.register([this.endpoint.databaseService]).then((s) => s[this.endpoint.databaseService?.serviceName]);
|
|
352
|
+
req.event.logger;
|
|
353
|
+
const db = await _geekmidas_services.ServiceDiscovery.getInstance(this.envParser).register([this.endpoint.databaseService]).then((s) => s[this.endpoint.databaseService?.serviceName]);
|
|
132
354
|
req.event.db = db;
|
|
133
355
|
} };
|
|
134
356
|
}
|
|
@@ -153,15 +375,15 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
153
375
|
const statusCode = req.response?.statusCode ?? this.endpoint.status;
|
|
154
376
|
if (require_Endpoint.Endpoint.isSuccessStatus(statusCode)) {
|
|
155
377
|
const logger = event.logger;
|
|
156
|
-
const serviceDiscovery =
|
|
157
|
-
await
|
|
378
|
+
const serviceDiscovery = _geekmidas_services.ServiceDiscovery.getInstance(this.envParser);
|
|
379
|
+
await require_functions.publishConstructEvents(this.endpoint, response, serviceDiscovery, logger);
|
|
158
380
|
}
|
|
159
381
|
} };
|
|
160
382
|
}
|
|
161
383
|
async _handler(event) {
|
|
162
384
|
const input = this.endpoint.refineInput(event);
|
|
163
385
|
const logger = event.logger;
|
|
164
|
-
const serviceDiscovery =
|
|
386
|
+
const serviceDiscovery = _geekmidas_services.ServiceDiscovery.getInstance(this.envParser);
|
|
165
387
|
const auditContext = await require_processAudits.createAuditContext(this.endpoint, serviceDiscovery, logger, {
|
|
166
388
|
session: event.session,
|
|
167
389
|
header: event.header,
|
|
@@ -179,9 +401,8 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
179
401
|
cookie: event.cookie,
|
|
180
402
|
logger
|
|
181
403
|
}) : void 0;
|
|
182
|
-
const
|
|
183
|
-
const
|
|
184
|
-
const baseDb = sameDatabase ? auditor?.getTransaction?.() ?? rawDb : rawDb;
|
|
404
|
+
const { output, metadata } = await require_processAudits.executeWithAuditTransaction(auditContext, async (auditor) => {
|
|
405
|
+
const baseDb = auditContext?.storage?.databaseServiceName && auditContext.storage.databaseServiceName === this.endpoint.databaseService?.serviceName ? auditor?.getTransaction?.() ?? rawDb : rawDb;
|
|
185
406
|
const executeHandler = async (db) => {
|
|
186
407
|
const responseBuilder = new require_Endpoint.ResponseBuilder();
|
|
187
408
|
const response = await this.endpoint.handler({
|
|
@@ -195,33 +416,31 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
195
416
|
...input
|
|
196
417
|
}, responseBuilder);
|
|
197
418
|
let data = response;
|
|
198
|
-
let metadata
|
|
419
|
+
let metadata = responseBuilder.getMetadata();
|
|
199
420
|
if (require_Endpoint.Endpoint.hasMetadata(response)) {
|
|
200
421
|
data = response.data;
|
|
201
|
-
metadata
|
|
422
|
+
metadata = response.metadata;
|
|
202
423
|
}
|
|
203
|
-
const output$1 = this.endpoint.outputSchema ? await this.endpoint.parseOutput(data) : void 0;
|
|
204
424
|
return {
|
|
205
|
-
output:
|
|
206
|
-
metadata
|
|
425
|
+
output: this.endpoint.outputSchema ? await this.endpoint.parseOutput(data) : void 0,
|
|
426
|
+
metadata,
|
|
207
427
|
responseBuilder
|
|
208
428
|
};
|
|
209
429
|
};
|
|
210
|
-
if (rlsActive && rlsContext && baseDb) return (0,
|
|
430
|
+
if (rlsActive && rlsContext && baseDb) return (0, _geekmidas_db_rls.withRlsContext)(baseDb, rlsContext, async (trx) => executeHandler(trx), { prefix: this.endpoint.rlsConfig?.prefix });
|
|
211
431
|
return executeHandler(baseDb);
|
|
212
|
-
}, async (result
|
|
432
|
+
}, async (result, auditor) => {
|
|
213
433
|
if (!audits?.length) return;
|
|
214
434
|
for (const audit of audits) {
|
|
215
|
-
if (audit.when && !audit.when(result
|
|
216
|
-
const payload = audit.payload(result
|
|
217
|
-
const entityId = audit.entityId?.(result
|
|
435
|
+
if (audit.when && !audit.when(result.output)) continue;
|
|
436
|
+
const payload = audit.payload(result.output);
|
|
437
|
+
const entityId = audit.entityId?.(result.output);
|
|
218
438
|
auditor.audit(audit.type, payload, {
|
|
219
439
|
table: audit.table,
|
|
220
440
|
entityId
|
|
221
441
|
});
|
|
222
442
|
}
|
|
223
443
|
}, { db: rawDb });
|
|
224
|
-
const { output, metadata } = result;
|
|
225
444
|
const isJsonResponse = this.endpoint.responseType === "application/json";
|
|
226
445
|
const body = output === void 0 ? void 0 : isJsonResponse ? JSON.stringify(output) : typeof output === "string" ? output : String(output);
|
|
227
446
|
event.__response = output;
|
|
@@ -272,7 +491,7 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
272
491
|
}
|
|
273
492
|
get handler() {
|
|
274
493
|
const handler = this._handler.bind(this);
|
|
275
|
-
let chain = (0,
|
|
494
|
+
let chain = (0, _middy_core.default)(handler).use(this.logger()).use(this.error()).use(this.services()).use(this.input()).use(this.database()).use(this.session()).use(this.authorize()).use(this.events());
|
|
276
495
|
const telemetryMiddleware = this.telemetry();
|
|
277
496
|
if (telemetryMiddleware) chain = chain.use(telemetryMiddleware);
|
|
278
497
|
if (this.options.telescope?.middleware) chain = chain.use(this.options.telescope.middleware);
|
|
@@ -280,16 +499,17 @@ var AmazonApiGatewayEndpoint = class {
|
|
|
280
499
|
const startTime = Date.now();
|
|
281
500
|
const requestId = context.awsRequestId;
|
|
282
501
|
const logger = this.endpoint.logger.child({ requestId });
|
|
283
|
-
|
|
502
|
+
const operation = `${this.endpoint.method} ${this.endpoint.route}`;
|
|
503
|
+
return (0, _geekmidas_services.runWithRequestContext)({
|
|
284
504
|
logger,
|
|
285
505
|
requestId,
|
|
286
|
-
startTime
|
|
506
|
+
startTime,
|
|
507
|
+
operation
|
|
287
508
|
}, () => chain(event, context));
|
|
288
509
|
};
|
|
289
510
|
return wrappedHandler;
|
|
290
511
|
}
|
|
291
512
|
};
|
|
292
|
-
|
|
293
513
|
//#endregion
|
|
294
514
|
//#region src/endpoints/parseQueryParams.ts
|
|
295
515
|
/**
|
|
@@ -310,10 +530,10 @@ function parseQueryParams(queryParams) {
|
|
|
310
530
|
}
|
|
311
531
|
return qs.default.parse(parts.join("&"));
|
|
312
532
|
}
|
|
313
|
-
|
|
314
533
|
//#endregion
|
|
315
534
|
//#region src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts
|
|
316
535
|
var AmazonApiGatewayV1Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
536
|
+
endpoint;
|
|
317
537
|
getInput(e) {
|
|
318
538
|
const multiValueParams = e.multiValueQueryStringParameters || {};
|
|
319
539
|
const singleValueParams = e.queryStringParameters || {};
|
|
@@ -346,17 +566,16 @@ var AmazonApiGatewayV1Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
|
346
566
|
this.endpoint = endpoint;
|
|
347
567
|
}
|
|
348
568
|
};
|
|
349
|
-
|
|
350
569
|
//#endregion
|
|
351
570
|
//#region src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts
|
|
352
571
|
var AmazonApiGatewayV2Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
572
|
+
endpoint;
|
|
353
573
|
getCookies(e) {
|
|
354
574
|
return require_lazyAccessors.createApiGatewayCookies(e.cookies, e.headers?.cookie);
|
|
355
575
|
}
|
|
356
576
|
getInput(e) {
|
|
357
|
-
const raw = AmazonApiGatewayEndpoint.decodeBody(e.body, e.isBase64Encoded, e.headers?.["content-type"]);
|
|
358
577
|
return {
|
|
359
|
-
body:
|
|
578
|
+
body: AmazonApiGatewayEndpoint.decodeBody(e.body, e.isBase64Encoded, e.headers?.["content-type"]),
|
|
360
579
|
query: qs.default.parse(e.rawQueryString),
|
|
361
580
|
params: e.pathParameters || {}
|
|
362
581
|
};
|
|
@@ -381,7 +600,6 @@ var AmazonApiGatewayV2Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
|
381
600
|
this.endpoint = endpoint;
|
|
382
601
|
}
|
|
383
602
|
};
|
|
384
|
-
|
|
385
603
|
//#endregion
|
|
386
604
|
//#region src/queue/AWSLambdaQueueAdaptor.ts
|
|
387
605
|
/**
|
|
@@ -396,6 +614,8 @@ var AmazonApiGatewayV2Endpoint = class extends AmazonApiGatewayEndpoint {
|
|
|
396
614
|
* retries only those records.
|
|
397
615
|
*/
|
|
398
616
|
var AWSLambdaQueue = class {
|
|
617
|
+
envParser;
|
|
618
|
+
queue;
|
|
399
619
|
_services;
|
|
400
620
|
constructor(envParser, queue) {
|
|
401
621
|
this.envParser = envParser;
|
|
@@ -406,10 +626,16 @@ var AWSLambdaQueue = class {
|
|
|
406
626
|
}
|
|
407
627
|
async getServices() {
|
|
408
628
|
if (this._services) return this._services;
|
|
409
|
-
const serviceDiscovery =
|
|
629
|
+
const serviceDiscovery = _geekmidas_services.ServiceDiscovery.getInstance(this.envParser);
|
|
410
630
|
this._services = this.queue.services.length > 0 ? await serviceDiscovery.register(this.queue.services) : {};
|
|
411
631
|
return this._services;
|
|
412
632
|
}
|
|
633
|
+
/** The queue's database, registered as functions register theirs. */
|
|
634
|
+
async getDatabase() {
|
|
635
|
+
const service = this.queue.databaseService;
|
|
636
|
+
if (!service) return void 0;
|
|
637
|
+
return (await _geekmidas_services.ServiceDiscovery.getInstance(this.envParser).register([service]))[service.serviceName];
|
|
638
|
+
}
|
|
413
639
|
safeJsonParse(value) {
|
|
414
640
|
try {
|
|
415
641
|
return JSON.parse(value);
|
|
@@ -435,6 +661,7 @@ var AWSLambdaQueue = class {
|
|
|
435
661
|
req: { id: context.awsRequestId }
|
|
436
662
|
});
|
|
437
663
|
const services = await this.getServices();
|
|
664
|
+
const db = await this.getDatabase();
|
|
438
665
|
const schema = this.queue.messageSchema;
|
|
439
666
|
const batchItemFailures = [];
|
|
440
667
|
const messages = [];
|
|
@@ -452,7 +679,7 @@ var AWSLambdaQueue = class {
|
|
|
452
679
|
messages.push(validation.value);
|
|
453
680
|
} catch (error) {
|
|
454
681
|
logger.error({
|
|
455
|
-
error,
|
|
682
|
+
err: error,
|
|
456
683
|
messageId: record.messageId
|
|
457
684
|
}, "Failed to parse SQS record");
|
|
458
685
|
batchItemFailures.push({ itemIdentifier: record.messageId });
|
|
@@ -462,34 +689,39 @@ var AWSLambdaQueue = class {
|
|
|
462
689
|
await this.queue.handler({
|
|
463
690
|
messages,
|
|
464
691
|
services,
|
|
465
|
-
logger
|
|
692
|
+
logger,
|
|
693
|
+
db
|
|
466
694
|
});
|
|
467
695
|
} catch (error) {
|
|
468
|
-
logger.error((0,
|
|
696
|
+
logger.error((0, _geekmidas_errors.wrapError)(error), "Queue handler failed; retrying batch");
|
|
469
697
|
for (const record of event.Records) if (!batchItemFailures.some((f) => f.itemIdentifier === record.messageId)) batchItemFailures.push({ itemIdentifier: record.messageId });
|
|
470
698
|
}
|
|
471
699
|
return { batchItemFailures };
|
|
472
700
|
}
|
|
473
701
|
get handler() {
|
|
474
702
|
const handler = this._handler.bind(this);
|
|
475
|
-
return async (event, context) => {
|
|
703
|
+
return (async (event, context) => {
|
|
476
704
|
const startTime = Date.now();
|
|
477
705
|
const requestId = context.awsRequestId;
|
|
478
706
|
const logger = this.queue.logger.child({ requestId });
|
|
479
|
-
return (0,
|
|
707
|
+
return (0, _geekmidas_services.runWithRequestContext)({
|
|
480
708
|
logger,
|
|
481
709
|
requestId,
|
|
482
|
-
startTime
|
|
483
|
-
|
|
484
|
-
|
|
710
|
+
startTime,
|
|
711
|
+
operation: `queue ${this.queue.name}`
|
|
712
|
+
}, () => (0, _geekmidas_events.consumeBatchTraced)({
|
|
713
|
+
system: "aws_sqs",
|
|
714
|
+
destination: this.queue.name
|
|
715
|
+
}, event.Records.map(require_tracing.recordCarrier), () => handler(event, context)));
|
|
716
|
+
});
|
|
485
717
|
}
|
|
486
718
|
};
|
|
487
|
-
|
|
488
719
|
//#endregion
|
|
489
720
|
//#region src/subscribers/AWSLambdaSubscriberAdaptor.ts
|
|
490
721
|
var AWSLambdaSubscriber = class {
|
|
722
|
+
envParser;
|
|
723
|
+
subscriber;
|
|
491
724
|
_logger;
|
|
492
|
-
_services;
|
|
493
725
|
constructor(envParser, subscriber) {
|
|
494
726
|
this.envParser = envParser;
|
|
495
727
|
this.subscriber = subscriber;
|
|
@@ -498,20 +730,10 @@ var AWSLambdaSubscriber = class {
|
|
|
498
730
|
get logger() {
|
|
499
731
|
return this._logger;
|
|
500
732
|
}
|
|
501
|
-
async getServices() {
|
|
502
|
-
if (this._services) return this._services;
|
|
503
|
-
const serviceDiscovery = __geekmidas_services.ServiceDiscovery.getInstance(this.envParser);
|
|
504
|
-
if (this.subscriber.services.length > 0) {
|
|
505
|
-
const registered = await serviceDiscovery.register(this.subscriber.services);
|
|
506
|
-
this._services = registered;
|
|
507
|
-
} else this._services = {};
|
|
508
|
-
return this._services;
|
|
509
|
-
}
|
|
510
733
|
error() {
|
|
511
734
|
return { onError: (req) => {
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
throw (0, __geekmidas_errors.wrapError)(req.error);
|
|
735
|
+
(req.event?.logger || this.subscriber.logger).error(req.error || {}, "Error processing subscriber");
|
|
736
|
+
throw (0, _geekmidas_errors.wrapError)(req.error);
|
|
515
737
|
} };
|
|
516
738
|
}
|
|
517
739
|
loggerMiddleware() {
|
|
@@ -529,133 +751,55 @@ var AWSLambdaSubscriber = class {
|
|
|
529
751
|
}
|
|
530
752
|
services() {
|
|
531
753
|
return { before: async (req) => {
|
|
532
|
-
|
|
754
|
+
const { services, db } = await require_runSubscriber.subscriberContext(this.subscriber, this.envParser);
|
|
755
|
+
req.event.services = services;
|
|
756
|
+
req.event.db = db;
|
|
533
757
|
} };
|
|
534
758
|
}
|
|
535
759
|
parseEvents() {
|
|
536
760
|
return { before: async (req) => {
|
|
537
|
-
const { logger
|
|
538
|
-
const rawEvent = e;
|
|
761
|
+
const { logger, ...rawEvent } = req.event;
|
|
539
762
|
logger.info({ rawEvent });
|
|
540
|
-
|
|
541
|
-
if ("Records" in rawEvent) {
|
|
542
|
-
if (this.isSQSEvent(rawEvent)) for (const record of rawEvent.Records) try {
|
|
543
|
-
const event = this.parseSQSRecord(record);
|
|
544
|
-
if (this.shouldIncludeEvent(event)) events.push(event);
|
|
545
|
-
} catch (error) {
|
|
546
|
-
this.logger.error({
|
|
547
|
-
error,
|
|
548
|
-
record
|
|
549
|
-
}, "Failed to parse SQS record");
|
|
550
|
-
}
|
|
551
|
-
else if (this.isSNSEvent(rawEvent)) for (const record of rawEvent.Records) try {
|
|
552
|
-
const event = this.parseSNSRecord(record);
|
|
553
|
-
if (this.shouldIncludeEvent(event)) events.push(event);
|
|
554
|
-
} catch (error) {
|
|
555
|
-
this.logger.error({
|
|
556
|
-
error,
|
|
557
|
-
record
|
|
558
|
-
}, "Failed to parse SNS record");
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
req.event.events = events;
|
|
763
|
+
req.event.events = require_runSubscriber.subscribedEvents(this.subscriber, rawEvent, this.logger);
|
|
562
764
|
} };
|
|
563
765
|
}
|
|
564
|
-
isSQSEvent(event) {
|
|
565
|
-
const firstRecord = event.Records[0];
|
|
566
|
-
return "Records" in event && event.Records.length > 0 && firstRecord !== void 0 && "eventSource" in firstRecord && firstRecord.eventSource === "aws:sqs";
|
|
567
|
-
}
|
|
568
|
-
isSNSEvent(event) {
|
|
569
|
-
const firstRecord = event.Records[0];
|
|
570
|
-
return "Records" in event && event.Records.length > 0 && firstRecord !== void 0 && "EventSource" in firstRecord && firstRecord.EventSource === "aws:sns";
|
|
571
|
-
}
|
|
572
|
-
parseSNSRecord(record) {
|
|
573
|
-
const message = this.safeJsonParse(record.Sns.Message);
|
|
574
|
-
const messageType = record.Sns.MessageAttributes?.type?.Value;
|
|
575
|
-
if (message === null) return messageType ? {
|
|
576
|
-
type: messageType,
|
|
577
|
-
payload: record.Sns.Message
|
|
578
|
-
} : record.Sns.Message;
|
|
579
|
-
const resolvedType = messageType ?? message.type;
|
|
580
|
-
if (message.type) return message;
|
|
581
|
-
return resolvedType ? {
|
|
582
|
-
type: resolvedType,
|
|
583
|
-
payload: message
|
|
584
|
-
} : message;
|
|
585
|
-
}
|
|
586
|
-
parseSQSRecord(record) {
|
|
587
|
-
const body = this.safeJsonParse(record.body);
|
|
588
|
-
if (body === null) return record.body;
|
|
589
|
-
if (body.Type === "Notification" && body.Message) {
|
|
590
|
-
const snsMessage = this.safeJsonParse(body.Message);
|
|
591
|
-
const messageType = body.MessageAttributes?.type?.Value;
|
|
592
|
-
if (snsMessage === null) return messageType ? {
|
|
593
|
-
type: messageType,
|
|
594
|
-
payload: body.Message
|
|
595
|
-
} : body.Message;
|
|
596
|
-
if (snsMessage.type) return snsMessage;
|
|
597
|
-
const resolvedType = messageType ?? snsMessage.type;
|
|
598
|
-
return resolvedType ? {
|
|
599
|
-
type: resolvedType,
|
|
600
|
-
payload: snsMessage
|
|
601
|
-
} : snsMessage;
|
|
602
|
-
}
|
|
603
|
-
return body;
|
|
604
|
-
}
|
|
605
|
-
safeJsonParse(value) {
|
|
606
|
-
try {
|
|
607
|
-
return JSON.parse(value);
|
|
608
|
-
} catch {
|
|
609
|
-
return null;
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
shouldIncludeEvent(event) {
|
|
613
|
-
if (typeof event !== "object" || !event?.type) return true;
|
|
614
|
-
if (!this.subscriber.subscribedEvents) return true;
|
|
615
|
-
return this.subscriber.subscribedEvents.includes(event.type);
|
|
616
|
-
}
|
|
617
766
|
async _handler(event) {
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
services: event.services,
|
|
625
|
-
logger: event.logger
|
|
767
|
+
const { events, services, logger, db } = event;
|
|
768
|
+
return require_runSubscriber.runSubscriber(this.subscriber, {
|
|
769
|
+
events,
|
|
770
|
+
services,
|
|
771
|
+
logger,
|
|
772
|
+
db
|
|
626
773
|
});
|
|
627
|
-
if (this.subscriber.outputSchema && result) {
|
|
628
|
-
const validationResult = await this.subscriber.outputSchema["~standard"].validate(result);
|
|
629
|
-
if (validationResult.issues) {
|
|
630
|
-
this.logger.error({ issues: validationResult.issues }, "Subscriber output validation failed");
|
|
631
|
-
throw new Error("Subscriber output validation failed");
|
|
632
|
-
}
|
|
633
|
-
return validationResult.value;
|
|
634
|
-
}
|
|
635
|
-
return result;
|
|
636
774
|
}
|
|
637
775
|
get handler() {
|
|
638
776
|
const handler = this._handler.bind(this);
|
|
639
|
-
const chain = (0,
|
|
777
|
+
const chain = (0, _middy_core.default)(handler).use(this.loggerMiddleware()).use(this.parseEvents()).use(this.error()).use(this.services());
|
|
640
778
|
const wrappedHandler = async (event, context) => {
|
|
641
779
|
const startTime = Date.now();
|
|
642
780
|
const requestId = context.awsRequestId;
|
|
643
781
|
const logger = this.subscriber.logger.child({ requestId });
|
|
644
|
-
|
|
782
|
+
const operation = `subscriber ${this.subscriber.topicName ?? context.functionName}`;
|
|
783
|
+
const records = event?.Records ?? [];
|
|
784
|
+
return (0, _geekmidas_services.runWithRequestContext)({
|
|
645
785
|
logger,
|
|
646
786
|
requestId,
|
|
647
|
-
startTime
|
|
648
|
-
|
|
787
|
+
startTime,
|
|
788
|
+
operation
|
|
789
|
+
}, () => (0, _geekmidas_events.consumeBatchTraced)({
|
|
790
|
+
system: records[0]?.Sns ? "aws_sns" : "aws_sqs",
|
|
791
|
+
destination: this.subscriber.topicName ?? context.functionName
|
|
792
|
+
}, records.map(require_tracing.recordCarrier), () => chain(event, context)));
|
|
649
793
|
};
|
|
650
794
|
return wrappedHandler;
|
|
651
795
|
}
|
|
652
796
|
};
|
|
653
|
-
|
|
654
797
|
//#endregion
|
|
655
|
-
exports.AWSLambdaFunction =
|
|
798
|
+
exports.AWSLambdaFunction = AWSLambdaFunction;
|
|
656
799
|
exports.AWSLambdaQueue = AWSLambdaQueue;
|
|
657
800
|
exports.AWSLambdaSubscriber = AWSLambdaSubscriber;
|
|
658
|
-
exports.AWSScheduledFunction =
|
|
801
|
+
exports.AWSScheduledFunction = AWSScheduledFunction;
|
|
659
802
|
exports.AmazonApiGatewayV1Endpoint = AmazonApiGatewayV1Endpoint;
|
|
660
803
|
exports.AmazonApiGatewayV2Endpoint = AmazonApiGatewayV2Endpoint;
|
|
804
|
+
|
|
661
805
|
//# sourceMappingURL=aws.cjs.map
|