@geekmidas/constructs 0.0.12 → 0.0.13
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 +448 -0
- package/dist/AWSLambdaFunction-B-Oxr8qt.d.cts +30 -0
- package/dist/{AWSLambdaFunction-DMxScuaw.cjs → AWSLambdaFunction-C-fuCLA3.cjs} +28 -5
- package/dist/AWSLambdaFunction-C-fuCLA3.cjs.map +1 -0
- package/dist/AWSLambdaFunction-CAm9r5ZX.d.mts +30 -0
- package/dist/{AWSLambdaFunction-cL8A169J.mjs → AWSLambdaFunction-H65WfXLt.mjs} +28 -5
- package/dist/AWSLambdaFunction-H65WfXLt.mjs.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-eDQgPNLH.d.mts → AmazonApiGatewayEndpointAdaptor-4hPy5vty.d.mts} +4 -4
- package/dist/{AmazonApiGatewayEndpointAdaptor-CIEhW1TQ.mjs → AmazonApiGatewayEndpointAdaptor-C6Jk5HSy.mjs} +6 -2
- package/dist/AmazonApiGatewayEndpointAdaptor-C6Jk5HSy.mjs.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-H8YvtfQm.cjs → AmazonApiGatewayEndpointAdaptor-CI9L7Ucn.cjs} +6 -2
- package/dist/AmazonApiGatewayEndpointAdaptor-CI9L7Ucn.cjs.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-CwItKPz2.d.cts → AmazonApiGatewayEndpointAdaptor-ro0RMLzr.d.cts} +4 -4
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-B36zXLJ7.mjs → AmazonApiGatewayV1EndpointAdaptor-BMy8DdNJ.mjs} +2 -2
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-B36zXLJ7.mjs.map → AmazonApiGatewayV1EndpointAdaptor-BMy8DdNJ.mjs.map} +1 -1
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-DaCvUL6y.d.cts → AmazonApiGatewayV1EndpointAdaptor-BWJWKqQT.d.cts} +3 -3
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-0n71d3gq.cjs → AmazonApiGatewayV1EndpointAdaptor-DYL1bCBS.cjs} +2 -2
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-0n71d3gq.cjs.map → AmazonApiGatewayV1EndpointAdaptor-DYL1bCBS.cjs.map} +1 -1
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-CnGVpA38.d.mts → AmazonApiGatewayV1EndpointAdaptor-hyR-WwyP.d.mts} +3 -3
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-CE3wZEb8.mjs → AmazonApiGatewayV2EndpointAdaptor-BU5wQMOe.mjs} +2 -2
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-CE3wZEb8.mjs.map → AmazonApiGatewayV2EndpointAdaptor-BU5wQMOe.mjs.map} +1 -1
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-DtU3Cb8F.cjs → AmazonApiGatewayV2EndpointAdaptor-CPLCMeaN.cjs} +2 -2
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-DtU3Cb8F.cjs.map → AmazonApiGatewayV2EndpointAdaptor-CPLCMeaN.cjs.map} +1 -1
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-DA1PH0nc.d.cts → AmazonApiGatewayV2EndpointAdaptor-D1Irdggp.d.cts} +3 -3
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-BELz2ijs.d.mts → AmazonApiGatewayV2EndpointAdaptor-DX3SuI5S.d.mts} +3 -3
- package/dist/{Authorizer-BRCVPz_O.d.mts → Authorizer-BTmly8ps.d.cts} +1 -1
- package/dist/{Authorizer-DG54w1m2.d.cts → Authorizer-pmPvIVgv.d.mts} +1 -1
- package/dist/{BaseFunctionBuilder-CT7p10K1.mjs → BaseFunctionBuilder-B5gkW0Kt.mjs} +10 -1
- package/dist/BaseFunctionBuilder-B5gkW0Kt.mjs.map +1 -0
- package/dist/{BaseFunctionBuilder-B8rT07QR.cjs → BaseFunctionBuilder-C5Se7pdL.cjs} +10 -1
- package/dist/BaseFunctionBuilder-C5Se7pdL.cjs.map +1 -0
- package/dist/{BaseFunctionBuilder-DilipY1y.d.mts → BaseFunctionBuilder-CbDnPZpD.d.mts} +10 -4
- package/dist/{BaseFunctionBuilder-Cf0op65o.d.cts → BaseFunctionBuilder-DUZMbEr3.d.cts} +10 -4
- package/dist/{Cron-Bnd-2pgE.cjs → Cron-Bi3QOge_.cjs} +4 -4
- package/dist/Cron-Bi3QOge_.cjs.map +1 -0
- package/dist/{Cron-6lOgKqSA.d.cts → Cron-COdfP0Jd.d.cts} +4 -4
- package/dist/{Cron-BH_07atD.d.mts → Cron-D8cn_ahj.d.mts} +4 -4
- package/dist/{Cron-DNRjf2cp.mjs → Cron-Dy_HW2Vv.mjs} +4 -4
- package/dist/Cron-Dy_HW2Vv.mjs.map +1 -0
- package/dist/{CronBuilder-DdR2TuQa.mjs → CronBuilder-Bl3A2Zp4.mjs} +13 -4
- package/dist/CronBuilder-Bl3A2Zp4.mjs.map +1 -0
- package/dist/{CronBuilder-5oK2AL2n.d.cts → CronBuilder-DntF6H3A.d.cts} +17 -12
- package/dist/{CronBuilder-D2b4zY4l.d.mts → CronBuilder-DoMnSs_0.d.mts} +17 -12
- package/dist/{CronBuilder-dtw4ZyH6.cjs → CronBuilder-Dv_w7Yri.cjs} +13 -4
- package/dist/CronBuilder-Dv_w7Yri.cjs.map +1 -0
- package/dist/{Endpoint-DuZlyjd4.d.mts → Endpoint-Bbs_sFvg.d.mts} +49 -20
- package/dist/{Endpoint-Cs-MsYlY.d.cts → Endpoint-Bu8Phz6y.d.cts} +49 -20
- package/dist/{Endpoint-B9PryZES.cjs → Endpoint-DDpF7NO1.cjs} +11 -6
- package/dist/Endpoint-DDpF7NO1.cjs.map +1 -0
- package/dist/{Endpoint-B69TqESg.mjs → Endpoint-S6Yh2_PN.mjs} +11 -6
- package/dist/Endpoint-S6Yh2_PN.mjs.map +1 -0
- package/dist/{EndpointBuilder-C-PHInEW.d.cts → EndpointBuilder-CPxmF_w7.d.cts} +30 -13
- package/dist/{EndpointBuilder-BrB-K1jO.d.mts → EndpointBuilder-Csfyfjd7.d.mts} +30 -13
- package/dist/{EndpointBuilder-DofwCnWJ.cjs → EndpointBuilder-DpGmObMb.cjs} +25 -4
- package/dist/EndpointBuilder-DpGmObMb.cjs.map +1 -0
- package/dist/{EndpointBuilder-DnVL-EU_.mjs → EndpointBuilder-aE2E6WTx.mjs} +25 -4
- package/dist/EndpointBuilder-aE2E6WTx.mjs.map +1 -0
- package/dist/{EndpointFactory-6zNpVSYp.d.mts → EndpointFactory-Bf9JSWzI.d.cts} +12 -12
- package/dist/{EndpointFactory-Ba9mx9MU.cjs → EndpointFactory-BfH6mjJ3.cjs} +2 -2
- package/dist/EndpointFactory-BfH6mjJ3.cjs.map +1 -0
- package/dist/{EndpointFactory-e5WYVR6t.d.cts → EndpointFactory-Cgk1R0oO.d.mts} +12 -12
- package/dist/{EndpointFactory-pPaIGFHV.mjs → EndpointFactory-D4leYk1N.mjs} +2 -2
- package/dist/EndpointFactory-D4leYk1N.mjs.map +1 -0
- package/dist/{Function-CO-s2pB8.cjs → Function-DagDbeXo.cjs} +3 -2
- package/dist/Function-DagDbeXo.cjs.map +1 -0
- package/dist/{Function-COnc-tWM.mjs → Function-DfKsM5Kx.mjs} +3 -2
- package/dist/Function-DfKsM5Kx.mjs.map +1 -0
- package/dist/{Function-G3JPHMaY.d.mts → Function-V9M9UVHp.d.mts} +24 -7
- package/dist/{Function-6EWabl_X.d.cts → Function-VI1TB3Mh.d.cts} +24 -7
- package/dist/{FunctionBuilder-CMhLQ4dt.mjs → FunctionBuilder-CVT7bG2o.mjs} +20 -4
- package/dist/FunctionBuilder-CVT7bG2o.mjs.map +1 -0
- package/dist/{FunctionBuilder-B3fpp3hA.d.cts → FunctionBuilder-CjVEFTYC.d.cts} +22 -12
- package/dist/{FunctionBuilder-ByaB_LQ4.d.mts → FunctionBuilder-D1ofSeMd.d.mts} +22 -12
- package/dist/{FunctionBuilder-_hMwZUof.cjs → FunctionBuilder-DXvG_XD-.cjs} +20 -4
- package/dist/FunctionBuilder-DXvG_XD-.cjs.map +1 -0
- package/dist/FunctionExecutionWrapper-Bubnr0zA.mjs +101 -0
- package/dist/FunctionExecutionWrapper-Bubnr0zA.mjs.map +1 -0
- package/dist/FunctionExecutionWrapper-CwtwYozd.d.cts +48 -0
- package/dist/FunctionExecutionWrapper-DkNycmOh.cjs +107 -0
- package/dist/FunctionExecutionWrapper-DkNycmOh.cjs.map +1 -0
- package/dist/FunctionExecutionWrapper-rhbIYT0Q.d.mts +48 -0
- package/dist/{HonoEndpointAdaptor-DSHl8ZCY.d.cts → HonoEndpointAdaptor-B34kNobH.d.cts} +7 -7
- package/dist/{HonoEndpointAdaptor-BElil8O5.d.mts → HonoEndpointAdaptor-BDpi32mH.d.mts} +7 -7
- package/dist/{HonoEndpointAdaptor-Cw2if5cG.cjs → HonoEndpointAdaptor-CfLRHHFw.cjs} +8 -4
- package/dist/HonoEndpointAdaptor-CfLRHHFw.cjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-DAfnTFVS.mjs → HonoEndpointAdaptor-DuyE06nH.mjs} +8 -4
- package/dist/HonoEndpointAdaptor-DuyE06nH.mjs.map +1 -0
- package/dist/{Subscriber-D-FPWts6.cjs → Subscriber-Bdh8rMSL.cjs} +1 -1
- package/dist/{Subscriber-D-FPWts6.cjs.map → Subscriber-Bdh8rMSL.cjs.map} +1 -1
- package/dist/{Subscriber-CGb8LjZa.mjs → Subscriber-CJOWwaw1.mjs} +1 -1
- package/dist/{Subscriber-CGb8LjZa.mjs.map → Subscriber-CJOWwaw1.mjs.map} +1 -1
- package/dist/{SubscriberBuilder-BcAspHv9.mjs → SubscriberBuilder-BWQmiYd8.mjs} +2 -2
- package/dist/{SubscriberBuilder-BcAspHv9.mjs.map → SubscriberBuilder-BWQmiYd8.mjs.map} +1 -1
- package/dist/{SubscriberBuilder-BfE2cL1q.cjs → SubscriberBuilder-DieD_60p.cjs} +2 -2
- package/dist/{SubscriberBuilder-BfE2cL1q.cjs.map → SubscriberBuilder-DieD_60p.cjs.map} +1 -1
- package/dist/{TestEndpointAdaptor-DubQOJk_.mjs → TestEndpointAdaptor-BEyZa0Yg.mjs} +7 -3
- package/dist/TestEndpointAdaptor-BEyZa0Yg.mjs.map +1 -0
- package/dist/{TestEndpointAdaptor-Bn1WRFph.cjs → TestEndpointAdaptor-C8425RJ0.cjs} +7 -3
- package/dist/TestEndpointAdaptor-C8425RJ0.cjs.map +1 -0
- package/dist/{TestEndpointAdaptor-o-xtSyQ3.d.cts → TestEndpointAdaptor-H5To8PH7.d.cts} +2 -2
- package/dist/{TestEndpointAdaptor-DnlAA_rm.d.mts → TestEndpointAdaptor-jxn68ayg.d.mts} +2 -2
- package/dist/adaptors/aws.cjs +10 -10
- package/dist/adaptors/aws.d.cts +11 -11
- package/dist/adaptors/aws.d.mts +11 -11
- package/dist/adaptors/aws.mjs +10 -10
- package/dist/adaptors/hono.cjs +7 -7
- package/dist/adaptors/hono.d.cts +7 -7
- package/dist/adaptors/hono.d.mts +7 -7
- package/dist/adaptors/hono.mjs +7 -7
- package/dist/adaptors/testing.cjs +6 -6
- package/dist/adaptors/testing.d.cts +7 -7
- package/dist/adaptors/testing.d.mts +7 -7
- package/dist/adaptors/testing.mjs +6 -6
- package/dist/crons/Cron.cjs +5 -5
- package/dist/crons/Cron.d.cts +5 -5
- package/dist/crons/Cron.d.mts +5 -5
- package/dist/crons/Cron.mjs +5 -5
- package/dist/crons/CronBuilder.cjs +6 -6
- package/dist/crons/CronBuilder.d.cts +6 -6
- package/dist/crons/CronBuilder.d.mts +6 -6
- package/dist/crons/CronBuilder.mjs +6 -6
- package/dist/crons/index.cjs +6 -6
- package/dist/crons/index.d.cts +10 -10
- package/dist/crons/index.d.mts +10 -10
- package/dist/crons/index.mjs +6 -6
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +6 -6
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +7 -7
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +7 -7
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +6 -6
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +7 -7
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +8 -8
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +8 -8
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +7 -7
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +7 -7
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +8 -8
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +8 -8
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +7 -7
- package/dist/endpoints/Authorizer.d.cts +1 -1
- package/dist/endpoints/Authorizer.d.mts +1 -1
- package/dist/endpoints/Endpoint.cjs +5 -5
- package/dist/endpoints/Endpoint.d.cts +6 -6
- package/dist/endpoints/Endpoint.d.mts +6 -6
- package/dist/endpoints/Endpoint.mjs +5 -5
- package/dist/endpoints/EndpointBuilder.cjs +6 -6
- package/dist/endpoints/EndpointBuilder.d.cts +7 -7
- package/dist/endpoints/EndpointBuilder.d.mts +7 -7
- package/dist/endpoints/EndpointBuilder.mjs +6 -6
- package/dist/endpoints/EndpointFactory.cjs +7 -7
- package/dist/endpoints/EndpointFactory.d.cts +8 -8
- package/dist/endpoints/EndpointFactory.d.mts +8 -8
- package/dist/endpoints/EndpointFactory.mjs +7 -7
- package/dist/endpoints/HonoEndpointAdaptor.cjs +7 -7
- package/dist/endpoints/HonoEndpointAdaptor.d.cts +7 -7
- package/dist/endpoints/HonoEndpointAdaptor.d.mts +7 -7
- package/dist/endpoints/HonoEndpointAdaptor.mjs +7 -7
- package/dist/endpoints/TestEndpointAdaptor.cjs +6 -6
- package/dist/endpoints/TestEndpointAdaptor.d.cts +7 -7
- package/dist/endpoints/TestEndpointAdaptor.d.mts +7 -7
- package/dist/endpoints/TestEndpointAdaptor.mjs +6 -6
- package/dist/endpoints/audit.d.cts +6 -6
- package/dist/endpoints/audit.d.mts +6 -6
- package/dist/endpoints/helpers.cjs +6 -6
- package/dist/endpoints/helpers.d.cts +6 -6
- package/dist/endpoints/helpers.d.mts +6 -6
- package/dist/endpoints/helpers.mjs +6 -6
- package/dist/endpoints/index.cjs +7 -7
- package/dist/endpoints/index.d.cts +10 -10
- package/dist/endpoints/index.d.mts +10 -10
- package/dist/endpoints/index.mjs +7 -7
- package/dist/endpoints/processAudits.d.cts +7 -7
- package/dist/endpoints/processAudits.d.mts +7 -7
- package/dist/functions/AWSLambdaFunction.cjs +5 -5
- package/dist/functions/AWSLambdaFunction.d.cts +3 -3
- package/dist/functions/AWSLambdaFunction.d.mts +3 -3
- package/dist/functions/AWSLambdaFunction.mjs +5 -5
- package/dist/functions/BaseFunctionBuilder.cjs +1 -1
- package/dist/functions/BaseFunctionBuilder.d.cts +1 -1
- package/dist/functions/BaseFunctionBuilder.d.mts +1 -1
- package/dist/functions/BaseFunctionBuilder.mjs +1 -1
- package/dist/functions/Function.cjs +1 -1
- package/dist/functions/Function.d.cts +1 -1
- package/dist/functions/Function.d.mts +1 -1
- package/dist/functions/Function.mjs +1 -1
- package/dist/functions/FunctionBuilder.cjs +3 -3
- package/dist/functions/FunctionBuilder.d.cts +3 -3
- package/dist/functions/FunctionBuilder.d.mts +3 -3
- package/dist/functions/FunctionBuilder.mjs +3 -3
- package/dist/functions/FunctionExecutionWrapper.cjs +4 -4
- package/dist/functions/FunctionExecutionWrapper.d.cts +2 -2
- package/dist/functions/FunctionExecutionWrapper.d.mts +2 -2
- package/dist/functions/FunctionExecutionWrapper.mjs +4 -4
- package/dist/functions/TestFunctionAdaptor.cjs +37 -4
- package/dist/functions/TestFunctionAdaptor.cjs.map +1 -1
- package/dist/functions/TestFunctionAdaptor.d.cts +9 -6
- package/dist/functions/TestFunctionAdaptor.d.mts +9 -6
- package/dist/functions/TestFunctionAdaptor.mjs +37 -4
- package/dist/functions/TestFunctionAdaptor.mjs.map +1 -1
- package/dist/functions/index.cjs +4 -4
- package/dist/functions/index.d.cts +4 -4
- package/dist/functions/index.d.mts +4 -4
- package/dist/functions/index.mjs +4 -4
- package/dist/{functions-D03lqK-r.cjs → functions-FCb-wWFC.cjs} +2 -2
- package/dist/{functions-D03lqK-r.cjs.map → functions-FCb-wWFC.cjs.map} +1 -1
- package/dist/functions-JhRsNoAZ.mjs +8 -0
- package/dist/{functions-BYqZAob8.mjs.map → functions-JhRsNoAZ.mjs.map} +1 -1
- package/dist/{helpers-BPDogwac.mjs → helpers-2CLKTnRm.mjs} +2 -2
- package/dist/{helpers-BPDogwac.mjs.map → helpers-2CLKTnRm.mjs.map} +1 -1
- package/dist/{helpers-BApRyhly.cjs → helpers-Khuhi_Qx.cjs} +2 -2
- package/dist/{helpers-BApRyhly.cjs.map → helpers-Khuhi_Qx.cjs.map} +1 -1
- package/dist/index-Bomy7R9z.d.mts +10 -0
- package/dist/index-DRYfZHb3.d.cts +10 -0
- package/dist/processAudits-BFokHhCO.cjs.map +1 -1
- package/dist/processAudits-DfcB-X-4.mjs.map +1 -1
- package/dist/publisher-Bw4770Hi.mjs.map +1 -1
- package/dist/publisher-lFQleddL.cjs.map +1 -1
- package/dist/publisher.d.cts +2 -1
- package/dist/publisher.d.mts +2 -1
- package/dist/subscribers/Subscriber.cjs +1 -1
- package/dist/subscribers/Subscriber.mjs +1 -1
- package/dist/subscribers/SubscriberBuilder.cjs +2 -2
- package/dist/subscribers/SubscriberBuilder.mjs +2 -2
- package/dist/subscribers/index.cjs +2 -2
- package/dist/subscribers/index.d.cts +2 -2
- package/dist/subscribers/index.d.mts +2 -2
- package/dist/subscribers/index.mjs +2 -2
- package/package.json +6 -6
- package/src/crons/Cron.ts +12 -3
- package/src/crons/CronBuilder.ts +85 -13
- package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +2 -2
- package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +29 -6
- package/src/endpoints/Endpoint.ts +156 -40
- package/src/endpoints/EndpointBuilder.ts +123 -17
- package/src/endpoints/EndpointFactory.ts +5 -1
- package/src/endpoints/HonoEndpointAdaptor.ts +35 -5
- package/src/endpoints/TestEndpointAdaptor.ts +22 -2
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +1 -1
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +2 -2
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +9 -9
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +79 -40
- package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +3 -1
- package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +1 -1
- package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +35 -11
- package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +51 -14
- package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +8 -8
- package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +11 -11
- package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +44 -26
- package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +10 -10
- package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +8 -8
- package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +446 -61
- package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +4 -4
- package/src/endpoints/audit.ts +1 -1
- package/src/endpoints/processAudits.ts +32 -23
- package/src/functions/AWSLambdaFunction.ts +125 -12
- package/src/functions/BaseFunctionBuilder.ts +51 -3
- package/src/functions/Function.ts +73 -9
- package/src/functions/FunctionBuilder.ts +153 -17
- package/src/functions/FunctionExecutionWrapper.ts +133 -2
- package/src/functions/TestFunctionAdaptor.ts +94 -8
- package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +82 -0
- package/src/functions/__tests__/Function.audits.spec.ts +393 -0
- package/src/functions/__tests__/Function.spec.ts +76 -0
- package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +11 -5
- package/src/publisher.ts +12 -1
- package/dist/AWSLambdaFunction-DMxScuaw.cjs.map +0 -1
- package/dist/AWSLambdaFunction-DSB2oaFG.d.mts +0 -27
- package/dist/AWSLambdaFunction-cL8A169J.mjs.map +0 -1
- package/dist/AWSLambdaFunction-t6q2o8EL.d.cts +0 -27
- package/dist/AmazonApiGatewayEndpointAdaptor-CIEhW1TQ.mjs.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-H8YvtfQm.cjs.map +0 -1
- package/dist/BaseFunctionBuilder-B8rT07QR.cjs.map +0 -1
- package/dist/BaseFunctionBuilder-CT7p10K1.mjs.map +0 -1
- package/dist/Cron-Bnd-2pgE.cjs.map +0 -1
- package/dist/Cron-DNRjf2cp.mjs.map +0 -1
- package/dist/CronBuilder-DdR2TuQa.mjs.map +0 -1
- package/dist/CronBuilder-dtw4ZyH6.cjs.map +0 -1
- package/dist/Endpoint-B69TqESg.mjs.map +0 -1
- package/dist/Endpoint-B9PryZES.cjs.map +0 -1
- package/dist/EndpointBuilder-DnVL-EU_.mjs.map +0 -1
- package/dist/EndpointBuilder-DofwCnWJ.cjs.map +0 -1
- package/dist/EndpointFactory-Ba9mx9MU.cjs.map +0 -1
- package/dist/EndpointFactory-pPaIGFHV.mjs.map +0 -1
- package/dist/Function-CO-s2pB8.cjs.map +0 -1
- package/dist/Function-COnc-tWM.mjs.map +0 -1
- package/dist/FunctionBuilder-CMhLQ4dt.mjs.map +0 -1
- package/dist/FunctionBuilder-_hMwZUof.cjs.map +0 -1
- package/dist/FunctionExecutionWrapper-Ci-ookJG.d.cts +0 -24
- package/dist/FunctionExecutionWrapper-DHFMLrOl.d.mts +0 -24
- package/dist/FunctionExecutionWrapper-i9v5L3Av.mjs +0 -36
- package/dist/FunctionExecutionWrapper-i9v5L3Av.mjs.map +0 -1
- package/dist/FunctionExecutionWrapper-sxJNTpuc.cjs +0 -42
- package/dist/FunctionExecutionWrapper-sxJNTpuc.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-Cw2if5cG.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-DAfnTFVS.mjs.map +0 -1
- package/dist/TestEndpointAdaptor-Bn1WRFph.cjs.map +0 -1
- package/dist/TestEndpointAdaptor-DubQOJk_.mjs.map +0 -1
- package/dist/functions-BYqZAob8.mjs +0 -8
- package/dist/index-CUg_hSq-.d.cts +0 -9
- package/dist/index-D-a7e2gv.d.mts +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher-Bw4770Hi.mjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any, any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct
|
|
1
|
+
{"version":3,"file":"publisher-Bw4770Hi.mjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any, any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct<\n Logger,\n TServiceName,\n T,\n OutSchema,\n TServices,\n TAuditStorageServiceName,\n TAuditStorage\n >"],"sources":["../src/publisher.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport type { Logger } from '@geekmidas/logger';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { Construct } from './Construct';\n\nexport async function publishEvents<\n T extends EventPublisher<any> | undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServiceName extends string = string,\n TPublisherService extends Service<TServiceName, T> | undefined = undefined,\n>(\n logger: Logger,\n serviceDiscovery: ServiceDiscovery<any, any>,\n ev: MappedEvent<T, OutSchema>[] = [],\n response: InferStandardSchema<OutSchema>,\n publisherService: TPublisherService,\n) {\n try {\n if (!ev?.length) {\n logger.debug('No events to publish');\n return;\n }\n if (!publisherService) {\n logger.warn('No publisher service available');\n return;\n }\n\n const services = await serviceDiscovery.register([publisherService]);\n\n const publisher = services[\n publisherService.serviceName\n ] as EventPublisher<any>;\n\n const events: MappedEvent<T, OutSchema>[] = [];\n\n for (const { when, payload, type, ...e } of ev) {\n logger.debug({ event: type }, 'Processing event');\n const resolvedPayload = await payload(response);\n const event = {\n ...e,\n type,\n payload: resolvedPayload,\n };\n\n if (!when || when(response as any)) {\n events.push(event);\n }\n }\n\n if (events.length) {\n logger.debug({ eventCount: ev.length }, 'Publishing events');\n\n await publisher.publish(events).catch((err) => {\n logger.error(err, 'Failed to publish events');\n });\n }\n } catch (error) {\n logger.error(error as any, 'Something went wrong publishing events');\n }\n}\n\nexport async function publishConstructEvents<\n T extends EventPublisher<any> | undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServiceName extends string = string,\n TServices extends Service[] = [],\n TAuditStorageServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n>(\n construct: Construct<\n Logger,\n TServiceName,\n T,\n OutSchema,\n TServices,\n TAuditStorageServiceName,\n TAuditStorage\n >,\n response: InferStandardSchema<OutSchema>,\n serviceDiscovery: ServiceDiscovery<any, any>,\n logger: Logger = construct.logger,\n) {\n return publishEvents(\n logger,\n serviceDiscovery,\n construct.events,\n response,\n construct.publisherService,\n );\n}\n"],"mappings":";AASA,eAAsB,cAMpBA,QACAC,kBACAC,KAAkC,CAAE,GACpCC,UACAC,kBACA;AACA,KAAI;AACF,OAAK,IAAI,QAAQ;AACf,UAAO,MAAM,uBAAuB;AACpC;EACD;AACD,OAAK,kBAAkB;AACrB,UAAO,KAAK,iCAAiC;AAC7C;EACD;EAED,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAAC,gBAAiB,EAAC;EAEpE,MAAM,YAAY,SAChB,iBAAiB;EAGnB,MAAMC,SAAsC,CAAE;AAE9C,OAAK,MAAM,EAAE,MAAM,SAAS,KAAM,GAAG,GAAG,IAAI,IAAI;AAC9C,UAAO,MAAM,EAAE,OAAO,KAAM,GAAE,mBAAmB;GACjD,MAAM,kBAAkB,MAAM,QAAQ,SAAS;GAC/C,MAAM,QAAQ;IACZ,GAAG;IACH;IACA,SAAS;GACV;AAED,QAAK,QAAQ,KAAK,SAAgB,CAChC,QAAO,KAAK,MAAM;EAErB;AAED,MAAI,OAAO,QAAQ;AACjB,UAAO,MAAM,EAAE,YAAY,GAAG,OAAQ,GAAE,oBAAoB;AAE5D,SAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,CAAC,QAAQ;AAC7C,WAAO,MAAM,KAAK,2BAA2B;GAC9C,EAAC;EACH;CACF,SAAQ,OAAO;AACd,SAAO,MAAM,OAAc,yCAAyC;CACrE;AACF;AAED,eAAsB,uBAQpBC,WASAH,UACAF,kBACAD,SAAiB,UAAU,QAC3B;AACA,QAAO,cACL,QACA,kBACA,UAAU,QACV,UACA,UAAU,iBACX;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher-lFQleddL.cjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any, any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct
|
|
1
|
+
{"version":3,"file":"publisher-lFQleddL.cjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any, any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct<\n Logger,\n TServiceName,\n T,\n OutSchema,\n TServices,\n TAuditStorageServiceName,\n TAuditStorage\n >"],"sources":["../src/publisher.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport type { Logger } from '@geekmidas/logger';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { Construct } from './Construct';\n\nexport async function publishEvents<\n T extends EventPublisher<any> | undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServiceName extends string = string,\n TPublisherService extends Service<TServiceName, T> | undefined = undefined,\n>(\n logger: Logger,\n serviceDiscovery: ServiceDiscovery<any, any>,\n ev: MappedEvent<T, OutSchema>[] = [],\n response: InferStandardSchema<OutSchema>,\n publisherService: TPublisherService,\n) {\n try {\n if (!ev?.length) {\n logger.debug('No events to publish');\n return;\n }\n if (!publisherService) {\n logger.warn('No publisher service available');\n return;\n }\n\n const services = await serviceDiscovery.register([publisherService]);\n\n const publisher = services[\n publisherService.serviceName\n ] as EventPublisher<any>;\n\n const events: MappedEvent<T, OutSchema>[] = [];\n\n for (const { when, payload, type, ...e } of ev) {\n logger.debug({ event: type }, 'Processing event');\n const resolvedPayload = await payload(response);\n const event = {\n ...e,\n type,\n payload: resolvedPayload,\n };\n\n if (!when || when(response as any)) {\n events.push(event);\n }\n }\n\n if (events.length) {\n logger.debug({ eventCount: ev.length }, 'Publishing events');\n\n await publisher.publish(events).catch((err) => {\n logger.error(err, 'Failed to publish events');\n });\n }\n } catch (error) {\n logger.error(error as any, 'Something went wrong publishing events');\n }\n}\n\nexport async function publishConstructEvents<\n T extends EventPublisher<any> | undefined,\n OutSchema extends StandardSchemaV1 | undefined = undefined,\n TServiceName extends string = string,\n TServices extends Service[] = [],\n TAuditStorageServiceName extends string = string,\n TAuditStorage extends AuditStorage | undefined = undefined,\n>(\n construct: Construct<\n Logger,\n TServiceName,\n T,\n OutSchema,\n TServices,\n TAuditStorageServiceName,\n TAuditStorage\n >,\n response: InferStandardSchema<OutSchema>,\n serviceDiscovery: ServiceDiscovery<any, any>,\n logger: Logger = construct.logger,\n) {\n return publishEvents(\n logger,\n serviceDiscovery,\n construct.events,\n response,\n construct.publisherService,\n );\n}\n"],"mappings":";;AASA,eAAsB,cAMpBA,QACAC,kBACAC,KAAkC,CAAE,GACpCC,UACAC,kBACA;AACA,KAAI;AACF,OAAK,IAAI,QAAQ;AACf,UAAO,MAAM,uBAAuB;AACpC;EACD;AACD,OAAK,kBAAkB;AACrB,UAAO,KAAK,iCAAiC;AAC7C;EACD;EAED,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAAC,gBAAiB,EAAC;EAEpE,MAAM,YAAY,SAChB,iBAAiB;EAGnB,MAAMC,SAAsC,CAAE;AAE9C,OAAK,MAAM,EAAE,MAAM,SAAS,KAAM,GAAG,GAAG,IAAI,IAAI;AAC9C,UAAO,MAAM,EAAE,OAAO,KAAM,GAAE,mBAAmB;GACjD,MAAM,kBAAkB,MAAM,QAAQ,SAAS;GAC/C,MAAM,QAAQ;IACZ,GAAG;IACH;IACA,SAAS;GACV;AAED,QAAK,QAAQ,KAAK,SAAgB,CAChC,QAAO,KAAK,MAAM;EAErB;AAED,MAAI,OAAO,QAAQ;AACjB,UAAO,MAAM,EAAE,YAAY,GAAG,OAAQ,GAAE,oBAAoB;AAE5D,SAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,CAAC,QAAQ;AAC7C,WAAO,MAAM,KAAK,2BAA2B;GAC9C,EAAC;EACH;CACF,SAAQ,OAAO;AACd,SAAO,MAAM,OAAc,yCAAyC;CACrE;AACF;AAED,eAAsB,uBAQpBC,WASAH,UACAF,kBACAD,SAAiB,UAAU,QAC3B;AACA,QAAO,cACL,QACA,kBACA,UAAU,QACV,UACA,UAAU,iBACX;AACF"}
|
package/dist/publisher.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Construct } from "./Construct-dI_rgdSp.cjs";
|
|
2
|
+
import { AuditStorage } from "@geekmidas/audit";
|
|
2
3
|
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
3
4
|
import { Logger } from "@geekmidas/logger";
|
|
4
5
|
import { Service, ServiceDiscovery } from "@geekmidas/services";
|
|
@@ -7,7 +8,7 @@ import { InferStandardSchema } from "@geekmidas/schema";
|
|
|
7
8
|
|
|
8
9
|
//#region src/publisher.d.ts
|
|
9
10
|
declare function publishEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TPublisherService extends Service<TServiceName, T> | undefined = undefined>(logger: Logger, serviceDiscovery: ServiceDiscovery<any, any>, ev: MappedEvent<T, OutSchema>[] | undefined, response: InferStandardSchema<OutSchema>, publisherService: TPublisherService): Promise<void>;
|
|
10
|
-
declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = []>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any, any>, logger?: Logger): Promise<void>;
|
|
11
|
+
declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = [], TAuditStorageServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any, any>, logger?: Logger): Promise<void>;
|
|
11
12
|
//#endregion
|
|
12
13
|
export { publishConstructEvents, publishEvents };
|
|
13
14
|
//# sourceMappingURL=publisher.d.cts.map
|
package/dist/publisher.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Construct } from "./Construct-ZPqE0vhn.mjs";
|
|
2
2
|
import { Service, ServiceDiscovery } from "@geekmidas/services";
|
|
3
|
+
import { AuditStorage } from "@geekmidas/audit";
|
|
3
4
|
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
4
5
|
import { Logger } from "@geekmidas/logger";
|
|
5
6
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
@@ -7,7 +8,7 @@ import { InferStandardSchema } from "@geekmidas/schema";
|
|
|
7
8
|
|
|
8
9
|
//#region src/publisher.d.ts
|
|
9
10
|
declare function publishEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TPublisherService extends Service<TServiceName, T> | undefined = undefined>(logger: Logger, serviceDiscovery: ServiceDiscovery<any, any>, ev: MappedEvent<T, OutSchema>[] | undefined, response: InferStandardSchema<OutSchema>, publisherService: TPublisherService): Promise<void>;
|
|
10
|
-
declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = []>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any, any>, logger?: Logger): Promise<void>;
|
|
11
|
+
declare function publishConstructEvents<T extends EventPublisher<any> | undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServiceName extends string = string, TServices extends Service[] = [], TAuditStorageServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined>(construct: Construct<Logger, TServiceName, T, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage>, response: InferStandardSchema<OutSchema>, serviceDiscovery: ServiceDiscovery<any, any>, logger?: Logger): Promise<void>;
|
|
11
12
|
//#endregion
|
|
12
13
|
export { publishConstructEvents, publishEvents };
|
|
13
14
|
//# sourceMappingURL=publisher.d.mts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require('../Construct-BYSPikVm.cjs');
|
|
2
|
-
require('../Subscriber-
|
|
3
|
-
const require_SubscriberBuilder = require('../SubscriberBuilder-
|
|
2
|
+
require('../Subscriber-Bdh8rMSL.cjs');
|
|
3
|
+
const require_SubscriberBuilder = require('../SubscriberBuilder-DieD_60p.cjs');
|
|
4
4
|
|
|
5
5
|
exports.SubscriberBuilder = require_SubscriberBuilder.SubscriberBuilder;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../Construct-LWeB1rSQ.mjs";
|
|
2
|
-
import "../Subscriber-
|
|
3
|
-
import { SubscriberBuilder } from "../SubscriberBuilder-
|
|
2
|
+
import "../Subscriber-CJOWwaw1.mjs";
|
|
3
|
+
import { SubscriberBuilder } from "../SubscriberBuilder-BWQmiYd8.mjs";
|
|
4
4
|
|
|
5
5
|
export { SubscriberBuilder };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require('../Construct-BYSPikVm.cjs');
|
|
2
|
-
const require_Subscriber = require('../Subscriber-
|
|
3
|
-
const require_SubscriberBuilder = require('../SubscriberBuilder-
|
|
2
|
+
const require_Subscriber = require('../Subscriber-Bdh8rMSL.cjs');
|
|
3
|
+
const require_SubscriberBuilder = require('../SubscriberBuilder-DieD_60p.cjs');
|
|
4
4
|
|
|
5
5
|
//#region src/subscribers/index.ts
|
|
6
6
|
const s = new require_SubscriberBuilder.SubscriberBuilder();
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "../Construct-dI_rgdSp.cjs";
|
|
2
2
|
import { Subscriber } from "../Subscriber-BhzqUzs-.cjs";
|
|
3
3
|
import { SubscriberBuilder } from "../SubscriberBuilder-BCVkp-ga.cjs";
|
|
4
|
-
import * as
|
|
4
|
+
import * as _geekmidas_logger15 from "@geekmidas/logger";
|
|
5
5
|
|
|
6
6
|
//#region src/subscribers/index.d.ts
|
|
7
|
-
declare const s: SubscriberBuilder<[],
|
|
7
|
+
declare const s: SubscriberBuilder<[], _geekmidas_logger15.Logger, undefined, undefined, string, []>;
|
|
8
8
|
//#endregion
|
|
9
9
|
export { Subscriber, SubscriberBuilder, s };
|
|
10
10
|
//# sourceMappingURL=index.d.cts.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "../Construct-ZPqE0vhn.mjs";
|
|
2
2
|
import { Subscriber } from "../Subscriber-s6yfjeOc.mjs";
|
|
3
3
|
import { SubscriberBuilder } from "../SubscriberBuilder-aCua5_wA.mjs";
|
|
4
|
-
import * as
|
|
4
|
+
import * as _geekmidas_logger13 from "@geekmidas/logger";
|
|
5
5
|
|
|
6
6
|
//#region src/subscribers/index.d.ts
|
|
7
|
-
declare const s: SubscriberBuilder<[],
|
|
7
|
+
declare const s: SubscriberBuilder<[], _geekmidas_logger13.Logger, undefined, undefined, string, []>;
|
|
8
8
|
//#endregion
|
|
9
9
|
export { Subscriber, SubscriberBuilder, s };
|
|
10
10
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../Construct-LWeB1rSQ.mjs";
|
|
2
|
-
import { Subscriber } from "../Subscriber-
|
|
3
|
-
import { SubscriberBuilder } from "../SubscriberBuilder-
|
|
2
|
+
import { Subscriber } from "../Subscriber-CJOWwaw1.mjs";
|
|
3
|
+
import { SubscriberBuilder } from "../SubscriberBuilder-BWQmiYd8.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/subscribers/index.ts
|
|
6
6
|
const s = new SubscriberBuilder();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekmidas/constructs",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
"lodash.set": "~4.3.2",
|
|
67
67
|
"lodash.uniqby": "~4.7.0",
|
|
68
68
|
"openapi-types": "~12.1.3",
|
|
69
|
-
"@geekmidas/
|
|
70
|
-
"@geekmidas/audit": "0.0.1",
|
|
69
|
+
"@geekmidas/audit": "0.0.2",
|
|
71
70
|
"@geekmidas/logger": "0.0.1",
|
|
71
|
+
"@geekmidas/events": "0.0.2",
|
|
72
|
+
"@geekmidas/errors": "0.0.1",
|
|
73
|
+
"@geekmidas/cache": "0.0.7",
|
|
72
74
|
"@geekmidas/rate-limit": "0.1.0",
|
|
73
75
|
"@geekmidas/schema": "0.0.2",
|
|
74
|
-
"@geekmidas/services": "0.0.1"
|
|
75
|
-
"@geekmidas/events": "0.0.2",
|
|
76
|
-
"@geekmidas/errors": "0.0.1"
|
|
76
|
+
"@geekmidas/services": "0.0.1"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@types/lodash.compact": "~3.0.9",
|
package/src/crons/Cron.ts
CHANGED
|
@@ -15,14 +15,20 @@ export class Cron<
|
|
|
15
15
|
OutSchema extends StandardSchemaV1 | undefined = undefined,
|
|
16
16
|
TEventPublisher extends EventPublisher<any> | undefined = undefined,
|
|
17
17
|
TEventPublisherServiceName extends string = string,
|
|
18
|
+
TDatabase = undefined,
|
|
19
|
+
TDatabaseServiceName extends string = string,
|
|
18
20
|
> extends Function<
|
|
19
21
|
TInput,
|
|
20
22
|
TServices,
|
|
21
23
|
TLogger,
|
|
22
24
|
OutSchema,
|
|
23
|
-
FunctionHandler<TInput, TServices, TLogger, OutSchema>,
|
|
25
|
+
FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,
|
|
24
26
|
TEventPublisher,
|
|
25
|
-
TEventPublisherServiceName
|
|
27
|
+
TEventPublisherServiceName,
|
|
28
|
+
undefined,
|
|
29
|
+
string,
|
|
30
|
+
TDatabase,
|
|
31
|
+
TDatabaseServiceName
|
|
26
32
|
> {
|
|
27
33
|
static isCron(obj: any): obj is Cron<any, any, any, any> {
|
|
28
34
|
return Boolean(
|
|
@@ -33,7 +39,7 @@ export class Cron<
|
|
|
33
39
|
}
|
|
34
40
|
|
|
35
41
|
constructor(
|
|
36
|
-
fn: FunctionHandler<TInput, TServices, TLogger, OutSchema>,
|
|
42
|
+
fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,
|
|
37
43
|
timeout?: number,
|
|
38
44
|
protected _schedule?: ScheduleExpression,
|
|
39
45
|
input?: TInput,
|
|
@@ -43,6 +49,7 @@ export class Cron<
|
|
|
43
49
|
publisherService?: Service<TEventPublisherServiceName, TEventPublisher>,
|
|
44
50
|
events: any[] = [],
|
|
45
51
|
memorySize?: number,
|
|
52
|
+
databaseService?: Service<TDatabaseServiceName, TDatabase>,
|
|
46
53
|
) {
|
|
47
54
|
super(
|
|
48
55
|
fn,
|
|
@@ -55,6 +62,8 @@ export class Cron<
|
|
|
55
62
|
publisherService,
|
|
56
63
|
events,
|
|
57
64
|
memorySize,
|
|
65
|
+
undefined, // auditorStorageService
|
|
66
|
+
databaseService,
|
|
58
67
|
);
|
|
59
68
|
}
|
|
60
69
|
|
package/src/crons/CronBuilder.ts
CHANGED
|
@@ -19,13 +19,19 @@ export class CronBuilder<
|
|
|
19
19
|
OutSchema extends StandardSchemaV1 | undefined = undefined,
|
|
20
20
|
TEventPublisher extends EventPublisher<any> | undefined = undefined,
|
|
21
21
|
TEventPublisherServiceName extends string = string,
|
|
22
|
+
TDatabase = undefined,
|
|
23
|
+
TDatabaseServiceName extends string = string,
|
|
22
24
|
> extends FunctionBuilder<
|
|
23
25
|
TInput,
|
|
24
26
|
OutSchema,
|
|
25
27
|
TServices,
|
|
26
28
|
TLogger,
|
|
27
29
|
TEventPublisher,
|
|
28
|
-
TEventPublisherServiceName
|
|
30
|
+
TEventPublisherServiceName,
|
|
31
|
+
undefined,
|
|
32
|
+
string,
|
|
33
|
+
TDatabase,
|
|
34
|
+
TDatabaseServiceName
|
|
29
35
|
> {
|
|
30
36
|
private _schedule?: ScheduleExpression;
|
|
31
37
|
|
|
@@ -46,7 +52,9 @@ export class CronBuilder<
|
|
|
46
52
|
TLogger,
|
|
47
53
|
OutSchema,
|
|
48
54
|
TEventPublisher,
|
|
49
|
-
TEventPublisherServiceName
|
|
55
|
+
TEventPublisherServiceName,
|
|
56
|
+
TDatabase,
|
|
57
|
+
TDatabaseServiceName
|
|
50
58
|
> {
|
|
51
59
|
this._schedule = _expression;
|
|
52
60
|
return this;
|
|
@@ -60,7 +68,9 @@ export class CronBuilder<
|
|
|
60
68
|
TLogger,
|
|
61
69
|
OutSchema,
|
|
62
70
|
TEventPublisher,
|
|
63
|
-
TEventPublisherServiceName
|
|
71
|
+
TEventPublisherServiceName,
|
|
72
|
+
TDatabase,
|
|
73
|
+
TDatabaseServiceName
|
|
64
74
|
> {
|
|
65
75
|
this.inputSchema = schema as unknown as TInput;
|
|
66
76
|
|
|
@@ -70,7 +80,9 @@ export class CronBuilder<
|
|
|
70
80
|
TLogger,
|
|
71
81
|
OutSchema,
|
|
72
82
|
TEventPublisher,
|
|
73
|
-
TEventPublisherServiceName
|
|
83
|
+
TEventPublisherServiceName,
|
|
84
|
+
TDatabase,
|
|
85
|
+
TDatabaseServiceName
|
|
74
86
|
>;
|
|
75
87
|
}
|
|
76
88
|
|
|
@@ -82,7 +94,9 @@ export class CronBuilder<
|
|
|
82
94
|
TLogger,
|
|
83
95
|
T,
|
|
84
96
|
TEventPublisher,
|
|
85
|
-
TEventPublisherServiceName
|
|
97
|
+
TEventPublisherServiceName,
|
|
98
|
+
TDatabase,
|
|
99
|
+
TDatabaseServiceName
|
|
86
100
|
> {
|
|
87
101
|
this.outputSchema = schema as unknown as OutSchema;
|
|
88
102
|
|
|
@@ -92,7 +106,9 @@ export class CronBuilder<
|
|
|
92
106
|
TLogger,
|
|
93
107
|
T,
|
|
94
108
|
TEventPublisher,
|
|
95
|
-
TEventPublisherServiceName
|
|
109
|
+
TEventPublisherServiceName,
|
|
110
|
+
TDatabase,
|
|
111
|
+
TDatabaseServiceName
|
|
96
112
|
>;
|
|
97
113
|
}
|
|
98
114
|
|
|
@@ -104,7 +120,9 @@ export class CronBuilder<
|
|
|
104
120
|
TLogger,
|
|
105
121
|
OutSchema,
|
|
106
122
|
TEventPublisher,
|
|
107
|
-
TEventPublisherServiceName
|
|
123
|
+
TEventPublisherServiceName,
|
|
124
|
+
TDatabase,
|
|
125
|
+
TDatabaseServiceName
|
|
108
126
|
> {
|
|
109
127
|
this._services = uniqBy(
|
|
110
128
|
[...this._services, ...services],
|
|
@@ -117,7 +135,9 @@ export class CronBuilder<
|
|
|
117
135
|
TLogger,
|
|
118
136
|
OutSchema,
|
|
119
137
|
TEventPublisher,
|
|
120
|
-
TEventPublisherServiceName
|
|
138
|
+
TEventPublisherServiceName,
|
|
139
|
+
TDatabase,
|
|
140
|
+
TDatabaseServiceName
|
|
121
141
|
>;
|
|
122
142
|
}
|
|
123
143
|
|
|
@@ -129,7 +149,9 @@ export class CronBuilder<
|
|
|
129
149
|
T,
|
|
130
150
|
OutSchema,
|
|
131
151
|
TEventPublisher,
|
|
132
|
-
TEventPublisherServiceName
|
|
152
|
+
TEventPublisherServiceName,
|
|
153
|
+
TDatabase,
|
|
154
|
+
TDatabaseServiceName
|
|
133
155
|
> {
|
|
134
156
|
this._logger = logger as unknown as TLogger;
|
|
135
157
|
|
|
@@ -139,13 +161,24 @@ export class CronBuilder<
|
|
|
139
161
|
T,
|
|
140
162
|
OutSchema,
|
|
141
163
|
TEventPublisher,
|
|
142
|
-
TEventPublisherServiceName
|
|
164
|
+
TEventPublisherServiceName,
|
|
165
|
+
TDatabase,
|
|
166
|
+
TDatabaseServiceName
|
|
143
167
|
>;
|
|
144
168
|
}
|
|
145
169
|
|
|
146
170
|
publisher<T extends EventPublisher<any>, TName extends string>(
|
|
147
171
|
publisher: Service<TName, T>,
|
|
148
|
-
): CronBuilder<
|
|
172
|
+
): CronBuilder<
|
|
173
|
+
TInput,
|
|
174
|
+
TServices,
|
|
175
|
+
TLogger,
|
|
176
|
+
OutSchema,
|
|
177
|
+
T,
|
|
178
|
+
TName,
|
|
179
|
+
TDatabase,
|
|
180
|
+
TDatabaseServiceName
|
|
181
|
+
> {
|
|
149
182
|
this._publisher = publisher as unknown as Service<
|
|
150
183
|
TEventPublisherServiceName,
|
|
151
184
|
TEventPublisher
|
|
@@ -157,19 +190,56 @@ export class CronBuilder<
|
|
|
157
190
|
TLogger,
|
|
158
191
|
OutSchema,
|
|
159
192
|
T,
|
|
193
|
+
TName,
|
|
194
|
+
TDatabase,
|
|
195
|
+
TDatabaseServiceName
|
|
196
|
+
>;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Set the database service for this cron job.
|
|
201
|
+
* The database will be available in the handler context as `db`.
|
|
202
|
+
*/
|
|
203
|
+
database<T, TName extends string>(
|
|
204
|
+
service: Service<TName, T>,
|
|
205
|
+
): CronBuilder<
|
|
206
|
+
TInput,
|
|
207
|
+
TServices,
|
|
208
|
+
TLogger,
|
|
209
|
+
OutSchema,
|
|
210
|
+
TEventPublisher,
|
|
211
|
+
TEventPublisherServiceName,
|
|
212
|
+
T,
|
|
213
|
+
TName
|
|
214
|
+
> {
|
|
215
|
+
this._databaseService = service as unknown as Service<
|
|
216
|
+
TDatabaseServiceName,
|
|
217
|
+
TDatabase
|
|
218
|
+
>;
|
|
219
|
+
|
|
220
|
+
return this as unknown as CronBuilder<
|
|
221
|
+
TInput,
|
|
222
|
+
TServices,
|
|
223
|
+
TLogger,
|
|
224
|
+
OutSchema,
|
|
225
|
+
TEventPublisher,
|
|
226
|
+
TEventPublisherServiceName,
|
|
227
|
+
T,
|
|
160
228
|
TName
|
|
161
229
|
>;
|
|
162
230
|
}
|
|
163
231
|
|
|
164
232
|
handle(
|
|
165
|
-
fn: FunctionHandler<TInput, TServices, TLogger, OutSchema>,
|
|
233
|
+
fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,
|
|
166
234
|
): Cron<
|
|
167
235
|
TInput,
|
|
168
236
|
TServices,
|
|
169
237
|
TLogger,
|
|
170
238
|
OutSchema,
|
|
171
239
|
TEventPublisher,
|
|
172
|
-
TEventPublisherServiceName
|
|
240
|
+
TEventPublisherServiceName,
|
|
241
|
+
TDatabase,
|
|
242
|
+
TDatabaseServiceName
|
|
173
243
|
> {
|
|
174
244
|
const cron = new Cron(
|
|
175
245
|
fn,
|
|
@@ -182,6 +252,7 @@ export class CronBuilder<
|
|
|
182
252
|
this._publisher,
|
|
183
253
|
this._events,
|
|
184
254
|
this._memorySize,
|
|
255
|
+
this._databaseService,
|
|
185
256
|
);
|
|
186
257
|
|
|
187
258
|
// Reset builder state after creating the cron to prevent pollution
|
|
@@ -189,6 +260,7 @@ export class CronBuilder<
|
|
|
189
260
|
this._logger = DEFAULT_LOGGER;
|
|
190
261
|
this._events = [];
|
|
191
262
|
this._publisher = undefined;
|
|
263
|
+
this._databaseService = undefined;
|
|
192
264
|
this._schedule = undefined;
|
|
193
265
|
this.inputSchema = undefined;
|
|
194
266
|
this.outputSchema = undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
1
|
import { ConsoleLogger } from '@geekmidas/logger/console';
|
|
3
|
-
import { CronBuilder } from '../CronBuilder';
|
|
4
2
|
import type { Service } from '@geekmidas/services';
|
|
3
|
+
import { describe, expect, it } from 'vitest';
|
|
4
|
+
import { CronBuilder } from '../CronBuilder';
|
|
5
5
|
|
|
6
6
|
const ServiceA = {
|
|
7
7
|
serviceName: 'a' as const,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AuditStorage, AuditableAction } from '@geekmidas/audit';
|
|
2
2
|
import type { Logger } from '@geekmidas/logger';
|
|
3
3
|
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
4
4
|
import type { HttpMethod } from '../types';
|
|
@@ -30,12 +30,12 @@ import type {
|
|
|
30
30
|
InferStandardSchema,
|
|
31
31
|
} from '@geekmidas/schema';
|
|
32
32
|
import { publishConstructEvents } from '../publisher';
|
|
33
|
+
import type { CookieFn, HeaderFn } from './Endpoint';
|
|
34
|
+
import type { MappedAudit } from './audit';
|
|
33
35
|
import {
|
|
34
|
-
type AuditExecutionContext,
|
|
35
36
|
createAuditContext,
|
|
36
37
|
executeWithAuditTransaction,
|
|
37
38
|
} from './processAudits';
|
|
38
|
-
import type { MappedAudit } from './audit';
|
|
39
39
|
|
|
40
40
|
// Helper function to publish events
|
|
41
41
|
|
|
@@ -259,15 +259,37 @@ export abstract class AmazonApiGatewayEndpoint<
|
|
|
259
259
|
);
|
|
260
260
|
|
|
261
261
|
// Warn if declarative audits are configured but no audit storage
|
|
262
|
-
const audits = this.endpoint.audits as MappedAudit<
|
|
262
|
+
const audits = this.endpoint.audits as MappedAudit<
|
|
263
|
+
TAuditAction,
|
|
264
|
+
TOutSchema
|
|
265
|
+
>[];
|
|
263
266
|
if (!auditContext && audits?.length) {
|
|
264
267
|
logger.warn('No auditor storage service available');
|
|
265
268
|
}
|
|
266
269
|
|
|
270
|
+
// Resolve database service if configured
|
|
271
|
+
const rawDb = this.endpoint.databaseService
|
|
272
|
+
? await serviceDiscovery
|
|
273
|
+
.register([this.endpoint.databaseService])
|
|
274
|
+
.then(
|
|
275
|
+
(s) =>
|
|
276
|
+
s[this.endpoint.databaseService!.serviceName as keyof typeof s],
|
|
277
|
+
)
|
|
278
|
+
: undefined;
|
|
279
|
+
|
|
267
280
|
// Execute handler with automatic audit transaction support
|
|
268
281
|
const result = await executeWithAuditTransaction(
|
|
269
282
|
auditContext,
|
|
270
283
|
async (auditor) => {
|
|
284
|
+
// Use audit transaction as db only if the storage uses the same database service
|
|
285
|
+
const sameDatabase =
|
|
286
|
+
auditContext?.storage?.databaseServiceName &&
|
|
287
|
+
auditContext.storage.databaseServiceName ===
|
|
288
|
+
this.endpoint.databaseService?.serviceName;
|
|
289
|
+
const db = sameDatabase
|
|
290
|
+
? (auditor?.getTransaction?.() ?? rawDb)
|
|
291
|
+
: rawDb;
|
|
292
|
+
|
|
271
293
|
const responseBuilder = new ResponseBuilder();
|
|
272
294
|
const response = await this.endpoint.handler(
|
|
273
295
|
{
|
|
@@ -277,6 +299,7 @@ export abstract class AmazonApiGatewayEndpoint<
|
|
|
277
299
|
services: event.services,
|
|
278
300
|
session: event.session,
|
|
279
301
|
auditor,
|
|
302
|
+
db,
|
|
280
303
|
...input,
|
|
281
304
|
} as any,
|
|
282
305
|
responseBuilder,
|
|
@@ -374,8 +397,8 @@ export type Event<
|
|
|
374
397
|
> = {
|
|
375
398
|
services: ServiceRecord<TServices>;
|
|
376
399
|
logger: TLogger;
|
|
377
|
-
header
|
|
378
|
-
cookie
|
|
400
|
+
header: HeaderFn;
|
|
401
|
+
cookie: CookieFn;
|
|
379
402
|
session: TSession;
|
|
380
403
|
} & TEvent &
|
|
381
404
|
InferComposableStandardSchema<TInput>;
|