@geekmidas/constructs 3.0.7 → 3.0.8
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/CHANGELOG.md +9 -0
- package/dist/{Construct-BXG8cFSm.cjs → Construct-B14miJ6P.cjs} +95 -10
- package/dist/Construct-B14miJ6P.cjs.map +1 -0
- package/dist/{Construct-BjpXFNxy.d.mts → Construct-CXqvzglu.d.cts} +11 -6
- package/dist/{Construct-BjpXFNxy.d.mts.map → Construct-CXqvzglu.d.cts.map} +1 -1
- package/dist/{Construct-CQ9zV58W.mjs → Construct-CdJY2DJS.mjs} +83 -9
- package/dist/Construct-CdJY2DJS.mjs.map +1 -0
- package/dist/{Construct-CX7HyFfT.d.cts → Construct-D0n7QTaI.d.mts} +13 -8
- package/dist/Construct-D0n7QTaI.d.mts.map +1 -0
- package/dist/{Endpoint-CGdCGJkC.d.cts → Endpoint-C991gK3T.d.cts} +130 -27
- package/dist/Endpoint-C991gK3T.d.cts.map +1 -0
- package/dist/{Endpoint-BET0JSZK.d.mts → Endpoint-CRHpLPV3.d.mts} +130 -27
- package/dist/Endpoint-CRHpLPV3.d.mts.map +1 -0
- package/dist/{HonoEndpointAdaptor-B5fKdLi7.cjs → HonoEndpointAdaptor-BDz1qM4z.cjs} +81 -24
- package/dist/HonoEndpointAdaptor-BDz1qM4z.cjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-DOUODM7n.mjs → HonoEndpointAdaptor-DPBfEPZj.mjs} +64 -7
- package/dist/HonoEndpointAdaptor-DPBfEPZj.mjs.map +1 -0
- package/dist/{Subscriber-1rDE7HuM.d.cts → Subscriber-D8WkA8np.d.cts} +3 -3
- package/dist/{Subscriber-1rDE7HuM.d.cts.map → Subscriber-D8WkA8np.d.cts.map} +1 -1
- package/dist/{Subscriber-9ObcUdcC.d.mts → Subscriber-Tft61-YG.d.mts} +5 -5
- package/dist/Subscriber-Tft61-YG.d.mts.map +1 -0
- package/dist/adaptors/aws.cjs +737 -21
- package/dist/adaptors/aws.cjs.map +1 -0
- package/dist/adaptors/aws.d.cts +221 -17
- package/dist/adaptors/aws.d.cts.map +1 -0
- package/dist/adaptors/aws.d.mts +221 -17
- package/dist/adaptors/aws.d.mts.map +1 -0
- package/dist/adaptors/aws.mjs +734 -18
- package/dist/adaptors/aws.mjs.map +1 -0
- package/dist/adaptors/hono.cjs +5 -12
- package/dist/adaptors/hono.d.cts +52 -10
- package/dist/adaptors/hono.d.cts.map +1 -0
- package/dist/adaptors/hono.d.mts +52 -10
- package/dist/adaptors/hono.d.mts.map +1 -0
- package/dist/adaptors/hono.mjs +5 -12
- package/dist/adaptors/testing.cjs +392 -21
- package/dist/adaptors/testing.cjs.map +1 -0
- package/dist/adaptors/testing.d.cts +177 -14
- package/dist/adaptors/testing.d.cts.map +1 -0
- package/dist/adaptors/testing.d.mts +177 -14
- package/dist/adaptors/testing.d.mts.map +1 -0
- package/dist/adaptors/testing.mjs +388 -17
- package/dist/adaptors/testing.mjs.map +1 -0
- package/dist/crons/index.cjs +82 -10
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +48 -11
- package/dist/crons/index.d.cts.map +1 -1
- package/dist/crons/index.d.mts +45 -11
- package/dist/crons/index.d.mts.map +1 -1
- package/dist/crons/index.mjs +79 -7
- package/dist/crons/index.mjs.map +1 -1
- package/dist/endpoints/index.cjs +717 -23
- package/dist/endpoints/index.cjs.map +1 -1
- package/dist/endpoints/index.d.cts +316 -14
- package/dist/endpoints/index.d.cts.map +1 -1
- package/dist/endpoints/index.d.mts +315 -14
- package/dist/endpoints/index.d.mts.map +1 -1
- package/dist/endpoints/index.mjs +706 -12
- package/dist/endpoints/index.mjs.map +1 -1
- package/dist/functions/index.cjs +5 -8
- package/dist/functions/index.d.cts +2 -5
- package/dist/functions/index.d.mts +2 -5
- package/dist/functions/index.mjs +2 -5
- package/dist/functions-DiaRAdfp.cjs +2893 -0
- package/dist/functions-DiaRAdfp.cjs.map +1 -0
- package/dist/functions-GmSHFbpr.mjs +2864 -0
- package/dist/functions-GmSHFbpr.mjs.map +1 -0
- package/dist/index-Cq4fz8uM.d.mts +132 -0
- package/dist/index-Cq4fz8uM.d.mts.map +1 -0
- package/dist/index-CzIMpK-e.d.cts +135 -0
- package/dist/index-CzIMpK-e.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-CJZYs9uM.mjs +1887 -0
- package/dist/lazyAccessors-CJZYs9uM.mjs.map +1 -0
- package/dist/lazyAccessors-DHvDeww0.cjs +1964 -0
- package/dist/lazyAccessors-DHvDeww0.cjs.map +1 -0
- package/dist/processAudits-B0PbJf1Z.mjs +80 -0
- package/dist/processAudits-B0PbJf1Z.mjs.map +1 -0
- package/dist/processAudits-CUko08pi.cjs +92 -0
- package/dist/processAudits-CUko08pi.cjs.map +1 -0
- package/dist/subscribers/index.cjs +77 -6
- package/dist/subscribers/index.cjs.map +1 -1
- package/dist/subscribers/index.d.cts +27 -5
- package/dist/subscribers/index.d.cts.map +1 -1
- package/dist/subscribers/index.d.mts +26 -5
- package/dist/subscribers/index.d.mts.map +1 -1
- package/dist/subscribers/index.mjs +74 -3
- package/dist/subscribers/index.mjs.map +1 -1
- package/dist/{telemetry-BTaiRqPo.d.cts → telemetry-Bt0vK4ma.d.cts} +1 -1
- package/dist/{telemetry-BJo1gcV1.d.mts.map → telemetry-Bt0vK4ma.d.cts.map} +1 -1
- package/dist/{telemetry-BJo1gcV1.d.mts → telemetry-COvVBKBM.d.mts} +1 -1
- package/dist/{telemetry-BTaiRqPo.d.cts.map → telemetry-COvVBKBM.d.mts.map} +1 -1
- package/dist/{types-B5H3piDg.d.cts → types-B8YlI4cx.d.cts} +1 -1
- package/dist/{types-B5H3piDg.d.cts.map → types-B8YlI4cx.d.cts.map} +1 -1
- package/dist/{types-BqPOdHEm.d.mts → types-BA3eK4xj.d.mts} +1 -1
- package/dist/{types-BqPOdHEm.d.mts.map → types-BA3eK4xj.d.mts.map} +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/package.json +9 -9
- package/src/Construct.ts +26 -8
- package/src/__tests__/Construct.environment.spec.ts +123 -0
- package/src/endpoints/__tests__/MswEndpointAdaptor.spec.ts +1 -9
- package/tsdown.config.ts +30 -1
- package/dist/AWSLambdaFunction-CC8gMZhz.d.mts +0 -32
- package/dist/AWSLambdaFunction-CC8gMZhz.d.mts.map +0 -1
- package/dist/AWSLambdaFunction-CPEAl5nZ.cjs +0 -120
- package/dist/AWSLambdaFunction-CPEAl5nZ.cjs.map +0 -1
- package/dist/AWSLambdaFunction-DJiCAPAf.mjs +0 -114
- package/dist/AWSLambdaFunction-DJiCAPAf.mjs.map +0 -1
- package/dist/AWSLambdaFunction-tzqv5XU6.d.cts +0 -32
- package/dist/AWSLambdaFunction-tzqv5XU6.d.cts.map +0 -1
- package/dist/AWSLambdaSubscriberAdaptor-Cj1wjkUP.d.cts +0 -36
- package/dist/AWSLambdaSubscriberAdaptor-Cj1wjkUP.d.cts.map +0 -1
- package/dist/AWSLambdaSubscriberAdaptor-Cmx9OQGG.d.mts +0 -36
- package/dist/AWSLambdaSubscriberAdaptor-Cmx9OQGG.d.mts.map +0 -1
- package/dist/AWSLambdaSubscriberAdaptor-RKwKYLl1.mjs +0 -172
- package/dist/AWSLambdaSubscriberAdaptor-RKwKYLl1.mjs.map +0 -1
- package/dist/AWSLambdaSubscriberAdaptor-eZ3qoKvK.cjs +0 -178
- package/dist/AWSLambdaSubscriberAdaptor-eZ3qoKvK.cjs.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-BIltcbAc.cjs +0 -277
- package/dist/AmazonApiGatewayEndpointAdaptor-BIltcbAc.cjs.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-BpYtYCeW.mjs +0 -271
- package/dist/AmazonApiGatewayEndpointAdaptor-BpYtYCeW.mjs.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-DA0rS_1Y.d.mts +0 -124
- package/dist/AmazonApiGatewayEndpointAdaptor-DA0rS_1Y.d.mts.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-DqNcQGMf.d.cts +0 -124
- package/dist/AmazonApiGatewayEndpointAdaptor-DqNcQGMf.d.cts.map +0 -1
- package/dist/AmazonApiGatewayV1EndpointAdaptor-C7rJzNvG.d.mts +0 -23
- package/dist/AmazonApiGatewayV1EndpointAdaptor-C7rJzNvG.d.mts.map +0 -1
- package/dist/AmazonApiGatewayV1EndpointAdaptor-CRwyWT6t.mjs +0 -42
- package/dist/AmazonApiGatewayV1EndpointAdaptor-CRwyWT6t.mjs.map +0 -1
- package/dist/AmazonApiGatewayV1EndpointAdaptor-DEETT6Wj.cjs +0 -47
- package/dist/AmazonApiGatewayV1EndpointAdaptor-DEETT6Wj.cjs.map +0 -1
- package/dist/AmazonApiGatewayV1EndpointAdaptor-DcN2fYsv.d.cts +0 -23
- package/dist/AmazonApiGatewayV1EndpointAdaptor-DcN2fYsv.d.cts.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-C2qO8FN6.cjs +0 -48
- package/dist/AmazonApiGatewayV2EndpointAdaptor-C2qO8FN6.cjs.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-Cn9UoRgB.d.cts +0 -22
- package/dist/AmazonApiGatewayV2EndpointAdaptor-Cn9UoRgB.d.cts.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-d7NP-bZX.d.mts +0 -22
- package/dist/AmazonApiGatewayV2EndpointAdaptor-d7NP-bZX.d.mts.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-m9YKI294.mjs +0 -42
- package/dist/AmazonApiGatewayV2EndpointAdaptor-m9YKI294.mjs.map +0 -1
- package/dist/Authorizer-BZ1LcZFt.cjs +0 -92
- package/dist/Authorizer-BZ1LcZFt.cjs.map +0 -1
- package/dist/Authorizer-C5_FC_Rq.d.mts +0 -126
- package/dist/Authorizer-C5_FC_Rq.d.mts.map +0 -1
- package/dist/Authorizer-CZpg1Jqk.mjs +0 -68
- package/dist/Authorizer-CZpg1Jqk.mjs.map +0 -1
- package/dist/Authorizer-DWtwC8we.d.cts +0 -126
- package/dist/Authorizer-DWtwC8we.d.cts.map +0 -1
- package/dist/BaseFunctionBuilder-C-4hYTfj.d.cts +0 -42
- package/dist/BaseFunctionBuilder-C-4hYTfj.d.cts.map +0 -1
- package/dist/BaseFunctionBuilder-C3rQMoWb.mjs +0 -70
- package/dist/BaseFunctionBuilder-C3rQMoWb.mjs.map +0 -1
- package/dist/BaseFunctionBuilder-DXf6HK-N.cjs +0 -76
- package/dist/BaseFunctionBuilder-DXf6HK-N.cjs.map +0 -1
- package/dist/BaseFunctionBuilder-Q5qIlF-F.d.mts +0 -42
- package/dist/BaseFunctionBuilder-Q5qIlF-F.d.mts.map +0 -1
- package/dist/Construct-BXG8cFSm.cjs.map +0 -1
- package/dist/Construct-CQ9zV58W.mjs.map +0 -1
- package/dist/Construct-CX7HyFfT.d.cts.map +0 -1
- package/dist/Construct.cjs +0 -6
- package/dist/Construct.d.cts +0 -2
- package/dist/Construct.d.mts +0 -2
- package/dist/Construct.mjs +0 -3
- package/dist/Cron-BljK1gsV.d.mts +0 -26
- package/dist/Cron-BljK1gsV.d.mts.map +0 -1
- package/dist/Cron-C1vyfJ8B.cjs +0 -25
- package/dist/Cron-C1vyfJ8B.cjs.map +0 -1
- package/dist/Cron-CjWQEad0.mjs +0 -20
- package/dist/Cron-CjWQEad0.mjs.map +0 -1
- package/dist/Cron-CllHkk3z.d.cts +0 -26
- package/dist/Cron-CllHkk3z.d.cts.map +0 -1
- package/dist/CronBuilder-CAJFtnmZ.mjs +0 -68
- package/dist/CronBuilder-CAJFtnmZ.mjs.map +0 -1
- package/dist/CronBuilder-CG54f9LM.d.mts +0 -32
- package/dist/CronBuilder-CG54f9LM.d.mts.map +0 -1
- package/dist/CronBuilder-CSMd02lu.cjs +0 -74
- package/dist/CronBuilder-CSMd02lu.cjs.map +0 -1
- package/dist/CronBuilder-i23l40xs.d.cts +0 -32
- package/dist/CronBuilder-i23l40xs.d.cts.map +0 -1
- package/dist/Endpoint-BET0JSZK.d.mts.map +0 -1
- package/dist/Endpoint-BcxvF4F3.cjs +0 -440
- package/dist/Endpoint-BcxvF4F3.cjs.map +0 -1
- package/dist/Endpoint-CGdCGJkC.d.cts.map +0 -1
- package/dist/Endpoint-DvY3aqAy.mjs +0 -422
- package/dist/Endpoint-DvY3aqAy.mjs.map +0 -1
- package/dist/EndpointBuilder-6kdrQyIh.d.mts +0 -146
- package/dist/EndpointBuilder-6kdrQyIh.d.mts.map +0 -1
- package/dist/EndpointBuilder-CSwIguiR.d.cts +0 -146
- package/dist/EndpointBuilder-CSwIguiR.d.cts.map +0 -1
- package/dist/EndpointBuilder-EptJojG9.cjs +0 -268
- package/dist/EndpointBuilder-EptJojG9.cjs.map +0 -1
- package/dist/EndpointBuilder-iDpnACRb.mjs +0 -262
- package/dist/EndpointBuilder-iDpnACRb.mjs.map +0 -1
- package/dist/EndpointFactory-CBagQW5j.d.mts +0 -142
- package/dist/EndpointFactory-CBagQW5j.d.mts.map +0 -1
- package/dist/EndpointFactory-D2QxeaAh.cjs +0 -393
- package/dist/EndpointFactory-D2QxeaAh.cjs.map +0 -1
- package/dist/EndpointFactory-DQYSH8XK.d.cts +0 -142
- package/dist/EndpointFactory-DQYSH8XK.d.cts.map +0 -1
- package/dist/EndpointFactory-wgcqWod-.mjs +0 -381
- package/dist/EndpointFactory-wgcqWod-.mjs.map +0 -1
- package/dist/Function-CwlB89lS.d.cts +0 -76
- package/dist/Function-CwlB89lS.d.cts.map +0 -1
- package/dist/Function-D74HrBnX.d.mts +0 -76
- package/dist/Function-D74HrBnX.d.mts.map +0 -1
- package/dist/Function-DgQ_no6B.cjs +0 -84
- package/dist/Function-DgQ_no6B.cjs.map +0 -1
- package/dist/Function-xfQbftdE.mjs +0 -72
- package/dist/Function-xfQbftdE.mjs.map +0 -1
- package/dist/FunctionBuilder-CBeqX18X.mjs +0 -80
- package/dist/FunctionBuilder-CBeqX18X.mjs.map +0 -1
- package/dist/FunctionBuilder-C_qPxC8g.d.mts +0 -40
- package/dist/FunctionBuilder-C_qPxC8g.d.mts.map +0 -1
- package/dist/FunctionBuilder-C_xG9As7.cjs +0 -86
- package/dist/FunctionBuilder-C_xG9As7.cjs.map +0 -1
- package/dist/FunctionBuilder-D_7f5MfS.d.cts +0 -40
- package/dist/FunctionBuilder-D_7f5MfS.d.cts.map +0 -1
- package/dist/FunctionExecutionWrapper-B0ZAssiy.mjs +0 -101
- package/dist/FunctionExecutionWrapper-B0ZAssiy.mjs.map +0 -1
- package/dist/FunctionExecutionWrapper-Cg8HjuHL.d.cts +0 -50
- package/dist/FunctionExecutionWrapper-Cg8HjuHL.d.cts.map +0 -1
- package/dist/FunctionExecutionWrapper-KKHP6fDY.cjs +0 -107
- package/dist/FunctionExecutionWrapper-KKHP6fDY.cjs.map +0 -1
- package/dist/FunctionExecutionWrapper-xbTmBARx.d.mts +0 -50
- package/dist/FunctionExecutionWrapper-xbTmBARx.d.mts.map +0 -1
- package/dist/HonoEndpointAdaptor-B5fKdLi7.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-C2deTEwW.d.mts +0 -50
- package/dist/HonoEndpointAdaptor-C2deTEwW.d.mts.map +0 -1
- package/dist/HonoEndpointAdaptor-D3IgM-0B.d.cts +0 -50
- package/dist/HonoEndpointAdaptor-D3IgM-0B.d.cts.map +0 -1
- package/dist/HonoEndpointAdaptor-DOUODM7n.mjs.map +0 -1
- package/dist/MswEndpointAdaptor-B41INCc7.mjs +0 -108
- package/dist/MswEndpointAdaptor-B41INCc7.mjs.map +0 -1
- package/dist/MswEndpointAdaptor-CA_fu6Wx.cjs +0 -120
- package/dist/MswEndpointAdaptor-CA_fu6Wx.cjs.map +0 -1
- package/dist/MswEndpointAdaptor-CXgYbOxw.d.mts +0 -101
- package/dist/MswEndpointAdaptor-CXgYbOxw.d.mts.map +0 -1
- package/dist/MswEndpointAdaptor-CsYvrQeB.d.cts +0 -101
- package/dist/MswEndpointAdaptor-CsYvrQeB.d.cts.map +0 -1
- package/dist/Subscriber-9ObcUdcC.d.mts.map +0 -1
- package/dist/Subscriber-BH76wgkL.mjs +0 -28
- package/dist/Subscriber-BH76wgkL.mjs.map +0 -1
- package/dist/Subscriber-BgspJeS4.cjs +0 -34
- package/dist/Subscriber-BgspJeS4.cjs.map +0 -1
- package/dist/SubscriberBuilder-B4md5wzs.mjs +0 -54
- package/dist/SubscriberBuilder-B4md5wzs.mjs.map +0 -1
- package/dist/SubscriberBuilder-Be7WBbCL.d.cts +0 -28
- package/dist/SubscriberBuilder-Be7WBbCL.d.cts.map +0 -1
- package/dist/SubscriberBuilder-BtL22ZJ9.cjs +0 -60
- package/dist/SubscriberBuilder-BtL22ZJ9.cjs.map +0 -1
- package/dist/SubscriberBuilder-DsfIkgTF.d.mts +0 -28
- package/dist/SubscriberBuilder-DsfIkgTF.d.mts.map +0 -1
- package/dist/TestEndpointAdaptor-BFmgf7Fn.mjs +0 -174
- package/dist/TestEndpointAdaptor-BFmgf7Fn.mjs.map +0 -1
- package/dist/TestEndpointAdaptor-C79Z-QS4.d.mts +0 -45
- package/dist/TestEndpointAdaptor-C79Z-QS4.d.mts.map +0 -1
- package/dist/TestEndpointAdaptor-DYLDyAAC.cjs +0 -180
- package/dist/TestEndpointAdaptor-DYLDyAAC.cjs.map +0 -1
- package/dist/TestEndpointAdaptor-pM8yskbb.d.cts +0 -45
- package/dist/TestEndpointAdaptor-pM8yskbb.d.cts.map +0 -1
- package/dist/TestFunctionAdaptor-B859kIeb.cjs +0 -81
- package/dist/TestFunctionAdaptor-B859kIeb.cjs.map +0 -1
- package/dist/TestFunctionAdaptor-C0A-VqnM.d.mts +0 -30
- package/dist/TestFunctionAdaptor-C0A-VqnM.d.mts.map +0 -1
- package/dist/TestFunctionAdaptor-CqdSlhx1.mjs +0 -75
- package/dist/TestFunctionAdaptor-CqdSlhx1.mjs.map +0 -1
- package/dist/TestFunctionAdaptor-Dbq55dKP.d.cts +0 -30
- package/dist/TestFunctionAdaptor-Dbq55dKP.d.cts.map +0 -1
- package/dist/TestSubscriberAdaptor-BEyCFP9G.d.mts +0 -26
- package/dist/TestSubscriberAdaptor-BEyCFP9G.d.mts.map +0 -1
- package/dist/TestSubscriberAdaptor-BknOLRQw.d.cts +0 -26
- package/dist/TestSubscriberAdaptor-BknOLRQw.d.cts.map +0 -1
- package/dist/TestSubscriberAdaptor-CCcviuKa.mjs +0 -51
- package/dist/TestSubscriberAdaptor-CCcviuKa.mjs.map +0 -1
- package/dist/TestSubscriberAdaptor-_69o1d0f.cjs +0 -57
- package/dist/TestSubscriberAdaptor-_69o1d0f.cjs.map +0 -1
- package/dist/chunk-CUT6urMc.cjs +0 -30
- package/dist/crons/Cron.cjs +0 -8
- package/dist/crons/Cron.d.cts +0 -7
- package/dist/crons/Cron.d.mts +0 -7
- package/dist/crons/Cron.mjs +0 -8
- package/dist/crons/CronBuilder.cjs +0 -9
- package/dist/crons/CronBuilder.d.cts +0 -8
- package/dist/crons/CronBuilder.d.mts +0 -8
- package/dist/crons/CronBuilder.mjs +0 -9
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +0 -11
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +0 -11
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +0 -11
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +0 -11
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +0 -13
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +0 -12
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +0 -12
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +0 -13
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +0 -13
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +0 -12
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +0 -12
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +0 -13
- package/dist/endpoints/Authorizer.cjs +0 -6
- package/dist/endpoints/Authorizer.d.cts +0 -2
- package/dist/endpoints/Authorizer.d.mts +0 -2
- package/dist/endpoints/Authorizer.mjs +0 -3
- package/dist/endpoints/Endpoint.cjs +0 -10
- package/dist/endpoints/Endpoint.d.cts +0 -9
- package/dist/endpoints/Endpoint.d.mts +0 -9
- package/dist/endpoints/Endpoint.mjs +0 -8
- package/dist/endpoints/EndpointBuilder.cjs +0 -11
- package/dist/endpoints/EndpointBuilder.d.cts +0 -10
- package/dist/endpoints/EndpointBuilder.d.mts +0 -10
- package/dist/endpoints/EndpointBuilder.mjs +0 -11
- package/dist/endpoints/EndpointFactory.cjs +0 -13
- package/dist/endpoints/EndpointFactory.d.cts +0 -11
- package/dist/endpoints/EndpointFactory.d.mts +0 -11
- package/dist/endpoints/EndpointFactory.mjs +0 -12
- package/dist/endpoints/HonoEndpointAdaptor.cjs +0 -14
- package/dist/endpoints/HonoEndpointAdaptor.d.cts +0 -10
- package/dist/endpoints/HonoEndpointAdaptor.d.mts +0 -10
- package/dist/endpoints/HonoEndpointAdaptor.mjs +0 -14
- package/dist/endpoints/MswEndpointAdaptor.cjs +0 -16
- package/dist/endpoints/MswEndpointAdaptor.d.cts +0 -10
- package/dist/endpoints/MswEndpointAdaptor.d.mts +0 -10
- package/dist/endpoints/MswEndpointAdaptor.mjs +0 -15
- package/dist/endpoints/TestEndpointAdaptor.cjs +0 -12
- package/dist/endpoints/TestEndpointAdaptor.d.cts +0 -10
- package/dist/endpoints/TestEndpointAdaptor.d.mts +0 -10
- package/dist/endpoints/TestEndpointAdaptor.mjs +0 -12
- package/dist/endpoints/audit.cjs +0 -0
- package/dist/endpoints/audit.d.cts +0 -9
- package/dist/endpoints/audit.d.mts +0 -9
- package/dist/endpoints/audit.mjs +0 -0
- package/dist/endpoints/helpers.cjs +0 -10
- package/dist/endpoints/helpers.d.cts +0 -60
- package/dist/endpoints/helpers.d.cts.map +0 -1
- package/dist/endpoints/helpers.d.mts +0 -60
- package/dist/endpoints/helpers.d.mts.map +0 -1
- package/dist/endpoints/helpers.mjs +0 -9
- package/dist/endpoints/lazyAccessors.cjs +0 -10
- package/dist/endpoints/lazyAccessors.d.cts +0 -10
- package/dist/endpoints/lazyAccessors.d.mts +0 -10
- package/dist/endpoints/lazyAccessors.mjs +0 -3
- package/dist/endpoints/parseHonoQuery.cjs +0 -3
- package/dist/endpoints/parseHonoQuery.d.cts +0 -14
- package/dist/endpoints/parseHonoQuery.d.cts.map +0 -1
- package/dist/endpoints/parseHonoQuery.d.mts +0 -14
- package/dist/endpoints/parseHonoQuery.d.mts.map +0 -1
- package/dist/endpoints/parseHonoQuery.mjs +0 -3
- package/dist/endpoints/parseQueryParams.cjs +0 -3
- package/dist/endpoints/parseQueryParams.d.cts +0 -14
- package/dist/endpoints/parseQueryParams.d.cts.map +0 -1
- package/dist/endpoints/parseQueryParams.d.mts +0 -14
- package/dist/endpoints/parseQueryParams.d.mts.map +0 -1
- package/dist/endpoints/parseQueryParams.mjs +0 -3
- package/dist/endpoints/processAudits.cjs +0 -5
- package/dist/endpoints/processAudits.d.cts +0 -95
- package/dist/endpoints/processAudits.d.cts.map +0 -1
- package/dist/endpoints/processAudits.d.mts +0 -95
- package/dist/endpoints/processAudits.d.mts.map +0 -1
- package/dist/endpoints/processAudits.mjs +0 -3
- package/dist/endpoints/rls.cjs +0 -3
- package/dist/endpoints/rls.d.cts +0 -9
- package/dist/endpoints/rls.d.mts +0 -9
- package/dist/endpoints/rls.mjs +0 -3
- package/dist/functions/AWSLambdaFunction.cjs +0 -9
- package/dist/functions/AWSLambdaFunction.d.cts +0 -5
- package/dist/functions/AWSLambdaFunction.d.mts +0 -5
- package/dist/functions/AWSLambdaFunction.mjs +0 -9
- package/dist/functions/BaseFunctionBuilder.cjs +0 -4
- package/dist/functions/BaseFunctionBuilder.d.cts +0 -3
- package/dist/functions/BaseFunctionBuilder.d.mts +0 -3
- package/dist/functions/BaseFunctionBuilder.mjs +0 -4
- package/dist/functions/Function.cjs +0 -5
- package/dist/functions/Function.d.cts +0 -3
- package/dist/functions/Function.d.mts +0 -3
- package/dist/functions/Function.mjs +0 -4
- package/dist/functions/FunctionBuilder.cjs +0 -6
- package/dist/functions/FunctionBuilder.d.cts +0 -5
- package/dist/functions/FunctionBuilder.d.mts +0 -5
- package/dist/functions/FunctionBuilder.mjs +0 -6
- package/dist/functions/FunctionExecutionWrapper.cjs +0 -8
- package/dist/functions/FunctionExecutionWrapper.d.cts +0 -4
- package/dist/functions/FunctionExecutionWrapper.d.mts +0 -4
- package/dist/functions/FunctionExecutionWrapper.mjs +0 -8
- package/dist/functions/TestFunctionAdaptor.cjs +0 -8
- package/dist/functions/TestFunctionAdaptor.d.cts +0 -4
- package/dist/functions/TestFunctionAdaptor.d.mts +0 -4
- package/dist/functions/TestFunctionAdaptor.mjs +0 -8
- package/dist/functions-B1mrMoUH.mjs +0 -8
- package/dist/functions-B1mrMoUH.mjs.map +0 -1
- package/dist/functions-rOD3pXQd.cjs +0 -13
- package/dist/functions-rOD3pXQd.cjs.map +0 -1
- package/dist/helpers-BYyX0qTA.cjs +0 -95
- package/dist/helpers-BYyX0qTA.cjs.map +0 -1
- package/dist/helpers-BtwC2IW8.mjs +0 -83
- package/dist/helpers-BtwC2IW8.mjs.map +0 -1
- package/dist/index-BfeupgMl.d.cts +0 -12
- package/dist/index-BfeupgMl.d.cts.map +0 -1
- package/dist/index-Cg2UDz1r.d.mts +0 -12
- package/dist/index-Cg2UDz1r.d.mts.map +0 -1
- package/dist/lazyAccessors-BVEtB9lU.cjs +0 -223
- package/dist/lazyAccessors-BVEtB9lU.cjs.map +0 -1
- package/dist/lazyAccessors-Bxy5DBp4.d.cts +0 -49
- package/dist/lazyAccessors-Bxy5DBp4.d.cts.map +0 -1
- package/dist/lazyAccessors-CWFdtzSR.d.mts +0 -49
- package/dist/lazyAccessors-CWFdtzSR.d.mts.map +0 -1
- package/dist/lazyAccessors-DM6HcXQk.mjs +0 -175
- package/dist/lazyAccessors-DM6HcXQk.mjs.map +0 -1
- package/dist/parseHonoQuery-BBs8CX-H.cjs +0 -24
- package/dist/parseHonoQuery-BBs8CX-H.cjs.map +0 -1
- package/dist/parseHonoQuery-Cp8CII0P.mjs +0 -18
- package/dist/parseHonoQuery-Cp8CII0P.mjs.map +0 -1
- package/dist/parseQueryParams-B4RK1za3.cjs +0 -31
- package/dist/parseQueryParams-B4RK1za3.cjs.map +0 -1
- package/dist/parseQueryParams-DS3Qmrbd.mjs +0 -25
- package/dist/parseQueryParams-DS3Qmrbd.mjs.map +0 -1
- package/dist/processAudits-CzHkPokQ.cjs +0 -180
- package/dist/processAudits-CzHkPokQ.cjs.map +0 -1
- package/dist/processAudits-Dj8UGqcW.mjs +0 -162
- package/dist/processAudits-Dj8UGqcW.mjs.map +0 -1
- package/dist/publisher-BUDHcaz3.d.cts +0 -16
- package/dist/publisher-BUDHcaz3.d.cts.map +0 -1
- package/dist/publisher-Bw4770Hi.mjs +0 -41
- package/dist/publisher-Bw4770Hi.mjs.map +0 -1
- package/dist/publisher-DXglijK_.d.mts +0 -16
- package/dist/publisher-DXglijK_.d.mts.map +0 -1
- package/dist/publisher-lFQleddL.cjs +0 -53
- package/dist/publisher-lFQleddL.cjs.map +0 -1
- package/dist/publisher.cjs +0 -4
- package/dist/publisher.d.cts +0 -3
- package/dist/publisher.d.mts +0 -3
- package/dist/publisher.mjs +0 -3
- package/dist/rls-C0r4UKVm.mjs +0 -9
- package/dist/rls-C0r4UKVm.mjs.map +0 -1
- package/dist/rls-Cfb6w-tQ.cjs +0 -15
- package/dist/rls-Cfb6w-tQ.cjs.map +0 -1
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +0 -3
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.cts +0 -4
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +0 -4
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +0 -3
- package/dist/subscribers/Subscriber.cjs +0 -4
- package/dist/subscribers/Subscriber.d.cts +0 -3
- package/dist/subscribers/Subscriber.d.mts +0 -3
- package/dist/subscribers/Subscriber.mjs +0 -4
- package/dist/subscribers/SubscriberBuilder.cjs +0 -5
- package/dist/subscribers/SubscriberBuilder.d.cts +0 -4
- package/dist/subscribers/SubscriberBuilder.d.mts +0 -4
- package/dist/subscribers/SubscriberBuilder.mjs +0 -5
- package/dist/subscribers/TestSubscriberAdaptor.cjs +0 -4
- package/dist/subscribers/TestSubscriberAdaptor.d.cts +0 -4
- package/dist/subscribers/TestSubscriberAdaptor.d.mts +0 -4
- package/dist/subscribers/TestSubscriberAdaptor.mjs +0 -4
- package/dist/telemetry.cjs +0 -0
- package/dist/telemetry.d.cts +0 -2
- package/dist/telemetry.d.mts +0 -2
- package/dist/telemetry.mjs +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointFactory-DQYSH8XK.d.cts","names":[],"sources":["../src/endpoints/EndpointFactory.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
import { getSecurityScheme } from "./Authorizer-CZpg1Jqk.mjs";
|
|
2
|
-
import { EndpointBuilder } from "./EndpointBuilder-iDpnACRb.mjs";
|
|
3
|
-
import { ConsoleLogger } from "@geekmidas/logger/console";
|
|
4
|
-
import uniqBy from "lodash.uniqby";
|
|
5
|
-
|
|
6
|
-
//#region src/endpoints/EndpointFactory.ts
|
|
7
|
-
const DEFAULT_LOGGER$1 = new ConsoleLogger();
|
|
8
|
-
var EndpointFactory = class EndpointFactory {
|
|
9
|
-
defaultServices = [];
|
|
10
|
-
basePath = "";
|
|
11
|
-
defaultAuthorizeFn;
|
|
12
|
-
defaultEventPublisher;
|
|
13
|
-
defaultSessionExtractor;
|
|
14
|
-
defaultLogger = DEFAULT_LOGGER$1;
|
|
15
|
-
availableAuthorizers = [];
|
|
16
|
-
defaultAuthorizerName;
|
|
17
|
-
defaultAuditorStorage;
|
|
18
|
-
defaultDatabaseService;
|
|
19
|
-
defaultActorExtractor;
|
|
20
|
-
customSecuritySchemes = {};
|
|
21
|
-
defaultRlsConfig;
|
|
22
|
-
constructor({ basePath, defaultAuthorizeFn, defaultLogger, defaultSessionExtractor, defaultServices = [], defaultEventPublisher, availableAuthorizers = [], defaultAuthorizerName, defaultAuditorStorage, defaultDatabaseService, defaultActorExtractor, customSecuritySchemes = {}, defaultRlsConfig } = {}) {
|
|
23
|
-
this.defaultServices = uniqBy(defaultServices, (s) => s.serviceName);
|
|
24
|
-
this.basePath = basePath || "";
|
|
25
|
-
this.defaultAuthorizeFn = defaultAuthorizeFn;
|
|
26
|
-
this.defaultLogger = defaultLogger || DEFAULT_LOGGER$1;
|
|
27
|
-
this.defaultSessionExtractor = defaultSessionExtractor;
|
|
28
|
-
this.defaultEventPublisher = defaultEventPublisher;
|
|
29
|
-
this.availableAuthorizers = availableAuthorizers;
|
|
30
|
-
this.defaultAuthorizerName = defaultAuthorizerName;
|
|
31
|
-
this.defaultAuditorStorage = defaultAuditorStorage;
|
|
32
|
-
this.defaultDatabaseService = defaultDatabaseService;
|
|
33
|
-
this.defaultActorExtractor = defaultActorExtractor;
|
|
34
|
-
this.customSecuritySchemes = customSecuritySchemes;
|
|
35
|
-
this.defaultRlsConfig = defaultRlsConfig;
|
|
36
|
-
}
|
|
37
|
-
static joinPaths(path, basePath = "") {
|
|
38
|
-
if (!basePath && !path) return "/";
|
|
39
|
-
if (!basePath) return path.startsWith("/") ? path : `/${path}`;
|
|
40
|
-
if (!path) return basePath.startsWith("/") ? basePath : `/${basePath}`;
|
|
41
|
-
const base = basePath.endsWith("/") ? basePath.slice(0, -1) : basePath;
|
|
42
|
-
const segment = path.startsWith("/") ? path : `/${path}`;
|
|
43
|
-
let result = base + segment;
|
|
44
|
-
if (!result.startsWith("/")) result = `/${result}`;
|
|
45
|
-
result = result.replace(/^\/+/g, "/");
|
|
46
|
-
if (result.length > 1 && result.endsWith("/")) result = result.slice(0, -1);
|
|
47
|
-
return result;
|
|
48
|
-
}
|
|
49
|
-
authorizers(authorizers) {
|
|
50
|
-
const authorizerConfigs = authorizers.map((name) => ({
|
|
51
|
-
name,
|
|
52
|
-
securityScheme: getSecurityScheme(name, this.customSecuritySchemes)
|
|
53
|
-
}));
|
|
54
|
-
return new EndpointFactory({
|
|
55
|
-
defaultServices: this.defaultServices,
|
|
56
|
-
basePath: this.basePath,
|
|
57
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
58
|
-
defaultLogger: this.defaultLogger,
|
|
59
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
60
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
61
|
-
availableAuthorizers: authorizerConfigs,
|
|
62
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
63
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
64
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
65
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
66
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
67
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Define custom security schemes for this factory.
|
|
72
|
-
* These extend the built-in schemes (jwt, bearer, apiKey, oauth2, oidc).
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* ```typescript
|
|
76
|
-
* const router = e.securitySchemes({
|
|
77
|
-
* awsIamSigV4: {
|
|
78
|
-
* type: 'apiKey',
|
|
79
|
-
* in: 'header',
|
|
80
|
-
* name: 'Authorization',
|
|
81
|
-
* 'x-amazon-apigateway-authtype': 'awsSigv4',
|
|
82
|
-
* },
|
|
83
|
-
* });
|
|
84
|
-
* ```
|
|
85
|
-
*/
|
|
86
|
-
securitySchemes(schemes) {
|
|
87
|
-
return new EndpointFactory({
|
|
88
|
-
defaultServices: this.defaultServices,
|
|
89
|
-
basePath: this.basePath,
|
|
90
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
91
|
-
defaultLogger: this.defaultLogger,
|
|
92
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
93
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
94
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
95
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
96
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
97
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
98
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
99
|
-
customSecuritySchemes: {
|
|
100
|
-
...this.customSecuritySchemes,
|
|
101
|
-
...schemes
|
|
102
|
-
},
|
|
103
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Set the default authorizer for all endpoints created from this factory.
|
|
108
|
-
* Individual endpoints can override this by calling `.authorizer()` on the builder.
|
|
109
|
-
* Use `'none'` to explicitly disable authorization for all endpoints.
|
|
110
|
-
*
|
|
111
|
-
* Accepts:
|
|
112
|
-
* - Built-in security scheme names: 'jwt', 'bearer', 'apiKey', 'oauth2', 'oidc'
|
|
113
|
-
* - Custom security scheme names defined via `.securitySchemes()`
|
|
114
|
-
* - 'none' to disable authorization
|
|
115
|
-
*/
|
|
116
|
-
authorizer(name) {
|
|
117
|
-
if (name !== "none" && this.availableAuthorizers.length > 0) {
|
|
118
|
-
const authorizerExists = this.availableAuthorizers.some((a) => a.name === name);
|
|
119
|
-
if (!authorizerExists) {
|
|
120
|
-
const available = this.availableAuthorizers.map((a) => a.name).join(", ");
|
|
121
|
-
throw new Error(`Authorizer "${name}" not found in available authorizers: ${available}`);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return new EndpointFactory({
|
|
125
|
-
defaultServices: this.defaultServices,
|
|
126
|
-
basePath: this.basePath,
|
|
127
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
128
|
-
defaultLogger: this.defaultLogger,
|
|
129
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
130
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
131
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
132
|
-
defaultAuthorizerName: name === "none" ? void 0 : name,
|
|
133
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
134
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
135
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
136
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
137
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
route(path) {
|
|
141
|
-
const newBasePath = EndpointFactory.joinPaths(path, this.basePath);
|
|
142
|
-
return new EndpointFactory({
|
|
143
|
-
defaultServices: this.defaultServices,
|
|
144
|
-
basePath: newBasePath,
|
|
145
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
146
|
-
defaultLogger: this.defaultLogger,
|
|
147
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
148
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
149
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
150
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
151
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
152
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
153
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
154
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
155
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
authorize(fn) {
|
|
159
|
-
return new EndpointFactory({
|
|
160
|
-
defaultServices: this.defaultServices,
|
|
161
|
-
basePath: this.basePath,
|
|
162
|
-
defaultAuthorizeFn: fn,
|
|
163
|
-
defaultLogger: this.defaultLogger,
|
|
164
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
165
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
166
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
167
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
168
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
169
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
170
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
171
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
172
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
services(services) {
|
|
176
|
-
return new EndpointFactory({
|
|
177
|
-
defaultServices: [...services, ...this.defaultServices],
|
|
178
|
-
basePath: this.basePath,
|
|
179
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
180
|
-
defaultLogger: this.defaultLogger,
|
|
181
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
182
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
183
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
184
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
185
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
186
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
187
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
188
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
189
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
logger(logger) {
|
|
193
|
-
return new EndpointFactory({
|
|
194
|
-
defaultServices: this.defaultServices,
|
|
195
|
-
basePath: this.basePath,
|
|
196
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
197
|
-
defaultLogger: logger,
|
|
198
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
199
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
200
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
201
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
202
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
203
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
204
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
205
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
206
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
publisher(publisher) {
|
|
210
|
-
return new EndpointFactory({
|
|
211
|
-
defaultServices: this.defaultServices,
|
|
212
|
-
basePath: this.basePath,
|
|
213
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
214
|
-
defaultLogger: this.defaultLogger,
|
|
215
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
216
|
-
defaultEventPublisher: publisher,
|
|
217
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
218
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
219
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
220
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
221
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
222
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
223
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
session(session) {
|
|
227
|
-
return new EndpointFactory({
|
|
228
|
-
defaultServices: this.defaultServices,
|
|
229
|
-
basePath: this.basePath,
|
|
230
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
231
|
-
defaultLogger: this.defaultLogger,
|
|
232
|
-
defaultSessionExtractor: session,
|
|
233
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
234
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
235
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
236
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
237
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
238
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
239
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
240
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Set the database service for endpoints created from this factory.
|
|
245
|
-
* The database will be available in handler context as `db`.
|
|
246
|
-
*/
|
|
247
|
-
database(service) {
|
|
248
|
-
return new EndpointFactory({
|
|
249
|
-
defaultServices: this.defaultServices,
|
|
250
|
-
basePath: this.basePath,
|
|
251
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
252
|
-
defaultLogger: this.defaultLogger,
|
|
253
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
254
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
255
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
256
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
257
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
258
|
-
defaultDatabaseService: service,
|
|
259
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
260
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Set the auditor storage service for endpoints created from this factory.
|
|
265
|
-
* This enables audit functionality and makes `auditor` available in handler context.
|
|
266
|
-
* The audit action type is automatically inferred from the storage's generic parameter.
|
|
267
|
-
*/
|
|
268
|
-
auditor(storage) {
|
|
269
|
-
return new EndpointFactory({
|
|
270
|
-
defaultServices: this.defaultServices,
|
|
271
|
-
basePath: this.basePath,
|
|
272
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
273
|
-
defaultLogger: this.defaultLogger,
|
|
274
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
275
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
276
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
277
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
278
|
-
defaultAuditorStorage: storage,
|
|
279
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
280
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
281
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
282
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Set the actor extractor function for endpoints created from this factory.
|
|
287
|
-
* The actor is extracted from the request context and attached to all audits.
|
|
288
|
-
*/
|
|
289
|
-
actor(extractor) {
|
|
290
|
-
return new EndpointFactory({
|
|
291
|
-
defaultServices: this.defaultServices,
|
|
292
|
-
basePath: this.basePath,
|
|
293
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
294
|
-
defaultLogger: this.defaultLogger,
|
|
295
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
296
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
297
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
298
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
299
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
300
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
301
|
-
defaultActorExtractor: extractor,
|
|
302
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
303
|
-
defaultRlsConfig: this.defaultRlsConfig
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Set the RLS (Row-Level Security) configuration for endpoints created from this factory.
|
|
308
|
-
* This enables automatic PostgreSQL session variable setting for RLS policies.
|
|
309
|
-
*
|
|
310
|
-
* @example
|
|
311
|
-
* ```typescript
|
|
312
|
-
* const api = new EndpointFactory()
|
|
313
|
-
* .database(databaseService)
|
|
314
|
-
* .session(extractSession)
|
|
315
|
-
* .rls({
|
|
316
|
-
* extractor: ({ session }) => ({
|
|
317
|
-
* user_id: session.userId,
|
|
318
|
-
* tenant_id: session.tenantId,
|
|
319
|
-
* }),
|
|
320
|
-
* prefix: 'app',
|
|
321
|
-
* });
|
|
322
|
-
* ```
|
|
323
|
-
*/
|
|
324
|
-
rls(config) {
|
|
325
|
-
return new EndpointFactory({
|
|
326
|
-
defaultServices: this.defaultServices,
|
|
327
|
-
basePath: this.basePath,
|
|
328
|
-
defaultAuthorizeFn: this.defaultAuthorizeFn,
|
|
329
|
-
defaultLogger: this.defaultLogger,
|
|
330
|
-
defaultSessionExtractor: this.defaultSessionExtractor,
|
|
331
|
-
defaultEventPublisher: this.defaultEventPublisher,
|
|
332
|
-
availableAuthorizers: this.availableAuthorizers,
|
|
333
|
-
defaultAuthorizerName: this.defaultAuthorizerName,
|
|
334
|
-
defaultAuditorStorage: this.defaultAuditorStorage,
|
|
335
|
-
defaultDatabaseService: this.defaultDatabaseService,
|
|
336
|
-
defaultActorExtractor: this.defaultActorExtractor,
|
|
337
|
-
customSecuritySchemes: this.customSecuritySchemes,
|
|
338
|
-
defaultRlsConfig: config
|
|
339
|
-
});
|
|
340
|
-
}
|
|
341
|
-
createBuilder(method, path) {
|
|
342
|
-
const fullPath = EndpointFactory.joinPaths(path, this.basePath);
|
|
343
|
-
const builder = new EndpointBuilder(fullPath, method);
|
|
344
|
-
if (this.defaultAuthorizeFn) builder._authorize = this.defaultAuthorizeFn;
|
|
345
|
-
if (this.defaultServices.length) builder._services = [...this.defaultServices];
|
|
346
|
-
if (this.defaultLogger) builder._logger = this.defaultLogger;
|
|
347
|
-
if (this.defaultSessionExtractor) builder._getSession = this.defaultSessionExtractor;
|
|
348
|
-
if (this.defaultEventPublisher) builder._setPublisher(this.defaultEventPublisher);
|
|
349
|
-
builder._availableAuthorizers = this.availableAuthorizers;
|
|
350
|
-
if (this.defaultAuthorizerName) builder._authorizerName = this.defaultAuthorizerName;
|
|
351
|
-
if (this.defaultAuditorStorage) builder._setAuditorStorage(this.defaultAuditorStorage);
|
|
352
|
-
if (this.defaultDatabaseService) builder._setDatabaseService(this.defaultDatabaseService);
|
|
353
|
-
if (this.defaultActorExtractor) builder._actorExtractor = this.defaultActorExtractor;
|
|
354
|
-
builder._customSecuritySchemes = this.customSecuritySchemes;
|
|
355
|
-
if (this.defaultRlsConfig) builder._rlsConfig = this.defaultRlsConfig;
|
|
356
|
-
return builder;
|
|
357
|
-
}
|
|
358
|
-
post(path) {
|
|
359
|
-
return this.createBuilder("POST", path);
|
|
360
|
-
}
|
|
361
|
-
get(path) {
|
|
362
|
-
return this.createBuilder("GET", path);
|
|
363
|
-
}
|
|
364
|
-
put(path) {
|
|
365
|
-
return this.createBuilder("PUT", path);
|
|
366
|
-
}
|
|
367
|
-
delete(path) {
|
|
368
|
-
return this.createBuilder("DELETE", path);
|
|
369
|
-
}
|
|
370
|
-
patch(path) {
|
|
371
|
-
return this.createBuilder("PATCH", path);
|
|
372
|
-
}
|
|
373
|
-
options(path) {
|
|
374
|
-
return this.createBuilder("OPTIONS", path);
|
|
375
|
-
}
|
|
376
|
-
};
|
|
377
|
-
const e = new EndpointFactory();
|
|
378
|
-
|
|
379
|
-
//#endregion
|
|
380
|
-
export { EndpointFactory, e };
|
|
381
|
-
//# sourceMappingURL=EndpointFactory-wgcqWod-.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointFactory-wgcqWod-.mjs","names":["DEFAULT_LOGGER","path: P","basePath: TBasePath","authorizers: T","schemes: T","name:\n\t\t\t| BuiltInSecuritySchemeId\n\t\t\t| keyof TSecuritySchemes\n\t\t\t| TAuthorizers[number]\n\t\t\t| 'none'","path: TPath","fn: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>","services: S","logger: L","publisher: Service<TServiceName, T>","session: SessionFn<TServices, TLogger, T, TDatabase>","service: Service<TName, T>","storage: Service<TName, T>","extractor: ActorExtractor<TServices, TSession, TLogger>","config: TConfig","method: TMethod"],"sources":["../src/endpoints/EndpointFactory.ts"],"sourcesContent":["import type {\n\tAuditableAction,\n\tAuditStorage,\n\tExtractStorageAuditAction,\n} from '@geekmidas/audit';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { ConsoleLogger } from '@geekmidas/logger/console';\nimport type { Service } from '@geekmidas/services';\nimport uniqBy from 'lodash.uniqby';\nimport type { HttpMethod } from '../types';\nimport {\n\ttype Authorizer,\n\ttype BuiltInSecuritySchemeId,\n\tgetSecurityScheme,\n\ttype SecurityScheme,\n} from './Authorizer';\nimport type { ActorExtractor } from './audit';\nimport type { AuthorizeFn, SessionFn } from './Endpoint';\nimport { EndpointBuilder } from './EndpointBuilder';\nimport type { RlsConfig } from './rls';\n\n// Re-export SecurityScheme to make the type portable in declaration files\nexport type { SecurityScheme } from './Authorizer';\n\nconst DEFAULT_LOGGER = new ConsoleLogger() as any;\n\nexport class EndpointFactory<\n\tTServices extends Service[] = [],\n\tTBasePath extends string = '',\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuthorizers extends readonly string[] = readonly string[],\n\tTAuditStorage extends AuditStorage<any> | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<\n\t\tstring,\n\t\tunknown\n\t> = ExtractStorageAuditAction<NonNullable<TAuditStorage>>,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTSecuritySchemes extends Record<string, SecurityScheme> = Record<\n\t\tstring,\n\t\tSecurityScheme\n\t>,\n\tTRlsConfig extends\n\t\t| RlsConfig<TServices, TSession, TLogger>\n\t\t| undefined = undefined,\n> {\n\tprivate defaultServices: TServices = [] as unknown as TServices;\n\tprivate basePath: TBasePath = '' as TBasePath;\n\tprivate defaultAuthorizeFn?: AuthorizeFn<\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tundefined,\n\t\tTDatabase\n\t>;\n\tprivate defaultEventPublisher:\n\t\t| Service<TEventPublisherServiceName, TEventPublisher>\n\t\t| undefined;\n\tprivate defaultSessionExtractor?: SessionFn<\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tTDatabase\n\t>;\n\tprivate defaultLogger: TLogger = DEFAULT_LOGGER;\n\tprivate availableAuthorizers: Authorizer[] = [];\n\tprivate defaultAuthorizerName?: TAuthorizers[number];\n\tprivate defaultAuditorStorage:\n\t\t| Service<TAuditStorageServiceName, TAuditStorage>\n\t\t| undefined;\n\tprivate defaultDatabaseService:\n\t\t| Service<TDatabaseServiceName, TDatabase>\n\t\t| undefined;\n\tprivate defaultActorExtractor?: ActorExtractor<TServices, TSession, TLogger>;\n\tprivate customSecuritySchemes: TSecuritySchemes = {} as TSecuritySchemes;\n\tprivate defaultRlsConfig?: TRlsConfig;\n\n\tconstructor({\n\t\tbasePath,\n\t\tdefaultAuthorizeFn,\n\t\tdefaultLogger,\n\t\tdefaultSessionExtractor,\n\t\t// @ts-expect-error\n\t\tdefaultServices = [] as TServices,\n\t\tdefaultEventPublisher,\n\t\tavailableAuthorizers = [],\n\t\tdefaultAuthorizerName,\n\t\tdefaultAuditorStorage,\n\t\tdefaultDatabaseService,\n\t\tdefaultActorExtractor,\n\t\tcustomSecuritySchemes = {} as TSecuritySchemes,\n\t\tdefaultRlsConfig,\n\t}: EndpointFactoryOptions<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tTRlsConfig\n\t> = {}) {\n\t\t// Initialize default services\n\t\tthis.defaultServices = uniqBy(\n\t\t\tdefaultServices,\n\t\t\t(s) => s.serviceName,\n\t\t) as TServices;\n\n\t\tthis.basePath = basePath || ('' as TBasePath);\n\t\tthis.defaultAuthorizeFn = defaultAuthorizeFn;\n\t\tthis.defaultLogger = defaultLogger || (DEFAULT_LOGGER as TLogger);\n\t\tthis.defaultSessionExtractor = defaultSessionExtractor;\n\t\tthis.defaultEventPublisher = defaultEventPublisher;\n\t\tthis.availableAuthorizers = availableAuthorizers;\n\t\tthis.defaultAuthorizerName = defaultAuthorizerName;\n\t\tthis.defaultAuditorStorage = defaultAuditorStorage;\n\t\tthis.defaultDatabaseService = defaultDatabaseService;\n\t\tthis.defaultActorExtractor = defaultActorExtractor;\n\t\tthis.customSecuritySchemes = customSecuritySchemes;\n\t\tthis.defaultRlsConfig = defaultRlsConfig;\n\t}\n\n\tstatic joinPaths<TBasePath extends string, P extends string>(\n\t\tpath: P,\n\t\tbasePath: TBasePath = '' as TBasePath,\n\t): JoinPaths<TBasePath, P> {\n\t\t// Handle empty cases\n\t\tif (!basePath && !path) return '/' as JoinPaths<TBasePath, P>;\n\t\tif (!basePath)\n\t\t\treturn (path.startsWith('/') ? path : `/${path}`) as JoinPaths<\n\t\t\t\tTBasePath,\n\t\t\t\tP\n\t\t\t>;\n\t\tif (!path)\n\t\t\treturn (\n\t\t\t\tbasePath.startsWith('/') ? basePath : `/${basePath}`\n\t\t\t) as JoinPaths<TBasePath, P>;\n\n\t\tconst base = basePath.endsWith('/') ? basePath.slice(0, -1) : basePath;\n\t\tconst segment = path.startsWith('/') ? path : `/${path}`;\n\n\t\tlet result = base + segment;\n\n\t\t// Ensure leading slash\n\t\tif (!result.startsWith('/')) {\n\t\t\tresult = `/${result}`;\n\t\t}\n\n\t\t// Normalize multiple slashes (except in the middle of the path where they might be intentional)\n\t\tresult = result.replace(/^\\/+/g, '/');\n\n\t\t// Remove trailing slash unless it's the root path \"/\"\n\t\tif (result.length > 1 && result.endsWith('/')) {\n\t\t\tresult = result.slice(0, -1);\n\t\t}\n\n\t\treturn result as JoinPaths<TBasePath, P>;\n\t}\n\n\t// Configure available authorizers\n\tauthorizers<const T extends readonly string[]>(\n\t\tauthorizers: T,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tT,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tTRlsConfig\n\t> {\n\t\tconst authorizerConfigs = authorizers.map((name) => ({\n\t\t\tname,\n\t\t\tsecurityScheme: getSecurityScheme(name, this.customSecuritySchemes),\n\t\t}));\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tT,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tTRlsConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: authorizerConfigs,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this.defaultActorExtractor,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig,\n\t\t});\n\t}\n\n\t/**\n\t * Define custom security schemes for this factory.\n\t * These extend the built-in schemes (jwt, bearer, apiKey, oauth2, oidc).\n\t *\n\t * @example\n\t * ```typescript\n\t * const router = e.securitySchemes({\n\t * awsIamSigV4: {\n\t * type: 'apiKey',\n\t * in: 'header',\n\t * name: 'Authorization',\n\t * 'x-amazon-apigateway-authtype': 'awsSigv4',\n\t * },\n\t * });\n\t * ```\n\t */\n\tsecuritySchemes<T extends Record<string, SecurityScheme>>(\n\t\tschemes: T,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes & T,\n\t\tTRlsConfig\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes & T,\n\t\t\tTRlsConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this.defaultActorExtractor,\n\t\t\tcustomSecuritySchemes: {\n\t\t\t\t...this.customSecuritySchemes,\n\t\t\t\t...schemes,\n\t\t\t} as TSecuritySchemes & T,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig,\n\t\t});\n\t}\n\n\t/**\n\t * Set the default authorizer for all endpoints created from this factory.\n\t * Individual endpoints can override this by calling `.authorizer()` on the builder.\n\t * Use `'none'` to explicitly disable authorization for all endpoints.\n\t *\n\t * Accepts:\n\t * - Built-in security scheme names: 'jwt', 'bearer', 'apiKey', 'oauth2', 'oidc'\n\t * - Custom security scheme names defined via `.securitySchemes()`\n\t * - 'none' to disable authorization\n\t */\n\tauthorizer(\n\t\tname:\n\t\t\t| BuiltInSecuritySchemeId\n\t\t\t| keyof TSecuritySchemes\n\t\t\t| TAuthorizers[number]\n\t\t\t| 'none',\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tTRlsConfig\n\t> {\n\t\t// Validate that the authorizer exists in available authorizers (if authorizers() was called)\n\t\tif (name !== 'none' && this.availableAuthorizers.length > 0) {\n\t\t\tconst authorizerExists = this.availableAuthorizers.some(\n\t\t\t\t(a) => a.name === name,\n\t\t\t);\n\t\t\tif (!authorizerExists) {\n\t\t\t\tconst available = this.availableAuthorizers\n\t\t\t\t\t.map((a) => a.name)\n\t\t\t\t\t.join(', ');\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Authorizer \"${name as string}\" not found in available authorizers: ${available}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tTRlsConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName:\n\t\t\t\tname === 'none' ? undefined : (name as TAuthorizers[number]),\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this.defaultActorExtractor,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig,\n\t\t});\n\t}\n\n\t// Create a sub-router with a path prefix\n\troute<TPath extends string>(\n\t\tpath: TPath,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tJoinPaths<TBasePath, TPath>,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tTRlsConfig\n\t> {\n\t\tconst newBasePath = EndpointFactory.joinPaths(path, this.basePath);\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tJoinPaths<TBasePath, TPath>,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tTRlsConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: newBasePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this.defaultActorExtractor,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig,\n\t\t});\n\t}\n\n\t// Create a new factory with authorization\n\tauthorize(\n\t\tfn: AuthorizeFn<TServices, TLogger, TSession, undefined, TDatabase>,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tTRlsConfig\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tTRlsConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: fn,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this.defaultActorExtractor,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig,\n\t\t});\n\t}\n\n\t// Create a new factory with services\n\tservices<S extends Service[]>(\n\t\tservices: S,\n\t): EndpointFactory<\n\t\t[...S, ...TServices],\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tRlsConfig<[...S, ...TServices], TSession, TLogger> | undefined\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\t[...S, ...TServices],\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tRlsConfig<[...S, ...TServices], TSession, TLogger> | undefined\n\t\t>({\n\t\t\tdefaultServices: [...services, ...this.defaultServices],\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn as unknown as AuthorizeFn<\n\t\t\t\t[...S, ...TServices],\n\t\t\t\tTLogger,\n\t\t\t\tTSession\n\t\t\t>,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor as unknown as\n\t\t\t\t| SessionFn<[...S, ...TServices], TLogger, TSession, TDatabase>\n\t\t\t\t| undefined,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this.defaultActorExtractor as unknown as\n\t\t\t\t| ActorExtractor<[...S, ...TServices], TSession, TLogger>\n\t\t\t\t| undefined,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig as unknown as\n\t\t\t\t| RlsConfig<[...S, ...TServices], TSession, TLogger>\n\t\t\t\t| undefined,\n\t\t});\n\t}\n\n\tlogger<L extends Logger>(\n\t\tlogger: L,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tL,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tRlsConfig<TServices, TSession, L> | undefined\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tL,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tRlsConfig<TServices, TSession, L> | undefined\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn as unknown as AuthorizeFn<\n\t\t\t\tTServices,\n\t\t\t\tL,\n\t\t\t\tTSession\n\t\t\t>,\n\t\t\tdefaultLogger: logger,\n\t\t\tdefaultSessionExtractor: this\n\t\t\t\t.defaultSessionExtractor as unknown as SessionFn<\n\t\t\t\tTServices,\n\t\t\t\tL,\n\t\t\t\tTSession\n\t\t\t>,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this\n\t\t\t\t.defaultActorExtractor as unknown as ActorExtractor<\n\t\t\t\tTServices,\n\t\t\t\tTSession,\n\t\t\t\tL\n\t\t\t>,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig as unknown as\n\t\t\t\t| RlsConfig<TServices, TSession, L>\n\t\t\t\t| undefined,\n\t\t});\n\t}\n\n\tpublisher<\n\t\tT extends EventPublisher<any>,\n\t\tTServiceName extends string = string,\n\t>(\n\t\tpublisher: Service<TServiceName, T>,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tT,\n\t\tTServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tTRlsConfig\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tT,\n\t\t\tTServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tTRlsConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor,\n\t\t\tdefaultEventPublisher: publisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this.defaultActorExtractor,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig,\n\t\t});\n\t}\n\n\tsession<T>(\n\t\tsession: SessionFn<TServices, TLogger, T, TDatabase>,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tT,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tRlsConfig<TServices, T, TLogger> | undefined\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tT,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tRlsConfig<TServices, T, TLogger> | undefined\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn as unknown as AuthorizeFn<\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tT\n\t\t\t>,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: session,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this\n\t\t\t\t.defaultActorExtractor as unknown as ActorExtractor<\n\t\t\t\tTServices,\n\t\t\t\tT,\n\t\t\t\tTLogger\n\t\t\t>,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig as unknown as\n\t\t\t\t| RlsConfig<TServices, T, TLogger>\n\t\t\t\t| undefined,\n\t\t});\n\t}\n\n\t/**\n\t * Set the database service for endpoints created from this factory.\n\t * The database will be available in handler context as `db`.\n\t */\n\tdatabase<T, TName extends string>(\n\t\tservice: Service<TName, T>,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tT,\n\t\tTName,\n\t\tTSecuritySchemes,\n\t\tTRlsConfig\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tT,\n\t\t\tTName,\n\t\t\tTSecuritySchemes,\n\t\t\tTRlsConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn as unknown as\n\t\t\t\t| AuthorizeFn<TServices, TLogger, TSession, undefined, T>\n\t\t\t\t| undefined,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\t// Reset session extractor when database changes - user should call .session() after .database()\n\t\t\t// to get proper type inference for the new database type\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor as unknown as\n\t\t\t\t| SessionFn<TServices, TLogger, TSession, T>\n\t\t\t\t| undefined,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: service,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig,\n\t\t});\n\t}\n\n\t/**\n\t * Set the auditor storage service for endpoints created from this factory.\n\t * This enables audit functionality and makes `auditor` available in handler context.\n\t * The audit action type is automatically inferred from the storage's generic parameter.\n\t */\n\tauditor<T extends AuditStorage<any>, TName extends string>(\n\t\tstorage: Service<TName, T>,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tT,\n\t\tTName,\n\t\tExtractStorageAuditAction<T>,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tTRlsConfig\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tT,\n\t\t\tTName,\n\t\t\tExtractStorageAuditAction<T>,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tTRlsConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: storage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this\n\t\t\t\t.defaultActorExtractor as unknown as ActorExtractor<\n\t\t\t\tTServices,\n\t\t\t\tTSession,\n\t\t\t\tTLogger\n\t\t\t>,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig,\n\t\t});\n\t}\n\n\t/**\n\t * Set the actor extractor function for endpoints created from this factory.\n\t * The actor is extracted from the request context and attached to all audits.\n\t */\n\tactor(\n\t\textractor: ActorExtractor<TServices, TSession, TLogger>,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tTRlsConfig\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tTRlsConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: extractor,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: this.defaultRlsConfig,\n\t\t});\n\t}\n\n\t/**\n\t * Set the RLS (Row-Level Security) configuration for endpoints created from this factory.\n\t * This enables automatic PostgreSQL session variable setting for RLS policies.\n\t *\n\t * @example\n\t * ```typescript\n\t * const api = new EndpointFactory()\n\t * .database(databaseService)\n\t * .session(extractSession)\n\t * .rls({\n\t * extractor: ({ session }) => ({\n\t * user_id: session.userId,\n\t * tenant_id: session.tenantId,\n\t * }),\n\t * prefix: 'app',\n\t * });\n\t * ```\n\t */\n\trls<TConfig extends RlsConfig<TServices, TSession, TLogger>>(\n\t\tconfig: TConfig,\n\t): EndpointFactory<\n\t\tTServices,\n\t\tTBasePath,\n\t\tTLogger,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName,\n\t\tTSecuritySchemes,\n\t\tTConfig\n\t> {\n\t\treturn new EndpointFactory<\n\t\t\tTServices,\n\t\t\tTBasePath,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName,\n\t\t\tTSecuritySchemes,\n\t\t\tTConfig\n\t\t>({\n\t\t\tdefaultServices: this.defaultServices,\n\t\t\tbasePath: this.basePath,\n\t\t\tdefaultAuthorizeFn: this.defaultAuthorizeFn,\n\t\t\tdefaultLogger: this.defaultLogger,\n\t\t\tdefaultSessionExtractor: this.defaultSessionExtractor,\n\t\t\tdefaultEventPublisher: this.defaultEventPublisher,\n\t\t\tavailableAuthorizers: this.availableAuthorizers,\n\t\t\tdefaultAuthorizerName: this.defaultAuthorizerName,\n\t\t\tdefaultAuditorStorage: this.defaultAuditorStorage,\n\t\t\tdefaultDatabaseService: this.defaultDatabaseService,\n\t\t\tdefaultActorExtractor: this.defaultActorExtractor,\n\t\t\tcustomSecuritySchemes: this.customSecuritySchemes,\n\t\t\tdefaultRlsConfig: config,\n\t\t});\n\t}\n\n\tprivate createBuilder<TMethod extends HttpMethod, TPath extends string>(\n\t\tmethod: TMethod,\n\t\tpath: TPath,\n\t): EndpointBuilder<\n\t\tJoinPaths<TBasePath, TPath>,\n\t\tTMethod,\n\t\t{},\n\t\tTServices,\n\t\tTLogger,\n\t\tundefined,\n\t\tTSession,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuthorizers,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\tconst fullPath = EndpointFactory.joinPaths(path, this.basePath);\n\t\tconst builder = new EndpointBuilder<\n\t\t\tJoinPaths<TBasePath, TPath>,\n\t\t\tTMethod,\n\t\t\t{},\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tundefined,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuthorizers,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>(fullPath, method);\n\n\t\tif (this.defaultAuthorizeFn) {\n\t\t\tbuilder._authorize = this.defaultAuthorizeFn as any;\n\t\t}\n\t\tif (this.defaultServices.length) {\n\t\t\t// Create a copy to avoid sharing references between builders\n\t\t\tbuilder._services = [...this.defaultServices] as TServices;\n\t\t}\n\n\t\tif (this.defaultLogger) {\n\t\t\tbuilder._logger = this.defaultLogger as TLogger;\n\t\t}\n\n\t\tif (this.defaultSessionExtractor) {\n\t\t\tbuilder._getSession = this.defaultSessionExtractor as SessionFn<\n\t\t\t\tTServices,\n\t\t\t\tTLogger,\n\t\t\t\tTSession\n\t\t\t>;\n\t\t}\n\n\t\tif (this.defaultEventPublisher) {\n\t\t\tbuilder._setPublisher(this.defaultEventPublisher);\n\t\t}\n\n\t\t// Set available authorizers and default\n\t\tbuilder._availableAuthorizers = this.availableAuthorizers;\n\t\tif (this.defaultAuthorizerName) {\n\t\t\tbuilder._authorizerName = this.defaultAuthorizerName;\n\t\t}\n\n\t\t// Set auditor storage if configured\n\t\tif (this.defaultAuditorStorage) {\n\t\t\tbuilder._setAuditorStorage(this.defaultAuditorStorage as any);\n\t\t}\n\n\t\t// Set database service if configured\n\t\tif (this.defaultDatabaseService) {\n\t\t\tbuilder._setDatabaseService(this.defaultDatabaseService as any);\n\t\t}\n\n\t\t// Set actor extractor if configured\n\t\tif (this.defaultActorExtractor) {\n\t\t\tbuilder._actorExtractor = this.defaultActorExtractor;\n\t\t}\n\n\t\t// Set custom security schemes\n\t\tbuilder._customSecuritySchemes = this.customSecuritySchemes;\n\n\t\t// Set RLS config if configured\n\t\tif (this.defaultRlsConfig) {\n\t\t\tbuilder._rlsConfig = this.defaultRlsConfig as any;\n\t\t}\n\n\t\treturn builder;\n\t}\n\n\tpost<TPath extends string>(path: TPath) {\n\t\treturn this.createBuilder('POST', path);\n\t}\n\n\tget<TPath extends string>(path: TPath) {\n\t\treturn this.createBuilder('GET', path);\n\t}\n\n\tput<TPath extends string>(path: TPath) {\n\t\treturn this.createBuilder('PUT', path);\n\t}\n\n\tdelete<TPath extends string>(path: TPath) {\n\t\treturn this.createBuilder('DELETE', path);\n\t}\n\n\tpatch<TPath extends string>(path: TPath) {\n\t\treturn this.createBuilder('PATCH', path);\n\t}\n\n\toptions<TPath extends string>(path: TPath) {\n\t\treturn this.createBuilder('OPTIONS', path);\n\t}\n}\n\nexport type RemoveTrailingSlash<T extends string> = T extends `${infer Rest}/`\n\t? Rest extends ''\n\t\t? T // Keep \"/\" as is\n\t\t: Rest\n\t: T;\n\nexport type JoinPaths<\n\tTBasePath extends string,\n\tTPath extends string,\n> = RemoveTrailingSlash<\n\tTBasePath extends ''\n\t\t? TPath\n\t\t: TPath extends ''\n\t\t\t? TBasePath\n\t\t\t: TBasePath extends '/'\n\t\t\t\t? TPath extends `/${string}`\n\t\t\t\t\t? TPath\n\t\t\t\t\t: `/${TPath}`\n\t\t\t\t: TBasePath extends `${infer Base}/`\n\t\t\t\t\t? TPath extends `/${infer Rest}`\n\t\t\t\t\t\t? `${Base}/${Rest}`\n\t\t\t\t\t\t: `${Base}/${TPath}`\n\t\t\t\t\t: TPath extends `/${infer Rest}`\n\t\t\t\t\t\t? `${TBasePath}/${Rest}`\n\t\t\t\t\t\t: `${TBasePath}/${TPath}`\n>;\n\nexport interface EndpointFactoryOptions<\n\tTServices extends Service[] = [],\n\tTBasePath extends string = '',\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuthorizers extends readonly string[] = readonly string[],\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n\tTSecuritySchemes extends Record<string, SecurityScheme> = Record<\n\t\tstring,\n\t\tSecurityScheme\n\t>,\n\tTRlsConfig extends\n\t\t| RlsConfig<TServices, TSession, TLogger>\n\t\t| undefined = undefined,\n> {\n\tdefaultServices?: TServices;\n\tbasePath?: TBasePath;\n\tdefaultAuthorizeFn?: AuthorizeFn<\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tundefined,\n\t\tTDatabase\n\t>;\n\tdefaultLogger?: TLogger;\n\tdefaultSessionExtractor?: SessionFn<TServices, TLogger, TSession, TDatabase>;\n\tdefaultEventPublisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n\tdefaultEvents?: MappedEvent<TEventPublisher, undefined>[];\n\tavailableAuthorizers?: Authorizer[];\n\tdefaultAuthorizerName?: TAuthorizers[number];\n\tdefaultAuditorStorage?: Service<TAuditStorageServiceName, TAuditStorage>;\n\tdefaultDatabaseService?: Service<TDatabaseServiceName, TDatabase>;\n\tdefaultActorExtractor?: ActorExtractor<TServices, TSession, TLogger>;\n\tcustomSecuritySchemes?: TSecuritySchemes;\n\tdefaultRlsConfig?: TRlsConfig;\n}\n\nexport const e = new EndpointFactory();\n"],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Construct, ConstructType } from "./Construct-CX7HyFfT.cjs";
|
|
2
|
-
import { AuditStorage, AuditableAction, Auditor } from "@geekmidas/audit";
|
|
3
|
-
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
4
|
-
import { Logger } from "@geekmidas/logger";
|
|
5
|
-
import { Service, ServiceRecord } from "@geekmidas/services";
|
|
6
|
-
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
7
|
-
import { ComposableStandardSchema, InferComposableStandardSchema, InferStandardSchema } from "@geekmidas/schema";
|
|
8
|
-
|
|
9
|
-
//#region src/functions/Function.d.ts
|
|
10
|
-
declare class FunctionFactory<TServices extends Service[] = [], TLogger extends Logger = Logger> {
|
|
11
|
-
private defaultLogger;
|
|
12
|
-
private defaultServices;
|
|
13
|
-
constructor(defaultServices: TServices, defaultLogger?: TLogger);
|
|
14
|
-
services<S extends Service[]>(services: S): FunctionFactory<[...S, ...TServices], TLogger>;
|
|
15
|
-
logger<L extends Logger>(logger: L): FunctionFactory<TServices, L>;
|
|
16
|
-
}
|
|
17
|
-
declare class Function<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, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TDatabase = undefined, TDatabaseServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, Fn extends FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction> = FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase, TAuditStorage, TAuditAction>> extends Construct<TLogger, TEventPublisherServiceName, TEventPublisher, OutSchema, TServices, TAuditStorageServiceName, TAuditStorage> {
|
|
18
|
-
readonly fn: Fn;
|
|
19
|
-
input?: TInput | undefined;
|
|
20
|
-
databaseService?: Service<TDatabaseServiceName, TDatabase> | undefined;
|
|
21
|
-
__IS_FUNCTION__: boolean;
|
|
22
|
-
static isFunction(obj: any): obj is Function<any, any, any, any, any>;
|
|
23
|
-
/**
|
|
24
|
-
* Validates data against a StandardSchema.
|
|
25
|
-
*
|
|
26
|
-
* @param schema - The StandardSchema to validate against
|
|
27
|
-
* @param data - The data to validate
|
|
28
|
-
* @returns Validation result with value or issues
|
|
29
|
-
*/
|
|
30
|
-
static validate<T extends StandardSchemaV1>(schema: T, data: unknown): StandardSchemaV1.Result<unknown> | Promise<StandardSchemaV1.Result<unknown>>;
|
|
31
|
-
/**
|
|
32
|
-
* Parses and validates data against a schema, throwing an error if validation fails.
|
|
33
|
-
*
|
|
34
|
-
* @param schema - The StandardSchema to validate against
|
|
35
|
-
* @param data - The data to parse and validate
|
|
36
|
-
* @returns The validated data with proper typing
|
|
37
|
-
* @throws {UnprocessableEntityError} When validation fails
|
|
38
|
-
*/
|
|
39
|
-
static parseSchema<T extends StandardSchemaV1>(schema: T, data: unknown): Promise<InferStandardSchema<T>>;
|
|
40
|
-
/**
|
|
41
|
-
* Parses and validates the endpoint output against the output schema.
|
|
42
|
-
*
|
|
43
|
-
* @param output - The raw output data to validate
|
|
44
|
-
* @returns The validated output data
|
|
45
|
-
* @throws {UnprocessableEntityError} When output validation fails
|
|
46
|
-
*/
|
|
47
|
-
parseOutput(output: unknown): Promise<InferStandardSchema<OutSchema>>;
|
|
48
|
-
constructor(fn: Fn, timeout?: number,
|
|
49
|
-
// Default timeout of 30 seconds
|
|
50
|
-
type?: ConstructType, input?: TInput | undefined, outputSchema?: OutSchema, services?: TServices, logger?: TLogger, publisherService?: Service<TEventPublisherServiceName, TEventPublisher>, events?: MappedEvent<TEventPublisher, OutSchema>[], memorySize?: number, auditorStorageService?: Service<TAuditStorageServiceName, TAuditStorage>, databaseService?: Service<TDatabaseServiceName, TDatabase> | undefined);
|
|
51
|
-
}
|
|
52
|
-
type FunctionHandler<TInput extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, OutSchema extends StandardSchemaV1 | undefined = undefined, TDatabase = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> = (ctx: FunctionContext<TInput, TServices, TLogger, TDatabase, TAuditStorage, TAuditAction>) => OutSchema extends StandardSchemaV1 ? InferStandardSchema<OutSchema> | Promise<InferStandardSchema<OutSchema>> : any | Promise<any>;
|
|
53
|
-
/**
|
|
54
|
-
* Conditional type that adds `db` property only when TDatabase is configured.
|
|
55
|
-
*/
|
|
56
|
-
type DatabaseContext<TDatabase> = TDatabase extends undefined ? {} : {
|
|
57
|
-
db: TDatabase;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Conditional auditor context - only present when audit storage is configured.
|
|
61
|
-
*/
|
|
62
|
-
type AuditorContext<TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TAuditStorage = undefined> = TAuditStorage extends undefined ? {} : {
|
|
63
|
-
/**
|
|
64
|
-
* Auditor instance for recording audit events.
|
|
65
|
-
* Only present when audit storage is configured on the function.
|
|
66
|
-
*/
|
|
67
|
-
auditor: Auditor<TAuditAction>;
|
|
68
|
-
};
|
|
69
|
-
type FunctionContext<Input extends ComposableStandardSchema | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TDatabase = undefined, TAuditStorage extends AuditStorage | undefined = undefined, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>> = {
|
|
70
|
-
services: ServiceRecord<TServices>;
|
|
71
|
-
logger: TLogger;
|
|
72
|
-
input: InferComposableStandardSchema<Input>;
|
|
73
|
-
} & DatabaseContext<TDatabase> & AuditorContext<TAuditAction, TAuditStorage>;
|
|
74
|
-
//#endregion
|
|
75
|
-
export { Function, FunctionContext, FunctionFactory, FunctionHandler };
|
|
76
|
-
//# sourceMappingURL=Function-CwlB89lS.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Function-CwlB89lS.d.cts","names":[],"sources":["../src/functions/Function.ts"],"sourcesContent":[],"mappings":"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"}
|