@geekmidas/constructs 0.0.12 → 0.0.13

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