@geekmidas/constructs 9.0.2 → 10.0.0-alpha.0
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 +71 -44
- package/dist/{AWSScheduledFunction-Bn99MceY.d.cts → AWSScheduledFunction-BvFvBsBN.d.cts} +8 -3
- package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts.map → AWSScheduledFunction-BvFvBsBN.d.cts.map} +1 -1
- package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts → AWSScheduledFunction-CVccZO-L.d.mts} +9 -4
- package/dist/{AWSScheduledFunction-Bn99MceY.d.cts.map → AWSScheduledFunction-CVccZO-L.d.mts.map} +1 -1
- package/dist/{AWSScheduledFunction-CufMMhGB.mjs → AWSScheduledFunction-Db1lttJH.mjs} +3 -3
- package/dist/{AWSScheduledFunction-CufMMhGB.mjs.map → AWSScheduledFunction-Db1lttJH.mjs.map} +1 -1
- package/dist/{AWSScheduledFunction-DbkDr8CA.cjs → AWSScheduledFunction-qu4ieRZR.cjs} +9 -9
- package/dist/{AWSScheduledFunction-DbkDr8CA.cjs.map → AWSScheduledFunction-qu4ieRZR.cjs.map} +1 -1
- package/dist/{Construct-_1wX7p_Y.d.cts → Construct-B-xc0SE9.d.mts} +27 -5
- package/dist/Construct-B-xc0SE9.d.mts.map +1 -0
- package/dist/{Construct-r0U2zBwW.mjs → Construct-HmWM6YYu.mjs} +4 -3
- package/dist/Construct-HmWM6YYu.mjs.map +1 -0
- package/dist/{Construct-DCMuYOox.d.mts → Construct-WhCXIOPV.d.cts} +29 -7
- package/dist/Construct-WhCXIOPV.d.cts.map +1 -0
- package/dist/{Construct-vXMZJgRp.cjs → Construct-roId57cU.cjs} +7 -43
- package/dist/Construct-roId57cU.cjs.map +1 -0
- package/dist/{lazyAccessors-DmTG8sQH.cjs → Endpoint-BBkV6l0k.cjs} +869 -1079
- package/dist/Endpoint-BBkV6l0k.cjs.map +1 -0
- package/dist/{lazyAccessors-DfqZR6C4.mjs → Endpoint-BGwpNEX4.mjs} +840 -1003
- package/dist/Endpoint-BGwpNEX4.mjs.map +1 -0
- package/dist/{Endpoint-DgfRslct.d.cts → Endpoint-BnxZqIX-.d.cts} +53 -4
- package/dist/Endpoint-BnxZqIX-.d.cts.map +1 -0
- package/dist/{Endpoint-CLPSIl6S.d.mts → Endpoint-ROcXU-eH.d.mts} +55 -6
- package/dist/Endpoint-ROcXU-eH.d.mts.map +1 -0
- package/dist/EndpointFactory-DYoGLaIT.cjs +850 -0
- package/dist/EndpointFactory-DYoGLaIT.cjs.map +1 -0
- package/dist/EndpointFactory-Di0X9AWp.mjs +808 -0
- package/dist/EndpointFactory-Di0X9AWp.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-DJDT3PMx.mjs → HonoEndpointAdaptor-DFKIIG2o.mjs} +5 -4
- package/dist/HonoEndpointAdaptor-DFKIIG2o.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-CkJENANP.cjs → HonoEndpointAdaptor-wMsCyMgt.cjs} +24 -23
- package/dist/HonoEndpointAdaptor-wMsCyMgt.cjs.map +1 -0
- package/dist/{Queue-DaxjwmOQ.d.cts → Queue-D6WeziRD.d.cts} +43 -4
- package/dist/Queue-D6WeziRD.d.cts.map +1 -0
- package/dist/{Queue-HBDf0fqz.d.mts → Queue-DpUeqdC8.d.mts} +43 -4
- package/dist/Queue-DpUeqdC8.d.mts.map +1 -0
- package/dist/{Subscriber-B69ngPwl.d.cts → Subscriber-4rBJgDKI.d.mts} +9 -4
- package/dist/{Subscriber-B69ngPwl.d.cts.map → Subscriber-4rBJgDKI.d.mts.map} +1 -1
- package/dist/{Subscriber-D8Xm-86W.d.mts → Subscriber-DVQowdyj.d.cts} +11 -6
- package/dist/Subscriber-DVQowdyj.d.cts.map +1 -0
- package/dist/{Topic-C5ZMfveW.d.cts → Topic-Ohx9dvWr.d.cts} +33 -2
- package/dist/Topic-Ohx9dvWr.d.cts.map +1 -0
- package/dist/{Topic-DT10AqHk.d.mts → Topic-cmy2jOUy.d.mts} +33 -2
- package/dist/Topic-cmy2jOUy.d.mts.map +1 -0
- package/dist/adaptors/aws.cjs +39 -26
- package/dist/adaptors/aws.cjs.map +1 -1
- package/dist/adaptors/aws.d.cts +24 -16
- package/dist/adaptors/aws.d.cts.map +1 -1
- package/dist/adaptors/aws.d.mts +25 -17
- package/dist/adaptors/aws.d.mts.map +1 -1
- package/dist/adaptors/aws.mjs +26 -14
- package/dist/adaptors/aws.mjs.map +1 -1
- package/dist/adaptors/hono.cjs +9 -6
- package/dist/adaptors/hono.d.cts +7 -6
- package/dist/adaptors/hono.d.cts.map +1 -1
- package/dist/adaptors/hono.d.mts +8 -7
- package/dist/adaptors/hono.d.mts.map +1 -1
- package/dist/adaptors/hono.mjs +9 -6
- package/dist/adaptors/testing.cjs +18 -14
- package/dist/adaptors/testing.cjs.map +1 -1
- package/dist/adaptors/testing.d.cts +7 -6
- package/dist/adaptors/testing.d.cts.map +1 -1
- package/dist/adaptors/testing.d.mts +11 -10
- package/dist/adaptors/testing.d.mts.map +1 -1
- package/dist/adaptors/testing.mjs +10 -7
- package/dist/adaptors/testing.mjs.map +1 -1
- package/dist/auth.cjs +165 -0
- package/dist/auth.cjs.map +1 -0
- package/dist/auth.d.cts +108 -0
- package/dist/auth.d.cts.map +1 -0
- package/dist/auth.d.mts +108 -0
- package/dist/auth.d.mts.map +1 -0
- package/dist/auth.mjs +164 -0
- package/dist/auth.mjs.map +1 -0
- package/dist/cache-0ANvRQnD.mjs +51 -0
- package/dist/cache-0ANvRQnD.mjs.map +1 -0
- package/dist/cache-3WSvAulx.cjs +57 -0
- package/dist/cache-3WSvAulx.cjs.map +1 -0
- package/dist/cache-CdQ7OLpR.d.cts +47 -0
- package/dist/cache-CdQ7OLpR.d.cts.map +1 -0
- package/dist/cache-DYoJFcfd.d.mts +47 -0
- package/dist/cache-DYoJFcfd.d.mts.map +1 -0
- package/dist/cache.cjs +3 -0
- package/dist/cache.d.cts +3 -0
- package/dist/cache.d.mts +3 -0
- package/dist/cache.mjs +3 -0
- package/dist/chunk-DWy1uDak.cjs +39 -0
- package/dist/clone-DblgEZZa.mjs +39 -0
- package/dist/clone-DblgEZZa.mjs.map +1 -0
- package/dist/clone-Dy0cR2SZ.cjs +45 -0
- package/dist/clone-Dy0cR2SZ.cjs.map +1 -0
- package/dist/construct-interface-BfjcOD_E.cjs +117 -0
- package/dist/construct-interface-BfjcOD_E.cjs.map +1 -0
- package/dist/construct-interface-BqwRNYA2.d.mts +131 -0
- package/dist/construct-interface-BqwRNYA2.d.mts.map +1 -0
- package/dist/construct-interface-D2nNkHUN.d.cts +131 -0
- package/dist/construct-interface-D2nNkHUN.d.cts.map +1 -0
- package/dist/construct-interface-Z4CpS8tK.mjs +81 -0
- package/dist/construct-interface-Z4CpS8tK.mjs.map +1 -0
- package/dist/construct-interface.cjs +8 -0
- package/dist/construct-interface.d.cts +2 -0
- package/dist/construct-interface.d.mts +2 -0
- package/dist/construct-interface.mjs +3 -0
- package/dist/credential.cjs +96 -0
- package/dist/credential.cjs.map +1 -0
- package/dist/credential.d.cts +61 -0
- package/dist/credential.d.cts.map +1 -0
- package/dist/credential.d.mts +61 -0
- package/dist/credential.d.mts.map +1 -0
- package/dist/credential.mjs +94 -0
- package/dist/credential.mjs.map +1 -0
- package/dist/crons/index.cjs +39 -37
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +21 -8
- package/dist/crons/index.d.cts.map +1 -1
- package/dist/crons/index.d.mts +29 -13
- package/dist/crons/index.d.mts.map +1 -1
- package/dist/crons/index.mjs +37 -36
- package/dist/crons/index.mjs.map +1 -1
- package/dist/database/kysely.cjs +181 -0
- package/dist/database/kysely.cjs.map +1 -0
- package/dist/database/kysely.d.cts +152 -0
- package/dist/database/kysely.d.cts.map +1 -0
- package/dist/database/kysely.d.mts +152 -0
- package/dist/database/kysely.d.mts.map +1 -0
- package/dist/database/kysely.mjs +180 -0
- package/dist/database/kysely.mjs.map +1 -0
- package/dist/email.cjs +59 -0
- package/dist/email.cjs.map +1 -0
- package/dist/email.d.cts +50 -0
- package/dist/email.d.cts.map +1 -0
- package/dist/email.d.mts +50 -0
- package/dist/email.d.mts.map +1 -0
- package/dist/email.mjs +58 -0
- package/dist/email.mjs.map +1 -0
- package/dist/endpoints/index.cjs +21 -747
- package/dist/endpoints/index.d.cts +7 -343
- package/dist/endpoints/index.d.mts +7 -342
- package/dist/endpoints/index.mjs +11 -738
- package/dist/file-server.cjs +154 -0
- package/dist/file-server.cjs.map +1 -0
- package/dist/file-server.d.cts +156 -0
- package/dist/file-server.d.cts.map +1 -0
- package/dist/file-server.d.mts +156 -0
- package/dist/file-server.d.mts.map +1 -0
- package/dist/file-server.mjs +152 -0
- package/dist/file-server.mjs.map +1 -0
- package/dist/functions/index.cjs +4 -2
- package/dist/functions/index.d.cts +3 -2
- package/dist/functions/index.d.mts +3 -2
- package/dist/functions/index.mjs +4 -2
- package/dist/{functions-B-qt91O7.mjs → functions-CvT_q7Y4.mjs} +55 -51
- package/dist/functions-CvT_q7Y4.mjs.map +1 -0
- package/dist/{functions-C8i1kCMM.cjs → functions-DukjG8ov.cjs} +62 -57
- package/dist/functions-DukjG8ov.cjs.map +1 -0
- package/dist/index-7OcOWe75.d.cts +419 -0
- package/dist/index-7OcOWe75.d.cts.map +1 -0
- package/dist/index-Bt-F7u8L.d.mts +419 -0
- package/dist/index-Bt-F7u8L.d.mts.map +1 -0
- package/dist/{index-DP6fqv0I.d.mts → index-CPeqtKgq.d.mts} +48 -19
- package/dist/index-CPeqtKgq.d.mts.map +1 -0
- package/dist/{index-BVs9DvIj.d.cts → index-Dadljnh_.d.cts} +36 -9
- package/dist/index-Dadljnh_.d.cts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +1 -1
- package/dist/lazyAccessors-DM6HcXQk.mjs +175 -0
- package/dist/lazyAccessors-DM6HcXQk.mjs.map +1 -0
- package/dist/lazyAccessors-DrJj8NpA.cjs +223 -0
- package/dist/lazyAccessors-DrJj8NpA.cjs.map +1 -0
- package/dist/object-storage.cjs +48 -0
- package/dist/object-storage.cjs.map +1 -0
- package/dist/object-storage.d.cts +36 -0
- package/dist/object-storage.d.cts.map +1 -0
- package/dist/object-storage.d.mts +36 -0
- package/dist/object-storage.d.mts.map +1 -0
- package/dist/object-storage.mjs +47 -0
- package/dist/object-storage.mjs.map +1 -0
- package/dist/{processAudits-CKjjivyz.cjs → processAudits-Bc8rz6Ev.cjs} +3 -3
- package/dist/{processAudits-CKjjivyz.cjs.map → processAudits-Bc8rz6Ev.cjs.map} +1 -1
- package/dist/{processAudits-ySnizdMG.mjs → processAudits-D89tICM4.mjs} +1 -1
- package/dist/{processAudits-ySnizdMG.mjs.map → processAudits-D89tICM4.mjs.map} +1 -1
- package/dist/{publisher-BrFOF847.mjs → publisher-CGEo8UKD.mjs} +1 -1
- package/dist/{publisher-BrFOF847.mjs.map → publisher-CGEo8UKD.mjs.map} +1 -1
- package/dist/{publisher-lFQleddL.cjs → publisher-CqGsXB2X.cjs} +1 -1
- package/dist/{publisher-lFQleddL.cjs.map → publisher-CqGsXB2X.cjs.map} +1 -1
- package/dist/queue/index.cjs +92 -30
- package/dist/queue/index.cjs.map +1 -1
- package/dist/queue/index.d.cts +19 -4
- package/dist/queue/index.d.cts.map +1 -1
- package/dist/queue/index.d.mts +22 -6
- package/dist/queue/index.d.mts.map +1 -1
- package/dist/queue/index.mjs +90 -29
- package/dist/queue/index.mjs.map +1 -1
- package/dist/rest-api.cjs +187 -0
- package/dist/rest-api.cjs.map +1 -0
- package/dist/rest-api.d.cts +221 -0
- package/dist/rest-api.d.cts.map +1 -0
- package/dist/rest-api.d.mts +221 -0
- package/dist/rest-api.d.mts.map +1 -0
- package/dist/rest-api.mjs +186 -0
- package/dist/rest-api.mjs.map +1 -0
- package/dist/site.cjs +48 -0
- package/dist/site.cjs.map +1 -0
- package/dist/site.d.cts +101 -0
- package/dist/site.d.cts.map +1 -0
- package/dist/site.d.mts +101 -0
- package/dist/site.d.mts.map +1 -0
- package/dist/site.mjs +47 -0
- package/dist/site.mjs.map +1 -0
- package/dist/subscribers/index.cjs +35 -27
- package/dist/subscribers/index.cjs.map +1 -1
- package/dist/subscribers/index.d.cts +20 -5
- package/dist/subscribers/index.d.cts.map +1 -1
- package/dist/subscribers/index.d.mts +23 -7
- package/dist/subscribers/index.d.mts.map +1 -1
- package/dist/subscribers/index.mjs +34 -27
- package/dist/subscribers/index.mjs.map +1 -1
- package/dist/surfaceEnv-BFXEms2f.cjs +39 -0
- package/dist/surfaceEnv-BFXEms2f.cjs.map +1 -0
- package/dist/surfaceEnv-C3Ktahea.mjs +27 -0
- package/dist/surfaceEnv-C3Ktahea.mjs.map +1 -0
- package/dist/{telemetry-3vdxGn4q.d.mts → telemetry-C3L0iS28.d.cts} +2 -2
- package/dist/{telemetry-3vdxGn4q.d.mts.map → telemetry-C3L0iS28.d.cts.map} +1 -1
- package/dist/{telemetry-Dqx-D3F7.d.cts → telemetry-D7bVFLGi.d.mts} +2 -2
- package/dist/{telemetry-Dqx-D3F7.d.cts.map → telemetry-D7bVFLGi.d.mts.map} +1 -1
- package/dist/topic/index.cjs +56 -13
- package/dist/topic/index.cjs.map +1 -1
- package/dist/topic/index.d.cts +2 -2
- package/dist/topic/index.d.cts.map +1 -1
- package/dist/topic/index.d.mts +2 -2
- package/dist/topic/index.d.mts.map +1 -1
- package/dist/topic/index.mjs +54 -12
- package/dist/topic/index.mjs.map +1 -1
- package/dist/{types-BDNGr7pv.d.mts → types-BlAkSuGI.d.cts} +1 -1
- package/dist/{types-BDNGr7pv.d.mts.map → types-BlAkSuGI.d.cts.map} +1 -1
- package/dist/{types-BdAaYDvd.d.cts → types-aKksMEWL.d.mts} +1 -1
- package/dist/{types-BdAaYDvd.d.cts.map → types-aKksMEWL.d.mts.map} +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/package.json +155 -23
- package/CHANGELOG.md +0 -396
- package/dist/Construct-DCMuYOox.d.mts.map +0 -1
- package/dist/Construct-_1wX7p_Y.d.cts.map +0 -1
- package/dist/Construct-r0U2zBwW.mjs.map +0 -1
- package/dist/Construct-vXMZJgRp.cjs.map +0 -1
- package/dist/Endpoint-CLPSIl6S.d.mts.map +0 -1
- package/dist/Endpoint-DgfRslct.d.cts.map +0 -1
- package/dist/HonoEndpointAdaptor-CkJENANP.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-DJDT3PMx.mjs.map +0 -1
- package/dist/Queue-DaxjwmOQ.d.cts.map +0 -1
- package/dist/Queue-HBDf0fqz.d.mts.map +0 -1
- package/dist/Subscriber-D8Xm-86W.d.mts.map +0 -1
- package/dist/Topic-C5ZMfveW.d.cts.map +0 -1
- package/dist/Topic-DT10AqHk.d.mts.map +0 -1
- package/dist/endpoints/index.cjs.map +0 -1
- package/dist/endpoints/index.d.cts.map +0 -1
- package/dist/endpoints/index.d.mts.map +0 -1
- package/dist/endpoints/index.mjs.map +0 -1
- package/dist/functions-B-qt91O7.mjs.map +0 -1
- package/dist/functions-C8i1kCMM.cjs.map +0 -1
- package/dist/index-BVs9DvIj.d.cts.map +0 -1
- package/dist/index-DP6fqv0I.d.mts.map +0 -1
- package/dist/lazyAccessors-DfqZR6C4.mjs.map +0 -1
- package/dist/lazyAccessors-DmTG8sQH.cjs.map +0 -1
- package/src/Construct.ts +0 -204
- package/src/__benchmarks__/build-time-optimization.bench.ts +0 -274
- package/src/__benchmarks__/endpoint.bench.ts +0 -494
- package/src/__benchmarks__/fixtures.ts +0 -241
- package/src/__benchmarks__/hono-adaptor.bench.ts +0 -533
- package/src/__benchmarks__/hono-server.bench.ts +0 -249
- package/src/__benchmarks__/response-builder.bench.ts +0 -428
- package/src/__benchmarks__/strategies/strategy-a-lazy-services.ts +0 -319
- package/src/__benchmarks__/strategies/strategy-c-middleware.ts +0 -530
- package/src/__benchmarks__/strategies/strategy-d-opt-in-events.ts +0 -567
- package/src/__tests__/Construct.environment.spec.ts +0 -704
- package/src/__tests__/publisher.setting.spec.ts +0 -508
- package/src/__tests__/publisher.spec.ts +0 -452
- package/src/adaptors/aws.ts +0 -6
- package/src/adaptors/hono.ts +0 -1
- package/src/adaptors/testing.ts +0 -11
- package/src/crons/AWSScheduledFunction.ts +0 -73
- package/src/crons/Cron.ts +0 -149
- package/src/crons/CronBuilder.ts +0 -271
- package/src/crons/__tests__/AWSScheduledFunction.spec.ts +0 -152
- package/src/crons/__tests__/Cron.spec.ts +0 -464
- package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +0 -227
- package/src/crons/index.ts +0 -12
- package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +0 -677
- package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +0 -105
- package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +0 -97
- package/src/endpoints/Authorizer.ts +0 -152
- package/src/endpoints/Endpoint.ts +0 -1287
- package/src/endpoints/EndpointBuilder.ts +0 -758
- package/src/endpoints/EndpointFactory.ts +0 -1148
- package/src/endpoints/HonoEndpointAdaptor.ts +0 -677
- package/src/endpoints/MswEndpointAdaptor.ts +0 -226
- package/src/endpoints/TestEndpointAdaptor.ts +0 -422
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.audits.spec.ts +0 -499
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +0 -560
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +0 -1304
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +0 -626
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +0 -732
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +0 -296
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +0 -951
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.responseType.spec.ts +0 -111
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.rls.spec.ts +0 -307
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +0 -629
- package/src/endpoints/__tests__/Authorizer.spec.ts +0 -286
- package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +0 -207
- package/src/endpoints/__tests__/Endpoint.headers.spec.ts +0 -187
- package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +0 -175
- package/src/endpoints/__tests__/Endpoint.spec.ts +0 -857
- package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +0 -448
- package/src/endpoints/__tests__/EndpointBuilder.responseType.spec.ts +0 -47
- package/src/endpoints/__tests__/EndpointBuilder.spec.ts +0 -523
- package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +0 -492
- package/src/endpoints/__tests__/EndpointFactory.database-auditor.spec.ts +0 -509
- package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +0 -190
- package/src/endpoints/__tests__/EndpointFactory.spec.ts +0 -479
- package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +0 -155
- package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +0 -703
- package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +0 -632
- package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +0 -577
- package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +0 -1067
- package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +0 -317
- package/src/endpoints/__tests__/HonoEndpointAdaptor.pgboss-publisher.spec.ts +0 -289
- package/src/endpoints/__tests__/HonoEndpointAdaptor.responseType.spec.ts +0 -128
- package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +0 -1207
- package/src/endpoints/__tests__/MswEndpointAdaptor.spec.ts +0 -211
- package/src/endpoints/__tests__/ResponseBuilder.spec.ts +0 -235
- package/src/endpoints/__tests__/TestEndpointAdaptor.audits.spec.ts +0 -602
- package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +0 -1044
- package/src/endpoints/__tests__/__snapshots__/HonoEndpointAdaptor.spec.ts.snap +0 -54
- package/src/endpoints/__tests__/endpoint-types.test.ts +0 -88
- package/src/endpoints/__tests__/helpers.spec.ts +0 -37
- package/src/endpoints/__tests__/lazyAccessors.spec.ts +0 -330
- package/src/endpoints/__tests__/processAudits.spec.ts +0 -631
- package/src/endpoints/audit.ts +0 -87
- package/src/endpoints/helpers.ts +0 -98
- package/src/endpoints/index.ts +0 -42
- package/src/endpoints/lazyAccessors.ts +0 -241
- package/src/endpoints/parseHonoQuery.ts +0 -16
- package/src/endpoints/parseQueryParams.ts +0 -32
- package/src/endpoints/processAudits.ts +0 -371
- package/src/endpoints/rls.ts +0 -67
- package/src/functions/AWSLambdaFunction.ts +0 -348
- package/src/functions/BaseFunctionBuilder.ts +0 -201
- package/src/functions/Function.ts +0 -238
- package/src/functions/FunctionBuilder.ts +0 -391
- package/src/functions/FunctionExecutionWrapper.ts +0 -216
- package/src/functions/TestFunctionAdaptor.ts +0 -217
- package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +0 -513
- package/src/functions/__tests__/Function.audits.spec.ts +0 -393
- package/src/functions/__tests__/Function.spec.ts +0 -477
- package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +0 -207
- package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +0 -480
- package/src/functions/index.ts +0 -12
- package/src/index.ts +0 -23
- package/src/publisher.ts +0 -93
- package/src/queue/AWSLambdaQueueAdaptor.ts +0 -162
- package/src/queue/Queue.ts +0 -128
- package/src/queue/QueueBuilder.ts +0 -115
- package/src/queue/TestQueueAdaptor.ts +0 -63
- package/src/queue/__tests__/QueueBuilder.spec.ts +0 -137
- package/src/queue/index.ts +0 -12
- package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +0 -342
- package/src/subscribers/Subscriber.ts +0 -117
- package/src/subscribers/SubscriberBuilder.ts +0 -186
- package/src/subscribers/TestSubscriberAdaptor.ts +0 -133
- package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +0 -1018
- package/src/subscribers/__tests__/Subscriber.spec.ts +0 -430
- package/src/subscribers/__tests__/TestSubscriberAdaptor.spec.ts +0 -652
- package/src/subscribers/index.ts +0 -6
- package/src/telemetry.ts +0 -103
- package/src/topic/Topic.ts +0 -103
- package/src/topic/TopicBuilder.ts +0 -51
- package/src/topic/__tests__/TopicBuilder.spec.ts +0 -82
- package/src/topic/index.ts +0 -11
- package/src/types.ts +0 -13
- package/test.ts +0 -91
- package/tsconfig.json +0 -9
- package/tsdown.config.ts +0 -34
package/README.md
CHANGED
|
@@ -25,36 +25,61 @@ pnpm add @geekmidas/constructs
|
|
|
25
25
|
## Package Exports
|
|
26
26
|
|
|
27
27
|
```typescript
|
|
28
|
-
// Endpoints
|
|
29
|
-
|
|
28
|
+
// The HTTP surface. Endpoints are built from it — `api.get(…)`, or
|
|
29
|
+
// `api.endpoints` for a branch that a group of endpoints shares.
|
|
30
|
+
import { RestApi } from '@geekmidas/constructs/rest-api';
|
|
31
|
+
|
|
32
|
+
// Endpoint internals: the factory a surface hands you, and the builder it
|
|
33
|
+
// returns. There is no free-standing `e` — an endpoint belongs to a surface.
|
|
34
|
+
import { EndpointBuilder, EndpointFactory } from '@geekmidas/constructs/endpoints';
|
|
30
35
|
|
|
31
36
|
// Functions
|
|
32
37
|
import { f, FunctionBuilder } from '@geekmidas/constructs/functions';
|
|
33
38
|
|
|
34
39
|
// Crons
|
|
35
|
-
import {
|
|
40
|
+
import { c, CronBuilder } from '@geekmidas/constructs/crons';
|
|
36
41
|
|
|
37
42
|
// Subscribers
|
|
38
|
-
import { SubscriberBuilder } from '@geekmidas/constructs/subscribers';
|
|
43
|
+
import { s, SubscriberBuilder } from '@geekmidas/constructs/subscribers';
|
|
39
44
|
```
|
|
40
45
|
|
|
41
46
|
## Quick Start
|
|
42
47
|
|
|
43
48
|
### HTTP Endpoints
|
|
44
49
|
|
|
45
|
-
|
|
50
|
+
An endpoint is built from the surface that will serve it. Declare the surface
|
|
51
|
+
once — one `RestApi` is one server — and everything built from it carries its
|
|
52
|
+
logger, its environment parser and its authorizers:
|
|
46
53
|
|
|
47
54
|
```typescript
|
|
48
|
-
|
|
55
|
+
// constructs/api.ts
|
|
56
|
+
import { RestApi } from '@geekmidas/constructs/rest-api';
|
|
57
|
+
import { logger } from './logger';
|
|
58
|
+
|
|
59
|
+
export const api = new RestApi('Api', {
|
|
60
|
+
// Required, and `'none'` is a valid answer that has to be typed out. An API
|
|
61
|
+
// that ships open because a field was left off is the one default worth
|
|
62
|
+
// refusing to have.
|
|
63
|
+
defaultAuthorizer: 'none',
|
|
64
|
+
// The actual logger, not a path to one.
|
|
65
|
+
logger,
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Then build endpoints from it with the fluent builder pattern:
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
// endpoints/users.ts
|
|
73
|
+
import { api } from '../constructs/api';
|
|
49
74
|
import { z } from 'zod';
|
|
50
75
|
|
|
51
76
|
// Simple GET endpoint
|
|
52
|
-
export const getUsers =
|
|
77
|
+
export const getUsers = api
|
|
53
78
|
.get('/users')
|
|
54
79
|
.output(z.array(z.object({
|
|
55
80
|
id: z.string(),
|
|
56
81
|
name: z.string(),
|
|
57
|
-
email: z.
|
|
82
|
+
email: z.email()
|
|
58
83
|
})))
|
|
59
84
|
.handle(async () => {
|
|
60
85
|
return [
|
|
@@ -63,11 +88,11 @@ export const getUsers = e
|
|
|
63
88
|
});
|
|
64
89
|
|
|
65
90
|
// POST endpoint with body validation
|
|
66
|
-
export const createUser =
|
|
91
|
+
export const createUser = api
|
|
67
92
|
.post('/users')
|
|
68
93
|
.body(z.object({
|
|
69
94
|
name: z.string().min(1),
|
|
70
|
-
email: z.
|
|
95
|
+
email: z.email()
|
|
71
96
|
}))
|
|
72
97
|
.output(z.object({
|
|
73
98
|
id: z.string(),
|
|
@@ -84,7 +109,7 @@ export const createUser = e
|
|
|
84
109
|
});
|
|
85
110
|
|
|
86
111
|
// Endpoint with query parameters
|
|
87
|
-
export const searchUsers =
|
|
112
|
+
export const searchUsers = api
|
|
88
113
|
.get('/users/search')
|
|
89
114
|
.query(z.object({
|
|
90
115
|
q: z.string(),
|
|
@@ -244,10 +269,10 @@ The following authorizer names automatically map to OpenAPI security schemes:
|
|
|
244
269
|
| `iam` | `{ type: 'apiKey', in: 'header', name: 'Authorization' }` (AWS SigV4) |
|
|
245
270
|
|
|
246
271
|
```typescript
|
|
247
|
-
import {
|
|
272
|
+
import { api } from '../constructs/api';
|
|
248
273
|
|
|
249
274
|
// Using built-in 'jwt' scheme
|
|
250
|
-
export const getUsers =
|
|
275
|
+
export const getUsers = api
|
|
251
276
|
.get('/users')
|
|
252
277
|
.authorizer('jwt') // Automatically uses JWT security scheme
|
|
253
278
|
.handle(async ({ session }) => {
|
|
@@ -258,12 +283,12 @@ export const getUsers = e
|
|
|
258
283
|
|
|
259
284
|
#### Custom Security Schemes
|
|
260
285
|
|
|
261
|
-
For custom authentication methods, use `.securitySchemes()` on the
|
|
286
|
+
For custom authentication methods, use `.securitySchemes()` on the surface's factory:
|
|
262
287
|
|
|
263
288
|
```typescript
|
|
264
|
-
import {
|
|
289
|
+
import { api } from '../constructs/api';
|
|
265
290
|
|
|
266
|
-
const
|
|
291
|
+
const router = api.endpoints
|
|
267
292
|
.securitySchemes({
|
|
268
293
|
// Custom OAuth2 with specific flows
|
|
269
294
|
oauth2: {
|
|
@@ -288,7 +313,7 @@ const api = new EndpointFactory()
|
|
|
288
313
|
});
|
|
289
314
|
|
|
290
315
|
// Use custom security scheme
|
|
291
|
-
export const getUsers =
|
|
316
|
+
export const getUsers = router
|
|
292
317
|
.get('/users')
|
|
293
318
|
.authorizer('oauth2')
|
|
294
319
|
.handle(async () => []);
|
|
@@ -296,21 +321,23 @@ export const getUsers = api
|
|
|
296
321
|
|
|
297
322
|
#### Default Authorizer
|
|
298
323
|
|
|
299
|
-
Set a default authorizer for
|
|
324
|
+
Set a default authorizer for every endpoint built from one branch:
|
|
300
325
|
|
|
301
326
|
```typescript
|
|
302
|
-
|
|
303
|
-
|
|
327
|
+
// A branch of the surface's factory, with a default every endpoint on it
|
|
328
|
+
// inherits. (The surface's own `default` does the same thing for every
|
|
329
|
+
// endpoint it serves — this narrows it for one group.)
|
|
330
|
+
const router = api.endpoints.authorizer('jwt');
|
|
304
331
|
|
|
305
332
|
// Protected by default
|
|
306
|
-
export const getProfile =
|
|
333
|
+
export const getProfile = router
|
|
307
334
|
.get('/profile')
|
|
308
335
|
.handle(async ({ session }) => {
|
|
309
336
|
return { userId: session.claims.sub };
|
|
310
337
|
});
|
|
311
338
|
|
|
312
339
|
// Override to make public
|
|
313
|
-
export const getHealth =
|
|
340
|
+
export const getHealth = router
|
|
314
341
|
.get('/health')
|
|
315
342
|
.authorizer('none') // Explicitly public
|
|
316
343
|
.handle(async () => ({ status: 'ok' }));
|
|
@@ -321,7 +348,7 @@ export const getHealth = api
|
|
|
321
348
|
Inject services into your constructs:
|
|
322
349
|
|
|
323
350
|
```typescript
|
|
324
|
-
import {
|
|
351
|
+
import { api } from '../constructs/api';
|
|
325
352
|
import type { Service } from '@geekmidas/services';
|
|
326
353
|
import type { EnvironmentParser } from '@geekmidas/envkit';
|
|
327
354
|
import { Kysely } from 'kysely';
|
|
@@ -341,7 +368,7 @@ const databaseService = {
|
|
|
341
368
|
} satisfies Service<'database', Kysely<Database>>;
|
|
342
369
|
|
|
343
370
|
// Use service in endpoint
|
|
344
|
-
export const getUserFromDb =
|
|
371
|
+
export const getUserFromDb = api
|
|
345
372
|
.get('/users/:id')
|
|
346
373
|
.params(z.object({ id: z.string() }))
|
|
347
374
|
.services([databaseService])
|
|
@@ -362,7 +389,7 @@ export const getUserFromDb = e
|
|
|
362
389
|
Publish events from any construct:
|
|
363
390
|
|
|
364
391
|
```typescript
|
|
365
|
-
import {
|
|
392
|
+
import { api } from '../constructs/api';
|
|
366
393
|
import type { Service } from '@geekmidas/services';
|
|
367
394
|
import type { EventPublisher, PublishableMessage } from '@geekmidas/events';
|
|
368
395
|
import { z } from 'zod';
|
|
@@ -386,11 +413,11 @@ const userEventPublisher = {
|
|
|
386
413
|
} satisfies Service<'userEventPublisher', EventPublisher<UserEvents>>;
|
|
387
414
|
|
|
388
415
|
// Use in endpoint with event publishing
|
|
389
|
-
export const createUser =
|
|
416
|
+
export const createUser = api
|
|
390
417
|
.post('/users')
|
|
391
418
|
.body(z.object({
|
|
392
419
|
name: z.string(),
|
|
393
|
-
email: z.
|
|
420
|
+
email: z.email()
|
|
394
421
|
}))
|
|
395
422
|
.publisher(userEventPublisher)
|
|
396
423
|
.event('user.created', (body, result) => ({
|
|
@@ -414,7 +441,7 @@ export const createUser = e
|
|
|
414
441
|
Inject a database instance directly into the handler context using `.database()`:
|
|
415
442
|
|
|
416
443
|
```typescript
|
|
417
|
-
import {
|
|
444
|
+
import { api } from '../constructs/api';
|
|
418
445
|
import type { Service } from '@geekmidas/services';
|
|
419
446
|
import type { EnvironmentParser } from '@geekmidas/envkit';
|
|
420
447
|
import { Kysely, PostgresDialect } from 'kysely';
|
|
@@ -437,7 +464,7 @@ const databaseService = {
|
|
|
437
464
|
} satisfies Service<'database', Kysely<Database>>;
|
|
438
465
|
|
|
439
466
|
// Use .database() to inject db into context
|
|
440
|
-
export const getUsers =
|
|
467
|
+
export const getUsers = api
|
|
441
468
|
.get('/users')
|
|
442
469
|
.output(z.array(userSchema))
|
|
443
470
|
.database(databaseService)
|
|
@@ -463,9 +490,9 @@ export const getUsers = e
|
|
|
463
490
|
When using both `.database()` and `.auditor()` with the same database, `db` is automatically the transaction - ensuring ACID compliance without any extra code:
|
|
464
491
|
|
|
465
492
|
```typescript
|
|
466
|
-
export const createUser =
|
|
493
|
+
export const createUser = api
|
|
467
494
|
.post('/users')
|
|
468
|
-
.body(z.object({ name: z.string(), email: z.
|
|
495
|
+
.body(z.object({ name: z.string(), email: z.email() }))
|
|
469
496
|
.output(userSchema)
|
|
470
497
|
.database(databaseService)
|
|
471
498
|
.auditor(auditStorageService)
|
|
@@ -549,18 +576,18 @@ type AppAuditAction =
|
|
|
549
576
|
Define audits declaratively on the endpoint - they're automatically recorded after successful handler execution:
|
|
550
577
|
|
|
551
578
|
```typescript
|
|
552
|
-
import {
|
|
579
|
+
import { api } from '../constructs/api';
|
|
553
580
|
import { z } from 'zod';
|
|
554
581
|
|
|
555
582
|
const userSchema = z.object({
|
|
556
583
|
id: z.string(),
|
|
557
584
|
name: z.string(),
|
|
558
|
-
email: z.
|
|
585
|
+
email: z.email()
|
|
559
586
|
});
|
|
560
587
|
|
|
561
|
-
export const createUser =
|
|
588
|
+
export const createUser = api
|
|
562
589
|
.post('/users')
|
|
563
|
-
.body(z.object({ name: z.string(), email: z.
|
|
590
|
+
.body(z.object({ name: z.string(), email: z.email() }))
|
|
564
591
|
.output(userSchema)
|
|
565
592
|
.database(databaseService)
|
|
566
593
|
.auditor(auditStorageService)
|
|
@@ -604,7 +631,7 @@ export const createUser = e
|
|
|
604
631
|
For complex scenarios, use `ctx.auditor` to record audits manually within your handler:
|
|
605
632
|
|
|
606
633
|
```typescript
|
|
607
|
-
export const processOrder =
|
|
634
|
+
export const processOrder = api
|
|
608
635
|
.post('/orders')
|
|
609
636
|
.database(databaseService)
|
|
610
637
|
.services([paymentService])
|
|
@@ -644,10 +671,10 @@ export const processOrder = e
|
|
|
644
671
|
You can use both approaches together:
|
|
645
672
|
|
|
646
673
|
```typescript
|
|
647
|
-
export const updateUser =
|
|
674
|
+
export const updateUser = api
|
|
648
675
|
.put('/users/:id')
|
|
649
676
|
.params(z.object({ id: z.string() }))
|
|
650
|
-
.body(z.object({ name: z.string().optional(), email: z.
|
|
677
|
+
.body(z.object({ name: z.string().optional(), email: z.email().optional() }))
|
|
651
678
|
.output(userSchema)
|
|
652
679
|
.database(databaseService)
|
|
653
680
|
.auditor(auditStorageService)
|
|
@@ -860,11 +887,11 @@ const audits = await auditStorage.query({
|
|
|
860
887
|
Add rate limiting to endpoints:
|
|
861
888
|
|
|
862
889
|
```typescript
|
|
863
|
-
import {
|
|
890
|
+
import { api } from '../constructs/api';
|
|
864
891
|
import { InMemoryCache } from '@geekmidas/cache/memory';
|
|
865
892
|
import { z } from 'zod';
|
|
866
893
|
|
|
867
|
-
export const sendMessage =
|
|
894
|
+
export const sendMessage = api
|
|
868
895
|
.post('/api/messages')
|
|
869
896
|
.rateLimit({
|
|
870
897
|
limit: 10,
|
|
@@ -1005,11 +1032,11 @@ All constructs support automatic environment variable detection for build-time i
|
|
|
1005
1032
|
Every construct has an async `getEnvironment()` method that returns the environment variables required by its services:
|
|
1006
1033
|
|
|
1007
1034
|
```typescript
|
|
1008
|
-
import {
|
|
1035
|
+
import { api } from '../constructs/api';
|
|
1009
1036
|
import { databaseService } from './services/database';
|
|
1010
1037
|
import { cacheService } from './services/cache';
|
|
1011
1038
|
|
|
1012
|
-
const endpoint =
|
|
1039
|
+
const endpoint = api
|
|
1013
1040
|
.get('/users')
|
|
1014
1041
|
.services([databaseService, cacheService])
|
|
1015
1042
|
.handle(async ({ services }) => {
|
|
@@ -1111,12 +1138,12 @@ This manifest can then be used by infrastructure-as-code tools (Terraform, CDK,
|
|
|
1111
1138
|
### Example with Multiple Services
|
|
1112
1139
|
|
|
1113
1140
|
```typescript
|
|
1114
|
-
import {
|
|
1141
|
+
import { api } from '../constructs/api';
|
|
1115
1142
|
import { databaseService } from './services/database';
|
|
1116
1143
|
import { cacheService } from './services/cache';
|
|
1117
1144
|
import { emailService } from './services/email';
|
|
1118
1145
|
|
|
1119
|
-
const endpoint =
|
|
1146
|
+
const endpoint = api
|
|
1120
1147
|
.post('/users')
|
|
1121
1148
|
.services([databaseService, cacheService, emailService])
|
|
1122
1149
|
.handle(async ({ services }) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Function, FunctionHandler } from "./index-
|
|
1
|
+
import { Function, FunctionHandler } from "./index-Dadljnh_.cjs";
|
|
2
2
|
import { EnvironmentParser } from "@geekmidas/envkit";
|
|
3
3
|
import { EventPublisher } from "@geekmidas/events";
|
|
4
4
|
import { Logger } from "@geekmidas/logger";
|
|
@@ -68,7 +68,12 @@ declare class AWSLambdaFunction<TInput extends ComposableStandardSchema | undefi
|
|
|
68
68
|
declare class Cron<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, undefined, string, TDatabase, TDatabaseServiceName, AuditableAction<string, unknown>, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>> {
|
|
69
69
|
protected _schedule?: ScheduleExpression | undefined;
|
|
70
70
|
static isCron(obj: any): obj is Cron<any, any, any, any>;
|
|
71
|
-
constructor(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>, timeout?: number, _schedule?: ScheduleExpression | undefined, input?: TInput, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: any[], memorySize?: number, databaseService?: Service<TDatabaseServiceName, TDatabase
|
|
71
|
+
constructor(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>, timeout?: number, _schedule?: ScheduleExpression | undefined, input?: TInput, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: any[], memorySize?: number, databaseService?: Service<TDatabaseServiceName, TDatabase>,
|
|
72
|
+
/**
|
|
73
|
+
* The construct ids `.dependsOn()` named — last, so no existing positional
|
|
74
|
+
* argument moves.
|
|
75
|
+
*/
|
|
76
|
+
constructs?: string[]);
|
|
72
77
|
get schedule(): ScheduleExpression | undefined;
|
|
73
78
|
}
|
|
74
79
|
type RateExpression = `rate(${string})`;
|
|
@@ -114,4 +119,4 @@ declare class AWSScheduledFunction<TInput extends ComposableStandardSchema | und
|
|
|
114
119
|
|
|
115
120
|
//#endregion
|
|
116
121
|
export { AWSLambdaFunction, AWSScheduledFunction, Cron, CronExpression, RateExpression, ScheduleExpression };
|
|
117
|
-
//# sourceMappingURL=AWSScheduledFunction-
|
|
122
|
+
//# sourceMappingURL=AWSScheduledFunction-BvFvBsBN.d.cts.map
|
package/dist/{AWSScheduledFunction-ysaCsdWx.d.mts.map → AWSScheduledFunction-BvFvBsBN.d.cts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AWSScheduledFunction-
|
|
1
|
+
{"version":3,"file":"AWSScheduledFunction-BvFvBsBN.d.cts","names":[],"sources":["../src/functions/FunctionExecutionWrapper.ts","../src/functions/AWSLambdaFunction.ts","../src/crons/Cron.ts","../src/crons/AWSScheduledFunction.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Function, FunctionHandler } from "./index-
|
|
1
|
+
import { Function, FunctionHandler } from "./index-CPeqtKgq.mjs";
|
|
2
|
+
import { EnvironmentParser } from "@geekmidas/envkit";
|
|
2
3
|
import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
|
|
3
4
|
import { AuditStorage, AuditableAction, Auditor } from "@geekmidas/audit";
|
|
4
|
-
import { EnvironmentParser } from "@geekmidas/envkit";
|
|
5
5
|
import { EventPublisher } from "@geekmidas/events";
|
|
6
6
|
import { Logger } from "@geekmidas/logger";
|
|
7
7
|
import { ComposableStandardSchema, InferComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
|
|
@@ -68,7 +68,12 @@ declare class AWSLambdaFunction<TInput extends ComposableStandardSchema | undefi
|
|
|
68
68
|
declare class Cron<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string> extends Function<TInput, TServices, TLogger, OutSchema, TEventPublisher, TEventPublisherServiceName, undefined, string, TDatabase, TDatabaseServiceName, AuditableAction<string, unknown>, FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>> {
|
|
69
69
|
protected _schedule?: ScheduleExpression | undefined;
|
|
70
70
|
static isCron(obj: any): obj is Cron<any, any, any, any>;
|
|
71
|
-
constructor(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>, timeout?: number, _schedule?: ScheduleExpression | undefined, input?: TInput, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: any[], memorySize?: number, databaseService?: Service<TDatabaseServiceName, TDatabase
|
|
71
|
+
constructor(fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>, timeout?: number, _schedule?: ScheduleExpression | undefined, input?: TInput, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: any[], memorySize?: number, databaseService?: Service<TDatabaseServiceName, TDatabase>,
|
|
72
|
+
/**
|
|
73
|
+
* The construct ids `.dependsOn()` named — last, so no existing positional
|
|
74
|
+
* argument moves.
|
|
75
|
+
*/
|
|
76
|
+
constructs?: string[]);
|
|
72
77
|
get schedule(): ScheduleExpression | undefined;
|
|
73
78
|
}
|
|
74
79
|
type RateExpression = `rate(${string})`;
|
|
@@ -114,4 +119,4 @@ declare class AWSScheduledFunction<TInput extends ComposableStandardSchema | und
|
|
|
114
119
|
|
|
115
120
|
//#endregion
|
|
116
121
|
export { AWSLambdaFunction, AWSScheduledFunction, Cron, CronExpression, RateExpression, ScheduleExpression };
|
|
117
|
-
//# sourceMappingURL=AWSScheduledFunction-
|
|
122
|
+
//# sourceMappingURL=AWSScheduledFunction-CVccZO-L.d.mts.map
|
package/dist/{AWSScheduledFunction-Bn99MceY.d.cts.map → AWSScheduledFunction-CVccZO-L.d.mts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AWSScheduledFunction-
|
|
1
|
+
{"version":3,"file":"AWSScheduledFunction-CVccZO-L.d.mts","names":[],"sources":["../src/functions/FunctionExecutionWrapper.ts","../src/functions/AWSLambdaFunction.ts","../src/crons/Cron.ts","../src/crons/AWSScheduledFunction.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FunctionBuilder } from "./functions-
|
|
2
|
-
import { publishEvents } from "./publisher-
|
|
1
|
+
import { FunctionBuilder } from "./functions-CvT_q7Y4.mjs";
|
|
2
|
+
import { publishEvents } from "./publisher-CGEo8UKD.mjs";
|
|
3
3
|
import { wrapError } from "@geekmidas/errors";
|
|
4
4
|
import { ServiceDiscovery, runWithRequestContext } from "@geekmidas/services";
|
|
5
5
|
import middy from "@middy/core";
|
|
@@ -240,4 +240,4 @@ var AWSScheduledFunction = class extends AWSLambdaFunction {
|
|
|
240
240
|
|
|
241
241
|
//#endregion
|
|
242
242
|
export { AWSLambdaFunction, AWSScheduledFunction };
|
|
243
|
-
//# sourceMappingURL=AWSScheduledFunction-
|
|
243
|
+
//# sourceMappingURL=AWSScheduledFunction-Db1lttJH.mjs.map
|
package/dist/{AWSScheduledFunction-CufMMhGB.mjs.map → AWSScheduledFunction-Db1lttJH.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AWSScheduledFunction-CufMMhGB.mjs","names":["envParser: EnvironmentParser<{}>","fn: Function<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTAuditAction,\n\t\t\tFunctionHandler<\n\t\t\t\tTInput,\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tTOutSchema,\n\t\t\t\tTDatabase,\n\t\t\t\tTAuditStorage,\n\t\t\t\tTAuditAction\n\t\t\t>\n\t\t>","handler: (ctx: {\n\t\t\tauditor?: Auditor<TAuditAction>;\n\t\t\tdb?: TDatabase;\n\t\t}) => Promise<T>","db","response","event: TEvent","response: InferStandardSchema<TOutSchema>","data: unknown","schema: T","envParser: EnvironmentParser<{}>","fn: Function<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTAuditAction,\n\t\t\tFunctionHandler<\n\t\t\t\tTInput,\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tTOutSchema,\n\t\t\t\tTDatabase,\n\t\t\t\tTAuditStorage,\n\t\t\t\tTAuditAction\n\t\t\t>\n\t\t>","event: FunctionEvent<\n\t\t\tTEvent,\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTDatabase,\n\t\t\tTAuditAction\n\t\t>","event: unknown","context: Context","envParser: EnvironmentParser<{}>","cron: Cron<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>"],"sources":["../src/functions/FunctionExecutionWrapper.ts","../src/functions/AWSLambdaFunction.ts","../src/crons/AWSScheduledFunction.ts"],"sourcesContent":["import type { AuditableAction, Auditor, AuditStorage } from '@geekmidas/audit';\nimport { DefaultAuditor } from '@geekmidas/audit';\nimport { withAuditableTransaction } from '@geekmidas/audit/kysely';\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n\tComposableStandardSchema,\n\tInferComposableStandardSchema,\n\tInferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n\ttype Service,\n\tServiceDiscovery,\n\ttype ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { publishEvents } from '../publisher';\nimport type { Function, FunctionHandler } from './Function';\nimport { FunctionBuilder } from './FunctionBuilder';\n\nexport abstract class FunctionExecutionWrapper<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> {\n\tconstructor(\n\t\tprotected envParser: EnvironmentParser<{}>,\n\t\tprotected readonly fn: Function<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTAuditAction,\n\t\t\tFunctionHandler<\n\t\t\t\tTInput,\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tTOutSchema,\n\t\t\t\tTDatabase,\n\t\t\t\tTAuditStorage,\n\t\t\t\tTAuditAction\n\t\t\t>\n\t\t>,\n\t) {}\n\n\tprotected _logger?: TLogger;\n\n\tget logger(): TLogger {\n\t\treturn this._logger || this.fn.logger;\n\t}\n\n\tget serviceDiscovery(): ServiceDiscovery<ServiceRecord<TServices>> {\n\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\tServiceRecord<TServices>\n\t\t>(this.envParser);\n\n\t\treturn serviceDiscovery;\n\t}\n\n\tgetServices(): Promise<ServiceRecord<TServices>> {\n\t\treturn this.serviceDiscovery.register(this.fn.services);\n\t}\n\n\tasync getDatabase(): Promise<TDatabase | undefined> {\n\t\tif (!this.fn.databaseService) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst services = await this.serviceDiscovery.register([\n\t\t\tthis.fn.databaseService,\n\t\t]);\n\n\t\treturn services[\n\t\t\tthis.fn.databaseService.serviceName as keyof typeof services\n\t\t] as TDatabase;\n\t}\n\n\t/**\n\t * Get the audit storage service if configured.\n\t * Returns undefined if no auditor storage is configured.\n\t */\n\tasync getAuditStorage(): Promise<TAuditStorage | undefined> {\n\t\tif (!this.fn.auditorStorageService) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst services = await this.serviceDiscovery.register([\n\t\t\tthis.fn.auditorStorageService,\n\t\t]);\n\n\t\treturn services[\n\t\t\tthis.fn.auditorStorageService.serviceName as keyof typeof services\n\t\t] as TAuditStorage;\n\t}\n\n\t/**\n\t * Create an auditor instance for the function.\n\t * Returns undefined if no auditor storage is configured.\n\t */\n\tasync createAuditor(): Promise<Auditor<TAuditAction> | undefined> {\n\t\tconst storage = await this.getAuditStorage();\n\t\tif (!storage) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn new DefaultAuditor<TAuditAction>({\n\t\t\tactor: { id: 'system', type: 'system' },\n\t\t\tstorage: storage as AuditStorage,\n\t\t\tmetadata: {\n\t\t\t\tfunction: this.fn.type,\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * Execute handler with audit transaction support.\n\t * If the audit storage has a database (via getDatabase()), wraps execution\n\t * in a transaction so audits are atomic with handler's database operations.\n\t *\n\t * @param handler - The handler function to execute (receives auditor and db)\n\t * @returns The handler result\n\t */\n\tasync executeWithAudit<T>(\n\t\thandler: (ctx: {\n\t\t\tauditor?: Auditor<TAuditAction>;\n\t\t\tdb?: TDatabase;\n\t\t}) => Promise<T>,\n\t): Promise<T> {\n\t\tconst auditor = await this.createAuditor();\n\t\tconst storage = await this.getAuditStorage();\n\n\t\t// No audit context - just run handler with regular db\n\t\tif (!auditor || !storage) {\n\t\t\tconst db = await this.getDatabase();\n\t\t\treturn handler({ db });\n\t\t}\n\n\t\t// Check if storage has a database and db service names match\n\t\tconst storageDb = (storage as AuditStorage).getDatabase?.();\n\t\tconst databaseServiceName = this.fn.databaseService?.serviceName;\n\t\tconst auditDbServiceName = this.fn.auditorStorageService?.serviceName;\n\n\t\t// If the audit storage has a database and we're using the same database service\n\t\t// (or the audit storage provides the database), use transactional execution\n\t\tif (storageDb && databaseServiceName && auditDbServiceName) {\n\t\t\treturn withAuditableTransaction(\n\t\t\t\tstorageDb as any,\n\t\t\t\tauditor as any,\n\t\t\t\tasync (trx) => {\n\t\t\t\t\t// Use transaction as db\n\t\t\t\t\tconst response = await handler({\n\t\t\t\t\t\tauditor,\n\t\t\t\t\t\tdb: trx as TDatabase,\n\t\t\t\t\t});\n\t\t\t\t\t// Audits are flushed by withAuditableTransaction before commit\n\t\t\t\t\treturn response;\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\t// No database on storage or service names don't match - run handler and flush audits after\n\t\tconst db = await this.getDatabase();\n\t\tconst response = await handler({ auditor, db });\n\n\t\t// Flush audits (no transaction)\n\t\tawait auditor.flush();\n\n\t\treturn response;\n\t}\n\n\tasync getFunctionInput<TEvent>(\n\t\tevent: TEvent,\n\t): Promise<InferComposableStandardSchema<TInput>> {\n\t\tconst parsedInput = await FunctionBuilder.parseComposableStandardSchema(\n\t\t\tevent,\n\t\t\tthis.fn.input,\n\t\t);\n\n\t\treturn parsedInput as InferComposableStandardSchema<TInput>;\n\t}\n\n\tasync publishEvents(response: InferStandardSchema<TOutSchema>) {\n\t\tawait publishEvents(\n\t\t\tthis.logger,\n\t\t\tthis.serviceDiscovery,\n\t\t\tthis.fn.events,\n\t\t\tresponse,\n\t\t\tthis.fn.publisherService,\n\t\t);\n\t}\n\n\tasync parseComposableStandardSchema<T extends ComposableStandardSchema>(\n\t\tdata: unknown,\n\t\tschema: T,\n\t): Promise<InferComposableStandardSchema<T>> {\n\t\treturn FunctionBuilder.parseComposableStandardSchema(data, schema);\n\t}\n}\n","import type { AuditableAction, Auditor, AuditStorage } from '@geekmidas/audit';\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport { wrapError } from '@geekmidas/errors';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n\tComposableStandardSchema,\n\tInferComposableStandardSchema,\n\tInferStandardSchema,\n} from '@geekmidas/schema';\nimport type { Service, ServiceRecord } from '@geekmidas/services';\nimport { runWithRequestContext } from '@geekmidas/services';\nimport middy, { type MiddlewareObj } from '@middy/core';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { Context, Handler } from 'aws-lambda';\nimport type { Function, FunctionHandler } from './Function';\nimport { FunctionBuilder } from './FunctionBuilder';\nimport { FunctionExecutionWrapper } from './FunctionExecutionWrapper';\n\nexport type AWSLambdaHandler<TEvent = any, TResult = any> = Handler<\n\tTEvent,\n\tTResult\n>;\n\ntype FunctionEvent<\n\tTEvent,\n\tTInput extends ComposableStandardSchema | undefined,\n\tTServices extends Service[],\n\tTLogger extends Logger,\n\tTDatabase = undefined,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> = TEvent & {\n\tparsedInput: InferComposableStandardSchema<TInput>;\n\tservices: ServiceRecord<TServices>;\n\tlogger: TLogger;\n\tdb: TDatabase | undefined;\n\tauditor: Auditor<TAuditAction> | undefined;\n};\n\ntype Middleware<\n\tTEvent,\n\tTInput extends ComposableStandardSchema | undefined,\n\tTServices extends Service[],\n\tTLogger extends Logger,\n\tTOutSchema extends StandardSchemaV1 | undefined,\n\tTDatabase = undefined,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> = MiddlewareObj<\n\tFunctionEvent<TEvent, TInput, TServices, TLogger, TDatabase, TAuditAction>,\n\tInferComposableStandardSchema<TOutSchema>,\n\tError,\n\tContext\n>;\n\nexport class AWSLambdaFunction<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> extends FunctionExecutionWrapper<\n\tTInput,\n\tTOutSchema,\n\tTServices,\n\tTLogger,\n\tTEventPublisher,\n\tTEventPublisherServiceName,\n\tTAuditStorage,\n\tTAuditStorageServiceName,\n\tTDatabase,\n\tTDatabaseServiceName,\n\tTAuditAction\n> {\n\tconstructor(\n\t\tenvParser: EnvironmentParser<{}>,\n\t\toverride readonly fn: Function<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTAuditAction,\n\t\t\tFunctionHandler<\n\t\t\t\tTInput,\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tTOutSchema,\n\t\t\t\tTDatabase,\n\t\t\t\tTAuditStorage,\n\t\t\t\tTAuditAction\n\t\t\t>\n\t\t>,\n\t) {\n\t\tsuper(envParser, fn);\n\t}\n\n\tprivate error<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tonError: (req) => {\n\t\t\t\tconst logger = req.event?.logger || this.fn.logger;\n\t\t\t\tlogger.error(req.error || {}, 'Error processing function');\n\n\t\t\t\t// Re-throw the wrapped error to let Lambda handle it\n\t\t\t\tthrow wrapError(req.error);\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate baseInput<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: (_req) => {},\n\t\t};\n\t}\n\n\tprivate input<\n\t\tTEvent extends { input: InferComposableStandardSchema<TInput> },\n\t>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\ttry {\n\t\t\t\t\t// Parse input if schema is provided\n\t\t\t\t\tif (this.fn.input) {\n\t\t\t\t\t\tconst parsedInput =\n\t\t\t\t\t\t\tawait FunctionBuilder.parseComposableStandardSchema(\n\t\t\t\t\t\t\t\treq.event,\n\t\t\t\t\t\t\t\tthis.fn.input,\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\treq.event.parsedInput =\n\t\t\t\t\t\t\tparsedInput as InferComposableStandardSchema<TInput>;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If no schema, pass the event as-is\n\t\t\t\t\t\treq.event.parsedInput = req.event as any;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.logger.error(\n\t\t\t\t\t\t{ error, event: req.event },\n\t\t\t\t\t\t'Failed to parse input',\n\t\t\t\t\t);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate loggerMiddleware<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: (req) => {\n\t\t\t\tthis._logger = this.fn.logger.child({\n\t\t\t\t\tfn: {\n\t\t\t\t\t\tname: req.context.functionName,\n\t\t\t\t\t\tversion: req.context.functionVersion,\n\t\t\t\t\t\tmemory: req.context.memoryLimitInMB,\n\t\t\t\t\t},\n\t\t\t\t\treq: {\n\t\t\t\t\t\tid: req.context.awsRequestId,\n\t\t\t\t\t},\n\t\t\t\t}) as TLogger;\n\n\t\t\t\treq.event.logger = this._logger;\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate services<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\treq.event.services = await this.getServices();\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate database<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\treq.event.db = await this.getDatabase();\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate auditor<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\treq.event.auditor = await this.createAuditor();\n\t\t\t},\n\t\t\tafter: async (req) => {\n\t\t\t\t// Flush any pending audits after successful execution\n\t\t\t\tif (req.event.auditor) {\n\t\t\t\t\tconst records = req.event.auditor.getRecords();\n\t\t\t\t\tif (records.length > 0) {\n\t\t\t\t\t\tthis.logger.debug(\n\t\t\t\t\t\t\t{ auditCount: records.length },\n\t\t\t\t\t\t\t'Flushing function audits',\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait req.event.auditor.flush();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate events<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tafter: async (req) => {\n\t\t\t\tconst response = (req.response ||\n\t\t\t\t\tundefined) as InferStandardSchema<TOutSchema>;\n\t\t\t\tawait this.publishEvents(response);\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate async _handler<TEvent>(\n\t\tevent: FunctionEvent<\n\t\t\tTEvent,\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTDatabase,\n\t\t\tTAuditAction\n\t\t>,\n\t) {\n\t\t// Execute the function with the parsed context\n\t\tconst result = await this.fn.fn({\n\t\t\tinput: event.parsedInput,\n\t\t\tservices: event.services,\n\t\t\tlogger: event.logger,\n\t\t\tdb: event.db,\n\t\t\tauditor: event.auditor,\n\t\t} as any);\n\n\t\t// Parse output if schema is provided\n\t\tconst output = await this.fn.parseOutput(result);\n\n\t\treturn output;\n\t}\n\n\tget handler(): AWSLambdaHandler {\n\t\tconst handler = this._handler.bind(this);\n\n\t\t// Apply middleware in order\n\t\tconst chain = middy(handler)\n\t\t\t.use(this.loggerMiddleware())\n\t\t\t.use(this.baseInput())\n\t\t\t.use(this.error())\n\t\t\t.use(this.services())\n\t\t\t.use(this.database())\n\t\t\t.use(this.auditor())\n\t\t\t.use(this.input())\n\t\t\t.use(this.events());\n\n\t\t// Wrap entire Middy chain in request context for service access\n\t\tconst wrappedHandler = async (event: unknown, context: Context) => {\n\t\t\tconst startTime = Date.now();\n\t\t\tconst requestId = context.awsRequestId;\n\t\t\tconst logger = this.fn.logger.child({ requestId }) as TLogger;\n\n\t\t\treturn runWithRequestContext({ logger, requestId, startTime }, () =>\n\t\t\t\tchain(event as Parameters<typeof chain>[0], context),\n\t\t\t);\n\t\t};\n\n\t\treturn wrappedHandler as unknown as AWSLambdaHandler;\n\t}\n}\n","import type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { AWSLambdaFunction } from '../functions/AWSLambdaFunction';\nimport type { Cron } from './Cron';\n\n/**\n * AWS Lambda adaptor for {@link Cron} constructs.\n *\n * A `Cron` is a {@link import('../functions').Function} that is invoked on a\n * schedule (an EventBridge rule) rather than by an API request. Because of\n * that, the runtime execution pipeline is identical to a regular Lambda\n * function: input parsing, service/database/auditor wiring, event publishing,\n * error handling, and the `runWithRequestContext` wrapper that powers\n * request-scoped logging via `serviceContext.getLogger()`.\n *\n * This adaptor therefore reuses {@link AWSLambdaFunction} wholesale and only\n * narrows the constructor to accept a `Cron`. The schedule expression itself\n * (`cron.schedule`) is **deploy-time** infrastructure consumed by the CLI to\n * provision the EventBridge rule — it is not needed at runtime.\n *\n * @example\n * ```typescript\n * import { AWSScheduledFunction } from '@geekmidas/constructs/crons';\n * import { cancelPastBookings } from '../../../src/crons/cancelPastBookings.js';\n * import { envParser } from '../../../src/env';\n *\n * const adapter = new AWSScheduledFunction(envParser, cancelPastBookings);\n *\n * export const handler = adapter.handler;\n * ```\n */\nexport class AWSScheduledFunction<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends AWSLambdaFunction<\n\tTInput,\n\tTOutSchema,\n\tTServices,\n\tTLogger,\n\tTEventPublisher,\n\tTEventPublisherServiceName,\n\tundefined,\n\tstring,\n\tTDatabase,\n\tTDatabaseServiceName\n> {\n\t// biome-ignore lint/complexity/noUselessConstructor: narrows the inherited `Function` parameter to `Cron` for a clearer public API\n\tconstructor(\n\t\tenvParser: EnvironmentParser<{}>,\n\t\tcron: Cron<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>,\n\t) {\n\t\tsuper(envParser, cron);\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AWSScheduledFunction-Db1lttJH.mjs","names":["envParser: EnvironmentParser<{}>","fn: Function<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTAuditAction,\n\t\t\tFunctionHandler<\n\t\t\t\tTInput,\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tTOutSchema,\n\t\t\t\tTDatabase,\n\t\t\t\tTAuditStorage,\n\t\t\t\tTAuditAction\n\t\t\t>\n\t\t>","handler: (ctx: {\n\t\t\tauditor?: Auditor<TAuditAction>;\n\t\t\tdb?: TDatabase;\n\t\t}) => Promise<T>","db","response","event: TEvent","response: InferStandardSchema<TOutSchema>","data: unknown","schema: T","envParser: EnvironmentParser<{}>","fn: Function<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTAuditAction,\n\t\t\tFunctionHandler<\n\t\t\t\tTInput,\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tTOutSchema,\n\t\t\t\tTDatabase,\n\t\t\t\tTAuditStorage,\n\t\t\t\tTAuditAction\n\t\t\t>\n\t\t>","event: FunctionEvent<\n\t\t\tTEvent,\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTDatabase,\n\t\t\tTAuditAction\n\t\t>","event: unknown","context: Context","envParser: EnvironmentParser<{}>","cron: Cron<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>"],"sources":["../src/functions/FunctionExecutionWrapper.ts","../src/functions/AWSLambdaFunction.ts","../src/crons/AWSScheduledFunction.ts"],"sourcesContent":["import type { AuditableAction, Auditor, AuditStorage } from '@geekmidas/audit';\nimport { DefaultAuditor } from '@geekmidas/audit';\nimport { withAuditableTransaction } from '@geekmidas/audit/kysely';\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n\tComposableStandardSchema,\n\tInferComposableStandardSchema,\n\tInferStandardSchema,\n} from '@geekmidas/schema';\nimport {\n\ttype Service,\n\tServiceDiscovery,\n\ttype ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { publishEvents } from '../publisher';\nimport type { Function, FunctionHandler } from './Function';\nimport { FunctionBuilder } from './FunctionBuilder';\n\nexport abstract class FunctionExecutionWrapper<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> {\n\tconstructor(\n\t\tprotected envParser: EnvironmentParser<{}>,\n\t\tprotected readonly fn: Function<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTAuditAction,\n\t\t\tFunctionHandler<\n\t\t\t\tTInput,\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tTOutSchema,\n\t\t\t\tTDatabase,\n\t\t\t\tTAuditStorage,\n\t\t\t\tTAuditAction\n\t\t\t>\n\t\t>,\n\t) {}\n\n\tprotected _logger?: TLogger;\n\n\tget logger(): TLogger {\n\t\treturn this._logger || this.fn.logger;\n\t}\n\n\tget serviceDiscovery(): ServiceDiscovery<ServiceRecord<TServices>> {\n\t\tconst serviceDiscovery = ServiceDiscovery.getInstance<\n\t\t\tServiceRecord<TServices>\n\t\t>(this.envParser);\n\n\t\treturn serviceDiscovery;\n\t}\n\n\tgetServices(): Promise<ServiceRecord<TServices>> {\n\t\treturn this.serviceDiscovery.register(this.fn.services);\n\t}\n\n\tasync getDatabase(): Promise<TDatabase | undefined> {\n\t\tif (!this.fn.databaseService) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst services = await this.serviceDiscovery.register([\n\t\t\tthis.fn.databaseService,\n\t\t]);\n\n\t\treturn services[\n\t\t\tthis.fn.databaseService.serviceName as keyof typeof services\n\t\t] as TDatabase;\n\t}\n\n\t/**\n\t * Get the audit storage service if configured.\n\t * Returns undefined if no auditor storage is configured.\n\t */\n\tasync getAuditStorage(): Promise<TAuditStorage | undefined> {\n\t\tif (!this.fn.auditorStorageService) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst services = await this.serviceDiscovery.register([\n\t\t\tthis.fn.auditorStorageService,\n\t\t]);\n\n\t\treturn services[\n\t\t\tthis.fn.auditorStorageService.serviceName as keyof typeof services\n\t\t] as TAuditStorage;\n\t}\n\n\t/**\n\t * Create an auditor instance for the function.\n\t * Returns undefined if no auditor storage is configured.\n\t */\n\tasync createAuditor(): Promise<Auditor<TAuditAction> | undefined> {\n\t\tconst storage = await this.getAuditStorage();\n\t\tif (!storage) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn new DefaultAuditor<TAuditAction>({\n\t\t\tactor: { id: 'system', type: 'system' },\n\t\t\tstorage: storage as AuditStorage,\n\t\t\tmetadata: {\n\t\t\t\tfunction: this.fn.type,\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * Execute handler with audit transaction support.\n\t * If the audit storage has a database (via getDatabase()), wraps execution\n\t * in a transaction so audits are atomic with handler's database operations.\n\t *\n\t * @param handler - The handler function to execute (receives auditor and db)\n\t * @returns The handler result\n\t */\n\tasync executeWithAudit<T>(\n\t\thandler: (ctx: {\n\t\t\tauditor?: Auditor<TAuditAction>;\n\t\t\tdb?: TDatabase;\n\t\t}) => Promise<T>,\n\t): Promise<T> {\n\t\tconst auditor = await this.createAuditor();\n\t\tconst storage = await this.getAuditStorage();\n\n\t\t// No audit context - just run handler with regular db\n\t\tif (!auditor || !storage) {\n\t\t\tconst db = await this.getDatabase();\n\t\t\treturn handler({ db });\n\t\t}\n\n\t\t// Check if storage has a database and db service names match\n\t\tconst storageDb = (storage as AuditStorage).getDatabase?.();\n\t\tconst databaseServiceName = this.fn.databaseService?.serviceName;\n\t\tconst auditDbServiceName = this.fn.auditorStorageService?.serviceName;\n\n\t\t// If the audit storage has a database and we're using the same database service\n\t\t// (or the audit storage provides the database), use transactional execution\n\t\tif (storageDb && databaseServiceName && auditDbServiceName) {\n\t\t\treturn withAuditableTransaction(\n\t\t\t\tstorageDb as any,\n\t\t\t\tauditor as any,\n\t\t\t\tasync (trx) => {\n\t\t\t\t\t// Use transaction as db\n\t\t\t\t\tconst response = await handler({\n\t\t\t\t\t\tauditor,\n\t\t\t\t\t\tdb: trx as TDatabase,\n\t\t\t\t\t});\n\t\t\t\t\t// Audits are flushed by withAuditableTransaction before commit\n\t\t\t\t\treturn response;\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\t// No database on storage or service names don't match - run handler and flush audits after\n\t\tconst db = await this.getDatabase();\n\t\tconst response = await handler({ auditor, db });\n\n\t\t// Flush audits (no transaction)\n\t\tawait auditor.flush();\n\n\t\treturn response;\n\t}\n\n\tasync getFunctionInput<TEvent>(\n\t\tevent: TEvent,\n\t): Promise<InferComposableStandardSchema<TInput>> {\n\t\tconst parsedInput = await FunctionBuilder.parseComposableStandardSchema(\n\t\t\tevent,\n\t\t\tthis.fn.input,\n\t\t);\n\n\t\treturn parsedInput as InferComposableStandardSchema<TInput>;\n\t}\n\n\tasync publishEvents(response: InferStandardSchema<TOutSchema>) {\n\t\tawait publishEvents(\n\t\t\tthis.logger,\n\t\t\tthis.serviceDiscovery,\n\t\t\tthis.fn.events,\n\t\t\tresponse,\n\t\t\tthis.fn.publisherService,\n\t\t);\n\t}\n\n\tasync parseComposableStandardSchema<T extends ComposableStandardSchema>(\n\t\tdata: unknown,\n\t\tschema: T,\n\t): Promise<InferComposableStandardSchema<T>> {\n\t\treturn FunctionBuilder.parseComposableStandardSchema(data, schema);\n\t}\n}\n","import type { AuditableAction, Auditor, AuditStorage } from '@geekmidas/audit';\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport { wrapError } from '@geekmidas/errors';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type {\n\tComposableStandardSchema,\n\tInferComposableStandardSchema,\n\tInferStandardSchema,\n} from '@geekmidas/schema';\nimport type { Service, ServiceRecord } from '@geekmidas/services';\nimport { runWithRequestContext } from '@geekmidas/services';\nimport middy, { type MiddlewareObj } from '@middy/core';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { Context, Handler } from 'aws-lambda';\nimport type { Function, FunctionHandler } from './Function';\nimport { FunctionBuilder } from './FunctionBuilder';\nimport { FunctionExecutionWrapper } from './FunctionExecutionWrapper';\n\nexport type AWSLambdaHandler<TEvent = any, TResult = any> = Handler<\n\tTEvent,\n\tTResult\n>;\n\ntype FunctionEvent<\n\tTEvent,\n\tTInput extends ComposableStandardSchema | undefined,\n\tTServices extends Service[],\n\tTLogger extends Logger,\n\tTDatabase = undefined,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> = TEvent & {\n\tparsedInput: InferComposableStandardSchema<TInput>;\n\tservices: ServiceRecord<TServices>;\n\tlogger: TLogger;\n\tdb: TDatabase | undefined;\n\tauditor: Auditor<TAuditAction> | undefined;\n};\n\ntype Middleware<\n\tTEvent,\n\tTInput extends ComposableStandardSchema | undefined,\n\tTServices extends Service[],\n\tTLogger extends Logger,\n\tTOutSchema extends StandardSchemaV1 | undefined,\n\tTDatabase = undefined,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> = MiddlewareObj<\n\tFunctionEvent<TEvent, TInput, TServices, TLogger, TDatabase, TAuditAction>,\n\tInferComposableStandardSchema<TOutSchema>,\n\tError,\n\tContext\n>;\n\nexport class AWSLambdaFunction<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> extends FunctionExecutionWrapper<\n\tTInput,\n\tTOutSchema,\n\tTServices,\n\tTLogger,\n\tTEventPublisher,\n\tTEventPublisherServiceName,\n\tTAuditStorage,\n\tTAuditStorageServiceName,\n\tTDatabase,\n\tTDatabaseServiceName,\n\tTAuditAction\n> {\n\tconstructor(\n\t\tenvParser: EnvironmentParser<{}>,\n\t\toverride readonly fn: Function<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTAuditAction,\n\t\t\tFunctionHandler<\n\t\t\t\tTInput,\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tTOutSchema,\n\t\t\t\tTDatabase,\n\t\t\t\tTAuditStorage,\n\t\t\t\tTAuditAction\n\t\t\t>\n\t\t>,\n\t) {\n\t\tsuper(envParser, fn);\n\t}\n\n\tprivate error<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tonError: (req) => {\n\t\t\t\tconst logger = req.event?.logger || this.fn.logger;\n\t\t\t\tlogger.error(req.error || {}, 'Error processing function');\n\n\t\t\t\t// Re-throw the wrapped error to let Lambda handle it\n\t\t\t\tthrow wrapError(req.error);\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate baseInput<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: (_req) => {},\n\t\t};\n\t}\n\n\tprivate input<\n\t\tTEvent extends { input: InferComposableStandardSchema<TInput> },\n\t>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\ttry {\n\t\t\t\t\t// Parse input if schema is provided\n\t\t\t\t\tif (this.fn.input) {\n\t\t\t\t\t\tconst parsedInput =\n\t\t\t\t\t\t\tawait FunctionBuilder.parseComposableStandardSchema(\n\t\t\t\t\t\t\t\treq.event,\n\t\t\t\t\t\t\t\tthis.fn.input,\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\treq.event.parsedInput =\n\t\t\t\t\t\t\tparsedInput as InferComposableStandardSchema<TInput>;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If no schema, pass the event as-is\n\t\t\t\t\t\treq.event.parsedInput = req.event as any;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.logger.error(\n\t\t\t\t\t\t{ error, event: req.event },\n\t\t\t\t\t\t'Failed to parse input',\n\t\t\t\t\t);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate loggerMiddleware<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: (req) => {\n\t\t\t\tthis._logger = this.fn.logger.child({\n\t\t\t\t\tfn: {\n\t\t\t\t\t\tname: req.context.functionName,\n\t\t\t\t\t\tversion: req.context.functionVersion,\n\t\t\t\t\t\tmemory: req.context.memoryLimitInMB,\n\t\t\t\t\t},\n\t\t\t\t\treq: {\n\t\t\t\t\t\tid: req.context.awsRequestId,\n\t\t\t\t\t},\n\t\t\t\t}) as TLogger;\n\n\t\t\t\treq.event.logger = this._logger;\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate services<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\treq.event.services = await this.getServices();\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate database<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\treq.event.db = await this.getDatabase();\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate auditor<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tbefore: async (req) => {\n\t\t\t\treq.event.auditor = await this.createAuditor();\n\t\t\t},\n\t\t\tafter: async (req) => {\n\t\t\t\t// Flush any pending audits after successful execution\n\t\t\t\tif (req.event.auditor) {\n\t\t\t\t\tconst records = req.event.auditor.getRecords();\n\t\t\t\t\tif (records.length > 0) {\n\t\t\t\t\t\tthis.logger.debug(\n\t\t\t\t\t\t\t{ auditCount: records.length },\n\t\t\t\t\t\t\t'Flushing function audits',\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait req.event.auditor.flush();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate events<TEvent>(): Middleware<\n\t\tTEvent,\n\t\tTInput,\n\t\tTServices,\n\t\tTLogger,\n\t\tTOutSchema,\n\t\tTDatabase,\n\t\tTAuditAction\n\t> {\n\t\treturn {\n\t\t\tafter: async (req) => {\n\t\t\t\tconst response = (req.response ||\n\t\t\t\t\tundefined) as InferStandardSchema<TOutSchema>;\n\t\t\t\tawait this.publishEvents(response);\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate async _handler<TEvent>(\n\t\tevent: FunctionEvent<\n\t\t\tTEvent,\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTDatabase,\n\t\t\tTAuditAction\n\t\t>,\n\t) {\n\t\t// Execute the function with the parsed context\n\t\tconst result = await this.fn.fn({\n\t\t\tinput: event.parsedInput,\n\t\t\tservices: event.services,\n\t\t\tlogger: event.logger,\n\t\t\tdb: event.db,\n\t\t\tauditor: event.auditor,\n\t\t} as any);\n\n\t\t// Parse output if schema is provided\n\t\tconst output = await this.fn.parseOutput(result);\n\n\t\treturn output;\n\t}\n\n\tget handler(): AWSLambdaHandler {\n\t\tconst handler = this._handler.bind(this);\n\n\t\t// Apply middleware in order\n\t\tconst chain = middy(handler)\n\t\t\t.use(this.loggerMiddleware())\n\t\t\t.use(this.baseInput())\n\t\t\t.use(this.error())\n\t\t\t.use(this.services())\n\t\t\t.use(this.database())\n\t\t\t.use(this.auditor())\n\t\t\t.use(this.input())\n\t\t\t.use(this.events());\n\n\t\t// Wrap entire Middy chain in request context for service access\n\t\tconst wrappedHandler = async (event: unknown, context: Context) => {\n\t\t\tconst startTime = Date.now();\n\t\t\tconst requestId = context.awsRequestId;\n\t\t\tconst logger = this.fn.logger.child({ requestId }) as TLogger;\n\n\t\t\treturn runWithRequestContext({ logger, requestId, startTime }, () =>\n\t\t\t\tchain(event as Parameters<typeof chain>[0], context),\n\t\t\t);\n\t\t};\n\n\t\treturn wrappedHandler as unknown as AWSLambdaHandler;\n\t}\n}\n","import type { EnvironmentParser } from '@geekmidas/envkit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { AWSLambdaFunction } from '../functions/AWSLambdaFunction';\nimport type { Cron } from './Cron';\n\n/**\n * AWS Lambda adaptor for {@link Cron} constructs.\n *\n * A `Cron` is a {@link import('../functions').Function} that is invoked on a\n * schedule (an EventBridge rule) rather than by an API request. Because of\n * that, the runtime execution pipeline is identical to a regular Lambda\n * function: input parsing, service/database/auditor wiring, event publishing,\n * error handling, and the `runWithRequestContext` wrapper that powers\n * request-scoped logging via `serviceContext.getLogger()`.\n *\n * This adaptor therefore reuses {@link AWSLambdaFunction} wholesale and only\n * narrows the constructor to accept a `Cron`. The schedule expression itself\n * (`cron.schedule`) is **deploy-time** infrastructure consumed by the CLI to\n * provision the EventBridge rule — it is not needed at runtime.\n *\n * @example\n * ```typescript\n * import { AWSScheduledFunction } from '@geekmidas/constructs/crons';\n * import { cancelPastBookings } from '../../../src/crons/cancelPastBookings.js';\n * import { envParser } from '../../../src/env';\n *\n * const adapter = new AWSScheduledFunction(envParser, cancelPastBookings);\n *\n * export const handler = adapter.handler;\n * ```\n */\nexport class AWSScheduledFunction<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends AWSLambdaFunction<\n\tTInput,\n\tTOutSchema,\n\tTServices,\n\tTLogger,\n\tTEventPublisher,\n\tTEventPublisherServiceName,\n\tundefined,\n\tstring,\n\tTDatabase,\n\tTDatabaseServiceName\n> {\n\t// biome-ignore lint/complexity/noUselessConstructor: narrows the inherited `Function` parameter to `Cron` for a clearer public API\n\tconstructor(\n\t\tenvParser: EnvironmentParser<{}>,\n\t\tcron: Cron<\n\t\t\tTInput,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTOutSchema,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>,\n\t) {\n\t\tsuper(envParser, cron);\n\t}\n}\n"],"mappings":";;;;;;;;;AAqBA,IAAsB,2BAAtB,MAeE;CACD,YACWA,WACSC,IAsBlB;EAvBS;EACS;CAsBhB;CAEJ,AAAU;CAEV,IAAI,SAAkB;AACrB,SAAO,KAAK,WAAW,KAAK,GAAG;CAC/B;CAED,IAAI,mBAA+D;EAClE,MAAM,mBAAmB,iBAAiB,YAExC,KAAK,UAAU;AAEjB,SAAO;CACP;CAED,cAAiD;AAChD,SAAO,KAAK,iBAAiB,SAAS,KAAK,GAAG,SAAS;CACvD;CAED,MAAM,cAA8C;AACnD,OAAK,KAAK,GAAG,gBACZ;EAGD,MAAM,WAAW,MAAM,KAAK,iBAAiB,SAAS,CACrD,KAAK,GAAG,eACR,EAAC;AAEF,SAAO,SACN,KAAK,GAAG,gBAAgB;CAEzB;;;;;CAMD,MAAM,kBAAsD;AAC3D,OAAK,KAAK,GAAG,sBACZ;EAGD,MAAM,WAAW,MAAM,KAAK,iBAAiB,SAAS,CACrD,KAAK,GAAG,qBACR,EAAC;AAEF,SAAO,SACN,KAAK,GAAG,sBAAsB;CAE/B;;;;;CAMD,MAAM,gBAA4D;EACjE,MAAM,UAAU,MAAM,KAAK,iBAAiB;AAC5C,OAAK,QACJ;AAGD,SAAO,IAAI,eAA6B;GACvC,OAAO;IAAE,IAAI;IAAU,MAAM;GAAU;GAC9B;GACT,UAAU,EACT,UAAU,KAAK,GAAG,KAClB;EACD;CACD;;;;;;;;;CAUD,MAAM,iBACLC,SAIa;EACb,MAAM,UAAU,MAAM,KAAK,eAAe;EAC1C,MAAM,UAAU,MAAM,KAAK,iBAAiB;AAG5C,OAAK,YAAY,SAAS;GACzB,MAAMC,OAAK,MAAM,KAAK,aAAa;AACnC,UAAO,QAAQ,EAAE,SAAI,EAAC;EACtB;EAGD,MAAM,YAAY,AAAC,QAAyB,eAAe;EAC3D,MAAM,sBAAsB,KAAK,GAAG,iBAAiB;EACrD,MAAM,qBAAqB,KAAK,GAAG,uBAAuB;AAI1D,MAAI,aAAa,uBAAuB,mBACvC,QAAO,yBACN,WACA,SACA,OAAO,QAAQ;GAEd,MAAMC,aAAW,MAAM,QAAQ;IAC9B;IACA,IAAI;GACJ,EAAC;AAEF,UAAOA;EACP,EACD;EAIF,MAAM,KAAK,MAAM,KAAK,aAAa;EACnC,MAAM,WAAW,MAAM,QAAQ;GAAE;GAAS;EAAI,EAAC;AAG/C,QAAM,QAAQ,OAAO;AAErB,SAAO;CACP;CAED,MAAM,iBACLC,OACiD;EACjD,MAAM,cAAc,MAAM,gBAAgB,8BACzC,OACA,KAAK,GAAG,MACR;AAED,SAAO;CACP;CAED,MAAM,cAAcC,UAA2C;AAC9D,QAAM,cACL,KAAK,QACL,KAAK,kBACL,KAAK,GAAG,QACR,UACA,KAAK,GAAG,iBACR;CACD;CAED,MAAM,8BACLC,MACAC,QAC4C;AAC5C,SAAO,gBAAgB,8BAA8B,MAAM,OAAO;CAClE;AACD;;;;AC3JD,IAAa,oBAAb,cAeU,yBAYR;CACD,YACCC,WACkBC,IAsBjB;AACD,QAAM,WAAW,GAAG;EAvBF;CAwBlB;CAED,AAAQ,QAQN;AACD,SAAO,EACN,SAAS,CAAC,QAAQ;GACjB,MAAM,SAAS,IAAI,OAAO,UAAU,KAAK,GAAG;AAC5C,UAAO,MAAM,IAAI,SAAS,CAAE,GAAE,4BAA4B;AAG1D,SAAM,UAAU,IAAI,MAAM;EAC1B,EACD;CACD;CAED,AAAQ,YAQN;AACD,SAAO,EACN,QAAQ,CAAC,SAAS,CAAE,EACpB;CACD;CAED,AAAQ,QAUN;AACD,SAAO,EACN,QAAQ,OAAO,QAAQ;AACtB,OAAI;AAEH,QAAI,KAAK,GAAG,OAAO;KAClB,MAAM,cACL,MAAM,gBAAgB,8BACrB,IAAI,OACJ,KAAK,GAAG,MACR;AAEF,SAAI,MAAM,cACT;IACD,MAEA,KAAI,MAAM,cAAc,IAAI;GAE7B,SAAQ,OAAO;AACf,SAAK,OAAO,MACX;KAAE;KAAO,OAAO,IAAI;IAAO,GAC3B,wBACA;AACD,UAAM;GACN;EACD,EACD;CACD;CAED,AAAQ,mBAQN;AACD,SAAO,EACN,QAAQ,CAAC,QAAQ;AAChB,QAAK,UAAU,KAAK,GAAG,OAAO,MAAM;IACnC,IAAI;KACH,MAAM,IAAI,QAAQ;KAClB,SAAS,IAAI,QAAQ;KACrB,QAAQ,IAAI,QAAQ;IACpB;IACD,KAAK,EACJ,IAAI,IAAI,QAAQ,aAChB;GACD,EAAC;AAEF,OAAI,MAAM,SAAS,KAAK;EACxB,EACD;CACD;CAED,AAAQ,WAQN;AACD,SAAO,EACN,QAAQ,OAAO,QAAQ;AACtB,OAAI,MAAM,WAAW,MAAM,KAAK,aAAa;EAC7C,EACD;CACD;CAED,AAAQ,WAQN;AACD,SAAO,EACN,QAAQ,OAAO,QAAQ;AACtB,OAAI,MAAM,KAAK,MAAM,KAAK,aAAa;EACvC,EACD;CACD;CAED,AAAQ,UAQN;AACD,SAAO;GACN,QAAQ,OAAO,QAAQ;AACtB,QAAI,MAAM,UAAU,MAAM,KAAK,eAAe;GAC9C;GACD,OAAO,OAAO,QAAQ;AAErB,QAAI,IAAI,MAAM,SAAS;KACtB,MAAM,UAAU,IAAI,MAAM,QAAQ,YAAY;AAC9C,SAAI,QAAQ,SAAS,GAAG;AACvB,WAAK,OAAO,MACX,EAAE,YAAY,QAAQ,OAAQ,GAC9B,2BACA;AACD,YAAM,IAAI,MAAM,QAAQ,OAAO;KAC/B;IACD;GACD;EACD;CACD;CAED,AAAQ,SAQN;AACD,SAAO,EACN,OAAO,OAAO,QAAQ;GACrB,MAAM,WAAY,IAAI;AAEtB,SAAM,KAAK,cAAc,SAAS;EAClC,EACD;CACD;CAED,MAAc,SACbC,OAQC;EAED,MAAM,SAAS,MAAM,KAAK,GAAG,GAAG;GAC/B,OAAO,MAAM;GACb,UAAU,MAAM;GAChB,QAAQ,MAAM;GACd,IAAI,MAAM;GACV,SAAS,MAAM;EACf,EAAQ;EAGT,MAAM,SAAS,MAAM,KAAK,GAAG,YAAY,OAAO;AAEhD,SAAO;CACP;CAED,IAAI,UAA4B;EAC/B,MAAM,UAAU,KAAK,SAAS,KAAK,KAAK;EAGxC,MAAM,QAAQ,MAAM,QAAQ,CAC1B,IAAI,KAAK,kBAAkB,CAAC,CAC5B,IAAI,KAAK,WAAW,CAAC,CACrB,IAAI,KAAK,OAAO,CAAC,CACjB,IAAI,KAAK,UAAU,CAAC,CACpB,IAAI,KAAK,UAAU,CAAC,CACpB,IAAI,KAAK,SAAS,CAAC,CACnB,IAAI,KAAK,OAAO,CAAC,CACjB,IAAI,KAAK,QAAQ,CAAC;EAGpB,MAAM,iBAAiB,OAAOC,OAAgBC,YAAqB;GAClE,MAAM,YAAY,KAAK,KAAK;GAC5B,MAAM,YAAY,QAAQ;GAC1B,MAAM,SAAS,KAAK,GAAG,OAAO,MAAM,EAAE,UAAW,EAAC;AAElD,UAAO,sBAAsB;IAAE;IAAQ;IAAW;GAAW,GAAE,MAC9D,MAAM,OAAsC,QAAQ,CACpD;EACD;AAED,SAAO;CACP;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxTD,IAAa,uBAAb,cASU,kBAWR;CAED,YACCC,WACAC,MAUC;AACD,QAAM,WAAW,KAAK;CACtB;AACD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const
|
|
2
|
-
const require_functions = require('./functions-
|
|
3
|
-
const require_publisher = require('./publisher-
|
|
4
|
-
const __geekmidas_errors =
|
|
5
|
-
const __geekmidas_services =
|
|
6
|
-
const __middy_core =
|
|
7
|
-
const __geekmidas_audit =
|
|
8
|
-
const __geekmidas_audit_kysely =
|
|
1
|
+
const require_chunk = require('./chunk-DWy1uDak.cjs');
|
|
2
|
+
const require_functions = require('./functions-DukjG8ov.cjs');
|
|
3
|
+
const require_publisher = require('./publisher-CqGsXB2X.cjs');
|
|
4
|
+
const __geekmidas_errors = require_chunk.__toESM(require("@geekmidas/errors"));
|
|
5
|
+
const __geekmidas_services = require_chunk.__toESM(require("@geekmidas/services"));
|
|
6
|
+
const __middy_core = require_chunk.__toESM(require("@middy/core"));
|
|
7
|
+
const __geekmidas_audit = require_chunk.__toESM(require("@geekmidas/audit"));
|
|
8
|
+
const __geekmidas_audit_kysely = require_chunk.__toESM(require("@geekmidas/audit/kysely"));
|
|
9
9
|
|
|
10
10
|
//#region src/functions/FunctionExecutionWrapper.ts
|
|
11
11
|
var FunctionExecutionWrapper = class {
|
|
@@ -252,4 +252,4 @@ Object.defineProperty(exports, 'AWSScheduledFunction', {
|
|
|
252
252
|
return AWSScheduledFunction;
|
|
253
253
|
}
|
|
254
254
|
});
|
|
255
|
-
//# sourceMappingURL=AWSScheduledFunction-
|
|
255
|
+
//# sourceMappingURL=AWSScheduledFunction-qu4ieRZR.cjs.map
|