@geekmidas/constructs 0.3.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AWSLambdaFunction-C54a1doJ.mjs → AWSLambdaFunction-BMTaCrG9.mjs} +6 -6
- package/dist/AWSLambdaFunction-BMTaCrG9.mjs.map +1 -0
- package/dist/{AWSLambdaFunction-BdebRMUh.d.mts → AWSLambdaFunction-BfLF5vNa.d.cts} +6 -6
- package/dist/AWSLambdaFunction-BfLF5vNa.d.cts.map +1 -0
- package/dist/{AWSLambdaFunction-EPGY4s7i.cjs → AWSLambdaFunction-C1gRqLO7.cjs} +6 -6
- package/dist/AWSLambdaFunction-C1gRqLO7.cjs.map +1 -0
- package/dist/{AWSLambdaFunction-D0tEOTXQ.d.cts → AWSLambdaFunction-K94K8JU2.d.mts} +6 -6
- package/dist/AWSLambdaFunction-K94K8JU2.d.mts.map +1 -0
- package/dist/{AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts → AWSLambdaSubscriberAdaptor-B2Gk3fgx.d.cts} +2 -2
- package/dist/AWSLambdaSubscriberAdaptor-B2Gk3fgx.d.cts.map +1 -0
- package/dist/{AWSLambdaSubscriberAdaptor-BLfO612H.mjs → AWSLambdaSubscriberAdaptor-BD3FwGUb.mjs} +3 -3
- package/dist/AWSLambdaSubscriberAdaptor-BD3FwGUb.mjs.map +1 -0
- package/dist/{AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs → AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs} +3 -3
- package/dist/AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs.map +1 -0
- package/dist/{AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts → AWSLambdaSubscriberAdaptor-QuMFwltJ.d.mts} +2 -2
- package/dist/AWSLambdaSubscriberAdaptor-QuMFwltJ.d.mts.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs → AmazonApiGatewayEndpointAdaptor-B4gLJ2dx.mjs} +56 -14
- package/dist/AmazonApiGatewayEndpointAdaptor-B4gLJ2dx.mjs.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts → AmazonApiGatewayEndpointAdaptor-C987ZCsM.d.cts} +51 -5
- package/dist/AmazonApiGatewayEndpointAdaptor-C987ZCsM.d.cts.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs → AmazonApiGatewayEndpointAdaptor-CwRKMRr_.cjs} +55 -13
- package/dist/AmazonApiGatewayEndpointAdaptor-CwRKMRr_.cjs.map +1 -0
- package/dist/{AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts → AmazonApiGatewayEndpointAdaptor-DpPfO6Vj.d.mts} +52 -6
- package/dist/AmazonApiGatewayEndpointAdaptor-DpPfO6Vj.d.mts.map +1 -0
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs → AmazonApiGatewayV1EndpointAdaptor-BeZMu5DZ.cjs} +4 -4
- package/dist/AmazonApiGatewayV1EndpointAdaptor-BeZMu5DZ.cjs.map +1 -0
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts → AmazonApiGatewayV1EndpointAdaptor-DI_5kdqw.d.mts} +5 -5
- package/dist/AmazonApiGatewayV1EndpointAdaptor-DI_5kdqw.d.mts.map +1 -0
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts → AmazonApiGatewayV1EndpointAdaptor-DkGMOpoB.d.cts} +4 -4
- package/dist/AmazonApiGatewayV1EndpointAdaptor-DkGMOpoB.d.cts.map +1 -0
- package/dist/{AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs → AmazonApiGatewayV1EndpointAdaptor-VccB6FKp.mjs} +4 -4
- package/dist/AmazonApiGatewayV1EndpointAdaptor-VccB6FKp.mjs.map +1 -0
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts → AmazonApiGatewayV2EndpointAdaptor-BtBnMJS_.d.cts} +4 -6
- package/dist/AmazonApiGatewayV2EndpointAdaptor-BtBnMJS_.d.cts.map +1 -0
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs → AmazonApiGatewayV2EndpointAdaptor-BwsL9Gia.cjs} +4 -4
- package/dist/AmazonApiGatewayV2EndpointAdaptor-BwsL9Gia.cjs.map +1 -0
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs → AmazonApiGatewayV2EndpointAdaptor-CljxmUfz.mjs} +4 -4
- package/dist/AmazonApiGatewayV2EndpointAdaptor-CljxmUfz.mjs.map +1 -0
- package/dist/{AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts → AmazonApiGatewayV2EndpointAdaptor-DnCoqlvw.d.mts} +5 -7
- package/dist/AmazonApiGatewayV2EndpointAdaptor-DnCoqlvw.d.mts.map +1 -0
- package/dist/{Authorizer-C0ge_tc8.cjs → Authorizer-BXxBee2P.cjs} +1 -1
- package/dist/Authorizer-BXxBee2P.cjs.map +1 -0
- package/dist/{Authorizer-r9U3y_ms.mjs → Authorizer-BgjU8-z6.mjs} +1 -1
- package/dist/Authorizer-BgjU8-z6.mjs.map +1 -0
- package/dist/{Authorizer-gWxYsGEp.d.mts → Authorizer-DCcYOx3h.d.mts} +1 -1
- package/dist/Authorizer-DCcYOx3h.d.mts.map +1 -0
- package/dist/{Authorizer-B-btowNd.d.cts → Authorizer-DWtwC8we.d.cts} +1 -1
- package/dist/Authorizer-DWtwC8we.d.cts.map +1 -0
- package/dist/{BaseFunctionBuilder-BAtutR6q.d.cts → BaseFunctionBuilder-BqZCqIeU.d.mts} +3 -3
- package/dist/BaseFunctionBuilder-BqZCqIeU.d.mts.map +1 -0
- package/dist/{BaseFunctionBuilder-DRY419e7.d.mts → BaseFunctionBuilder-CcK691ni.d.cts} +3 -3
- package/dist/BaseFunctionBuilder-CcK691ni.d.cts.map +1 -0
- package/dist/{BaseFunctionBuilder-Czi1Jwza.mjs → BaseFunctionBuilder-Dsqe6pnn.mjs} +2 -2
- package/dist/BaseFunctionBuilder-Dsqe6pnn.mjs.map +1 -0
- package/dist/{BaseFunctionBuilder-MYG3C9ug.cjs → BaseFunctionBuilder-Z0XwrKB5.cjs} +2 -2
- package/dist/BaseFunctionBuilder-Z0XwrKB5.cjs.map +1 -0
- package/dist/Construct-BNDLJJfD.mjs +150 -0
- package/dist/Construct-BNDLJJfD.mjs.map +1 -0
- package/dist/{Construct-Ba5cMxib.cjs → Construct-CPrCF8NK.cjs} +93 -9
- package/dist/Construct-CPrCF8NK.cjs.map +1 -0
- package/dist/{Construct-C4rPE67v.d.cts → Construct-Dl0l2d8d.d.cts} +30 -4
- package/dist/Construct-Dl0l2d8d.d.cts.map +1 -0
- package/dist/{Construct-XrijZFFh.d.mts → Construct-E8QPyHh4.d.mts} +30 -4
- package/dist/Construct-E8QPyHh4.d.mts.map +1 -0
- package/dist/Construct.cjs +4 -2
- package/dist/Construct.d.cts +2 -2
- package/dist/Construct.d.mts +2 -2
- package/dist/Construct.mjs +2 -2
- package/dist/{Cron-CGF4YAfM.cjs → Cron-BmPNTLla.cjs} +3 -3
- package/dist/Cron-BmPNTLla.cjs.map +1 -0
- package/dist/{Cron-BxhGs5up.mjs → Cron-BpJONaFv.mjs} +3 -3
- package/dist/Cron-BpJONaFv.mjs.map +1 -0
- package/dist/{Cron-bDLcTvV5.d.cts → Cron-CnmLLh3E.d.mts} +3 -3
- package/dist/Cron-CnmLLh3E.d.mts.map +1 -0
- package/dist/{Cron-cdjlSKNp.d.mts → Cron-DufAeHry.d.cts} +3 -3
- package/dist/Cron-DufAeHry.d.cts.map +1 -0
- package/dist/{CronBuilder-d2jh-IB2.mjs → CronBuilder-02HSIHJr.mjs} +4 -4
- package/dist/CronBuilder-02HSIHJr.mjs.map +1 -0
- package/dist/{CronBuilder-CcxKRtVP.cjs → CronBuilder-DC2zUS8a.cjs} +4 -4
- package/dist/CronBuilder-DC2zUS8a.cjs.map +1 -0
- package/dist/{CronBuilder-BC4m5-p1.d.mts → CronBuilder-anUSbMxb.d.mts} +4 -4
- package/dist/CronBuilder-anUSbMxb.d.mts.map +1 -0
- package/dist/{CronBuilder-DKVXyE0Q.d.cts → CronBuilder-fyqf_X8n.d.cts} +4 -4
- package/dist/CronBuilder-fyqf_X8n.d.cts.map +1 -0
- package/dist/{Endpoint-BVGZXFyV.cjs → Endpoint-BCWVbi8l.cjs} +6 -6
- package/dist/Endpoint-BCWVbi8l.cjs.map +1 -0
- package/dist/{Endpoint-BPv9_-m_.d.cts → Endpoint-BlcHiGNx.d.cts} +3 -3
- package/dist/Endpoint-BlcHiGNx.d.cts.map +1 -0
- package/dist/{Endpoint-BdwG75G_.d.mts → Endpoint-DEHuy46S.d.mts} +4 -4
- package/dist/Endpoint-DEHuy46S.d.mts.map +1 -0
- package/dist/{Endpoint-CuOEswxJ.mjs → Endpoint-ygxv2Ia6.mjs} +6 -6
- package/dist/Endpoint-ygxv2Ia6.mjs.map +1 -0
- package/dist/{EndpointBuilder-DIy_m1bu.d.cts → EndpointBuilder-DPLAUHqg.d.cts} +4 -4
- package/dist/EndpointBuilder-DPLAUHqg.d.cts.map +1 -0
- package/dist/{EndpointBuilder-B3az942t.d.mts → EndpointBuilder-DaeCeneF.d.mts} +5 -5
- package/dist/EndpointBuilder-DaeCeneF.d.mts.map +1 -0
- package/dist/{EndpointBuilder-Cgj1P_ra.cjs → EndpointBuilder-J5D67Y6a.cjs} +6 -6
- package/dist/EndpointBuilder-J5D67Y6a.cjs.map +1 -0
- package/dist/{EndpointBuilder-DnCB1h1j.mjs → EndpointBuilder-tn4zqoyw.mjs} +6 -6
- package/dist/EndpointBuilder-tn4zqoyw.mjs.map +1 -0
- package/dist/{EndpointFactory-CbdxPCIH.mjs → EndpointFactory-CIUZTTAF.mjs} +7 -7
- package/dist/EndpointFactory-CIUZTTAF.mjs.map +1 -0
- package/dist/{EndpointFactory-CyPbm3AD.d.cts → EndpointFactory-CiKcb5PX.d.cts} +4 -4
- package/dist/EndpointFactory-CiKcb5PX.d.cts.map +1 -0
- package/dist/{EndpointFactory-C-0nE6Jg.d.mts → EndpointFactory-DufM0t2z.d.mts} +4 -4
- package/dist/EndpointFactory-DufM0t2z.d.mts.map +1 -0
- package/dist/{EndpointFactory-CYj6BYok.cjs → EndpointFactory-d5uwWFkK.cjs} +7 -7
- package/dist/EndpointFactory-d5uwWFkK.cjs.map +1 -0
- package/dist/{Function-DDZb1525.cjs → Function-2qWSZqYB.cjs} +3 -3
- package/dist/Function-2qWSZqYB.cjs.map +1 -0
- package/dist/{Function-Cf7f_kCz.d.cts → Function-CbEohg13.d.cts} +3 -3
- package/dist/Function-CbEohg13.d.cts.map +1 -0
- package/dist/{Function-BVHqIDp9.mjs → Function-CdF1HmFu.mjs} +3 -3
- package/dist/Function-CdF1HmFu.mjs.map +1 -0
- package/dist/{Function-DN2G6OT5.d.mts → Function-EjIOLxlh.d.mts} +3 -3
- package/dist/Function-EjIOLxlh.d.mts.map +1 -0
- package/dist/{FunctionBuilder-DswJ-9sD.cjs → FunctionBuilder-B-pbgm09.cjs} +4 -4
- package/dist/FunctionBuilder-B-pbgm09.cjs.map +1 -0
- package/dist/{FunctionBuilder-CJBzzXL3.d.cts → FunctionBuilder-CX3ooNdq.d.cts} +4 -4
- package/dist/FunctionBuilder-CX3ooNdq.d.cts.map +1 -0
- package/dist/{FunctionBuilder-Cxx8D2na.d.mts → FunctionBuilder-D11ytDyy.d.mts} +4 -4
- package/dist/FunctionBuilder-D11ytDyy.d.mts.map +1 -0
- package/dist/{FunctionBuilder-CrDYgfiI.mjs → FunctionBuilder-DaWVthAJ.mjs} +4 -4
- package/dist/FunctionBuilder-DaWVthAJ.mjs.map +1 -0
- package/dist/{FunctionExecutionWrapper-DF260Aaj.d.mts → FunctionExecutionWrapper-BJcRjH9Z.d.cts} +5 -5
- package/dist/FunctionExecutionWrapper-BJcRjH9Z.d.cts.map +1 -0
- package/dist/{FunctionExecutionWrapper-BYI2bGTL.cjs → FunctionExecutionWrapper-C6ChBNHs.cjs} +3 -3
- package/dist/FunctionExecutionWrapper-C6ChBNHs.cjs.map +1 -0
- package/dist/{FunctionExecutionWrapper-Qy8bmgFR.d.cts → FunctionExecutionWrapper-D3RNjGIR.d.mts} +5 -5
- package/dist/FunctionExecutionWrapper-D3RNjGIR.d.mts.map +1 -0
- package/dist/{FunctionExecutionWrapper-CLDh7Z2_.mjs → FunctionExecutionWrapper-Dj3pmXaN.mjs} +3 -3
- package/dist/FunctionExecutionWrapper-Dj3pmXaN.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-BaPlUhz0.d.mts → HonoEndpointAdaptor-CKP6nrG2.d.mts} +11 -6
- package/dist/HonoEndpointAdaptor-CKP6nrG2.d.mts.map +1 -0
- package/dist/HonoEndpointAdaptor-Cc8Rnp9G.mjs +251 -0
- package/dist/HonoEndpointAdaptor-Cc8Rnp9G.mjs.map +1 -0
- package/dist/{HonoEndpointAdaptor-YcRHYALH.d.cts → HonoEndpointAdaptor-hrrvyfw9.d.cts} +10 -5
- package/dist/HonoEndpointAdaptor-hrrvyfw9.d.cts.map +1 -0
- package/dist/HonoEndpointAdaptor-xGnDZa3a.cjs +257 -0
- package/dist/HonoEndpointAdaptor-xGnDZa3a.cjs.map +1 -0
- package/dist/{Subscriber-COYMSevD.d.cts → Subscriber-BBcIOkhW.d.cts} +2 -2
- package/dist/Subscriber-BBcIOkhW.d.cts.map +1 -0
- package/dist/{Subscriber-ikctpU3I.d.mts → Subscriber-BpTAXvbM.d.mts} +2 -2
- package/dist/Subscriber-BpTAXvbM.d.mts.map +1 -0
- package/dist/{Subscriber-BiHjVXtM.cjs → Subscriber-CL4iYm01.cjs} +2 -2
- package/dist/Subscriber-CL4iYm01.cjs.map +1 -0
- package/dist/{Subscriber-BmPf9GFb.mjs → Subscriber-CZ8Smwd2.mjs} +2 -2
- package/dist/Subscriber-CZ8Smwd2.mjs.map +1 -0
- package/dist/{SubscriberBuilder-DJPEeYDJ.mjs → SubscriberBuilder-CxQg3TTm.mjs} +2 -2
- package/dist/SubscriberBuilder-CxQg3TTm.mjs.map +1 -0
- package/dist/{SubscriberBuilder-Cp1C-xtT.cjs → SubscriberBuilder-D0OS3hd7.cjs} +2 -2
- package/dist/SubscriberBuilder-D0OS3hd7.cjs.map +1 -0
- package/dist/{SubscriberBuilder-D_9zzllj.d.mts → SubscriberBuilder-D7IgufwB.d.cts} +3 -3
- package/dist/SubscriberBuilder-D7IgufwB.d.cts.map +1 -0
- package/dist/{SubscriberBuilder-ivHAGIVi.d.cts → SubscriberBuilder-DOFBbWLt.d.mts} +3 -3
- package/dist/SubscriberBuilder-DOFBbWLt.d.mts.map +1 -0
- package/dist/{TestEndpointAdaptor-DB7bREhS.d.mts → TestEndpointAdaptor-BnJusjf7.d.mts} +4 -4
- package/dist/TestEndpointAdaptor-BnJusjf7.d.mts.map +1 -0
- package/dist/TestEndpointAdaptor-CPL8ru6q.mjs +170 -0
- package/dist/TestEndpointAdaptor-CPL8ru6q.mjs.map +1 -0
- package/dist/TestEndpointAdaptor-Ca4K26_d.cjs +176 -0
- package/dist/TestEndpointAdaptor-Ca4K26_d.cjs.map +1 -0
- package/dist/{TestEndpointAdaptor-C10xBI--.d.cts → TestEndpointAdaptor-EPPTjntv.d.cts} +3 -3
- package/dist/TestEndpointAdaptor-EPPTjntv.d.cts.map +1 -0
- package/dist/adaptors/aws.cjs +12 -12
- package/dist/adaptors/aws.d.cts +15 -14
- package/dist/adaptors/aws.d.mts +16 -15
- package/dist/adaptors/aws.mjs +12 -12
- package/dist/adaptors/hono.cjs +10 -9
- package/dist/adaptors/hono.d.cts +8 -8
- package/dist/adaptors/hono.d.mts +9 -9
- package/dist/adaptors/hono.mjs +10 -9
- package/dist/adaptors/testing.cjs +8 -7
- package/dist/adaptors/testing.d.cts +8 -8
- package/dist/adaptors/testing.d.mts +9 -9
- package/dist/adaptors/testing.mjs +8 -7
- package/dist/crons/Cron.cjs +6 -6
- package/dist/crons/Cron.d.cts +6 -6
- package/dist/crons/Cron.d.mts +6 -6
- package/dist/crons/Cron.mjs +6 -6
- package/dist/crons/CronBuilder.cjs +7 -7
- package/dist/crons/CronBuilder.d.cts +7 -7
- package/dist/crons/CronBuilder.d.mts +7 -7
- package/dist/crons/CronBuilder.mjs +7 -7
- package/dist/crons/index.cjs +7 -7
- package/dist/crons/index.cjs.map +1 -1
- package/dist/crons/index.d.cts +11 -11
- package/dist/crons/index.d.mts +7 -7
- package/dist/crons/index.mjs +7 -7
- package/dist/crons/index.mjs.map +1 -1
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +7 -7
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +10 -9
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +11 -10
- package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +7 -7
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +8 -8
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +10 -9
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +11 -10
- package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +8 -8
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +8 -8
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +11 -10
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +12 -11
- package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +8 -8
- package/dist/endpoints/Authorizer.cjs +1 -1
- package/dist/endpoints/Authorizer.d.cts +1 -1
- package/dist/endpoints/Authorizer.d.mts +1 -1
- package/dist/endpoints/Authorizer.mjs +1 -1
- package/dist/endpoints/Endpoint.cjs +6 -6
- package/dist/endpoints/Endpoint.d.cts +7 -7
- package/dist/endpoints/Endpoint.d.mts +8 -8
- package/dist/endpoints/Endpoint.mjs +6 -6
- package/dist/endpoints/EndpointBuilder.cjs +9 -9
- package/dist/endpoints/EndpointBuilder.d.cts +8 -8
- package/dist/endpoints/EndpointBuilder.d.mts +9 -9
- package/dist/endpoints/EndpointBuilder.mjs +9 -9
- package/dist/endpoints/EndpointFactory.cjs +10 -10
- package/dist/endpoints/EndpointFactory.d.cts +9 -9
- package/dist/endpoints/EndpointFactory.d.mts +10 -10
- package/dist/endpoints/EndpointFactory.mjs +10 -10
- package/dist/endpoints/HonoEndpointAdaptor.cjs +10 -9
- package/dist/endpoints/HonoEndpointAdaptor.d.cts +8 -8
- package/dist/endpoints/HonoEndpointAdaptor.d.mts +9 -9
- package/dist/endpoints/HonoEndpointAdaptor.mjs +10 -9
- package/dist/endpoints/TestEndpointAdaptor.cjs +8 -7
- package/dist/endpoints/TestEndpointAdaptor.d.cts +8 -8
- package/dist/endpoints/TestEndpointAdaptor.d.mts +9 -9
- package/dist/endpoints/TestEndpointAdaptor.mjs +8 -7
- package/dist/endpoints/audit.d.cts +7 -7
- package/dist/endpoints/audit.d.mts +8 -8
- package/dist/endpoints/helpers.cjs +7 -7
- package/dist/endpoints/helpers.d.cts +7 -7
- package/dist/endpoints/helpers.d.cts.map +1 -1
- package/dist/endpoints/helpers.d.mts +8 -8
- package/dist/endpoints/helpers.d.mts.map +1 -1
- package/dist/endpoints/helpers.mjs +7 -7
- package/dist/endpoints/index.cjs +20 -10
- package/dist/endpoints/index.cjs.map +1 -1
- package/dist/endpoints/index.d.cts +14 -12
- package/dist/endpoints/index.d.cts.map +1 -1
- package/dist/endpoints/index.d.mts +15 -13
- package/dist/endpoints/index.d.mts.map +1 -1
- package/dist/endpoints/index.mjs +13 -11
- package/dist/endpoints/index.mjs.map +1 -1
- package/dist/endpoints/lazyAccessors.cjs +10 -0
- package/dist/endpoints/lazyAccessors.d.cts +10 -0
- package/dist/endpoints/lazyAccessors.d.mts +10 -0
- package/dist/endpoints/lazyAccessors.mjs +3 -0
- package/dist/endpoints/parseHonoQuery.cjs +1 -1
- package/dist/endpoints/parseHonoQuery.mjs +1 -1
- package/dist/endpoints/parseQueryParams.d.cts.map +1 -1
- package/dist/endpoints/parseQueryParams.d.mts.map +1 -1
- package/dist/endpoints/processAudits.d.cts +7 -7
- package/dist/endpoints/processAudits.d.cts.map +1 -1
- package/dist/endpoints/processAudits.d.mts +8 -8
- package/dist/endpoints/processAudits.d.mts.map +1 -1
- package/dist/endpoints/rls.cjs +1 -1
- package/dist/endpoints/rls.d.cts +7 -7
- package/dist/endpoints/rls.d.mts +8 -8
- package/dist/endpoints/rls.mjs +1 -1
- package/dist/functions/AWSLambdaFunction.cjs +6 -6
- package/dist/functions/AWSLambdaFunction.d.cts +4 -4
- package/dist/functions/AWSLambdaFunction.d.mts +4 -4
- package/dist/functions/AWSLambdaFunction.mjs +6 -6
- package/dist/functions/BaseFunctionBuilder.cjs +2 -2
- package/dist/functions/BaseFunctionBuilder.d.cts +2 -2
- package/dist/functions/BaseFunctionBuilder.d.mts +2 -2
- package/dist/functions/BaseFunctionBuilder.mjs +2 -2
- package/dist/functions/Function.cjs +2 -2
- package/dist/functions/Function.d.cts +2 -2
- package/dist/functions/Function.d.mts +2 -2
- package/dist/functions/Function.mjs +2 -2
- package/dist/functions/FunctionBuilder.cjs +4 -4
- package/dist/functions/FunctionBuilder.d.cts +4 -4
- package/dist/functions/FunctionBuilder.d.mts +4 -4
- package/dist/functions/FunctionBuilder.mjs +4 -4
- package/dist/functions/FunctionExecutionWrapper.cjs +5 -5
- package/dist/functions/FunctionExecutionWrapper.d.cts +3 -3
- package/dist/functions/FunctionExecutionWrapper.d.mts +3 -3
- package/dist/functions/FunctionExecutionWrapper.mjs +5 -5
- package/dist/functions/TestFunctionAdaptor.cjs +7 -7
- package/dist/functions/TestFunctionAdaptor.cjs.map +1 -1
- package/dist/functions/TestFunctionAdaptor.d.cts +3 -3
- package/dist/functions/TestFunctionAdaptor.d.cts.map +1 -1
- package/dist/functions/TestFunctionAdaptor.d.mts +3 -3
- package/dist/functions/TestFunctionAdaptor.d.mts.map +1 -1
- package/dist/functions/TestFunctionAdaptor.mjs +7 -7
- package/dist/functions/TestFunctionAdaptor.mjs.map +1 -1
- package/dist/functions/index.cjs +5 -5
- package/dist/functions/index.d.cts +5 -5
- package/dist/functions/index.d.mts +5 -5
- package/dist/functions/index.mjs +5 -5
- package/dist/{functions-fTid0RMK.cjs → functions-CUEv5NC3.cjs} +2 -2
- package/dist/functions-CUEv5NC3.cjs.map +1 -0
- package/dist/functions-DOYBrb7n.mjs +8 -0
- package/dist/functions-DOYBrb7n.mjs.map +1 -0
- package/dist/{helpers-ByRTDO_m.mjs → helpers-Dl1eszfi.mjs} +2 -2
- package/dist/helpers-Dl1eszfi.mjs.map +1 -0
- package/dist/{helpers-BcP1tXAi.cjs → helpers-QMdfdnvU.cjs} +2 -2
- package/dist/helpers-QMdfdnvU.cjs.map +1 -0
- package/dist/{index-BWzGIj06.d.mts → index-BrGtMlpJ.d.cts} +2 -2
- package/dist/index-BrGtMlpJ.d.cts.map +1 -0
- package/dist/index-Dn4py3Db.d.mts +12 -0
- package/dist/index-Dn4py3Db.d.mts.map +1 -0
- package/dist/index.cjs +4 -2
- package/dist/index.d.cts +3 -2
- package/dist/index.d.mts +4 -3
- package/dist/index.mjs +2 -2
- package/dist/lazyAccessors-B-Jgkg2o.mjs +175 -0
- package/dist/lazyAccessors-B-Jgkg2o.mjs.map +1 -0
- package/dist/lazyAccessors-B8Hhras9.cjs +223 -0
- package/dist/lazyAccessors-B8Hhras9.cjs.map +1 -0
- package/dist/lazyAccessors-BFAj2-S4.d.mts +49 -0
- package/dist/lazyAccessors-BFAj2-S4.d.mts.map +1 -0
- package/dist/lazyAccessors-knaNZuTN.d.cts +49 -0
- package/dist/lazyAccessors-knaNZuTN.d.cts.map +1 -0
- package/dist/{parseHonoQuery-CZC5_97v.cjs → parseHonoQuery-D4MhxTRc.cjs} +1 -1
- package/dist/parseHonoQuery-D4MhxTRc.cjs.map +1 -0
- package/dist/{parseHonoQuery-DDgIkTO4.mjs → parseHonoQuery-DpK3sGPc.mjs} +1 -1
- package/dist/parseHonoQuery-DpK3sGPc.mjs.map +1 -0
- package/dist/parseQueryParams-BSNkjmZ9.cjs.map +1 -1
- package/dist/parseQueryParams-UMTRnRrW.mjs.map +1 -1
- package/dist/processAudits-CzHkPokQ.cjs.map +1 -1
- package/dist/processAudits-Dj8UGqcW.mjs.map +1 -1
- package/dist/publisher-BXG9YiRi.d.mts +16 -0
- package/dist/publisher-BXG9YiRi.d.mts.map +1 -0
- package/dist/publisher-Bw4770Hi.mjs.map +1 -1
- package/dist/publisher-D9ngDXg3.d.cts +16 -0
- package/dist/publisher-D9ngDXg3.d.cts.map +1 -0
- package/dist/publisher-lFQleddL.cjs.map +1 -1
- package/dist/publisher.d.cts +3 -16
- package/dist/publisher.d.mts +3 -16
- package/dist/{rls-CmJ7bRsz.cjs → rls-BrywnrQb.cjs} +1 -1
- package/dist/{rls-CmJ7bRsz.cjs.map → rls-BrywnrQb.cjs.map} +1 -1
- package/dist/{rls-Bf3FRwto.mjs → rls-C0cWOnk4.mjs} +1 -1
- package/dist/{rls-Bf3FRwto.mjs.map → rls-C0cWOnk4.mjs.map} +1 -1
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.cts +3 -3
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +3 -3
- package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
- package/dist/subscribers/Subscriber.cjs +2 -2
- package/dist/subscribers/Subscriber.d.cts +2 -2
- package/dist/subscribers/Subscriber.d.mts +2 -2
- package/dist/subscribers/Subscriber.mjs +2 -2
- package/dist/subscribers/SubscriberBuilder.cjs +3 -3
- package/dist/subscribers/SubscriberBuilder.d.cts +3 -3
- package/dist/subscribers/SubscriberBuilder.d.mts +3 -3
- package/dist/subscribers/SubscriberBuilder.mjs +3 -3
- package/dist/subscribers/index.cjs +3 -3
- package/dist/subscribers/index.cjs.map +1 -1
- package/dist/subscribers/index.d.cts +5 -5
- package/dist/subscribers/index.d.cts.map +1 -1
- package/dist/subscribers/index.d.mts +5 -5
- package/dist/subscribers/index.d.mts.map +1 -1
- package/dist/subscribers/index.mjs +3 -3
- package/dist/subscribers/index.mjs.map +1 -1
- package/dist/telemetry-BTaiRqPo.d.cts +95 -0
- package/dist/telemetry-BTaiRqPo.d.cts.map +1 -0
- package/dist/telemetry-yAHf5yDs.d.mts +95 -0
- package/dist/telemetry-yAHf5yDs.d.mts.map +1 -0
- package/dist/telemetry.cjs +0 -0
- package/dist/telemetry.d.cts +2 -0
- package/dist/telemetry.d.mts +2 -0
- package/dist/telemetry.mjs +0 -0
- package/dist/types-B5H3piDg.d.cts.map +1 -1
- package/dist/{types-DdIlpxAd.d.mts → types-Dw-iLd3Y.d.mts} +1 -1
- package/dist/types-Dw-iLd3Y.d.mts.map +1 -0
- package/dist/types.d.mts +1 -1
- package/package.json +19 -18
- package/src/Construct.ts +189 -94
- package/src/__benchmarks__/build-time-optimization.bench.ts +274 -0
- package/src/__benchmarks__/endpoint.bench.ts +375 -375
- package/src/__benchmarks__/fixtures.ts +241 -0
- package/src/__benchmarks__/hono-adaptor.bench.ts +533 -0
- package/src/__benchmarks__/hono-server.bench.ts +206 -206
- package/src/__benchmarks__/response-builder.bench.ts +428 -0
- package/src/__benchmarks__/strategies/strategy-a-lazy-services.ts +319 -0
- package/src/__benchmarks__/strategies/strategy-c-middleware.ts +530 -0
- package/src/__benchmarks__/strategies/strategy-d-opt-in-events.ts +567 -0
- package/src/__tests__/Construct.environment.spec.ts +572 -351
- package/src/__tests__/publisher.setting.spec.ts +496 -499
- package/src/__tests__/publisher.spec.ts +440 -442
- package/src/crons/Cron.ts +117 -117
- package/src/crons/CronBuilder.ts +237 -238
- package/src/crons/__tests__/Cron.spec.ts +448 -448
- package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +214 -214
- package/src/crons/index.ts +4 -4
- package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +571 -463
- package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +86 -86
- package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +85 -81
- package/src/endpoints/Authorizer.ts +100 -100
- package/src/endpoints/Endpoint.ts +921 -937
- package/src/endpoints/EndpointBuilder.ts +703 -703
- package/src/endpoints/EndpointFactory.ts +1054 -1056
- package/src/endpoints/HonoEndpointAdaptor.ts +621 -548
- package/src/endpoints/TestEndpointAdaptor.ts +372 -353
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.audits.spec.ts +499 -0
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +541 -542
- package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +1172 -1174
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +599 -599
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +710 -710
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +280 -280
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +924 -730
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.rls.spec.ts +307 -0
- package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +408 -408
- package/src/endpoints/__tests__/Authorizer.spec.ts +286 -0
- package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +162 -162
- package/src/endpoints/__tests__/Endpoint.headers.spec.ts +182 -182
- package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +158 -159
- package/src/endpoints/__tests__/Endpoint.spec.ts +819 -822
- package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +427 -427
- package/src/endpoints/__tests__/EndpointBuilder.spec.ts +478 -478
- package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +426 -426
- package/src/endpoints/__tests__/EndpointFactory.database-auditor.spec.ts +501 -501
- package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +177 -177
- package/src/endpoints/__tests__/EndpointFactory.spec.ts +471 -471
- package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +143 -143
- package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +663 -663
- package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +608 -608
- package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +561 -561
- package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +1036 -1036
- package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +278 -278
- package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +1093 -1093
- package/src/endpoints/__tests__/ResponseBuilder.spec.ts +230 -230
- package/src/endpoints/__tests__/TestEndpointAdaptor.audits.spec.ts +569 -569
- package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +841 -841
- package/src/endpoints/__tests__/endpoint-types.test.ts +68 -68
- package/src/endpoints/__tests__/helpers.spec.ts +37 -0
- package/src/endpoints/__tests__/lazyAccessors.spec.ts +330 -0
- package/src/endpoints/__tests__/processAudits.spec.ts +631 -0
- package/src/endpoints/audit.ts +51 -51
- package/src/endpoints/helpers.ts +34 -35
- package/src/endpoints/index.ts +33 -23
- package/src/endpoints/lazyAccessors.ts +241 -0
- package/src/endpoints/parseHonoQuery.ts +41 -41
- package/src/endpoints/parseQueryParams.ts +36 -36
- package/src/endpoints/processAudits.ts +269 -269
- package/src/endpoints/rls.ts +16 -16
- package/src/functions/AWSLambdaFunction.ts +294 -295
- package/src/functions/BaseFunctionBuilder.ts +185 -185
- package/src/functions/Function.ts +190 -190
- package/src/functions/FunctionBuilder.ts +353 -353
- package/src/functions/FunctionExecutionWrapper.ts +199 -200
- package/src/functions/TestFunctionAdaptor.ts +191 -191
- package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +424 -424
- package/src/functions/__tests__/Function.audits.spec.ts +364 -364
- package/src/functions/__tests__/Function.spec.ts +453 -454
- package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +179 -179
- package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +369 -369
- package/src/functions/index.ts +6 -4
- package/src/index.ts +18 -9
- package/src/publisher.ts +71 -72
- package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +244 -248
- package/src/subscribers/Subscriber.ts +82 -84
- package/src/subscribers/SubscriberBuilder.ts +129 -129
- package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +589 -589
- package/src/subscribers/__tests__/Subscriber.spec.ts +402 -404
- package/src/subscribers/index.ts +1 -0
- package/src/telemetry.ts +103 -0
- package/src/types.ts +7 -7
- package/test.ts +58 -59
- package/dist/AWSLambdaFunction-BdebRMUh.d.mts.map +0 -1
- package/dist/AWSLambdaFunction-C54a1doJ.mjs.map +0 -1
- package/dist/AWSLambdaFunction-D0tEOTXQ.d.cts.map +0 -1
- package/dist/AWSLambdaFunction-EPGY4s7i.cjs.map +0 -1
- package/dist/AWSLambdaSubscriberAdaptor-BLfO612H.mjs.map +0 -1
- package/dist/AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs.map +0 -1
- package/dist/AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts.map +0 -1
- package/dist/AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs.map +0 -1
- package/dist/AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts.map +0 -1
- package/dist/AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs.map +0 -1
- package/dist/AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs.map +0 -1
- package/dist/AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts.map +0 -1
- package/dist/AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts.map +0 -1
- package/dist/AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs.map +0 -1
- package/dist/Authorizer-B-btowNd.d.cts.map +0 -1
- package/dist/Authorizer-C0ge_tc8.cjs.map +0 -1
- package/dist/Authorizer-gWxYsGEp.d.mts.map +0 -1
- package/dist/Authorizer-r9U3y_ms.mjs.map +0 -1
- package/dist/BaseFunctionBuilder-BAtutR6q.d.cts.map +0 -1
- package/dist/BaseFunctionBuilder-Czi1Jwza.mjs.map +0 -1
- package/dist/BaseFunctionBuilder-DRY419e7.d.mts.map +0 -1
- package/dist/BaseFunctionBuilder-MYG3C9ug.cjs.map +0 -1
- package/dist/Construct-Ba5cMxib.cjs.map +0 -1
- package/dist/Construct-C4rPE67v.d.cts.map +0 -1
- package/dist/Construct-DdyGHuag.mjs +0 -78
- package/dist/Construct-DdyGHuag.mjs.map +0 -1
- package/dist/Construct-XrijZFFh.d.mts.map +0 -1
- package/dist/Cron-BxhGs5up.mjs.map +0 -1
- package/dist/Cron-CGF4YAfM.cjs.map +0 -1
- package/dist/Cron-bDLcTvV5.d.cts.map +0 -1
- package/dist/Cron-cdjlSKNp.d.mts.map +0 -1
- package/dist/CronBuilder-BC4m5-p1.d.mts.map +0 -1
- package/dist/CronBuilder-CcxKRtVP.cjs.map +0 -1
- package/dist/CronBuilder-DKVXyE0Q.d.cts.map +0 -1
- package/dist/CronBuilder-d2jh-IB2.mjs.map +0 -1
- package/dist/Endpoint-BPv9_-m_.d.cts.map +0 -1
- package/dist/Endpoint-BVGZXFyV.cjs.map +0 -1
- package/dist/Endpoint-BdwG75G_.d.mts.map +0 -1
- package/dist/Endpoint-CuOEswxJ.mjs.map +0 -1
- package/dist/EndpointBuilder-B3az942t.d.mts.map +0 -1
- package/dist/EndpointBuilder-Cgj1P_ra.cjs.map +0 -1
- package/dist/EndpointBuilder-DIy_m1bu.d.cts.map +0 -1
- package/dist/EndpointBuilder-DnCB1h1j.mjs.map +0 -1
- package/dist/EndpointFactory-C-0nE6Jg.d.mts.map +0 -1
- package/dist/EndpointFactory-CYj6BYok.cjs.map +0 -1
- package/dist/EndpointFactory-CbdxPCIH.mjs.map +0 -1
- package/dist/EndpointFactory-CyPbm3AD.d.cts.map +0 -1
- package/dist/Function-BVHqIDp9.mjs.map +0 -1
- package/dist/Function-Cf7f_kCz.d.cts.map +0 -1
- package/dist/Function-DDZb1525.cjs.map +0 -1
- package/dist/Function-DN2G6OT5.d.mts.map +0 -1
- package/dist/FunctionBuilder-CJBzzXL3.d.cts.map +0 -1
- package/dist/FunctionBuilder-CrDYgfiI.mjs.map +0 -1
- package/dist/FunctionBuilder-Cxx8D2na.d.mts.map +0 -1
- package/dist/FunctionBuilder-DswJ-9sD.cjs.map +0 -1
- package/dist/FunctionExecutionWrapper-BYI2bGTL.cjs.map +0 -1
- package/dist/FunctionExecutionWrapper-CLDh7Z2_.mjs.map +0 -1
- package/dist/FunctionExecutionWrapper-DF260Aaj.d.mts.map +0 -1
- package/dist/FunctionExecutionWrapper-Qy8bmgFR.d.cts.map +0 -1
- package/dist/HonoEndpointAdaptor-BaPlUhz0.d.mts.map +0 -1
- package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs +0 -234
- package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs.map +0 -1
- package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs +0 -228
- package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs.map +0 -1
- package/dist/HonoEndpointAdaptor-YcRHYALH.d.cts.map +0 -1
- package/dist/Subscriber-BiHjVXtM.cjs.map +0 -1
- package/dist/Subscriber-BmPf9GFb.mjs.map +0 -1
- package/dist/Subscriber-COYMSevD.d.cts.map +0 -1
- package/dist/Subscriber-ikctpU3I.d.mts.map +0 -1
- package/dist/SubscriberBuilder-Cp1C-xtT.cjs.map +0 -1
- package/dist/SubscriberBuilder-DJPEeYDJ.mjs.map +0 -1
- package/dist/SubscriberBuilder-D_9zzllj.d.mts.map +0 -1
- package/dist/SubscriberBuilder-ivHAGIVi.d.cts.map +0 -1
- package/dist/TestEndpointAdaptor-C10xBI--.d.cts.map +0 -1
- package/dist/TestEndpointAdaptor-DB7bREhS.d.mts.map +0 -1
- package/dist/TestEndpointAdaptor-DJgik2Wj.mjs +0 -160
- package/dist/TestEndpointAdaptor-DJgik2Wj.mjs.map +0 -1
- package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs +0 -166
- package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs.map +0 -1
- package/dist/functions-C6EK1xL6.mjs +0 -8
- package/dist/functions-C6EK1xL6.mjs.map +0 -1
- package/dist/functions-fTid0RMK.cjs.map +0 -1
- package/dist/helpers-BcP1tXAi.cjs.map +0 -1
- package/dist/helpers-ByRTDO_m.mjs.map +0 -1
- package/dist/index-BWzGIj06.d.mts.map +0 -1
- package/dist/index-DmFozqLd.d.cts +0 -12
- package/dist/index-DmFozqLd.d.cts.map +0 -1
- package/dist/parseHonoQuery-CZC5_97v.cjs.map +0 -1
- package/dist/parseHonoQuery-DDgIkTO4.mjs.map +0 -1
- package/dist/publisher.d.cts.map +0 -1
- package/dist/publisher.d.mts.map +0 -1
- package/dist/types-DdIlpxAd.d.mts.map +0 -1
|
@@ -123,4 +123,4 @@ declare function getSecurityScheme(name: string, customSchemes?: Record<string,
|
|
|
123
123
|
//# sourceMappingURL=Authorizer.d.ts.map
|
|
124
124
|
//#endregion
|
|
125
125
|
export { Authorizer, BUILT_IN_SECURITY_SCHEMES, BuiltInSecuritySchemeId, OAuthFlow, OAuthFlows, SecurityScheme, createAuthorizer, getSecurityScheme, isBuiltInSecurityScheme };
|
|
126
|
-
//# sourceMappingURL=Authorizer-
|
|
126
|
+
//# sourceMappingURL=Authorizer-DWtwC8we.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Authorizer-DWtwC8we.d.cts","names":[],"sources":["../src/endpoints/Authorizer.ts"],"sourcesContent":[],"mappings":";;AAIA;AAwBA;;AACY,UAzBK,cAAA,CAyBL;EAAS;EACA,IACA,EAAA,QAAA,GAAA,MAAA,GAAA,WAAA,GAAA,QAAA,GAAA,eAAA;EAAS;EACA,WAAA,CAAA,EAAA,MAAA;EAGb;EAWJ,IAAA,CAAA,EAAA,MAAA;EAsCD;EAKK,EAAA,CAAA,EAAA,OAAA,GAAU,QAAA,GAAA,QAAA;EAAA;EAAA,MAQT,CAAA,EAAA,MAAA;EAAc;EAed,YAAA,CAAA,EAAA,MAAA;EAMF;EAAgB,KAAA,CAAA,EApGvB,UAoGuB;EAAA;EAEN,gBAAf,CAAA,EAAA,MAAA;EAAI;EACF,CAAA,GAAA,EAAA,KAAA,MAAA,EAAA,CAAA,EAAA,OAAA;AAUb;AASA;;;AAEiB,UAlHA,UAAA,CAkHA;EAAM,QACpB,CAAA,EAlHS,SAkHT;EAAc,QAAA,CAAA,EAjHL,SAiHK;sBAhHI;sBACA;;UAGJ,SAAA;;;;UAIR;;;;;;cAOI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsCD,uBAAA,gBAAuC;;;;UAKlC,UAAA;;;;;;;;mBAQC;;;;;;;;;;;;;;;aAeN;;;;;iBAMI,gBAAA,yBAEL,KAAK,sBACb;;;;iBAUa,uBAAA,wBAEL;;;;iBAOK,iBAAA,+BAEC,eAAe,kBAC7B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ConstructType } from "./Construct-
|
|
1
|
+
import { ConstructType } from "./Construct-E8QPyHh4.mjs";
|
|
2
|
+
import { Service } from "@geekmidas/services";
|
|
2
3
|
import { AuditStorage } from "@geekmidas/audit";
|
|
3
4
|
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
4
5
|
import { Logger } from "@geekmidas/logger";
|
|
5
|
-
import { Service } from "@geekmidas/services";
|
|
6
6
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
7
7
|
import { ComposableStandardSchema, InferComposableStandardSchema } from "@geekmidas/schema";
|
|
8
8
|
|
|
@@ -39,4 +39,4 @@ declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSche
|
|
|
39
39
|
|
|
40
40
|
//#endregion
|
|
41
41
|
export { BaseFunctionBuilder };
|
|
42
|
-
//# sourceMappingURL=BaseFunctionBuilder-
|
|
42
|
+
//# sourceMappingURL=BaseFunctionBuilder-BqZCqIeU.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseFunctionBuilder-BqZCqIeU.d.mts","names":[],"sources":["../src/functions/BaseFunctionBuilder.ts"],"sourcesContent":[],"mappings":";;;;;;;;;uBAesB,mCACN,4CACG,4DACA,gCACF,SAAS,gCACD,uHAEF;QAsDC;EA7DF,UAAA,WAAA,CAAmB,EAYhB,MAZgB;EAAA,UAAA,YAAA,CAAA,EAaf,SAbe;EAAA,UACzB,QAAA,CAAA,EAAA,MAAA;EAAwB,SACrB,EAcA,SAdA;EAAgB,OAChB,EAcF,OAdE;EAAO,UACT,OAAA,EAeG,WAfH,CAee,eAff,EAegC,SAfhC,CAAA,EAAA;EAAM,UAAG,UAAA,CAAA,EAgBF,OAhBE,CAgBM,0BAhBN,EAgBkC,eAhBlC,CAAA;EAAM,UACP,eAAA,CAAA,EAgBI,OAhBJ,CAgBY,wBAhBZ,EAgBsC,aAhBtC,CAAA;EAAc,UAEhB,gBAAA,CAAA,EAeO,OAfP,CAee,oBAff,EAeqC,SAfrC,CAAA;EAAY,OAsDX,kBAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,IArCqB,gBAqCrB;EAAA,OAjDC,6BAAA,CAAA,UAmBb,wBAnBa,GAAA,SAAA,CAAA,CAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAoBC,CApBD,CAAA,EAoBK,OApBL,CAoBa,6BApBb,CAoB2C,CApB3C,CAAA,CAAA;EAAM,WACL,CAAA,IAAA,CAAA,EAgDF,aAhDE;EAAS,SAGhB,QAAA,CAAA,UA+CU,OA/CV,EAAA,CAAA,CAAA,QAAA,EA+C+B,CA/C/B,CAAA,EAAA,GAAA;EAAS,SACX,MAAA,CAAA,UAgDU,MAhDV,CAAA,CAAA,MAAA,EAgD0B,CAhD1B,CAAA,EAAA,GAAA;EAAO,OAEQ,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAe,SAAE,MAAA,CAAA,UAqDtB,gBArDsB,CAAA,CAAA,MAAA,EAqDI,CArDJ,CAAA,EAAA,GAAA;EAAS,SAAtC,KAAA,CAAA,UAuDM,wBAvDN,CAAA,CAAA,MAAA,EAuDwC,CAvDxC,CAAA,EAAA,GAAA;EAAW,KACC,CAAA,eAwDV,WAxDU,CAwDE,eAxDF,EAwDmB,SAxDnB,CAAA,CAAA,CAAA,KAAA,EAyDvB,MAzDuB,CAAA,EAAA,IAAA;EAA0B,SAAE,CAAA,UA+DvC,cA/DuC,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,SAAA,EAgE/C,OAhE+C,CAgEvC,KAhEuC,EAgEhC,CAhEgC,CAAA,CAAA,EAiExD,mBAjEwD,CAkE1D,MAlE0D,EAmE1D,SAnE0D,EAoE1D,SApE0D,EAqE1D,OArE0D,EAsE1D,CAtE0D,EAuE1D,KAvE0D,EAwE1D,aAxE0D,EAyE1D,wBAzE0D,EA0E1D,SA1E0D,EA2E1D,oBA3E0D,CAAA;EAAe,OAAnD,CAAA,UAgGL,YAhGK,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,EAiGb,OAjGa,CAiGL,KAjGK,EAiGE,CAjGF,CAAA,CAAA,EAkGpB,mBAlGoB,CAmGtB,MAnGsB,EAoGtB,SApGsB,EAqGtB,SArGsB,EAsGtB,OAtGsB,EAuGtB,eAvGsB,EAwGtB,0BAxGsB,EAyGtB,CAzGsB,EA0GtB,KA1GsB,EA2GtB,SA3GsB,EA4GtB,oBA5GsB,CAAA;EAAO;;;;EAE2B,QAAE,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,EAoIjD,OApIiD,CAoIzC,KApIyC,EAoIlC,CApIkC,CAAA,CAAA,EAqIxD,mBArIwD,CAsI1D,MAtI0D,EAuI1D,SAvI0D,EAwI1D,SAxI0D,EAyI1D,OAzI0D,EA0I1D,eA1I0D,EA2I1D,0BA3I0D,EA4I1D,aA5I0D,EA6I1D,wBA7I0D,EA8I1D,CA9I0D,EA+I1D,KA/I0D,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ConstructType } from "./Construct-
|
|
2
|
-
import { Service } from "@geekmidas/services";
|
|
1
|
+
import { ConstructType } from "./Construct-Dl0l2d8d.cjs";
|
|
3
2
|
import { AuditStorage } from "@geekmidas/audit";
|
|
4
3
|
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
5
4
|
import { Logger } from "@geekmidas/logger";
|
|
5
|
+
import { Service } from "@geekmidas/services";
|
|
6
6
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
7
7
|
import { ComposableStandardSchema, InferComposableStandardSchema } from "@geekmidas/schema";
|
|
8
8
|
|
|
@@ -39,4 +39,4 @@ declare abstract class BaseFunctionBuilder<TInput extends ComposableStandardSche
|
|
|
39
39
|
|
|
40
40
|
//#endregion
|
|
41
41
|
export { BaseFunctionBuilder };
|
|
42
|
-
//# sourceMappingURL=BaseFunctionBuilder-
|
|
42
|
+
//# sourceMappingURL=BaseFunctionBuilder-CcK691ni.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseFunctionBuilder-CcK691ni.d.cts","names":[],"sources":["../src/functions/BaseFunctionBuilder.ts"],"sourcesContent":[],"mappings":";;;;;;;;;uBAesB,mCACN,4CACG,4DACA,gCACF,SAAS,gCACD,uHAEF;QAsDC;EA7DF,UAAA,WAAA,CAAmB,EAYhB,MAZgB;EAAA,UAAA,YAAA,CAAA,EAaf,SAbe;EAAA,UACzB,QAAA,CAAA,EAAA,MAAA;EAAwB,SACrB,EAcA,SAdA;EAAgB,OAChB,EAcF,OAdE;EAAO,UACT,OAAA,EAeG,WAfH,CAee,eAff,EAegC,SAfhC,CAAA,EAAA;EAAM,UAAG,UAAA,CAAA,EAgBF,OAhBE,CAgBM,0BAhBN,EAgBkC,eAhBlC,CAAA;EAAM,UACP,eAAA,CAAA,EAgBI,OAhBJ,CAgBY,wBAhBZ,EAgBsC,aAhBtC,CAAA;EAAc,UAEhB,gBAAA,CAAA,EAeO,OAfP,CAee,oBAff,EAeqC,SAfrC,CAAA;EAAY,OAsDX,kBAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,IArCqB,gBAqCrB;EAAA,OAjDC,6BAAA,CAAA,UAmBb,wBAnBa,GAAA,SAAA,CAAA,CAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAoBC,CApBD,CAAA,EAoBK,OApBL,CAoBa,6BApBb,CAoB2C,CApB3C,CAAA,CAAA;EAAM,WACL,CAAA,IAAA,CAAA,EAgDF,aAhDE;EAAS,SAGhB,QAAA,CAAA,UA+CU,OA/CV,EAAA,CAAA,CAAA,QAAA,EA+C+B,CA/C/B,CAAA,EAAA,GAAA;EAAS,SACX,MAAA,CAAA,UAgDU,MAhDV,CAAA,CAAA,MAAA,EAgD0B,CAhD1B,CAAA,EAAA,GAAA;EAAO,OAEQ,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAe,SAAE,MAAA,CAAA,UAqDtB,gBArDsB,CAAA,CAAA,MAAA,EAqDI,CArDJ,CAAA,EAAA,GAAA;EAAS,SAAtC,KAAA,CAAA,UAuDM,wBAvDN,CAAA,CAAA,MAAA,EAuDwC,CAvDxC,CAAA,EAAA,GAAA;EAAW,KACC,CAAA,eAwDV,WAxDU,CAwDE,eAxDF,EAwDmB,SAxDnB,CAAA,CAAA,CAAA,KAAA,EAyDvB,MAzDuB,CAAA,EAAA,IAAA;EAA0B,SAAE,CAAA,UA+DvC,cA/DuC,CAAA,GAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,SAAA,EAgE/C,OAhE+C,CAgEvC,KAhEuC,EAgEhC,CAhEgC,CAAA,CAAA,EAiExD,mBAjEwD,CAkE1D,MAlE0D,EAmE1D,SAnE0D,EAoE1D,SApE0D,EAqE1D,OArE0D,EAsE1D,CAtE0D,EAuE1D,KAvE0D,EAwE1D,aAxE0D,EAyE1D,wBAzE0D,EA0E1D,SA1E0D,EA2E1D,oBA3E0D,CAAA;EAAe,OAAnD,CAAA,UAgGL,YAhGK,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,EAiGb,OAjGa,CAiGL,KAjGK,EAiGE,CAjGF,CAAA,CAAA,EAkGpB,mBAlGoB,CAmGtB,MAnGsB,EAoGtB,SApGsB,EAqGtB,SArGsB,EAsGtB,OAtGsB,EAuGtB,eAvGsB,EAwGtB,0BAxGsB,EAyGtB,CAzGsB,EA0GtB,KA1GsB,EA2GtB,SA3GsB,EA4GtB,oBA5GsB,CAAA;EAAO;;;;EAE2B,QAAE,CAAA,CAAA,EAAA,cAAA,MAAA,CAAA,CAAA,OAAA,EAoIjD,OApIiD,CAoIzC,KApIyC,EAoIlC,CApIkC,CAAA,CAAA,EAqIxD,mBArIwD,CAsI1D,MAtI0D,EAuI1D,SAvI0D,EAwI1D,SAxI0D,EAyI1D,OAzI0D,EA0I1D,eA1I0D,EA2I1D,0BA3I0D,EA4I1D,aA5I0D,EA6I1D,wBA7I0D,EA8I1D,CA9I0D,EA+I1D,KA/I0D,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConstructType } from "./Construct-
|
|
1
|
+
import { ConstructType } from "./Construct-BNDLJJfD.mjs";
|
|
2
2
|
import { ConsoleLogger } from "@geekmidas/logger/console";
|
|
3
3
|
import get from "lodash.get";
|
|
4
4
|
|
|
@@ -67,4 +67,4 @@ var BaseFunctionBuilder = class BaseFunctionBuilder {
|
|
|
67
67
|
|
|
68
68
|
//#endregion
|
|
69
69
|
export { BaseFunctionBuilder };
|
|
70
|
-
//# sourceMappingURL=BaseFunctionBuilder-
|
|
70
|
+
//# sourceMappingURL=BaseFunctionBuilder-Dsqe6pnn.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseFunctionBuilder-Dsqe6pnn.mjs","names":["DEFAULT_LOGGER","s: unknown","data: unknown","schema: T","result: any","timeout: number","event: TEvent","publisher: Service<TName, T>","storage: Service<TName, T>","service: Service<TName, T>"],"sources":["../src/functions/BaseFunctionBuilder.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { ConsoleLogger } from '@geekmidas/logger/console';\nimport type {\n\tComposableStandardSchema,\n\tInferComposableStandardSchema,\n} from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport get from 'lodash.get';\nimport { ConstructType } from '../Construct';\n\nconst DEFAULT_LOGGER = new ConsoleLogger() as any;\n\nexport abstract class BaseFunctionBuilder<\n\tTInput extends ComposableStandardSchema,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> {\n\tprotected inputSchema?: TInput;\n\tprotected outputSchema?: OutSchema;\n\tprotected _timeout?: number;\n\n\tpublic _services: TServices = [] as Service[] as TServices;\n\tpublic _logger: TLogger = DEFAULT_LOGGER;\n\n\tprotected _events: MappedEvent<TEventPublisher, OutSchema>[] = [];\n\tprotected _publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n\tprotected _auditorStorage?: Service<TAuditStorageServiceName, TAuditStorage>;\n\tprotected _databaseService?: Service<TDatabaseServiceName, TDatabase>;\n\n\tstatic isStandardSchemaV1(s: unknown): s is StandardSchemaV1 {\n\t\tconst schema = (s as StandardSchemaV1)['~standard'];\n\n\t\treturn schema && typeof schema.validate === 'function';\n\t}\n\n\tstatic async parseComposableStandardSchema<\n\t\tT extends ComposableStandardSchema | undefined,\n\t>(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>> {\n\t\tif (BaseFunctionBuilder.isStandardSchemaV1(schema)) {\n\t\t\tconst validated = await schema['~standard'].validate(data);\n\n\t\t\tif (validated.issues) {\n\t\t\t\tthrow validated.issues;\n\t\t\t}\n\n\t\t\treturn validated.value as InferComposableStandardSchema<T>;\n\t\t}\n\n\t\tconst result: any = {};\n\t\tfor (const key in schema) {\n\t\t\tconst item = schema[key];\n\t\t\tif (BaseFunctionBuilder.isStandardSchemaV1(item)) {\n\t\t\t\tconst value = get(data, key);\n\t\t\t\tconst validated = await item['~standard'].validate(value);\n\n\t\t\t\tif (validated.issues) {\n\t\t\t\t\tthrow validated.issues;\n\t\t\t\t}\n\n\t\t\t\tresult[key] = validated.value;\n\t\t\t}\n\t\t}\n\n\t\treturn result as InferComposableStandardSchema<T>;\n\t}\n\n\tconstructor(public type = ConstructType.Function) {}\n\n\tabstract services<T extends Service[]>(services: T): any;\n\n\tabstract logger<T extends Logger>(logger: T): any;\n\n\ttimeout(timeout: number): this {\n\t\tthis._timeout = timeout;\n\t\treturn this;\n\t}\n\n\tabstract output<T extends StandardSchemaV1>(schema: T): any;\n\n\tabstract input<T extends ComposableStandardSchema>(schema: T): any;\n\n\tevent<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(\n\t\tevent: TEvent,\n\t): this {\n\t\tthis._events.push(event);\n\t\treturn this;\n\t}\n\n\tpublisher<T extends EventPublisher<any>, TName extends string>(\n\t\tpublisher: Service<TName, T>,\n\t): BaseFunctionBuilder<\n\t\tTInput,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tT,\n\t\tTName,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\tthis._publisher = publisher as unknown as Service<\n\t\t\tTEventPublisherServiceName,\n\t\t\tTEventPublisher\n\t\t>;\n\n\t\treturn this as unknown as BaseFunctionBuilder<\n\t\t\tTInput,\n\t\t\tOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tT,\n\t\t\tTName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\tauditor<T extends AuditStorage, TName extends string>(\n\t\tstorage: Service<TName, T>,\n\t): BaseFunctionBuilder<\n\t\tTInput,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tT,\n\t\tTName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\tthis._auditorStorage = storage as unknown as Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>;\n\n\t\treturn this as unknown as BaseFunctionBuilder<\n\t\t\tTInput,\n\t\t\tOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tT,\n\t\t\tTName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Set the database service for this function.\n\t * The database will be available in the handler context as `db`.\n\t */\n\tdatabase<T, TName extends string>(\n\t\tservice: Service<TName, T>,\n\t): BaseFunctionBuilder<\n\t\tTInput,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tT,\n\t\tTName\n\t> {\n\t\tthis._databaseService = service as unknown as Service<\n\t\t\tTDatabaseServiceName,\n\t\t\tTDatabase\n\t\t>;\n\n\t\treturn this as unknown as BaseFunctionBuilder<\n\t\t\tTInput,\n\t\t\tOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tT,\n\t\t\tTName\n\t\t>;\n\t}\n}\n"],"mappings":";;;;;AAaA,MAAMA,mBAAiB,IAAI;AAE3B,IAAsB,sBAAtB,MAAsB,oBAWpB;CACD,AAAU;CACV,AAAU;CACV,AAAU;CAEV,AAAO,YAAuB,CAAE;CAChC,AAAO,UAAmBA;CAE1B,AAAU,UAAqD,CAAE;CACjE,AAAU;CACV,AAAU;CACV,AAAU;CAEV,OAAO,mBAAmBC,GAAmC;EAC5D,MAAM,SAAU,EAAuB;AAEvC,SAAO,iBAAiB,OAAO,aAAa;CAC5C;CAED,aAAa,8BAEXC,MAAeC,QAAsD;AACtE,MAAI,oBAAoB,mBAAmB,OAAO,EAAE;GACnD,MAAM,YAAY,MAAM,OAAO,aAAa,SAAS,KAAK;AAE1D,OAAI,UAAU,OACb,OAAM,UAAU;AAGjB,UAAO,UAAU;EACjB;EAED,MAAMC,SAAc,CAAE;AACtB,OAAK,MAAM,OAAO,QAAQ;GACzB,MAAM,OAAO,OAAO;AACpB,OAAI,oBAAoB,mBAAmB,KAAK,EAAE;IACjD,MAAM,QAAQ,IAAI,MAAM,IAAI;IAC5B,MAAM,YAAY,MAAM,KAAK,aAAa,SAAS,MAAM;AAEzD,QAAI,UAAU,OACb,OAAM,UAAU;AAGjB,WAAO,OAAO,UAAU;GACxB;EACD;AAED,SAAO;CACP;CAED,YAAmB,OAAO,cAAc,UAAU;EAA/B;CAAiC;CAMpD,QAAQC,SAAuB;AAC9B,OAAK,WAAW;AAChB,SAAO;CACP;CAMD,MACCC,OACO;AACP,OAAK,QAAQ,KAAK,MAAM;AACxB,SAAO;CACP;CAED,UACCC,WAYC;AACD,OAAK,aAAa;AAKlB,SAAO;CAYP;CAED,QACCC,SAYC;AACD,OAAK,kBAAkB;AAKvB,SAAO;CAYP;;;;;CAMD,SACCC,SAYC;AACD,OAAK,mBAAmB;AAKxB,SAAO;CAYP;AACD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
-
const require_Construct = require('./Construct-
|
|
2
|
+
const require_Construct = require('./Construct-CPrCF8NK.cjs');
|
|
3
3
|
const __geekmidas_logger_console = require_chunk.__toESM(require("@geekmidas/logger/console"));
|
|
4
4
|
const lodash_get = require_chunk.__toESM(require("lodash.get"));
|
|
5
5
|
|
|
@@ -73,4 +73,4 @@ Object.defineProperty(exports, 'BaseFunctionBuilder', {
|
|
|
73
73
|
return BaseFunctionBuilder;
|
|
74
74
|
}
|
|
75
75
|
});
|
|
76
|
-
//# sourceMappingURL=BaseFunctionBuilder-
|
|
76
|
+
//# sourceMappingURL=BaseFunctionBuilder-Z0XwrKB5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseFunctionBuilder-Z0XwrKB5.cjs","names":["ConsoleLogger","s: unknown","data: unknown","schema: T","result: any","ConstructType","timeout: number","event: TEvent","publisher: Service<TName, T>","storage: Service<TName, T>","service: Service<TName, T>"],"sources":["../src/functions/BaseFunctionBuilder.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { ConsoleLogger } from '@geekmidas/logger/console';\nimport type {\n\tComposableStandardSchema,\n\tInferComposableStandardSchema,\n} from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport get from 'lodash.get';\nimport { ConstructType } from '../Construct';\n\nconst DEFAULT_LOGGER = new ConsoleLogger() as any;\n\nexport abstract class BaseFunctionBuilder<\n\tTInput extends ComposableStandardSchema,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> {\n\tprotected inputSchema?: TInput;\n\tprotected outputSchema?: OutSchema;\n\tprotected _timeout?: number;\n\n\tpublic _services: TServices = [] as Service[] as TServices;\n\tpublic _logger: TLogger = DEFAULT_LOGGER;\n\n\tprotected _events: MappedEvent<TEventPublisher, OutSchema>[] = [];\n\tprotected _publisher?: Service<TEventPublisherServiceName, TEventPublisher>;\n\tprotected _auditorStorage?: Service<TAuditStorageServiceName, TAuditStorage>;\n\tprotected _databaseService?: Service<TDatabaseServiceName, TDatabase>;\n\n\tstatic isStandardSchemaV1(s: unknown): s is StandardSchemaV1 {\n\t\tconst schema = (s as StandardSchemaV1)['~standard'];\n\n\t\treturn schema && typeof schema.validate === 'function';\n\t}\n\n\tstatic async parseComposableStandardSchema<\n\t\tT extends ComposableStandardSchema | undefined,\n\t>(data: unknown, schema: T): Promise<InferComposableStandardSchema<T>> {\n\t\tif (BaseFunctionBuilder.isStandardSchemaV1(schema)) {\n\t\t\tconst validated = await schema['~standard'].validate(data);\n\n\t\t\tif (validated.issues) {\n\t\t\t\tthrow validated.issues;\n\t\t\t}\n\n\t\t\treturn validated.value as InferComposableStandardSchema<T>;\n\t\t}\n\n\t\tconst result: any = {};\n\t\tfor (const key in schema) {\n\t\t\tconst item = schema[key];\n\t\t\tif (BaseFunctionBuilder.isStandardSchemaV1(item)) {\n\t\t\t\tconst value = get(data, key);\n\t\t\t\tconst validated = await item['~standard'].validate(value);\n\n\t\t\t\tif (validated.issues) {\n\t\t\t\t\tthrow validated.issues;\n\t\t\t\t}\n\n\t\t\t\tresult[key] = validated.value;\n\t\t\t}\n\t\t}\n\n\t\treturn result as InferComposableStandardSchema<T>;\n\t}\n\n\tconstructor(public type = ConstructType.Function) {}\n\n\tabstract services<T extends Service[]>(services: T): any;\n\n\tabstract logger<T extends Logger>(logger: T): any;\n\n\ttimeout(timeout: number): this {\n\t\tthis._timeout = timeout;\n\t\treturn this;\n\t}\n\n\tabstract output<T extends StandardSchemaV1>(schema: T): any;\n\n\tabstract input<T extends ComposableStandardSchema>(schema: T): any;\n\n\tevent<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(\n\t\tevent: TEvent,\n\t): this {\n\t\tthis._events.push(event);\n\t\treturn this;\n\t}\n\n\tpublisher<T extends EventPublisher<any>, TName extends string>(\n\t\tpublisher: Service<TName, T>,\n\t): BaseFunctionBuilder<\n\t\tTInput,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tT,\n\t\tTName,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\tthis._publisher = publisher as unknown as Service<\n\t\t\tTEventPublisherServiceName,\n\t\t\tTEventPublisher\n\t\t>;\n\n\t\treturn this as unknown as BaseFunctionBuilder<\n\t\t\tTInput,\n\t\t\tOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tT,\n\t\t\tTName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\tauditor<T extends AuditStorage, TName extends string>(\n\t\tstorage: Service<TName, T>,\n\t): BaseFunctionBuilder<\n\t\tTInput,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tT,\n\t\tTName,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t> {\n\t\tthis._auditorStorage = storage as unknown as Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>;\n\n\t\treturn this as unknown as BaseFunctionBuilder<\n\t\t\tTInput,\n\t\t\tOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tT,\n\t\t\tTName,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>;\n\t}\n\n\t/**\n\t * Set the database service for this function.\n\t * The database will be available in the handler context as `db`.\n\t */\n\tdatabase<T, TName extends string>(\n\t\tservice: Service<TName, T>,\n\t): BaseFunctionBuilder<\n\t\tTInput,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tTEventPublisher,\n\t\tTEventPublisherServiceName,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tT,\n\t\tTName\n\t> {\n\t\tthis._databaseService = service as unknown as Service<\n\t\t\tTDatabaseServiceName,\n\t\t\tTDatabase\n\t\t>;\n\n\t\treturn this as unknown as BaseFunctionBuilder<\n\t\t\tTInput,\n\t\t\tOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tT,\n\t\t\tTName\n\t\t>;\n\t}\n}\n"],"mappings":";;;;;;AAaA,MAAM,iBAAiB,IAAIA;AAE3B,IAAsB,sBAAtB,MAAsB,oBAWpB;CACD,AAAU;CACV,AAAU;CACV,AAAU;CAEV,AAAO,YAAuB,CAAE;CAChC,AAAO,UAAmB;CAE1B,AAAU,UAAqD,CAAE;CACjE,AAAU;CACV,AAAU;CACV,AAAU;CAEV,OAAO,mBAAmBC,GAAmC;EAC5D,MAAM,SAAU,EAAuB;AAEvC,SAAO,iBAAiB,OAAO,aAAa;CAC5C;CAED,aAAa,8BAEXC,MAAeC,QAAsD;AACtE,MAAI,oBAAoB,mBAAmB,OAAO,EAAE;GACnD,MAAM,YAAY,MAAM,OAAO,aAAa,SAAS,KAAK;AAE1D,OAAI,UAAU,OACb,OAAM,UAAU;AAGjB,UAAO,UAAU;EACjB;EAED,MAAMC,SAAc,CAAE;AACtB,OAAK,MAAM,OAAO,QAAQ;GACzB,MAAM,OAAO,OAAO;AACpB,OAAI,oBAAoB,mBAAmB,KAAK,EAAE;IACjD,MAAM,QAAQ,wBAAI,MAAM,IAAI;IAC5B,MAAM,YAAY,MAAM,KAAK,aAAa,SAAS,MAAM;AAEzD,QAAI,UAAU,OACb,OAAM,UAAU;AAGjB,WAAO,OAAO,UAAU;GACxB;EACD;AAED,SAAO;CACP;CAED,YAAmB,OAAOC,gCAAc,UAAU;EAA/B;CAAiC;CAMpD,QAAQC,SAAuB;AAC9B,OAAK,WAAW;AAChB,SAAO;CACP;CAMD,MACCC,OACO;AACP,OAAK,QAAQ,KAAK,MAAM;AACxB,SAAO;CACP;CAED,UACCC,WAYC;AACD,OAAK,aAAa;AAKlB,SAAO;CAYP;CAED,QACCC,SAYC;AACD,OAAK,kBAAkB;AAKvB,SAAO;CAYP;;;;;CAMD,SACCC,SAYC;AACD,OAAK,mBAAmB;AAKxB,SAAO;CAYP;AACD"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { SnifferEnvironmentParser } from "@geekmidas/envkit/sniffer";
|
|
2
|
+
import compact from "lodash.compact";
|
|
3
|
+
|
|
4
|
+
//#region src/Construct.ts
|
|
5
|
+
const serviceEnvCache = /* @__PURE__ */ new Map();
|
|
6
|
+
/**
|
|
7
|
+
* Noop context for environment sniffing.
|
|
8
|
+
* Used when calling service.register() to detect env vars without a real request.
|
|
9
|
+
* Returns dummy values since services should only use context in instance methods,
|
|
10
|
+
* not during registration.
|
|
11
|
+
*/
|
|
12
|
+
const snifferContext = {
|
|
13
|
+
getLogger() {
|
|
14
|
+
return {
|
|
15
|
+
debug: () => {},
|
|
16
|
+
info: () => {},
|
|
17
|
+
warn: () => {},
|
|
18
|
+
error: () => {},
|
|
19
|
+
child: () => snifferContext.getLogger()
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
getRequestId() {
|
|
23
|
+
return "sniffer-context";
|
|
24
|
+
},
|
|
25
|
+
getRequestStartTime() {
|
|
26
|
+
return Date.now();
|
|
27
|
+
},
|
|
28
|
+
hasContext() {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var Construct = class {
|
|
33
|
+
constructor(type, logger, services, events = [], publisherService, outputSchema, timeout, memorySize, auditorStorageService) {
|
|
34
|
+
this.type = type;
|
|
35
|
+
this.logger = logger;
|
|
36
|
+
this.services = services;
|
|
37
|
+
this.events = events;
|
|
38
|
+
this.publisherService = publisherService;
|
|
39
|
+
this.outputSchema = outputSchema;
|
|
40
|
+
this.timeout = timeout;
|
|
41
|
+
this.memorySize = memorySize;
|
|
42
|
+
this.auditorStorageService = auditorStorageService;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns an array of environment variable names required by this construct's services.
|
|
46
|
+
* This is determined by running a "sniffer" EnvironmentParser through each service's
|
|
47
|
+
* register method to track which environment variables are accessed.
|
|
48
|
+
*
|
|
49
|
+
* Results are cached per service class to handle singleton patterns where
|
|
50
|
+
* subsequent register() calls may short-circuit and not access env vars.
|
|
51
|
+
*
|
|
52
|
+
* @returns Promise that resolves to array of environment variable names, sorted alphabetically
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const endpoint = e
|
|
57
|
+
* .services([databaseService, authService])
|
|
58
|
+
* .get('/users')
|
|
59
|
+
* .handle(async () => []);
|
|
60
|
+
*
|
|
61
|
+
* const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
async getEnvironment() {
|
|
65
|
+
const envVars = /* @__PURE__ */ new Set();
|
|
66
|
+
const services = compact([
|
|
67
|
+
...this.services,
|
|
68
|
+
this.publisherService,
|
|
69
|
+
this.auditorStorageService
|
|
70
|
+
]);
|
|
71
|
+
try {
|
|
72
|
+
for (const service of services) {
|
|
73
|
+
if (serviceEnvCache.has(service)) {
|
|
74
|
+
const cached = serviceEnvCache.get(service);
|
|
75
|
+
cached.forEach((v) => envVars.add(v));
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const result = await sniffService(service);
|
|
79
|
+
if (result.error) this.logger.warn({
|
|
80
|
+
error: result.error.message,
|
|
81
|
+
service: service.serviceName
|
|
82
|
+
}, "Service threw error during env sniffing (env vars still captured)");
|
|
83
|
+
if (result.unhandledRejections.length > 0) this.logger.warn({
|
|
84
|
+
errors: result.unhandledRejections.map((e) => e.message),
|
|
85
|
+
service: service.serviceName
|
|
86
|
+
}, "Fire-and-forget rejections during env sniffing (suppressed)");
|
|
87
|
+
serviceEnvCache.set(service, result.envVars);
|
|
88
|
+
result.envVars.forEach((v) => envVars.add(v));
|
|
89
|
+
}
|
|
90
|
+
return Array.from(envVars).sort();
|
|
91
|
+
} catch (error) {
|
|
92
|
+
this.logger.error({ error }, "Error determining environment variables for construct");
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
let ConstructType = /* @__PURE__ */ function(ConstructType$1) {
|
|
98
|
+
ConstructType$1["Cron"] = "dev.geekmidas.function.cron";
|
|
99
|
+
ConstructType$1["Endpoint"] = "dev.geekmidas.function.endpoint";
|
|
100
|
+
ConstructType$1["Function"] = "dev.geekmidas.function.function";
|
|
101
|
+
ConstructType$1["Subscriber"] = "dev.geekmidas.function.subscriber";
|
|
102
|
+
return ConstructType$1;
|
|
103
|
+
}({});
|
|
104
|
+
/**
|
|
105
|
+
* Utility to test sniffing a service for environment variables.
|
|
106
|
+
* Useful for debugging services that throw errors during sniffing.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* import { sniffService } from '@geekmidas/constructs';
|
|
111
|
+
* import { authService } from './services/AuthService';
|
|
112
|
+
*
|
|
113
|
+
* const result = await sniffService(authService);
|
|
114
|
+
* console.log('Env vars:', result.envVars);
|
|
115
|
+
* console.log('Error:', result.error);
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
async function sniffService(service) {
|
|
119
|
+
const sniffer = new SnifferEnvironmentParser();
|
|
120
|
+
const unhandledRejections = [];
|
|
121
|
+
const captureRejection = (reason) => {
|
|
122
|
+
const err = reason instanceof Error ? reason : new Error(String(reason));
|
|
123
|
+
unhandledRejections.push(err);
|
|
124
|
+
};
|
|
125
|
+
process.on("unhandledRejection", captureRejection);
|
|
126
|
+
let error;
|
|
127
|
+
try {
|
|
128
|
+
const result = service.register({
|
|
129
|
+
envParser: sniffer,
|
|
130
|
+
context: snifferContext
|
|
131
|
+
});
|
|
132
|
+
if (result && typeof result === "object" && "then" in result) await Promise.resolve(result).catch((e) => {
|
|
133
|
+
error = e;
|
|
134
|
+
});
|
|
135
|
+
} catch (e) {
|
|
136
|
+
error = e;
|
|
137
|
+
} finally {
|
|
138
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
139
|
+
process.off("unhandledRejection", captureRejection);
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
envVars: sniffer.getEnvironmentVariables(),
|
|
143
|
+
error,
|
|
144
|
+
unhandledRejections
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
//#endregion
|
|
149
|
+
export { Construct, ConstructType, sniffService, snifferContext };
|
|
150
|
+
//# sourceMappingURL=Construct-BNDLJJfD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Construct-BNDLJJfD.mjs","names":["snifferContext: ServiceContext","type: ConstructType","logger: TLogger","services: TServices","events: MappedEvent<T, any>[]","publisherService?: Service<TServiceName, T>","outputSchema?: OutSchema","timeout?: number","memorySize?: number","auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>","services: Service[]","service: Service","unhandledRejections: Error[]","reason: unknown","error: Error | undefined"],"sources":["../src/Construct.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport { SnifferEnvironmentParser } from '@geekmidas/envkit/sniffer';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { Service, ServiceContext } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport compact from 'lodash.compact';\n\n// Cache for service environment variables to handle singleton services\n// Key: service class/constructor, Value: array of env var names\nconst serviceEnvCache = new Map<Service, string[]>();\n\n/**\n * Noop context for environment sniffing.\n * Used when calling service.register() to detect env vars without a real request.\n * Returns dummy values since services should only use context in instance methods,\n * not during registration.\n */\nconst snifferContext: ServiceContext = {\n\tgetLogger() {\n\t\t// Return a noop logger for sniffing - services shouldn't log during registration\n\t\treturn {\n\t\t\tdebug: () => {},\n\t\t\tinfo: () => {},\n\t\t\twarn: () => {},\n\t\t\terror: () => {},\n\t\t\tchild: () => snifferContext.getLogger(),\n\t\t} as unknown as Logger;\n\t},\n\tgetRequestId() {\n\t\treturn 'sniffer-context';\n\t},\n\tgetRequestStartTime() {\n\t\treturn Date.now();\n\t},\n\thasContext() {\n\t\treturn false;\n\t},\n};\n\nexport abstract class Construct<\n\tTLogger extends Logger = Logger,\n\tTServiceName extends string = string,\n\tT extends EventPublisher<any> | undefined = undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n> {\n\tconstructor(\n\t\tpublic readonly type: ConstructType,\n\t\tpublic readonly logger: TLogger,\n\t\tpublic readonly services: TServices,\n\t\tpublic readonly events: MappedEvent<T, any>[] = [],\n\n\t\tpublic readonly publisherService?: Service<TServiceName, T>,\n\t\tpublic outputSchema?: OutSchema,\n\t\tpublic readonly timeout?: number,\n\t\tpublic readonly memorySize?: number,\n\t\tpublic readonly auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>,\n\t) {}\n\n\t/**\n\t * Returns an array of environment variable names required by this construct's services.\n\t * This is determined by running a \"sniffer\" EnvironmentParser through each service's\n\t * register method to track which environment variables are accessed.\n\t *\n\t * Results are cached per service class to handle singleton patterns where\n\t * subsequent register() calls may short-circuit and not access env vars.\n\t *\n\t * @returns Promise that resolves to array of environment variable names, sorted alphabetically\n\t *\n\t * @example\n\t * ```typescript\n\t * const endpoint = e\n\t * .services([databaseService, authService])\n\t * .get('/users')\n\t * .handle(async () => []);\n\t *\n\t * const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']\n\t * ```\n\t */\n\tasync getEnvironment(): Promise<string[]> {\n\t\tconst envVars = new Set<string>();\n\t\tconst services: Service[] = compact([\n\t\t\t...this.services,\n\t\t\tthis.publisherService,\n\t\t\tthis.auditorStorageService,\n\t\t]);\n\n\t\ttry {\n\t\t\tfor (const service of services) {\n\t\t\t\t// Check cache first - handles singleton services that short-circuit\n\t\t\t\tif (serviceEnvCache.has(service)) {\n\t\t\t\t\tconst cached = serviceEnvCache.get(service)!;\n\t\t\t\t\tcached.forEach((v) => envVars.add(v));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Use sniffService to properly handle all error scenarios\n\t\t\t\tconst result = await sniffService(service);\n\n\t\t\t\t// Log any issues for debugging\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{ error: result.error.message, service: service.serviceName },\n\t\t\t\t\t\t'Service threw error during env sniffing (env vars still captured)',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (result.unhandledRejections.length > 0) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terrors: result.unhandledRejections.map((e) => e.message),\n\t\t\t\t\t\t\tservice: service.serviceName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'Fire-and-forget rejections during env sniffing (suppressed)',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Cache and collect the env vars\n\t\t\t\tserviceEnvCache.set(service, result.envVars);\n\t\t\t\tresult.envVars.forEach((v) => envVars.add(v));\n\t\t\t}\n\n\t\t\treturn Array.from(envVars).sort();\n\t\t} catch (error) {\n\t\t\tthis.logger.error(\n\t\t\t\t{ error },\n\t\t\t\t'Error determining environment variables for construct',\n\t\t\t);\n\n\t\t\treturn [];\n\t\t}\n\t}\n}\n\nexport enum ConstructType {\n\tCron = 'dev.geekmidas.function.cron',\n\tEndpoint = 'dev.geekmidas.function.endpoint',\n\tFunction = 'dev.geekmidas.function.function',\n\tSubscriber = 'dev.geekmidas.function.subscriber',\n}\n\n/**\n * Utility to test sniffing a service for environment variables.\n * Useful for debugging services that throw errors during sniffing.\n *\n * @example\n * ```typescript\n * import { sniffService } from '@geekmidas/constructs';\n * import { authService } from './services/AuthService';\n *\n * const result = await sniffService(authService);\n * console.log('Env vars:', result.envVars);\n * console.log('Error:', result.error);\n * ```\n */\nexport async function sniffService(service: Service): Promise<{\n\tenvVars: string[];\n\terror?: Error;\n\tunhandledRejections: Error[];\n}> {\n\tconst sniffer = new SnifferEnvironmentParser();\n\tconst unhandledRejections: Error[] = [];\n\n\t// Capture unhandled rejections during sniffing (fire-and-forget promises)\n\tconst captureRejection = (reason: unknown) => {\n\t\tconst err = reason instanceof Error ? reason : new Error(String(reason));\n\t\tunhandledRejections.push(err);\n\t};\n\tprocess.on('unhandledRejection', captureRejection);\n\n\tlet error: Error | undefined;\n\n\ttry {\n\t\tconst result = service.register({\n\t\t\tenvParser: sniffer as any,\n\t\t\tcontext: snifferContext,\n\t\t});\n\n\t\tif (result && typeof result === 'object' && 'then' in result) {\n\t\t\tawait Promise.resolve(result).catch((e) => {\n\t\t\t\terror = e;\n\t\t\t});\n\t\t}\n\t} catch (e) {\n\t\terror = e as Error;\n\t} finally {\n\t\t// Wait for fire-and-forget promises to settle - some libraries like better-auth\n\t\t// create async operations that may reject after the initial event loop tick\n\t\tawait new Promise((resolve) => setTimeout(resolve, 100));\n\t\tprocess.off('unhandledRejection', captureRejection);\n\t}\n\n\treturn {\n\t\tenvVars: sniffer.getEnvironmentVariables(),\n\t\terror,\n\t\tunhandledRejections,\n\t};\n}\n\n// Export for testing\nexport { snifferContext };\n"],"mappings":";;;;AAUA,MAAM,kCAAkB,IAAI;;;;;;;AAQ5B,MAAMA,iBAAiC;CACtC,YAAY;AAEX,SAAO;GACN,OAAO,MAAM,CAAE;GACf,MAAM,MAAM,CAAE;GACd,MAAM,MAAM,CAAE;GACd,OAAO,MAAM,CAAE;GACf,OAAO,MAAM,eAAe,WAAW;EACvC;CACD;CACD,eAAe;AACd,SAAO;CACP;CACD,sBAAsB;AACrB,SAAO,KAAK,KAAK;CACjB;CACD,aAAa;AACZ,SAAO;CACP;AACD;AAED,IAAsB,YAAtB,MAQE;CACD,YACiBC,MACAC,QACAC,UACAC,SAAgC,CAAE,GAElCC,kBACTC,cACSC,SACAC,YACAC,uBAIf;EAbe;EACA;EACA;EACA;EAEA;EACT;EACS;EACA;EACA;CAIb;;;;;;;;;;;;;;;;;;;;;CAsBJ,MAAM,iBAAoC;EACzC,MAAM,0BAAU,IAAI;EACpB,MAAMC,WAAsB,QAAQ;GACnC,GAAG,KAAK;GACR,KAAK;GACL,KAAK;EACL,EAAC;AAEF,MAAI;AACH,QAAK,MAAM,WAAW,UAAU;AAE/B,QAAI,gBAAgB,IAAI,QAAQ,EAAE;KACjC,MAAM,SAAS,gBAAgB,IAAI,QAAQ;AAC3C,YAAO,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAE,CAAC;AACrC;IACA;IAGD,MAAM,SAAS,MAAM,aAAa,QAAQ;AAG1C,QAAI,OAAO,MACV,MAAK,OAAO,KACX;KAAE,OAAO,OAAO,MAAM;KAAS,SAAS,QAAQ;IAAa,GAC7D,oEACA;AAEF,QAAI,OAAO,oBAAoB,SAAS,EACvC,MAAK,OAAO,KACX;KACC,QAAQ,OAAO,oBAAoB,IAAI,CAAC,MAAM,EAAE,QAAQ;KACxD,SAAS,QAAQ;IACjB,GACD,8DACA;AAIF,oBAAgB,IAAI,SAAS,OAAO,QAAQ;AAC5C,WAAO,QAAQ,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAE,CAAC;GAC7C;AAED,UAAO,MAAM,KAAK,QAAQ,CAAC,MAAM;EACjC,SAAQ,OAAO;AACf,QAAK,OAAO,MACX,EAAE,MAAO,GACT,wDACA;AAED,UAAO,CAAE;EACT;CACD;AACD;AAED,IAAY,0DAAL;AACN;AACA;AACA;AACA;;AACA;;;;;;;;;;;;;;;AAgBD,eAAsB,aAAaC,SAIhC;CACF,MAAM,UAAU,IAAI;CACpB,MAAMC,sBAA+B,CAAE;CAGvC,MAAM,mBAAmB,CAACC,WAAoB;EAC7C,MAAM,MAAM,kBAAkB,QAAQ,SAAS,IAAI,MAAM,OAAO,OAAO;AACvE,sBAAoB,KAAK,IAAI;CAC7B;AACD,SAAQ,GAAG,sBAAsB,iBAAiB;CAElD,IAAIC;AAEJ,KAAI;EACH,MAAM,SAAS,QAAQ,SAAS;GAC/B,WAAW;GACX,SAAS;EACT,EAAC;AAEF,MAAI,iBAAiB,WAAW,YAAY,UAAU,OACrD,OAAM,QAAQ,QAAQ,OAAO,CAAC,MAAM,CAAC,MAAM;AAC1C,WAAQ;EACR,EAAC;CAEH,SAAQ,GAAG;AACX,UAAQ;CACR,UAAS;AAGT,QAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,IAAI;AACvD,UAAQ,IAAI,sBAAsB,iBAAiB;CACnD;AAED,QAAO;EACN,SAAS,QAAQ,yBAAyB;EAC1C;EACA;CACA;AACD"}
|
|
@@ -4,6 +4,32 @@ const lodash_compact = require_chunk.__toESM(require("lodash.compact"));
|
|
|
4
4
|
|
|
5
5
|
//#region src/Construct.ts
|
|
6
6
|
const serviceEnvCache = /* @__PURE__ */ new Map();
|
|
7
|
+
/**
|
|
8
|
+
* Noop context for environment sniffing.
|
|
9
|
+
* Used when calling service.register() to detect env vars without a real request.
|
|
10
|
+
* Returns dummy values since services should only use context in instance methods,
|
|
11
|
+
* not during registration.
|
|
12
|
+
*/
|
|
13
|
+
const snifferContext = {
|
|
14
|
+
getLogger() {
|
|
15
|
+
return {
|
|
16
|
+
debug: () => {},
|
|
17
|
+
info: () => {},
|
|
18
|
+
warn: () => {},
|
|
19
|
+
error: () => {},
|
|
20
|
+
child: () => snifferContext.getLogger()
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
getRequestId() {
|
|
24
|
+
return "sniffer-context";
|
|
25
|
+
},
|
|
26
|
+
getRequestStartTime() {
|
|
27
|
+
return Date.now();
|
|
28
|
+
},
|
|
29
|
+
hasContext() {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
7
33
|
var Construct = class {
|
|
8
34
|
constructor(type, logger, services, events = [], publisherService, outputSchema, timeout, memorySize, auditorStorageService) {
|
|
9
35
|
this.type = type;
|
|
@@ -50,14 +76,17 @@ var Construct = class {
|
|
|
50
76
|
cached.forEach((v) => envVars.add(v));
|
|
51
77
|
continue;
|
|
52
78
|
}
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
79
|
+
const result = await sniffService(service);
|
|
80
|
+
if (result.error) this.logger.warn({
|
|
81
|
+
error: result.error.message,
|
|
82
|
+
service: service.serviceName
|
|
83
|
+
}, "Service threw error during env sniffing (env vars still captured)");
|
|
84
|
+
if (result.unhandledRejections.length > 0) this.logger.warn({
|
|
85
|
+
errors: result.unhandledRejections.map((e) => e.message),
|
|
86
|
+
service: service.serviceName
|
|
87
|
+
}, "Fire-and-forget rejections during env sniffing (suppressed)");
|
|
88
|
+
serviceEnvCache.set(service, result.envVars);
|
|
89
|
+
result.envVars.forEach((v) => envVars.add(v));
|
|
61
90
|
}
|
|
62
91
|
return Array.from(envVars).sort();
|
|
63
92
|
} catch (error) {
|
|
@@ -73,6 +102,49 @@ let ConstructType = /* @__PURE__ */ function(ConstructType$1) {
|
|
|
73
102
|
ConstructType$1["Subscriber"] = "dev.geekmidas.function.subscriber";
|
|
74
103
|
return ConstructType$1;
|
|
75
104
|
}({});
|
|
105
|
+
/**
|
|
106
|
+
* Utility to test sniffing a service for environment variables.
|
|
107
|
+
* Useful for debugging services that throw errors during sniffing.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* import { sniffService } from '@geekmidas/constructs';
|
|
112
|
+
* import { authService } from './services/AuthService';
|
|
113
|
+
*
|
|
114
|
+
* const result = await sniffService(authService);
|
|
115
|
+
* console.log('Env vars:', result.envVars);
|
|
116
|
+
* console.log('Error:', result.error);
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
async function sniffService(service) {
|
|
120
|
+
const sniffer = new __geekmidas_envkit_sniffer.SnifferEnvironmentParser();
|
|
121
|
+
const unhandledRejections = [];
|
|
122
|
+
const captureRejection = (reason) => {
|
|
123
|
+
const err = reason instanceof Error ? reason : new Error(String(reason));
|
|
124
|
+
unhandledRejections.push(err);
|
|
125
|
+
};
|
|
126
|
+
process.on("unhandledRejection", captureRejection);
|
|
127
|
+
let error;
|
|
128
|
+
try {
|
|
129
|
+
const result = service.register({
|
|
130
|
+
envParser: sniffer,
|
|
131
|
+
context: snifferContext
|
|
132
|
+
});
|
|
133
|
+
if (result && typeof result === "object" && "then" in result) await Promise.resolve(result).catch((e) => {
|
|
134
|
+
error = e;
|
|
135
|
+
});
|
|
136
|
+
} catch (e) {
|
|
137
|
+
error = e;
|
|
138
|
+
} finally {
|
|
139
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
140
|
+
process.off("unhandledRejection", captureRejection);
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
envVars: sniffer.getEnvironmentVariables(),
|
|
144
|
+
error,
|
|
145
|
+
unhandledRejections
|
|
146
|
+
};
|
|
147
|
+
}
|
|
76
148
|
|
|
77
149
|
//#endregion
|
|
78
150
|
Object.defineProperty(exports, 'Construct', {
|
|
@@ -87,4 +159,16 @@ Object.defineProperty(exports, 'ConstructType', {
|
|
|
87
159
|
return ConstructType;
|
|
88
160
|
}
|
|
89
161
|
});
|
|
90
|
-
|
|
162
|
+
Object.defineProperty(exports, 'sniffService', {
|
|
163
|
+
enumerable: true,
|
|
164
|
+
get: function () {
|
|
165
|
+
return sniffService;
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
Object.defineProperty(exports, 'snifferContext', {
|
|
169
|
+
enumerable: true,
|
|
170
|
+
get: function () {
|
|
171
|
+
return snifferContext;
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=Construct-CPrCF8NK.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Construct-CPrCF8NK.cjs","names":["snifferContext: ServiceContext","type: ConstructType","logger: TLogger","services: TServices","events: MappedEvent<T, any>[]","publisherService?: Service<TServiceName, T>","outputSchema?: OutSchema","timeout?: number","memorySize?: number","auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>","services: Service[]","service: Service","SnifferEnvironmentParser","unhandledRejections: Error[]","reason: unknown","error: Error | undefined"],"sources":["../src/Construct.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport { SnifferEnvironmentParser } from '@geekmidas/envkit/sniffer';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { Service, ServiceContext } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport compact from 'lodash.compact';\n\n// Cache for service environment variables to handle singleton services\n// Key: service class/constructor, Value: array of env var names\nconst serviceEnvCache = new Map<Service, string[]>();\n\n/**\n * Noop context for environment sniffing.\n * Used when calling service.register() to detect env vars without a real request.\n * Returns dummy values since services should only use context in instance methods,\n * not during registration.\n */\nconst snifferContext: ServiceContext = {\n\tgetLogger() {\n\t\t// Return a noop logger for sniffing - services shouldn't log during registration\n\t\treturn {\n\t\t\tdebug: () => {},\n\t\t\tinfo: () => {},\n\t\t\twarn: () => {},\n\t\t\terror: () => {},\n\t\t\tchild: () => snifferContext.getLogger(),\n\t\t} as unknown as Logger;\n\t},\n\tgetRequestId() {\n\t\treturn 'sniffer-context';\n\t},\n\tgetRequestStartTime() {\n\t\treturn Date.now();\n\t},\n\thasContext() {\n\t\treturn false;\n\t},\n};\n\nexport abstract class Construct<\n\tTLogger extends Logger = Logger,\n\tTServiceName extends string = string,\n\tT extends EventPublisher<any> | undefined = undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n> {\n\tconstructor(\n\t\tpublic readonly type: ConstructType,\n\t\tpublic readonly logger: TLogger,\n\t\tpublic readonly services: TServices,\n\t\tpublic readonly events: MappedEvent<T, any>[] = [],\n\n\t\tpublic readonly publisherService?: Service<TServiceName, T>,\n\t\tpublic outputSchema?: OutSchema,\n\t\tpublic readonly timeout?: number,\n\t\tpublic readonly memorySize?: number,\n\t\tpublic readonly auditorStorageService?: Service<\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditStorage\n\t\t>,\n\t) {}\n\n\t/**\n\t * Returns an array of environment variable names required by this construct's services.\n\t * This is determined by running a \"sniffer\" EnvironmentParser through each service's\n\t * register method to track which environment variables are accessed.\n\t *\n\t * Results are cached per service class to handle singleton patterns where\n\t * subsequent register() calls may short-circuit and not access env vars.\n\t *\n\t * @returns Promise that resolves to array of environment variable names, sorted alphabetically\n\t *\n\t * @example\n\t * ```typescript\n\t * const endpoint = e\n\t * .services([databaseService, authService])\n\t * .get('/users')\n\t * .handle(async () => []);\n\t *\n\t * const envVars = await endpoint.getEnvironment(); // ['AUTH_SECRET', 'DATABASE_URL']\n\t * ```\n\t */\n\tasync getEnvironment(): Promise<string[]> {\n\t\tconst envVars = new Set<string>();\n\t\tconst services: Service[] = compact([\n\t\t\t...this.services,\n\t\t\tthis.publisherService,\n\t\t\tthis.auditorStorageService,\n\t\t]);\n\n\t\ttry {\n\t\t\tfor (const service of services) {\n\t\t\t\t// Check cache first - handles singleton services that short-circuit\n\t\t\t\tif (serviceEnvCache.has(service)) {\n\t\t\t\t\tconst cached = serviceEnvCache.get(service)!;\n\t\t\t\t\tcached.forEach((v) => envVars.add(v));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Use sniffService to properly handle all error scenarios\n\t\t\t\tconst result = await sniffService(service);\n\n\t\t\t\t// Log any issues for debugging\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{ error: result.error.message, service: service.serviceName },\n\t\t\t\t\t\t'Service threw error during env sniffing (env vars still captured)',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (result.unhandledRejections.length > 0) {\n\t\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terrors: result.unhandledRejections.map((e) => e.message),\n\t\t\t\t\t\t\tservice: service.serviceName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'Fire-and-forget rejections during env sniffing (suppressed)',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Cache and collect the env vars\n\t\t\t\tserviceEnvCache.set(service, result.envVars);\n\t\t\t\tresult.envVars.forEach((v) => envVars.add(v));\n\t\t\t}\n\n\t\t\treturn Array.from(envVars).sort();\n\t\t} catch (error) {\n\t\t\tthis.logger.error(\n\t\t\t\t{ error },\n\t\t\t\t'Error determining environment variables for construct',\n\t\t\t);\n\n\t\t\treturn [];\n\t\t}\n\t}\n}\n\nexport enum ConstructType {\n\tCron = 'dev.geekmidas.function.cron',\n\tEndpoint = 'dev.geekmidas.function.endpoint',\n\tFunction = 'dev.geekmidas.function.function',\n\tSubscriber = 'dev.geekmidas.function.subscriber',\n}\n\n/**\n * Utility to test sniffing a service for environment variables.\n * Useful for debugging services that throw errors during sniffing.\n *\n * @example\n * ```typescript\n * import { sniffService } from '@geekmidas/constructs';\n * import { authService } from './services/AuthService';\n *\n * const result = await sniffService(authService);\n * console.log('Env vars:', result.envVars);\n * console.log('Error:', result.error);\n * ```\n */\nexport async function sniffService(service: Service): Promise<{\n\tenvVars: string[];\n\terror?: Error;\n\tunhandledRejections: Error[];\n}> {\n\tconst sniffer = new SnifferEnvironmentParser();\n\tconst unhandledRejections: Error[] = [];\n\n\t// Capture unhandled rejections during sniffing (fire-and-forget promises)\n\tconst captureRejection = (reason: unknown) => {\n\t\tconst err = reason instanceof Error ? reason : new Error(String(reason));\n\t\tunhandledRejections.push(err);\n\t};\n\tprocess.on('unhandledRejection', captureRejection);\n\n\tlet error: Error | undefined;\n\n\ttry {\n\t\tconst result = service.register({\n\t\t\tenvParser: sniffer as any,\n\t\t\tcontext: snifferContext,\n\t\t});\n\n\t\tif (result && typeof result === 'object' && 'then' in result) {\n\t\t\tawait Promise.resolve(result).catch((e) => {\n\t\t\t\terror = e;\n\t\t\t});\n\t\t}\n\t} catch (e) {\n\t\terror = e as Error;\n\t} finally {\n\t\t// Wait for fire-and-forget promises to settle - some libraries like better-auth\n\t\t// create async operations that may reject after the initial event loop tick\n\t\tawait new Promise((resolve) => setTimeout(resolve, 100));\n\t\tprocess.off('unhandledRejection', captureRejection);\n\t}\n\n\treturn {\n\t\tenvVars: sniffer.getEnvironmentVariables(),\n\t\terror,\n\t\tunhandledRejections,\n\t};\n}\n\n// Export for testing\nexport { snifferContext };\n"],"mappings":";;;;;AAUA,MAAM,kCAAkB,IAAI;;;;;;;AAQ5B,MAAMA,iBAAiC;CACtC,YAAY;AAEX,SAAO;GACN,OAAO,MAAM,CAAE;GACf,MAAM,MAAM,CAAE;GACd,MAAM,MAAM,CAAE;GACd,OAAO,MAAM,CAAE;GACf,OAAO,MAAM,eAAe,WAAW;EACvC;CACD;CACD,eAAe;AACd,SAAO;CACP;CACD,sBAAsB;AACrB,SAAO,KAAK,KAAK;CACjB;CACD,aAAa;AACZ,SAAO;CACP;AACD;AAED,IAAsB,YAAtB,MAQE;CACD,YACiBC,MACAC,QACAC,UACAC,SAAgC,CAAE,GAElCC,kBACTC,cACSC,SACAC,YACAC,uBAIf;EAbe;EACA;EACA;EACA;EAEA;EACT;EACS;EACA;EACA;CAIb;;;;;;;;;;;;;;;;;;;;;CAsBJ,MAAM,iBAAoC;EACzC,MAAM,0BAAU,IAAI;EACpB,MAAMC,WAAsB,4BAAQ;GACnC,GAAG,KAAK;GACR,KAAK;GACL,KAAK;EACL,EAAC;AAEF,MAAI;AACH,QAAK,MAAM,WAAW,UAAU;AAE/B,QAAI,gBAAgB,IAAI,QAAQ,EAAE;KACjC,MAAM,SAAS,gBAAgB,IAAI,QAAQ;AAC3C,YAAO,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAE,CAAC;AACrC;IACA;IAGD,MAAM,SAAS,MAAM,aAAa,QAAQ;AAG1C,QAAI,OAAO,MACV,MAAK,OAAO,KACX;KAAE,OAAO,OAAO,MAAM;KAAS,SAAS,QAAQ;IAAa,GAC7D,oEACA;AAEF,QAAI,OAAO,oBAAoB,SAAS,EACvC,MAAK,OAAO,KACX;KACC,QAAQ,OAAO,oBAAoB,IAAI,CAAC,MAAM,EAAE,QAAQ;KACxD,SAAS,QAAQ;IACjB,GACD,8DACA;AAIF,oBAAgB,IAAI,SAAS,OAAO,QAAQ;AAC5C,WAAO,QAAQ,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAE,CAAC;GAC7C;AAED,UAAO,MAAM,KAAK,QAAQ,CAAC,MAAM;EACjC,SAAQ,OAAO;AACf,QAAK,OAAO,MACX,EAAE,MAAO,GACT,wDACA;AAED,UAAO,CAAE;EACT;CACD;AACD;AAED,IAAY,0DAAL;AACN;AACA;AACA;AACA;;AACA;;;;;;;;;;;;;;;AAgBD,eAAsB,aAAaC,SAIhC;CACF,MAAM,UAAU,IAAIC;CACpB,MAAMC,sBAA+B,CAAE;CAGvC,MAAM,mBAAmB,CAACC,WAAoB;EAC7C,MAAM,MAAM,kBAAkB,QAAQ,SAAS,IAAI,MAAM,OAAO,OAAO;AACvE,sBAAoB,KAAK,IAAI;CAC7B;AACD,SAAQ,GAAG,sBAAsB,iBAAiB;CAElD,IAAIC;AAEJ,KAAI;EACH,MAAM,SAAS,QAAQ,SAAS;GAC/B,WAAW;GACX,SAAS;EACT,EAAC;AAEF,MAAI,iBAAiB,WAAW,YAAY,UAAU,OACrD,OAAM,QAAQ,QAAQ,OAAO,CAAC,MAAM,CAAC,MAAM;AAC1C,WAAQ;EACR,EAAC;CAEH,SAAQ,GAAG;AACX,UAAQ;CACR,UAAS;AAGT,QAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,IAAI;AACvD,UAAQ,IAAI,sBAAsB,iBAAiB;CACnD;AAED,QAAO;EACN,SAAS,QAAQ,yBAAyB;EAC1C;EACA;CACA;AACD"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { AuditStorage } from "@geekmidas/audit";
|
|
2
2
|
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
3
3
|
import { Logger } from "@geekmidas/logger";
|
|
4
|
-
import { Service } from "@geekmidas/services";
|
|
4
|
+
import { Service, ServiceContext } from "@geekmidas/services";
|
|
5
5
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
6
6
|
|
|
7
7
|
//#region src/Construct.d.ts
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Noop context for environment sniffing.
|
|
11
|
+
* Used when calling service.register() to detect env vars without a real request.
|
|
12
|
+
* Returns dummy values since services should only use context in instance methods,
|
|
13
|
+
* not during registration.
|
|
14
|
+
*/
|
|
15
|
+
declare const snifferContext: ServiceContext;
|
|
8
16
|
declare abstract class Construct<TLogger extends Logger = Logger, TServiceName extends string = string, T extends EventPublisher<any> | undefined = undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TAuditStorageServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined> {
|
|
9
17
|
readonly type: ConstructType;
|
|
10
18
|
readonly logger: TLogger;
|
|
@@ -44,7 +52,25 @@ declare enum ConstructType {
|
|
|
44
52
|
Function = "dev.geekmidas.function.function",
|
|
45
53
|
Subscriber = "dev.geekmidas.function.subscriber",
|
|
46
54
|
}
|
|
47
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Utility to test sniffing a service for environment variables.
|
|
57
|
+
* Useful for debugging services that throw errors during sniffing.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* import { sniffService } from '@geekmidas/constructs';
|
|
62
|
+
* import { authService } from './services/AuthService';
|
|
63
|
+
*
|
|
64
|
+
* const result = await sniffService(authService);
|
|
65
|
+
* console.log('Env vars:', result.envVars);
|
|
66
|
+
* console.log('Error:', result.error);
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
declare function sniffService(service: Service): Promise<{
|
|
70
|
+
envVars: string[];
|
|
71
|
+
error?: Error;
|
|
72
|
+
unhandledRejections: Error[];
|
|
73
|
+
}>;
|
|
48
74
|
//#endregion
|
|
49
|
-
export { Construct, ConstructType };
|
|
50
|
-
//# sourceMappingURL=Construct-
|
|
75
|
+
export { Construct, ConstructType, sniffService, snifferContext };
|
|
76
|
+
//# sourceMappingURL=Construct-Dl0l2d8d.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Construct-Dl0l2d8d.d.cts","names":[],"sources":["../src/Construct.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;AAK8D;AAmC9D;;;cAtBM,cAuBoB,EAvBJ,cAuBI;AAEf,uBAHW,SAGX,CAAA,gBAFM,MAEN,GAFe,MAEf,EAAA,qBAAA,MAAA,GAAA,MAAA,EAAA,UAAA,cAAA,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,kBACQ,gBADR,GAAA,SAAA,GAAA,SAAA,EAAA,kBAEQ,OAFR,EAAA,GAAA,EAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,sBAIY,YAJZ,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA;EAAc,SACN,IAAA,EAMK,aANL;EAAgB,SAChB,MAAA,EAMO,OANP;EAAO,SAEH,QAAA,EAKK,SALL;EAAY,SAGX,MAAA,EAGE,WAHF,CAGc,CAHd,EAAA,GAAA,CAAA,EAAA;EAAa,SACX,gBAAA,CAAA,EAIW,OAJX,CAImB,YAJnB,EAIiC,CAJjC,CAAA,GAAA,SAAA;EAAO,YACL,CAAA,EAIJ,SAJI,GAAA,SAAA;EAAS,SACC,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAC,SAAb,UAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAW,SAEQ,qBAAA,CAAA,EAIH,OAJG,CAK1C,wBAL0C,EAM1C,aAN0C,CAAA,GAAA,SAAA;EAAY,WAAE,CAAA,IAAA,EALnC,aAKmC,EAAA,MAAA,EAJjC,OAIiC,EAAA,QAAA,EAH/B,SAG+B,EAAA,MAAA,CAAA,EAFjC,WAEiC,CAFrB,CAEqB,EAAA,GAAA,CAAA,EAAA,EAAA,gBAAA,CAAA,EAAtB,OAAsB,CAAd,YAAc,EAAA,CAAA,CAAA,GAAA,SAAA,EAAA,YAAA,CAAA,EACnC,SADmC,GAAA,SAAA,EAAA,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA,EAAA,UAAA,CAAA,EAAA,MAAA,GAAA,SAAA,EAAA,qBAAA,CAAA,EAIjB,OAJiB,CAKxD,wBALwD,EAMxD,aANwD,CAAA,GAAA,SAAA;EAAC;;;;;;;;;;;;;;;;;;AA8B5B;AAsDhC;EAqBsB,cAAA,CAAA,CAAY,EA3ET,OA2ES,CAAA,MAAA,EAAA,CAAA;;AAAU,aArBhC,aAAA;EAqBuC,IAE1C,GAAA,6BAAA;EAAK,QACQ,GAAA,iCAAA;EAAK,QAH2B,GAAA,iCAAA;EAAO,UAAA,GAAA,mCAAA;;;;;;;;;;;;;;;;iBAAvC,YAAA,UAAsB,UAAU;;UAE7C;uBACa"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import { Service } from "@geekmidas/services";
|
|
1
|
+
import { Service, ServiceContext } from "@geekmidas/services";
|
|
2
2
|
import { AuditStorage } from "@geekmidas/audit";
|
|
3
3
|
import { EventPublisher, MappedEvent } from "@geekmidas/events";
|
|
4
4
|
import { Logger } from "@geekmidas/logger";
|
|
5
5
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
6
6
|
|
|
7
7
|
//#region src/Construct.d.ts
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Noop context for environment sniffing.
|
|
11
|
+
* Used when calling service.register() to detect env vars without a real request.
|
|
12
|
+
* Returns dummy values since services should only use context in instance methods,
|
|
13
|
+
* not during registration.
|
|
14
|
+
*/
|
|
15
|
+
declare const snifferContext: ServiceContext;
|
|
8
16
|
declare abstract class Construct<TLogger extends Logger = Logger, TServiceName extends string = string, T extends EventPublisher<any> | undefined = undefined, OutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TAuditStorageServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined> {
|
|
9
17
|
readonly type: ConstructType;
|
|
10
18
|
readonly logger: TLogger;
|
|
@@ -44,7 +52,25 @@ declare enum ConstructType {
|
|
|
44
52
|
Function = "dev.geekmidas.function.function",
|
|
45
53
|
Subscriber = "dev.geekmidas.function.subscriber",
|
|
46
54
|
}
|
|
47
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Utility to test sniffing a service for environment variables.
|
|
57
|
+
* Useful for debugging services that throw errors during sniffing.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* import { sniffService } from '@geekmidas/constructs';
|
|
62
|
+
* import { authService } from './services/AuthService';
|
|
63
|
+
*
|
|
64
|
+
* const result = await sniffService(authService);
|
|
65
|
+
* console.log('Env vars:', result.envVars);
|
|
66
|
+
* console.log('Error:', result.error);
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
declare function sniffService(service: Service): Promise<{
|
|
70
|
+
envVars: string[];
|
|
71
|
+
error?: Error;
|
|
72
|
+
unhandledRejections: Error[];
|
|
73
|
+
}>;
|
|
48
74
|
//#endregion
|
|
49
|
-
export { Construct, ConstructType };
|
|
50
|
-
//# sourceMappingURL=Construct-
|
|
75
|
+
export { Construct, ConstructType, sniffService, snifferContext };
|
|
76
|
+
//# sourceMappingURL=Construct-E8QPyHh4.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Construct-E8QPyHh4.d.mts","names":[],"sources":["../src/Construct.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;AAK8D;AAmC9D;;;cAtBM,cAuBoB,EAvBJ,cAuBI;AAEf,uBAHW,SAGX,CAAA,gBAFM,MAEN,GAFe,MAEf,EAAA,qBAAA,MAAA,GAAA,MAAA,EAAA,UAAA,cAAA,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,kBACQ,gBADR,GAAA,SAAA,GAAA,SAAA,EAAA,kBAEQ,OAFR,EAAA,GAAA,EAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,sBAIY,YAJZ,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA;EAAc,SACN,IAAA,EAMK,aANL;EAAgB,SAChB,MAAA,EAMO,OANP;EAAO,SAEH,QAAA,EAKK,SALL;EAAY,SAGX,MAAA,EAGE,WAHF,CAGc,CAHd,EAAA,GAAA,CAAA,EAAA;EAAa,SACX,gBAAA,CAAA,EAIW,OAJX,CAImB,YAJnB,EAIiC,CAJjC,CAAA,GAAA,SAAA;EAAO,YACL,CAAA,EAIJ,SAJI,GAAA,SAAA;EAAS,SACC,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAC,SAAb,UAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAW,SAEQ,qBAAA,CAAA,EAIH,OAJG,CAK1C,wBAL0C,EAM1C,aAN0C,CAAA,GAAA,SAAA;EAAY,WAAE,CAAA,IAAA,EALnC,aAKmC,EAAA,MAAA,EAJjC,OAIiC,EAAA,QAAA,EAH/B,SAG+B,EAAA,MAAA,CAAA,EAFjC,WAEiC,CAFrB,CAEqB,EAAA,GAAA,CAAA,EAAA,EAAA,gBAAA,CAAA,EAAtB,OAAsB,CAAd,YAAc,EAAA,CAAA,CAAA,GAAA,SAAA,EAAA,YAAA,CAAA,EACnC,SADmC,GAAA,SAAA,EAAA,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA,EAAA,UAAA,CAAA,EAAA,MAAA,GAAA,SAAA,EAAA,qBAAA,CAAA,EAIjB,OAJiB,CAKxD,wBALwD,EAMxD,aANwD,CAAA,GAAA,SAAA;EAAC;;;;;;;;;;;;;;;;;;AA8B5B;AAsDhC;EAqBsB,cAAA,CAAA,CAAY,EA3ET,OA2ES,CAAA,MAAA,EAAA,CAAA;;AAAU,aArBhC,aAAA;EAqBuC,IAE1C,GAAA,6BAAA;EAAK,QACQ,GAAA,iCAAA;EAAK,QAH2B,GAAA,iCAAA;EAAO,UAAA,GAAA,mCAAA;;;;;;;;;;;;;;;;iBAAvC,YAAA,UAAsB,UAAU;;UAE7C;uBACa"}
|
package/dist/Construct.cjs
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
const require_Construct = require('./Construct-
|
|
1
|
+
const require_Construct = require('./Construct-CPrCF8NK.cjs');
|
|
2
2
|
|
|
3
3
|
exports.Construct = require_Construct.Construct;
|
|
4
|
-
exports.ConstructType = require_Construct.ConstructType;
|
|
4
|
+
exports.ConstructType = require_Construct.ConstructType;
|
|
5
|
+
exports.sniffService = require_Construct.sniffService;
|
|
6
|
+
exports.snifferContext = require_Construct.snifferContext;
|
package/dist/Construct.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Construct, ConstructType } from "./Construct-
|
|
2
|
-
export { Construct, ConstructType };
|
|
1
|
+
import { Construct, ConstructType, sniffService, snifferContext } from "./Construct-Dl0l2d8d.cjs";
|
|
2
|
+
export { Construct, ConstructType, sniffService, snifferContext };
|
package/dist/Construct.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Construct, ConstructType } from "./Construct-
|
|
2
|
-
export { Construct, ConstructType };
|
|
1
|
+
import { Construct, ConstructType, sniffService, snifferContext } from "./Construct-E8QPyHh4.mjs";
|
|
2
|
+
export { Construct, ConstructType, sniffService, snifferContext };
|
package/dist/Construct.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Construct, ConstructType } from "./Construct-
|
|
1
|
+
import { Construct, ConstructType, sniffService, snifferContext } from "./Construct-BNDLJJfD.mjs";
|
|
2
2
|
|
|
3
|
-
export { Construct, ConstructType };
|
|
3
|
+
export { Construct, ConstructType, sniffService, snifferContext };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_Construct = require('./Construct-
|
|
2
|
-
const require_Function = require('./Function-
|
|
1
|
+
const require_Construct = require('./Construct-CPrCF8NK.cjs');
|
|
2
|
+
const require_Function = require('./Function-2qWSZqYB.cjs');
|
|
3
3
|
|
|
4
4
|
//#region src/crons/Cron.ts
|
|
5
5
|
var Cron = class extends require_Function.Function {
|
|
@@ -22,4 +22,4 @@ Object.defineProperty(exports, 'Cron', {
|
|
|
22
22
|
return Cron;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
//# sourceMappingURL=Cron-
|
|
25
|
+
//# sourceMappingURL=Cron-BmPNTLla.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cron-BmPNTLla.cjs","names":["Function","obj: any","ConstructType","fn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>","timeout?: number","_schedule?: ScheduleExpression","input?: TInput","outputSchema?: OutSchema","services: TServices","logger?: TLogger","publisherService?: Service<TEventPublisherServiceName, TEventPublisher>","events: any[]","memorySize?: number","databaseService?: Service<TDatabaseServiceName, TDatabase>"],"sources":["../src/crons/Cron.ts"],"sourcesContent":["import type { AuditableAction } from '@geekmidas/audit';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { ComposableStandardSchema } from '@geekmidas/schema';\nimport type { Service } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nimport { ConstructType } from '../Construct';\nimport { Function, type FunctionHandler } from '../functions';\n\nexport class Cron<\n\tTInput extends ComposableStandardSchema | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> extends Function<\n\tTInput,\n\tTServices,\n\tTLogger,\n\tOutSchema,\n\tTEventPublisher,\n\tTEventPublisherServiceName,\n\tundefined,\n\tstring,\n\tTDatabase,\n\tTDatabaseServiceName,\n\tAuditableAction<string, unknown>,\n\tFunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>\n> {\n\tstatic isCron(obj: any): obj is Cron<any, any, any, any> {\n\t\treturn Boolean(\n\t\t\tobj &&\n\t\t\t\t(obj as Function).__IS_FUNCTION__ === true &&\n\t\t\t\tobj.type === ConstructType.Cron,\n\t\t);\n\t}\n\n\tconstructor(\n\t\tfn: FunctionHandler<TInput, TServices, TLogger, OutSchema, TDatabase>,\n\t\ttimeout?: number,\n\t\tprotected _schedule?: ScheduleExpression,\n\t\tinput?: TInput,\n\t\toutputSchema?: OutSchema,\n\t\tservices: TServices = [] as unknown as TServices,\n\t\tlogger?: TLogger,\n\t\tpublisherService?: Service<TEventPublisherServiceName, TEventPublisher>,\n\t\tevents: any[] = [],\n\t\tmemorySize?: number,\n\t\tdatabaseService?: Service<TDatabaseServiceName, TDatabase>,\n\t) {\n\t\tsuper(\n\t\t\tfn,\n\t\t\ttimeout,\n\t\t\tConstructType.Cron,\n\t\t\tinput,\n\t\t\toutputSchema,\n\t\t\tservices,\n\t\t\tlogger,\n\t\t\tpublisherService,\n\t\t\tevents,\n\t\t\tmemorySize,\n\t\t\tundefined, // auditorStorageService\n\t\t\tdatabaseService,\n\t\t);\n\t}\n\n\tget schedule(): ScheduleExpression | undefined {\n\t\treturn this._schedule;\n\t}\n}\n\nexport type RateExpression = `rate(${string})`;\n\ntype CronMinute =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronHour =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronDay =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| `${number},${number}`\n\t| string; // Allow more complex patterns\n\ntype CronMonth =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| 'JAN'\n\t| 'FEB'\n\t| 'MAR'\n\t| 'APR'\n\t| 'MAY'\n\t| 'JUN'\n\t| 'JUL'\n\t| 'AUG'\n\t| 'SEP'\n\t| 'OCT'\n\t| 'NOV'\n\t| 'DEC'\n\t| string; // Allow more complex patterns\n\ntype CronWeekday =\n\t| '*'\n\t| number\n\t| `${number}`\n\t| `${number}-${number}`\n\t| `${number}/${number}`\n\t| `*/${number}`\n\t| 'SUN'\n\t| 'MON'\n\t| 'TUE'\n\t| 'WED'\n\t| 'THU'\n\t| 'FRI'\n\t| 'SAT'\n\t| `${string}-${string}` // Allow patterns like MON-FRI\n\t| string; // Allow more complex patterns\n\nexport type CronExpression =\n\t`cron(${CronMinute} ${CronHour} ${CronDay} ${CronMonth} ${CronWeekday})`;\n\nexport type ScheduleExpression = RateExpression | CronExpression;\n"],"mappings":";;;;AAUA,IAAa,OAAb,cASUA,0BAaR;CACD,OAAO,OAAOC,KAA2C;AACxD,SAAO,QACN,OACE,IAAiB,oBAAoB,QACtC,IAAI,SAASC,gCAAc,KAC5B;CACD;CAED,YACCC,IACAC,SACUC,WACVC,OACAC,cACAC,WAAsB,CAAE,GACxBC,QACAC,kBACAC,SAAgB,CAAE,GAClBC,YACAC,iBACC;AACD,QACC,IACA,SACAX,gCAAc,MACd,OACA,cACA,UACA,QACA,kBACA,QACA,oBAEA,gBACA;EAvBS;CAwBV;CAED,IAAI,WAA2C;AAC9C,SAAO,KAAK;CACZ;AACD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ConstructType } from "./Construct-
|
|
2
|
-
import { Function } from "./Function-
|
|
1
|
+
import { ConstructType } from "./Construct-BNDLJJfD.mjs";
|
|
2
|
+
import { Function } from "./Function-CdF1HmFu.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/crons/Cron.ts
|
|
5
5
|
var Cron = class extends Function {
|
|
@@ -17,4 +17,4 @@ var Cron = class extends Function {
|
|
|
17
17
|
|
|
18
18
|
//#endregion
|
|
19
19
|
export { Cron };
|
|
20
|
-
//# sourceMappingURL=Cron-
|
|
20
|
+
//# sourceMappingURL=Cron-BpJONaFv.mjs.map
|