@geekmidas/constructs 3.0.6 → 3.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{Construct-BXG8cFSm.cjs → Construct-B14miJ6P.cjs} +95 -10
  3. package/dist/Construct-B14miJ6P.cjs.map +1 -0
  4. package/dist/{Construct-C2SyofdS.d.mts → Construct-CXqvzglu.d.cts} +11 -6
  5. package/dist/{Construct-C2SyofdS.d.mts.map → Construct-CXqvzglu.d.cts.map} +1 -1
  6. package/dist/{Construct-CQ9zV58W.mjs → Construct-CdJY2DJS.mjs} +83 -9
  7. package/dist/Construct-CdJY2DJS.mjs.map +1 -0
  8. package/dist/{Construct-CX7HyFfT.d.cts → Construct-D0n7QTaI.d.mts} +13 -8
  9. package/dist/Construct-D0n7QTaI.d.mts.map +1 -0
  10. package/dist/{Endpoint-DtFQFL63.d.mts → Endpoint-C991gK3T.d.cts} +133 -30
  11. package/dist/Endpoint-C991gK3T.d.cts.map +1 -0
  12. package/dist/{Endpoint-CGdCGJkC.d.cts → Endpoint-CRHpLPV3.d.mts} +133 -30
  13. package/dist/Endpoint-CRHpLPV3.d.mts.map +1 -0
  14. package/dist/{HonoEndpointAdaptor-B5fKdLi7.cjs → HonoEndpointAdaptor-BDz1qM4z.cjs} +81 -24
  15. package/dist/HonoEndpointAdaptor-BDz1qM4z.cjs.map +1 -0
  16. package/dist/{HonoEndpointAdaptor-DOUODM7n.mjs → HonoEndpointAdaptor-DPBfEPZj.mjs} +64 -7
  17. package/dist/HonoEndpointAdaptor-DPBfEPZj.mjs.map +1 -0
  18. package/dist/{Subscriber-1rDE7HuM.d.cts → Subscriber-D8WkA8np.d.cts} +3 -3
  19. package/dist/{Subscriber-1rDE7HuM.d.cts.map → Subscriber-D8WkA8np.d.cts.map} +1 -1
  20. package/dist/{Subscriber-BgB3RRxb.d.mts → Subscriber-Tft61-YG.d.mts} +5 -5
  21. package/dist/Subscriber-Tft61-YG.d.mts.map +1 -0
  22. package/dist/adaptors/aws.cjs +737 -21
  23. package/dist/adaptors/aws.cjs.map +1 -0
  24. package/dist/adaptors/aws.d.cts +221 -17
  25. package/dist/adaptors/aws.d.cts.map +1 -0
  26. package/dist/adaptors/aws.d.mts +221 -17
  27. package/dist/adaptors/aws.d.mts.map +1 -0
  28. package/dist/adaptors/aws.mjs +734 -18
  29. package/dist/adaptors/aws.mjs.map +1 -0
  30. package/dist/adaptors/hono.cjs +5 -12
  31. package/dist/adaptors/hono.d.cts +52 -10
  32. package/dist/adaptors/hono.d.cts.map +1 -0
  33. package/dist/adaptors/hono.d.mts +52 -10
  34. package/dist/adaptors/hono.d.mts.map +1 -0
  35. package/dist/adaptors/hono.mjs +5 -12
  36. package/dist/adaptors/testing.cjs +392 -15
  37. package/dist/adaptors/testing.cjs.map +1 -0
  38. package/dist/adaptors/testing.d.cts +177 -13
  39. package/dist/adaptors/testing.d.cts.map +1 -0
  40. package/dist/adaptors/testing.d.mts +177 -13
  41. package/dist/adaptors/testing.d.mts.map +1 -0
  42. package/dist/adaptors/testing.mjs +389 -14
  43. package/dist/adaptors/testing.mjs.map +1 -0
  44. package/dist/crons/index.cjs +82 -10
  45. package/dist/crons/index.cjs.map +1 -1
  46. package/dist/crons/index.d.cts +48 -11
  47. package/dist/crons/index.d.cts.map +1 -1
  48. package/dist/crons/index.d.mts +45 -11
  49. package/dist/crons/index.d.mts.map +1 -1
  50. package/dist/crons/index.mjs +79 -7
  51. package/dist/crons/index.mjs.map +1 -1
  52. package/dist/endpoints/index.cjs +717 -23
  53. package/dist/endpoints/index.cjs.map +1 -1
  54. package/dist/endpoints/index.d.cts +316 -14
  55. package/dist/endpoints/index.d.cts.map +1 -1
  56. package/dist/endpoints/index.d.mts +315 -14
  57. package/dist/endpoints/index.d.mts.map +1 -1
  58. package/dist/endpoints/index.mjs +706 -12
  59. package/dist/endpoints/index.mjs.map +1 -1
  60. package/dist/functions/index.cjs +5 -8
  61. package/dist/functions/index.d.cts +2 -5
  62. package/dist/functions/index.d.mts +2 -5
  63. package/dist/functions/index.mjs +2 -5
  64. package/dist/functions-DiaRAdfp.cjs +2893 -0
  65. package/dist/functions-DiaRAdfp.cjs.map +1 -0
  66. package/dist/functions-GmSHFbpr.mjs +2864 -0
  67. package/dist/functions-GmSHFbpr.mjs.map +1 -0
  68. package/dist/index-Cq4fz8uM.d.mts +132 -0
  69. package/dist/index-Cq4fz8uM.d.mts.map +1 -0
  70. package/dist/index-CzIMpK-e.d.cts +135 -0
  71. package/dist/index-CzIMpK-e.d.cts.map +1 -0
  72. package/dist/index.cjs +1 -1
  73. package/dist/index.d.cts +3 -3
  74. package/dist/index.d.mts +3 -3
  75. package/dist/index.mjs +1 -1
  76. package/dist/lazyAccessors-CJZYs9uM.mjs +1887 -0
  77. package/dist/lazyAccessors-CJZYs9uM.mjs.map +1 -0
  78. package/dist/lazyAccessors-DHvDeww0.cjs +1964 -0
  79. package/dist/lazyAccessors-DHvDeww0.cjs.map +1 -0
  80. package/dist/processAudits-B0PbJf1Z.mjs +80 -0
  81. package/dist/processAudits-B0PbJf1Z.mjs.map +1 -0
  82. package/dist/processAudits-CUko08pi.cjs +92 -0
  83. package/dist/processAudits-CUko08pi.cjs.map +1 -0
  84. package/dist/subscribers/index.cjs +77 -6
  85. package/dist/subscribers/index.cjs.map +1 -1
  86. package/dist/subscribers/index.d.cts +27 -5
  87. package/dist/subscribers/index.d.cts.map +1 -1
  88. package/dist/subscribers/index.d.mts +26 -5
  89. package/dist/subscribers/index.d.mts.map +1 -1
  90. package/dist/subscribers/index.mjs +74 -3
  91. package/dist/subscribers/index.mjs.map +1 -1
  92. package/dist/{telemetry-BTaiRqPo.d.cts → telemetry-Bt0vK4ma.d.cts} +1 -1
  93. package/dist/{telemetry-BTaiRqPo.d.cts.map → telemetry-Bt0vK4ma.d.cts.map} +1 -1
  94. package/dist/{telemetry-C-kNOW3C.d.mts → telemetry-COvVBKBM.d.mts} +1 -1
  95. package/dist/{telemetry-C-kNOW3C.d.mts.map → telemetry-COvVBKBM.d.mts.map} +1 -1
  96. package/dist/{types-B5H3piDg.d.cts → types-B8YlI4cx.d.cts} +1 -1
  97. package/dist/{types-B5H3piDg.d.cts.map → types-B8YlI4cx.d.cts.map} +1 -1
  98. package/dist/{types-aFmq5cKh.d.mts → types-BA3eK4xj.d.mts} +1 -1
  99. package/dist/{types-aFmq5cKh.d.mts.map → types-BA3eK4xj.d.mts.map} +1 -1
  100. package/dist/types.d.cts +1 -1
  101. package/dist/types.d.mts +1 -1
  102. package/package.json +18 -13
  103. package/src/Construct.ts +26 -8
  104. package/src/__tests__/Construct.environment.spec.ts +123 -0
  105. package/src/adaptors/testing.ts +7 -0
  106. package/src/endpoints/MswEndpointAdaptor.ts +226 -0
  107. package/src/endpoints/__tests__/MswEndpointAdaptor.spec.ts +211 -0
  108. package/tsdown.config.ts +30 -1
  109. package/dist/AWSLambdaFunction-BF1gJJjG.d.mts +0 -32
  110. package/dist/AWSLambdaFunction-BF1gJJjG.d.mts.map +0 -1
  111. package/dist/AWSLambdaFunction-CPEAl5nZ.cjs +0 -120
  112. package/dist/AWSLambdaFunction-CPEAl5nZ.cjs.map +0 -1
  113. package/dist/AWSLambdaFunction-DJiCAPAf.mjs +0 -114
  114. package/dist/AWSLambdaFunction-DJiCAPAf.mjs.map +0 -1
  115. package/dist/AWSLambdaFunction-tzqv5XU6.d.cts +0 -32
  116. package/dist/AWSLambdaFunction-tzqv5XU6.d.cts.map +0 -1
  117. package/dist/AWSLambdaSubscriberAdaptor-Cj1wjkUP.d.cts +0 -36
  118. package/dist/AWSLambdaSubscriberAdaptor-Cj1wjkUP.d.cts.map +0 -1
  119. package/dist/AWSLambdaSubscriberAdaptor-OQvj2lKI.d.mts +0 -36
  120. package/dist/AWSLambdaSubscriberAdaptor-OQvj2lKI.d.mts.map +0 -1
  121. package/dist/AWSLambdaSubscriberAdaptor-RKwKYLl1.mjs +0 -172
  122. package/dist/AWSLambdaSubscriberAdaptor-RKwKYLl1.mjs.map +0 -1
  123. package/dist/AWSLambdaSubscriberAdaptor-eZ3qoKvK.cjs +0 -178
  124. package/dist/AWSLambdaSubscriberAdaptor-eZ3qoKvK.cjs.map +0 -1
  125. package/dist/AmazonApiGatewayEndpointAdaptor-BIltcbAc.cjs +0 -277
  126. package/dist/AmazonApiGatewayEndpointAdaptor-BIltcbAc.cjs.map +0 -1
  127. package/dist/AmazonApiGatewayEndpointAdaptor-BpYtYCeW.mjs +0 -271
  128. package/dist/AmazonApiGatewayEndpointAdaptor-BpYtYCeW.mjs.map +0 -1
  129. package/dist/AmazonApiGatewayEndpointAdaptor-DqNcQGMf.d.cts +0 -124
  130. package/dist/AmazonApiGatewayEndpointAdaptor-DqNcQGMf.d.cts.map +0 -1
  131. package/dist/AmazonApiGatewayEndpointAdaptor-Hi8Pbp2d.d.mts +0 -124
  132. package/dist/AmazonApiGatewayEndpointAdaptor-Hi8Pbp2d.d.mts.map +0 -1
  133. package/dist/AmazonApiGatewayV1EndpointAdaptor-CRwyWT6t.mjs +0 -42
  134. package/dist/AmazonApiGatewayV1EndpointAdaptor-CRwyWT6t.mjs.map +0 -1
  135. package/dist/AmazonApiGatewayV1EndpointAdaptor-DEETT6Wj.cjs +0 -47
  136. package/dist/AmazonApiGatewayV1EndpointAdaptor-DEETT6Wj.cjs.map +0 -1
  137. package/dist/AmazonApiGatewayV1EndpointAdaptor-DcN2fYsv.d.cts +0 -23
  138. package/dist/AmazonApiGatewayV1EndpointAdaptor-DcN2fYsv.d.cts.map +0 -1
  139. package/dist/AmazonApiGatewayV1EndpointAdaptor-cpwJzU4W.d.mts +0 -23
  140. package/dist/AmazonApiGatewayV1EndpointAdaptor-cpwJzU4W.d.mts.map +0 -1
  141. package/dist/AmazonApiGatewayV2EndpointAdaptor-C2qO8FN6.cjs +0 -48
  142. package/dist/AmazonApiGatewayV2EndpointAdaptor-C2qO8FN6.cjs.map +0 -1
  143. package/dist/AmazonApiGatewayV2EndpointAdaptor-Cn9UoRgB.d.cts +0 -22
  144. package/dist/AmazonApiGatewayV2EndpointAdaptor-Cn9UoRgB.d.cts.map +0 -1
  145. package/dist/AmazonApiGatewayV2EndpointAdaptor-LzH3hkB-.d.mts +0 -22
  146. package/dist/AmazonApiGatewayV2EndpointAdaptor-LzH3hkB-.d.mts.map +0 -1
  147. package/dist/AmazonApiGatewayV2EndpointAdaptor-m9YKI294.mjs +0 -42
  148. package/dist/AmazonApiGatewayV2EndpointAdaptor-m9YKI294.mjs.map +0 -1
  149. package/dist/Authorizer-4unKN3Xn.mjs +0 -68
  150. package/dist/Authorizer-4unKN3Xn.mjs.map +0 -1
  151. package/dist/Authorizer-DBsrDTuf.d.mts +0 -126
  152. package/dist/Authorizer-DBsrDTuf.d.mts.map +0 -1
  153. package/dist/Authorizer-DWtwC8we.d.cts +0 -126
  154. package/dist/Authorizer-DWtwC8we.d.cts.map +0 -1
  155. package/dist/Authorizer-Dx57psuM.cjs +0 -92
  156. package/dist/Authorizer-Dx57psuM.cjs.map +0 -1
  157. package/dist/BaseFunctionBuilder-C-4hYTfj.d.cts +0 -42
  158. package/dist/BaseFunctionBuilder-C-4hYTfj.d.cts.map +0 -1
  159. package/dist/BaseFunctionBuilder-C3rQMoWb.mjs +0 -70
  160. package/dist/BaseFunctionBuilder-C3rQMoWb.mjs.map +0 -1
  161. package/dist/BaseFunctionBuilder-CsvFjzA8.d.mts +0 -42
  162. package/dist/BaseFunctionBuilder-CsvFjzA8.d.mts.map +0 -1
  163. package/dist/BaseFunctionBuilder-DXf6HK-N.cjs +0 -76
  164. package/dist/BaseFunctionBuilder-DXf6HK-N.cjs.map +0 -1
  165. package/dist/Construct-BXG8cFSm.cjs.map +0 -1
  166. package/dist/Construct-CQ9zV58W.mjs.map +0 -1
  167. package/dist/Construct-CX7HyFfT.d.cts.map +0 -1
  168. package/dist/Construct.cjs +0 -6
  169. package/dist/Construct.d.cts +0 -2
  170. package/dist/Construct.d.mts +0 -2
  171. package/dist/Construct.mjs +0 -3
  172. package/dist/Cron-B3vrGuaD.mjs +0 -20
  173. package/dist/Cron-B3vrGuaD.mjs.map +0 -1
  174. package/dist/Cron-BDxW6fYg.d.cts +0 -26
  175. package/dist/Cron-BDxW6fYg.d.cts.map +0 -1
  176. package/dist/Cron-CWxjO2Fg.d.mts +0 -26
  177. package/dist/Cron-CWxjO2Fg.d.mts.map +0 -1
  178. package/dist/Cron-DEKZg5j4.cjs +0 -25
  179. package/dist/Cron-DEKZg5j4.cjs.map +0 -1
  180. package/dist/CronBuilder-BHpY6w3b.cjs +0 -74
  181. package/dist/CronBuilder-BHpY6w3b.cjs.map +0 -1
  182. package/dist/CronBuilder-CginrW3H.d.cts +0 -32
  183. package/dist/CronBuilder-CginrW3H.d.cts.map +0 -1
  184. package/dist/CronBuilder-DJnXbDGK.d.mts +0 -32
  185. package/dist/CronBuilder-DJnXbDGK.d.mts.map +0 -1
  186. package/dist/CronBuilder-VXpyNfp2.mjs +0 -68
  187. package/dist/CronBuilder-VXpyNfp2.mjs.map +0 -1
  188. package/dist/Endpoint-BcxvF4F3.cjs +0 -440
  189. package/dist/Endpoint-BcxvF4F3.cjs.map +0 -1
  190. package/dist/Endpoint-CGdCGJkC.d.cts.map +0 -1
  191. package/dist/Endpoint-DtFQFL63.d.mts.map +0 -1
  192. package/dist/Endpoint-DvY3aqAy.mjs +0 -422
  193. package/dist/Endpoint-DvY3aqAy.mjs.map +0 -1
  194. package/dist/EndpointBuilder-CMzbGG2c.mjs +0 -262
  195. package/dist/EndpointBuilder-CMzbGG2c.mjs.map +0 -1
  196. package/dist/EndpointBuilder-DIAsH97h.d.mts +0 -146
  197. package/dist/EndpointBuilder-DIAsH97h.d.mts.map +0 -1
  198. package/dist/EndpointBuilder-Dzqcm8Yv.d.cts +0 -146
  199. package/dist/EndpointBuilder-Dzqcm8Yv.d.cts.map +0 -1
  200. package/dist/EndpointBuilder-QdDf3x87.cjs +0 -268
  201. package/dist/EndpointBuilder-QdDf3x87.cjs.map +0 -1
  202. package/dist/EndpointFactory-AsfUsn-v.cjs +0 -393
  203. package/dist/EndpointFactory-AsfUsn-v.cjs.map +0 -1
  204. package/dist/EndpointFactory-C1rh407J.d.cts +0 -142
  205. package/dist/EndpointFactory-C1rh407J.d.cts.map +0 -1
  206. package/dist/EndpointFactory-CkPaFZA0.mjs +0 -381
  207. package/dist/EndpointFactory-CkPaFZA0.mjs.map +0 -1
  208. package/dist/EndpointFactory-pCuCu_1H.d.mts +0 -142
  209. package/dist/EndpointFactory-pCuCu_1H.d.mts.map +0 -1
  210. package/dist/Function-CZw1DRQ6.d.mts +0 -76
  211. package/dist/Function-CZw1DRQ6.d.mts.map +0 -1
  212. package/dist/Function-CwlB89lS.d.cts +0 -76
  213. package/dist/Function-CwlB89lS.d.cts.map +0 -1
  214. package/dist/Function-DgQ_no6B.cjs +0 -84
  215. package/dist/Function-DgQ_no6B.cjs.map +0 -1
  216. package/dist/Function-xfQbftdE.mjs +0 -72
  217. package/dist/Function-xfQbftdE.mjs.map +0 -1
  218. package/dist/FunctionBuilder-CBeqX18X.mjs +0 -80
  219. package/dist/FunctionBuilder-CBeqX18X.mjs.map +0 -1
  220. package/dist/FunctionBuilder-C_xG9As7.cjs +0 -86
  221. package/dist/FunctionBuilder-C_xG9As7.cjs.map +0 -1
  222. package/dist/FunctionBuilder-D_7f5MfS.d.cts +0 -40
  223. package/dist/FunctionBuilder-D_7f5MfS.d.cts.map +0 -1
  224. package/dist/FunctionBuilder-m5BNA2Ap.d.mts +0 -40
  225. package/dist/FunctionBuilder-m5BNA2Ap.d.mts.map +0 -1
  226. package/dist/FunctionExecutionWrapper-B0ZAssiy.mjs +0 -101
  227. package/dist/FunctionExecutionWrapper-B0ZAssiy.mjs.map +0 -1
  228. package/dist/FunctionExecutionWrapper-C7yYXIq-.d.mts +0 -50
  229. package/dist/FunctionExecutionWrapper-C7yYXIq-.d.mts.map +0 -1
  230. package/dist/FunctionExecutionWrapper-Cg8HjuHL.d.cts +0 -50
  231. package/dist/FunctionExecutionWrapper-Cg8HjuHL.d.cts.map +0 -1
  232. package/dist/FunctionExecutionWrapper-KKHP6fDY.cjs +0 -107
  233. package/dist/FunctionExecutionWrapper-KKHP6fDY.cjs.map +0 -1
  234. package/dist/HonoEndpointAdaptor-B5fKdLi7.cjs.map +0 -1
  235. package/dist/HonoEndpointAdaptor-BXga7Jqh.d.mts +0 -50
  236. package/dist/HonoEndpointAdaptor-BXga7Jqh.d.mts.map +0 -1
  237. package/dist/HonoEndpointAdaptor-D3IgM-0B.d.cts +0 -50
  238. package/dist/HonoEndpointAdaptor-D3IgM-0B.d.cts.map +0 -1
  239. package/dist/HonoEndpointAdaptor-DOUODM7n.mjs.map +0 -1
  240. package/dist/Subscriber-BEhOdNQi.mjs +0 -28
  241. package/dist/Subscriber-BEhOdNQi.mjs.map +0 -1
  242. package/dist/Subscriber-BgB3RRxb.d.mts.map +0 -1
  243. package/dist/Subscriber-Scz7hrV6.cjs +0 -34
  244. package/dist/Subscriber-Scz7hrV6.cjs.map +0 -1
  245. package/dist/SubscriberBuilder-B82h4v-S.cjs +0 -60
  246. package/dist/SubscriberBuilder-B82h4v-S.cjs.map +0 -1
  247. package/dist/SubscriberBuilder-B9uva8fZ.d.cts +0 -28
  248. package/dist/SubscriberBuilder-B9uva8fZ.d.cts.map +0 -1
  249. package/dist/SubscriberBuilder-DaQkh2Nt.d.mts +0 -28
  250. package/dist/SubscriberBuilder-DaQkh2Nt.d.mts.map +0 -1
  251. package/dist/SubscriberBuilder-DlUaG0Ej.mjs +0 -54
  252. package/dist/SubscriberBuilder-DlUaG0Ej.mjs.map +0 -1
  253. package/dist/TestEndpointAdaptor-Clz_L8Xj.d.cts +0 -45
  254. package/dist/TestEndpointAdaptor-Clz_L8Xj.d.cts.map +0 -1
  255. package/dist/TestEndpointAdaptor-DxXJoBBf.d.mts +0 -45
  256. package/dist/TestEndpointAdaptor-DxXJoBBf.d.mts.map +0 -1
  257. package/dist/TestEndpointAdaptor-G2T789bH.mjs +0 -174
  258. package/dist/TestEndpointAdaptor-G2T789bH.mjs.map +0 -1
  259. package/dist/TestEndpointAdaptor-YlwOEisx.cjs +0 -180
  260. package/dist/TestEndpointAdaptor-YlwOEisx.cjs.map +0 -1
  261. package/dist/TestFunctionAdaptor-BHk2bDOV.d.cts +0 -30
  262. package/dist/TestFunctionAdaptor-BHk2bDOV.d.cts.map +0 -1
  263. package/dist/TestFunctionAdaptor-C5CLuR-9.mjs +0 -75
  264. package/dist/TestFunctionAdaptor-C5CLuR-9.mjs.map +0 -1
  265. package/dist/TestFunctionAdaptor-CH6-gO_B.cjs +0 -81
  266. package/dist/TestFunctionAdaptor-CH6-gO_B.cjs.map +0 -1
  267. package/dist/TestFunctionAdaptor-DzT8GRdR.d.mts +0 -30
  268. package/dist/TestFunctionAdaptor-DzT8GRdR.d.mts.map +0 -1
  269. package/dist/TestSubscriberAdaptor-CPEiqSfE.d.mts +0 -26
  270. package/dist/TestSubscriberAdaptor-CPEiqSfE.d.mts.map +0 -1
  271. package/dist/TestSubscriberAdaptor-CwP3qNJ4.mjs +0 -51
  272. package/dist/TestSubscriberAdaptor-CwP3qNJ4.mjs.map +0 -1
  273. package/dist/TestSubscriberAdaptor-DQk5xzb0.d.cts +0 -26
  274. package/dist/TestSubscriberAdaptor-DQk5xzb0.d.cts.map +0 -1
  275. package/dist/TestSubscriberAdaptor-Dgxr_0vL.cjs +0 -57
  276. package/dist/TestSubscriberAdaptor-Dgxr_0vL.cjs.map +0 -1
  277. package/dist/chunk-CUT6urMc.cjs +0 -30
  278. package/dist/crons/Cron.cjs +0 -8
  279. package/dist/crons/Cron.d.cts +0 -7
  280. package/dist/crons/Cron.d.mts +0 -7
  281. package/dist/crons/Cron.mjs +0 -8
  282. package/dist/crons/CronBuilder.cjs +0 -9
  283. package/dist/crons/CronBuilder.d.cts +0 -8
  284. package/dist/crons/CronBuilder.d.mts +0 -8
  285. package/dist/crons/CronBuilder.mjs +0 -9
  286. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +0 -11
  287. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +0 -11
  288. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +0 -11
  289. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +0 -11
  290. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +0 -13
  291. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +0 -12
  292. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +0 -12
  293. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +0 -13
  294. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +0 -13
  295. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +0 -12
  296. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +0 -12
  297. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +0 -13
  298. package/dist/endpoints/Authorizer.cjs +0 -6
  299. package/dist/endpoints/Authorizer.d.cts +0 -2
  300. package/dist/endpoints/Authorizer.d.mts +0 -2
  301. package/dist/endpoints/Authorizer.mjs +0 -3
  302. package/dist/endpoints/Endpoint.cjs +0 -10
  303. package/dist/endpoints/Endpoint.d.cts +0 -9
  304. package/dist/endpoints/Endpoint.d.mts +0 -9
  305. package/dist/endpoints/Endpoint.mjs +0 -8
  306. package/dist/endpoints/EndpointBuilder.cjs +0 -11
  307. package/dist/endpoints/EndpointBuilder.d.cts +0 -10
  308. package/dist/endpoints/EndpointBuilder.d.mts +0 -10
  309. package/dist/endpoints/EndpointBuilder.mjs +0 -11
  310. package/dist/endpoints/EndpointFactory.cjs +0 -13
  311. package/dist/endpoints/EndpointFactory.d.cts +0 -11
  312. package/dist/endpoints/EndpointFactory.d.mts +0 -11
  313. package/dist/endpoints/EndpointFactory.mjs +0 -12
  314. package/dist/endpoints/HonoEndpointAdaptor.cjs +0 -14
  315. package/dist/endpoints/HonoEndpointAdaptor.d.cts +0 -10
  316. package/dist/endpoints/HonoEndpointAdaptor.d.mts +0 -10
  317. package/dist/endpoints/HonoEndpointAdaptor.mjs +0 -14
  318. package/dist/endpoints/TestEndpointAdaptor.cjs +0 -12
  319. package/dist/endpoints/TestEndpointAdaptor.d.cts +0 -10
  320. package/dist/endpoints/TestEndpointAdaptor.d.mts +0 -10
  321. package/dist/endpoints/TestEndpointAdaptor.mjs +0 -12
  322. package/dist/endpoints/audit.cjs +0 -0
  323. package/dist/endpoints/audit.d.cts +0 -9
  324. package/dist/endpoints/audit.d.mts +0 -9
  325. package/dist/endpoints/audit.mjs +0 -0
  326. package/dist/endpoints/helpers.cjs +0 -10
  327. package/dist/endpoints/helpers.d.cts +0 -60
  328. package/dist/endpoints/helpers.d.cts.map +0 -1
  329. package/dist/endpoints/helpers.d.mts +0 -60
  330. package/dist/endpoints/helpers.d.mts.map +0 -1
  331. package/dist/endpoints/helpers.mjs +0 -9
  332. package/dist/endpoints/lazyAccessors.cjs +0 -10
  333. package/dist/endpoints/lazyAccessors.d.cts +0 -10
  334. package/dist/endpoints/lazyAccessors.d.mts +0 -10
  335. package/dist/endpoints/lazyAccessors.mjs +0 -3
  336. package/dist/endpoints/parseHonoQuery.cjs +0 -3
  337. package/dist/endpoints/parseHonoQuery.d.cts +0 -14
  338. package/dist/endpoints/parseHonoQuery.d.cts.map +0 -1
  339. package/dist/endpoints/parseHonoQuery.d.mts +0 -14
  340. package/dist/endpoints/parseHonoQuery.d.mts.map +0 -1
  341. package/dist/endpoints/parseHonoQuery.mjs +0 -3
  342. package/dist/endpoints/parseQueryParams.cjs +0 -3
  343. package/dist/endpoints/parseQueryParams.d.cts +0 -14
  344. package/dist/endpoints/parseQueryParams.d.cts.map +0 -1
  345. package/dist/endpoints/parseQueryParams.d.mts +0 -14
  346. package/dist/endpoints/parseQueryParams.d.mts.map +0 -1
  347. package/dist/endpoints/parseQueryParams.mjs +0 -3
  348. package/dist/endpoints/processAudits.cjs +0 -5
  349. package/dist/endpoints/processAudits.d.cts +0 -95
  350. package/dist/endpoints/processAudits.d.cts.map +0 -1
  351. package/dist/endpoints/processAudits.d.mts +0 -95
  352. package/dist/endpoints/processAudits.d.mts.map +0 -1
  353. package/dist/endpoints/processAudits.mjs +0 -3
  354. package/dist/endpoints/rls.cjs +0 -3
  355. package/dist/endpoints/rls.d.cts +0 -9
  356. package/dist/endpoints/rls.d.mts +0 -9
  357. package/dist/endpoints/rls.mjs +0 -3
  358. package/dist/functions/AWSLambdaFunction.cjs +0 -9
  359. package/dist/functions/AWSLambdaFunction.d.cts +0 -5
  360. package/dist/functions/AWSLambdaFunction.d.mts +0 -5
  361. package/dist/functions/AWSLambdaFunction.mjs +0 -9
  362. package/dist/functions/BaseFunctionBuilder.cjs +0 -4
  363. package/dist/functions/BaseFunctionBuilder.d.cts +0 -3
  364. package/dist/functions/BaseFunctionBuilder.d.mts +0 -3
  365. package/dist/functions/BaseFunctionBuilder.mjs +0 -4
  366. package/dist/functions/Function.cjs +0 -5
  367. package/dist/functions/Function.d.cts +0 -3
  368. package/dist/functions/Function.d.mts +0 -3
  369. package/dist/functions/Function.mjs +0 -4
  370. package/dist/functions/FunctionBuilder.cjs +0 -6
  371. package/dist/functions/FunctionBuilder.d.cts +0 -5
  372. package/dist/functions/FunctionBuilder.d.mts +0 -5
  373. package/dist/functions/FunctionBuilder.mjs +0 -6
  374. package/dist/functions/FunctionExecutionWrapper.cjs +0 -8
  375. package/dist/functions/FunctionExecutionWrapper.d.cts +0 -4
  376. package/dist/functions/FunctionExecutionWrapper.d.mts +0 -4
  377. package/dist/functions/FunctionExecutionWrapper.mjs +0 -8
  378. package/dist/functions/TestFunctionAdaptor.cjs +0 -8
  379. package/dist/functions/TestFunctionAdaptor.d.cts +0 -4
  380. package/dist/functions/TestFunctionAdaptor.d.mts +0 -4
  381. package/dist/functions/TestFunctionAdaptor.mjs +0 -8
  382. package/dist/functions-B1mrMoUH.mjs +0 -8
  383. package/dist/functions-B1mrMoUH.mjs.map +0 -1
  384. package/dist/functions-rOD3pXQd.cjs +0 -13
  385. package/dist/functions-rOD3pXQd.cjs.map +0 -1
  386. package/dist/helpers-BYyX0qTA.cjs +0 -95
  387. package/dist/helpers-BYyX0qTA.cjs.map +0 -1
  388. package/dist/helpers-BtwC2IW8.mjs +0 -83
  389. package/dist/helpers-BtwC2IW8.mjs.map +0 -1
  390. package/dist/index-BfeupgMl.d.cts +0 -12
  391. package/dist/index-BfeupgMl.d.cts.map +0 -1
  392. package/dist/index-DQo_Csy7.d.mts +0 -12
  393. package/dist/index-DQo_Csy7.d.mts.map +0 -1
  394. package/dist/lazyAccessors-BVEtB9lU.cjs +0 -223
  395. package/dist/lazyAccessors-BVEtB9lU.cjs.map +0 -1
  396. package/dist/lazyAccessors-Bled3FVc.d.mts +0 -49
  397. package/dist/lazyAccessors-Bled3FVc.d.mts.map +0 -1
  398. package/dist/lazyAccessors-C8AF1hNi.d.cts +0 -49
  399. package/dist/lazyAccessors-C8AF1hNi.d.cts.map +0 -1
  400. package/dist/lazyAccessors-DM6HcXQk.mjs +0 -175
  401. package/dist/lazyAccessors-DM6HcXQk.mjs.map +0 -1
  402. package/dist/parseHonoQuery-BBs8CX-H.cjs +0 -24
  403. package/dist/parseHonoQuery-BBs8CX-H.cjs.map +0 -1
  404. package/dist/parseHonoQuery-Cp8CII0P.mjs +0 -18
  405. package/dist/parseHonoQuery-Cp8CII0P.mjs.map +0 -1
  406. package/dist/parseQueryParams-B4RK1za3.cjs +0 -31
  407. package/dist/parseQueryParams-B4RK1za3.cjs.map +0 -1
  408. package/dist/parseQueryParams-DS3Qmrbd.mjs +0 -25
  409. package/dist/parseQueryParams-DS3Qmrbd.mjs.map +0 -1
  410. package/dist/processAudits-CzHkPokQ.cjs +0 -180
  411. package/dist/processAudits-CzHkPokQ.cjs.map +0 -1
  412. package/dist/processAudits-Dj8UGqcW.mjs +0 -162
  413. package/dist/processAudits-Dj8UGqcW.mjs.map +0 -1
  414. package/dist/publisher-BrzPGnm4.d.cts +0 -16
  415. package/dist/publisher-BrzPGnm4.d.cts.map +0 -1
  416. package/dist/publisher-Bw4770Hi.mjs +0 -41
  417. package/dist/publisher-Bw4770Hi.mjs.map +0 -1
  418. package/dist/publisher-CP4gpv-4.d.mts +0 -16
  419. package/dist/publisher-CP4gpv-4.d.mts.map +0 -1
  420. package/dist/publisher-lFQleddL.cjs +0 -53
  421. package/dist/publisher-lFQleddL.cjs.map +0 -1
  422. package/dist/publisher.cjs +0 -4
  423. package/dist/publisher.d.cts +0 -3
  424. package/dist/publisher.d.mts +0 -3
  425. package/dist/publisher.mjs +0 -3
  426. package/dist/rls-7XXX7DvY.mjs +0 -9
  427. package/dist/rls-7XXX7DvY.mjs.map +0 -1
  428. package/dist/rls-DxFqdIA0.cjs +0 -15
  429. package/dist/rls-DxFqdIA0.cjs.map +0 -1
  430. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +0 -3
  431. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.cts +0 -4
  432. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +0 -4
  433. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +0 -3
  434. package/dist/subscribers/Subscriber.cjs +0 -4
  435. package/dist/subscribers/Subscriber.d.cts +0 -3
  436. package/dist/subscribers/Subscriber.d.mts +0 -3
  437. package/dist/subscribers/Subscriber.mjs +0 -4
  438. package/dist/subscribers/SubscriberBuilder.cjs +0 -5
  439. package/dist/subscribers/SubscriberBuilder.d.cts +0 -4
  440. package/dist/subscribers/SubscriberBuilder.d.mts +0 -4
  441. package/dist/subscribers/SubscriberBuilder.mjs +0 -5
  442. package/dist/subscribers/TestSubscriberAdaptor.cjs +0 -4
  443. package/dist/subscribers/TestSubscriberAdaptor.d.cts +0 -4
  444. package/dist/subscribers/TestSubscriberAdaptor.d.mts +0 -4
  445. package/dist/subscribers/TestSubscriberAdaptor.mjs +0 -4
  446. package/dist/telemetry.cjs +0 -0
  447. package/dist/telemetry.d.cts +0 -2
  448. package/dist/telemetry.d.mts +0 -2
  449. package/dist/telemetry.mjs +0 -0
@@ -1,162 +0,0 @@
1
- import { DefaultAuditor } from "@geekmidas/audit";
2
-
3
- //#region src/endpoints/processAudits.ts
4
- /**
5
- * Process declarative audit definitions after successful endpoint execution.
6
- * Similar to publishConstructEvents for events.
7
- *
8
- * @param endpoint - The endpoint with audit configuration
9
- * @param response - The handler response to generate audit payloads from
10
- * @param serviceDiscovery - Service discovery for registering audit storage
11
- * @param logger - Logger for debug/error messages
12
- * @param ctx - Request context (session, headers, cookies, services)
13
- * @param existingAuditor - Optional existing auditor instance (e.g., from handler context).
14
- * If provided, uses this auditor (with its stored transaction).
15
- * If not provided, creates a new auditor.
16
- */
17
- async function processEndpointAudits(endpoint, response, serviceDiscovery, logger, ctx, existingAuditor) {
18
- try {
19
- const audits = endpoint.audits;
20
- const hasExistingRecords = existingAuditor && existingAuditor.getRecords().length > 0;
21
- if (!audits?.length && !hasExistingRecords) {
22
- logger.debug("No audits to process");
23
- return;
24
- }
25
- if (!endpoint.auditorStorageService) {
26
- if (hasExistingRecords || audits?.length) logger.warn("No auditor storage service available");
27
- return;
28
- }
29
- let auditor;
30
- if (existingAuditor) {
31
- auditor = existingAuditor;
32
- logger.debug("Using existing auditor from handler context");
33
- } else {
34
- const services = await serviceDiscovery.register([endpoint.auditorStorageService]);
35
- const storage = services[endpoint.auditorStorageService.serviceName];
36
- let actor = {
37
- id: "system",
38
- type: "system"
39
- };
40
- if (endpoint.actorExtractor) try {
41
- actor = await endpoint.actorExtractor({
42
- services: ctx.services,
43
- session: ctx.session,
44
- header: ctx.header,
45
- cookie: ctx.cookie,
46
- logger
47
- });
48
- } catch (error) {
49
- logger.error(error, "Failed to extract actor for audits");
50
- }
51
- auditor = new DefaultAuditor({
52
- actor,
53
- storage,
54
- metadata: {
55
- endpoint: endpoint.route,
56
- method: endpoint.method
57
- }
58
- });
59
- }
60
- if (audits?.length) for (const audit of audits) {
61
- logger.debug({ audit: audit.type }, "Processing declarative audit");
62
- if (audit.when && !audit.when(response)) {
63
- logger.debug({ audit: audit.type }, "Audit skipped due to when condition");
64
- continue;
65
- }
66
- const payload = audit.payload(response);
67
- const entityId = audit.entityId?.(response);
68
- auditor.audit(audit.type, payload, {
69
- table: audit.table,
70
- entityId
71
- });
72
- }
73
- const recordCount = auditor.getRecords().length;
74
- if (recordCount > 0) {
75
- const trx = "getTransaction" in auditor ? auditor.getTransaction() : void 0;
76
- logger.debug({
77
- auditCount: recordCount,
78
- hasTransaction: !!trx
79
- }, "Flushing audits");
80
- await auditor.flush();
81
- }
82
- } catch (error) {
83
- logger.error(error, "Failed to process audits");
84
- }
85
- }
86
- /**
87
- * Create audit context for handler execution.
88
- * Returns the auditor and storage for use in the handler.
89
- *
90
- * @param endpoint - The endpoint with audit configuration
91
- * @param serviceDiscovery - Service discovery for getting audit storage
92
- * @param logger - Logger for debug/error messages
93
- * @param ctx - Request context for actor extraction
94
- * @returns Audit context with auditor and storage, or undefined if not configured
95
- */
96
- async function createAuditContext(endpoint, serviceDiscovery, logger, ctx) {
97
- if (!endpoint.auditorStorageService) return void 0;
98
- const services = await serviceDiscovery.register([endpoint.auditorStorageService]);
99
- const storage = services[endpoint.auditorStorageService.serviceName];
100
- let actor = {
101
- id: "system",
102
- type: "system"
103
- };
104
- if (endpoint.actorExtractor) try {
105
- actor = await endpoint.actorExtractor({
106
- services: ctx.services,
107
- session: ctx.session,
108
- header: ctx.header,
109
- cookie: ctx.cookie,
110
- logger
111
- });
112
- } catch (error) {
113
- logger.error(error, "Failed to extract actor for audits");
114
- }
115
- const auditor = new DefaultAuditor({
116
- actor,
117
- storage,
118
- metadata: {
119
- endpoint: endpoint.route,
120
- method: endpoint.method
121
- }
122
- });
123
- return {
124
- auditor,
125
- storage
126
- };
127
- }
128
- /**
129
- * Execute a handler with automatic audit transaction support.
130
- * If the audit storage provides a withTransaction method, wraps execution
131
- * in a transaction so audits are atomic with handler's database operations.
132
- *
133
- * This is database-agnostic - each storage implementation provides its own
134
- * transaction handling based on the underlying database (Kysely, Drizzle, etc.).
135
- *
136
- * If the db parameter is provided and is already a transaction, the storage
137
- * will reuse it instead of creating a nested transaction (similar to
138
- * packages/db/src/kysely.ts#withTransaction).
139
- *
140
- * @param auditContext - The audit context from createAuditContext
141
- * @param handler - The handler function to execute (receives auditor)
142
- * @param onComplete - Called after handler with response, to process declarative audits
143
- * @param options - Optional configuration including database connection
144
- * @returns The handler result
145
- */
146
- async function executeWithAuditTransaction(auditContext, handler, onComplete, options) {
147
- if (!auditContext) return handler(void 0);
148
- const { auditor, storage } = auditContext;
149
- if (storage.withTransaction) return storage.withTransaction(auditor, async () => {
150
- const response$1 = await handler(auditor);
151
- if (onComplete) await onComplete(response$1, auditor);
152
- return response$1;
153
- }, options?.db);
154
- const response = await handler(auditor);
155
- if (onComplete) await onComplete(response, auditor);
156
- await auditor.flush();
157
- return response;
158
- }
159
-
160
- //#endregion
161
- export { createAuditContext, executeWithAuditTransaction, processEndpointAudits };
162
- //# sourceMappingURL=processAudits-Dj8UGqcW.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processAudits-Dj8UGqcW.mjs","names":["endpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction\n\t>","response: InferStandardSchema<OutSchema>","serviceDiscovery: ServiceDiscovery<any>","logger: TLogger","ctx: {\n\t\tsession: TSession;\n\t\theader: HeaderFn;\n\t\tcookie: CookieFn;\n\t\tservices: Record<string, unknown>;\n\t}","existingAuditor?: Auditor<TAuditAction>","auditor: Auditor<TAuditAction>","actor: AuditActor","endpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t>","auditContext: AuditExecutionContext<TAuditAction> | undefined","handler: (auditor?: Auditor<TAuditAction>) => Promise<T>","onComplete?: (response: T, auditor: Auditor<TAuditAction>) => Promise<void>","options?: ExecuteWithAuditTransactionOptions","response"],"sources":["../src/endpoints/processAudits.ts"],"sourcesContent":["import type {\n\tAuditActor,\n\tAuditableAction,\n\tAuditor,\n\tAuditStorage,\n} from '@geekmidas/audit';\nimport { DefaultAuditor } from '@geekmidas/audit';\nimport type { Logger } from '@geekmidas/logger';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { ActorExtractor, MappedAudit } from './audit';\nimport type { CookieFn, Endpoint, HeaderFn } from './Endpoint';\n\n/**\n * Process declarative audit definitions after successful endpoint execution.\n * Similar to publishConstructEvents for events.\n *\n * @param endpoint - The endpoint with audit configuration\n * @param response - The handler response to generate audit payloads from\n * @param serviceDiscovery - Service discovery for registering audit storage\n * @param logger - Logger for debug/error messages\n * @param ctx - Request context (session, headers, cookies, services)\n * @param existingAuditor - Optional existing auditor instance (e.g., from handler context).\n * If provided, uses this auditor (with its stored transaction).\n * If not provided, creates a new auditor.\n */\nexport async function processEndpointAudits<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n>(\n\tendpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction\n\t>,\n\tresponse: InferStandardSchema<OutSchema>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: TLogger,\n\tctx: {\n\t\tsession: TSession;\n\t\theader: HeaderFn;\n\t\tcookie: CookieFn;\n\t\tservices: Record<string, unknown>;\n\t},\n\texistingAuditor?: Auditor<TAuditAction>,\n): Promise<void> {\n\ttry {\n\t\tconst audits = endpoint.audits as MappedAudit<TAuditAction, OutSchema>[];\n\n\t\t// If we have an existing auditor (from handler context), we need to flush\n\t\t// any manual audits it collected, even if there are no declarative audits\n\t\tconst hasExistingRecords =\n\t\t\texistingAuditor && existingAuditor.getRecords().length > 0;\n\n\t\t// Skip if no declarative audits and no existing records to flush\n\t\tif (!audits?.length && !hasExistingRecords) {\n\t\t\tlogger.debug('No audits to process');\n\t\t\treturn;\n\t\t}\n\n\t\t// If no auditor storage service and we have things to process, warn\n\t\tif (!endpoint.auditorStorageService) {\n\t\t\tif (hasExistingRecords || audits?.length) {\n\t\t\t\tlogger.warn('No auditor storage service available');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Get or create auditor\n\t\tlet auditor: Auditor<TAuditAction>;\n\n\t\tif (existingAuditor) {\n\t\t\t// Use existing auditor (preserves stored transaction and manual audits)\n\t\t\tauditor = existingAuditor;\n\t\t\tlogger.debug('Using existing auditor from handler context');\n\t\t} else {\n\t\t\t// Create new auditor (backward compatibility)\n\t\t\tconst services = await serviceDiscovery.register([\n\t\t\t\tendpoint.auditorStorageService,\n\t\t\t]);\n\t\t\tconst storage = services[\n\t\t\t\tendpoint.auditorStorageService.serviceName\n\t\t\t] as AuditStorage;\n\n\t\t\t// Extract actor if configured\n\t\t\tlet actor: AuditActor = { id: 'system', type: 'system' };\n\t\t\tif (endpoint.actorExtractor) {\n\t\t\t\ttry {\n\t\t\t\t\tactor = await (\n\t\t\t\t\t\tendpoint.actorExtractor as ActorExtractor<\n\t\t\t\t\t\t\tTServices,\n\t\t\t\t\t\t\tTSession,\n\t\t\t\t\t\t\tTLogger\n\t\t\t\t\t\t>\n\t\t\t\t\t)({\n\t\t\t\t\t\tservices: ctx.services as any,\n\t\t\t\t\t\tsession: ctx.session,\n\t\t\t\t\t\theader: ctx.header,\n\t\t\t\t\t\tcookie: ctx.cookie,\n\t\t\t\t\t\tlogger,\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error(error as Error, 'Failed to extract actor for audits');\n\t\t\t\t\t// Continue with system actor\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tauditor = new DefaultAuditor<TAuditAction>({\n\t\t\t\tactor,\n\t\t\t\tstorage,\n\t\t\t\tmetadata: {\n\t\t\t\t\tendpoint: endpoint.route,\n\t\t\t\t\tmethod: endpoint.method,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Process each declarative audit\n\t\tif (audits?.length) {\n\t\t\tfor (const audit of audits) {\n\t\t\t\tlogger.debug({ audit: audit.type }, 'Processing declarative audit');\n\n\t\t\t\t// Check when condition\n\t\t\t\tif (audit.when && !audit.when(response as any)) {\n\t\t\t\t\tlogger.debug(\n\t\t\t\t\t\t{ audit: audit.type },\n\t\t\t\t\t\t'Audit skipped due to when condition',\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Extract payload\n\t\t\t\tconst payload = audit.payload(response as any);\n\n\t\t\t\t// Extract entityId if configured\n\t\t\t\tconst entityId = audit.entityId?.(response as any);\n\n\t\t\t\t// Record the audit\n\t\t\t\tauditor.audit(audit.type as any, payload as any, {\n\t\t\t\t\ttable: audit.table,\n\t\t\t\t\tentityId,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Flush audits to storage\n\t\t// Note: If existingAuditor has a stored transaction (via setTransaction),\n\t\t// flush() will use it automatically\n\t\tconst recordCount = auditor.getRecords().length;\n\t\tif (recordCount > 0) {\n\t\t\t// Check if auditor has a stored transaction (for logging purposes)\n\t\t\tconst trx =\n\t\t\t\t'getTransaction' in auditor\n\t\t\t\t\t? (auditor as { getTransaction(): unknown }).getTransaction()\n\t\t\t\t\t: undefined;\n\t\t\tlogger.debug(\n\t\t\t\t{ auditCount: recordCount, hasTransaction: !!trx },\n\t\t\t\t'Flushing audits',\n\t\t\t);\n\t\t\tawait auditor.flush();\n\t\t}\n\t} catch (error) {\n\t\tlogger.error(error as Error, 'Failed to process audits');\n\t\t// Don't rethrow - audit failures shouldn't fail the request\n\t}\n}\n\n/**\n * Context for audit-aware handler execution.\n */\nexport interface AuditExecutionContext<\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n> {\n\t/** The auditor instance for recording audits */\n\tauditor: Auditor<TAuditAction>;\n\t/** The audit storage instance */\n\tstorage: AuditStorage;\n}\n\n/**\n * Create audit context for handler execution.\n * Returns the auditor and storage for use in the handler.\n *\n * @param endpoint - The endpoint with audit configuration\n * @param serviceDiscovery - Service discovery for getting audit storage\n * @param logger - Logger for debug/error messages\n * @param ctx - Request context for actor extraction\n * @returns Audit context with auditor and storage, or undefined if not configured\n */\nexport async function createAuditContext<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n>(\n\tendpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tTServices,\n\t\tTLogger,\n\t\tTSession,\n\t\tany,\n\t\tany,\n\t\tTAuditStorage,\n\t\tTAuditStorageServiceName,\n\t\tTAuditAction,\n\t\tTDatabase,\n\t\tTDatabaseServiceName\n\t>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: TLogger,\n\tctx: {\n\t\tsession: TSession;\n\t\theader: HeaderFn;\n\t\tcookie: CookieFn;\n\t\tservices: Record<string, unknown>;\n\t},\n): Promise<AuditExecutionContext<TAuditAction> | undefined> {\n\tif (!endpoint.auditorStorageService) {\n\t\treturn undefined;\n\t}\n\n\tconst services = await serviceDiscovery.register([\n\t\tendpoint.auditorStorageService,\n\t]);\n\tconst storage = services[\n\t\tendpoint.auditorStorageService.serviceName\n\t] as AuditStorage;\n\n\t// Extract actor if configured\n\tlet actor: AuditActor = { id: 'system', type: 'system' };\n\tif (endpoint.actorExtractor) {\n\t\ttry {\n\t\t\tactor = await (\n\t\t\t\tendpoint.actorExtractor as ActorExtractor<TServices, TSession, TLogger>\n\t\t\t)({\n\t\t\t\tservices: ctx.services as any,\n\t\t\t\tsession: ctx.session,\n\t\t\t\theader: ctx.header,\n\t\t\t\tcookie: ctx.cookie,\n\t\t\t\tlogger,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlogger.error(error as Error, 'Failed to extract actor for audits');\n\t\t}\n\t}\n\n\tconst auditor = new DefaultAuditor<TAuditAction>({\n\t\tactor,\n\t\tstorage,\n\t\tmetadata: {\n\t\t\tendpoint: endpoint.route,\n\t\t\tmethod: endpoint.method,\n\t\t},\n\t});\n\n\treturn { auditor, storage };\n}\n\n/**\n * Options for executeWithAuditTransaction.\n */\nexport interface ExecuteWithAuditTransactionOptions {\n\t/**\n\t * Database connection to use for the transaction.\n\t * If this is already a transaction, it will be reused instead of creating a nested one.\n\t * If not provided, the storage's internal database is used.\n\t */\n\tdb?: unknown;\n}\n\n/**\n * Execute a handler with automatic audit transaction support.\n * If the audit storage provides a withTransaction method, wraps execution\n * in a transaction so audits are atomic with handler's database operations.\n *\n * This is database-agnostic - each storage implementation provides its own\n * transaction handling based on the underlying database (Kysely, Drizzle, etc.).\n *\n * If the db parameter is provided and is already a transaction, the storage\n * will reuse it instead of creating a nested transaction (similar to\n * packages/db/src/kysely.ts#withTransaction).\n *\n * @param auditContext - The audit context from createAuditContext\n * @param handler - The handler function to execute (receives auditor)\n * @param onComplete - Called after handler with response, to process declarative audits\n * @param options - Optional configuration including database connection\n * @returns The handler result\n */\nexport async function executeWithAuditTransaction<\n\tT,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n>(\n\tauditContext: AuditExecutionContext<TAuditAction> | undefined,\n\thandler: (auditor?: Auditor<TAuditAction>) => Promise<T>,\n\tonComplete?: (response: T, auditor: Auditor<TAuditAction>) => Promise<void>,\n\toptions?: ExecuteWithAuditTransactionOptions,\n): Promise<T> {\n\t// No audit context - just run handler\n\tif (!auditContext) {\n\t\treturn handler(undefined);\n\t}\n\n\tconst { auditor, storage } = auditContext;\n\n\t// Check if storage provides a transaction wrapper\n\tif (storage.withTransaction) {\n\t\t// Wrap in transaction - audits are atomic with handler operations\n\t\t// The storage's withTransaction handles setTransaction and flush\n\t\t// Pass db so existing transactions are reused\n\t\treturn storage.withTransaction(\n\t\t\tauditor,\n\t\t\tasync () => {\n\t\t\t\tconst response = await handler(auditor);\n\n\t\t\t\t// Process declarative audits within the transaction\n\t\t\t\tif (onComplete) {\n\t\t\t\t\tawait onComplete(response, auditor);\n\t\t\t\t}\n\n\t\t\t\treturn response;\n\t\t\t},\n\t\t\toptions?.db,\n\t\t);\n\t}\n\n\t// No transaction support - run handler and flush audits after\n\tconst response = await handler(auditor);\n\n\tif (onComplete) {\n\t\tawait onComplete(response, auditor);\n\t}\n\n\t// Flush audits (no transaction)\n\tawait auditor.flush();\n\n\treturn response;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA2BA,eAAsB,sBAYrBA,UAcAC,UACAC,kBACAC,QACAC,KAMAC,iBACgB;AAChB,KAAI;EACH,MAAM,SAAS,SAAS;EAIxB,MAAM,qBACL,mBAAmB,gBAAgB,YAAY,CAAC,SAAS;AAG1D,OAAK,QAAQ,WAAW,oBAAoB;AAC3C,UAAO,MAAM,uBAAuB;AACpC;EACA;AAGD,OAAK,SAAS,uBAAuB;AACpC,OAAI,sBAAsB,QAAQ,OACjC,QAAO,KAAK,uCAAuC;AAEpD;EACA;EAGD,IAAIC;AAEJ,MAAI,iBAAiB;AAEpB,aAAU;AACV,UAAO,MAAM,8CAA8C;EAC3D,OAAM;GAEN,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAChD,SAAS,qBACT,EAAC;GACF,MAAM,UAAU,SACf,SAAS,sBAAsB;GAIhC,IAAIC,QAAoB;IAAE,IAAI;IAAU,MAAM;GAAU;AACxD,OAAI,SAAS,eACZ,KAAI;AACH,YAAQ,MAAM,AACb,SAAS,eAKR;KACD,UAAU,IAAI;KACd,SAAS,IAAI;KACb,QAAQ,IAAI;KACZ,QAAQ,IAAI;KACZ;IACA,EAAC;GACF,SAAQ,OAAO;AACf,WAAO,MAAM,OAAgB,qCAAqC;GAElE;AAGF,aAAU,IAAI,eAA6B;IAC1C;IACA;IACA,UAAU;KACT,UAAU,SAAS;KACnB,QAAQ,SAAS;IACjB;GACD;EACD;AAGD,MAAI,QAAQ,OACX,MAAK,MAAM,SAAS,QAAQ;AAC3B,UAAO,MAAM,EAAE,OAAO,MAAM,KAAM,GAAE,+BAA+B;AAGnE,OAAI,MAAM,SAAS,MAAM,KAAK,SAAgB,EAAE;AAC/C,WAAO,MACN,EAAE,OAAO,MAAM,KAAM,GACrB,sCACA;AACD;GACA;GAGD,MAAM,UAAU,MAAM,QAAQ,SAAgB;GAG9C,MAAM,WAAW,MAAM,WAAW,SAAgB;AAGlD,WAAQ,MAAM,MAAM,MAAa,SAAgB;IAChD,OAAO,MAAM;IACb;GACA,EAAC;EACF;EAMF,MAAM,cAAc,QAAQ,YAAY,CAAC;AACzC,MAAI,cAAc,GAAG;GAEpB,MAAM,MACL,oBAAoB,UACjB,AAAC,QAA0C,gBAAgB;AAE/D,UAAO,MACN;IAAE,YAAY;IAAa,kBAAkB;GAAK,GAClD,kBACA;AACD,SAAM,QAAQ,OAAO;EACrB;CACD,SAAQ,OAAO;AACf,SAAO,MAAM,OAAgB,2BAA2B;CAExD;AACD;;;;;;;;;;;AA2BD,eAAsB,mBAarBC,UAgBAN,kBACAC,QACAC,KAM2D;AAC3D,MAAK,SAAS,sBACb;CAGD,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAChD,SAAS,qBACT,EAAC;CACF,MAAM,UAAU,SACf,SAAS,sBAAsB;CAIhC,IAAIG,QAAoB;EAAE,IAAI;EAAU,MAAM;CAAU;AACxD,KAAI,SAAS,eACZ,KAAI;AACH,UAAQ,MAAM,AACb,SAAS,eACR;GACD,UAAU,IAAI;GACd,SAAS,IAAI;GACb,QAAQ,IAAI;GACZ,QAAQ,IAAI;GACZ;EACA,EAAC;CACF,SAAQ,OAAO;AACf,SAAO,MAAM,OAAgB,qCAAqC;CAClE;CAGF,MAAM,UAAU,IAAI,eAA6B;EAChD;EACA;EACA,UAAU;GACT,UAAU,SAAS;GACnB,QAAQ,SAAS;EACjB;CACD;AAED,QAAO;EAAE;EAAS;CAAS;AAC3B;;;;;;;;;;;;;;;;;;;AAgCD,eAAsB,4BAOrBE,cACAC,SACAC,YACAC,SACa;AAEb,MAAK,aACJ,QAAO,eAAkB;CAG1B,MAAM,EAAE,SAAS,SAAS,GAAG;AAG7B,KAAI,QAAQ,gBAIX,QAAO,QAAQ,gBACd,SACA,YAAY;EACX,MAAMC,aAAW,MAAM,QAAQ,QAAQ;AAGvC,MAAI,WACH,OAAM,WAAWA,YAAU,QAAQ;AAGpC,SAAOA;CACP,GACD,SAAS,GACT;CAIF,MAAM,WAAW,MAAM,QAAQ,QAAQ;AAEvC,KAAI,WACH,OAAM,WAAW,UAAU,QAAQ;AAIpC,OAAM,QAAQ,OAAO;AAErB,QAAO;AACP"}
@@ -1,16 +0,0 @@
1
- import { Construct } from "./Construct-CX7HyFfT.cjs";
2
- import { AuditStorage } from "@geekmidas/audit";
3
- import { EventPublisher, MappedEvent } from "@geekmidas/events";
4
- import { Logger } from "@geekmidas/logger";
5
- import { Service, ServiceDiscovery } from "@geekmidas/services";
6
- import { StandardSchemaV1 } from "@standard-schema/spec";
7
- import { InferStandardSchema } from "@geekmidas/schema";
8
-
9
- //#region src/publisher.d.ts
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>, ev: MappedEvent<T, OutSchema>[] | undefined, response: InferStandardSchema<OutSchema>, publisherService: TPublisherService): 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>, logger?: Logger): Promise<void>;
12
- //# sourceMappingURL=publisher.d.ts.map
13
-
14
- //#endregion
15
- export { publishConstructEvents, publishEvents };
16
- //# sourceMappingURL=publisher-BrzPGnm4.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publisher-BrzPGnm4.d.cts","names":[],"sources":["../src/publisher.ts"],"sourcesContent":[],"mappings":";;;;;;;;;iBAQsB,wBACX,mDACQ,0GAEQ,QAAQ,cAAc,oCAExC,0BACU,2BACd,YAAY,GAAG,oCACT,oBAAoB,8BACZ,oBAAiB;iBA8Cd,iCACX,mDACQ,kGAEA,wFAEI,iDAEX,UACV,QACA,cACA,GACA,WACA,WACA,0BACA,0BAES,oBAAoB,8BACZ,gCACV,SAAyB;AA3ElC"}
@@ -1,41 +0,0 @@
1
- //#region src/publisher.ts
2
- async function publishEvents(logger, serviceDiscovery, ev = [], response, publisherService) {
3
- try {
4
- if (!ev?.length) {
5
- logger.debug("No events to publish");
6
- return;
7
- }
8
- if (!publisherService) {
9
- logger.warn("No publisher service available");
10
- return;
11
- }
12
- const services = await serviceDiscovery.register([publisherService]);
13
- const publisher = services[publisherService.serviceName];
14
- const events = [];
15
- for (const { when, payload, type,...e } of ev) {
16
- logger.debug({ event: type }, "Processing event");
17
- const resolvedPayload = await payload(response);
18
- const event = {
19
- ...e,
20
- type,
21
- payload: resolvedPayload
22
- };
23
- if (!when || when(response)) events.push(event);
24
- }
25
- if (events.length) {
26
- logger.debug({ eventCount: ev.length }, "Publishing events");
27
- await publisher.publish(events).catch((err) => {
28
- logger.error(err, "Failed to publish events");
29
- });
30
- }
31
- } catch (error) {
32
- logger.error(error, "Something went wrong publishing events");
33
- }
34
- }
35
- async function publishConstructEvents(construct, response, serviceDiscovery, logger = construct.logger) {
36
- return publishEvents(logger, serviceDiscovery, construct.events, response, construct.publisherService);
37
- }
38
-
39
- //#endregion
40
- export { publishConstructEvents, publishEvents };
41
- //# sourceMappingURL=publisher-Bw4770Hi.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publisher-Bw4770Hi.mjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct<\n\t\tLogger,\n\t\tTServiceName,\n\t\tT,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTAuditStorageServiceName,\n\t\tTAuditStorage\n\t>"],"sources":["../src/publisher.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { Construct } from './Construct';\n\nexport async function publishEvents<\n\tT extends EventPublisher<any> | undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServiceName extends string = string,\n\tTPublisherService extends Service<TServiceName, T> | undefined = undefined,\n>(\n\tlogger: Logger,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tev: MappedEvent<T, OutSchema>[] = [],\n\tresponse: InferStandardSchema<OutSchema>,\n\tpublisherService: TPublisherService,\n) {\n\ttry {\n\t\tif (!ev?.length) {\n\t\t\tlogger.debug('No events to publish');\n\t\t\treturn;\n\t\t}\n\t\tif (!publisherService) {\n\t\t\tlogger.warn('No publisher service available');\n\t\t\treturn;\n\t\t}\n\n\t\tconst services = await serviceDiscovery.register([publisherService]);\n\n\t\tconst publisher = services[\n\t\t\tpublisherService.serviceName\n\t\t] as EventPublisher<any>;\n\n\t\tconst events: MappedEvent<T, OutSchema>[] = [];\n\n\t\tfor (const { when, payload, type, ...e } of ev) {\n\t\t\tlogger.debug({ event: type }, 'Processing event');\n\t\t\tconst resolvedPayload = await payload(response);\n\t\t\tconst event = {\n\t\t\t\t...e,\n\t\t\t\ttype,\n\t\t\t\tpayload: resolvedPayload,\n\t\t\t};\n\n\t\t\tif (!when || when(response as any)) {\n\t\t\t\tevents.push(event);\n\t\t\t}\n\t\t}\n\n\t\tif (events.length) {\n\t\t\tlogger.debug({ eventCount: ev.length }, 'Publishing events');\n\n\t\t\tawait publisher.publish(events).catch((err) => {\n\t\t\t\tlogger.error(err, 'Failed to publish events');\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tlogger.error(error as any, 'Something went wrong publishing events');\n\t}\n}\n\nexport async function publishConstructEvents<\n\tT extends EventPublisher<any> | undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServiceName extends string = string,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n>(\n\tconstruct: Construct<\n\t\tLogger,\n\t\tTServiceName,\n\t\tT,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTAuditStorageServiceName,\n\t\tTAuditStorage\n\t>,\n\tresponse: InferStandardSchema<OutSchema>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: Logger = construct.logger,\n) {\n\treturn publishEvents(\n\t\tlogger,\n\t\tserviceDiscovery,\n\t\tconstruct.events,\n\t\tresponse,\n\t\tconstruct.publisherService,\n\t);\n}\n"],"mappings":";AAQA,eAAsB,cAMrBA,QACAC,kBACAC,KAAkC,CAAE,GACpCC,UACAC,kBACC;AACD,KAAI;AACH,OAAK,IAAI,QAAQ;AAChB,UAAO,MAAM,uBAAuB;AACpC;EACA;AACD,OAAK,kBAAkB;AACtB,UAAO,KAAK,iCAAiC;AAC7C;EACA;EAED,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAAC,gBAAiB,EAAC;EAEpE,MAAM,YAAY,SACjB,iBAAiB;EAGlB,MAAMC,SAAsC,CAAE;AAE9C,OAAK,MAAM,EAAE,MAAM,SAAS,KAAM,GAAG,GAAG,IAAI,IAAI;AAC/C,UAAO,MAAM,EAAE,OAAO,KAAM,GAAE,mBAAmB;GACjD,MAAM,kBAAkB,MAAM,QAAQ,SAAS;GAC/C,MAAM,QAAQ;IACb,GAAG;IACH;IACA,SAAS;GACT;AAED,QAAK,QAAQ,KAAK,SAAgB,CACjC,QAAO,KAAK,MAAM;EAEnB;AAED,MAAI,OAAO,QAAQ;AAClB,UAAO,MAAM,EAAE,YAAY,GAAG,OAAQ,GAAE,oBAAoB;AAE5D,SAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,CAAC,QAAQ;AAC9C,WAAO,MAAM,KAAK,2BAA2B;GAC7C,EAAC;EACF;CACD,SAAQ,OAAO;AACf,SAAO,MAAM,OAAc,yCAAyC;CACpE;AACD;AAED,eAAsB,uBAQrBC,WASAH,UACAF,kBACAD,SAAiB,UAAU,QAC1B;AACD,QAAO,cACN,QACA,kBACA,UAAU,QACV,UACA,UAAU,iBACV;AACD"}
@@ -1,16 +0,0 @@
1
- import { Construct } from "./Construct-C2SyofdS.mjs";
2
- import { Service, ServiceDiscovery } from "@geekmidas/services";
3
- import { AuditStorage } from "@geekmidas/audit";
4
- import { EventPublisher, MappedEvent } from "@geekmidas/events";
5
- import { Logger } from "@geekmidas/logger";
6
- import { StandardSchemaV1 } from "@standard-schema/spec";
7
- import { InferStandardSchema } from "@geekmidas/schema";
8
-
9
- //#region src/publisher.d.ts
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>, ev: MappedEvent<T, OutSchema>[] | undefined, response: InferStandardSchema<OutSchema>, publisherService: TPublisherService): 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>, logger?: Logger): Promise<void>;
12
- //# sourceMappingURL=publisher.d.ts.map
13
-
14
- //#endregion
15
- export { publishConstructEvents, publishEvents };
16
- //# sourceMappingURL=publisher-CP4gpv-4.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publisher-CP4gpv-4.d.mts","names":[],"sources":["../src/publisher.ts"],"sourcesContent":[],"mappings":";;;;;;;;;iBAQsB,wBACX,mDACQ,0GAEQ,QAAQ,cAAc,oCAExC,0BACU,2BACd,YAAY,GAAG,oCACT,oBAAoB,8BACZ,oBAAiB;iBA8Cd,iCACX,mDACQ,kGAEA,wFAEI,iDAEX,UACV,QACA,cACA,GACA,WACA,WACA,0BACA,0BAES,oBAAoB,8BACZ,gCACV,SAAyB;AA3ElC"}
@@ -1,53 +0,0 @@
1
-
2
- //#region src/publisher.ts
3
- async function publishEvents(logger, serviceDiscovery, ev = [], response, publisherService) {
4
- try {
5
- if (!ev?.length) {
6
- logger.debug("No events to publish");
7
- return;
8
- }
9
- if (!publisherService) {
10
- logger.warn("No publisher service available");
11
- return;
12
- }
13
- const services = await serviceDiscovery.register([publisherService]);
14
- const publisher = services[publisherService.serviceName];
15
- const events = [];
16
- for (const { when, payload, type,...e } of ev) {
17
- logger.debug({ event: type }, "Processing event");
18
- const resolvedPayload = await payload(response);
19
- const event = {
20
- ...e,
21
- type,
22
- payload: resolvedPayload
23
- };
24
- if (!when || when(response)) events.push(event);
25
- }
26
- if (events.length) {
27
- logger.debug({ eventCount: ev.length }, "Publishing events");
28
- await publisher.publish(events).catch((err) => {
29
- logger.error(err, "Failed to publish events");
30
- });
31
- }
32
- } catch (error) {
33
- logger.error(error, "Something went wrong publishing events");
34
- }
35
- }
36
- async function publishConstructEvents(construct, response, serviceDiscovery, logger = construct.logger) {
37
- return publishEvents(logger, serviceDiscovery, construct.events, response, construct.publisherService);
38
- }
39
-
40
- //#endregion
41
- Object.defineProperty(exports, 'publishConstructEvents', {
42
- enumerable: true,
43
- get: function () {
44
- return publishConstructEvents;
45
- }
46
- });
47
- Object.defineProperty(exports, 'publishEvents', {
48
- enumerable: true,
49
- get: function () {
50
- return publishEvents;
51
- }
52
- });
53
- //# sourceMappingURL=publisher-lFQleddL.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publisher-lFQleddL.cjs","names":["logger: Logger","serviceDiscovery: ServiceDiscovery<any>","ev: MappedEvent<T, OutSchema>[]","response: InferStandardSchema<OutSchema>","publisherService: TPublisherService","events: MappedEvent<T, OutSchema>[]","construct: Construct<\n\t\tLogger,\n\t\tTServiceName,\n\t\tT,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTAuditStorageServiceName,\n\t\tTAuditStorage\n\t>"],"sources":["../src/publisher.ts"],"sourcesContent":["import type { AuditStorage } from '@geekmidas/audit';\nimport type { EventPublisher, MappedEvent } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport type { InferStandardSchema } from '@geekmidas/schema';\nimport type { Service, ServiceDiscovery } from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport type { Construct } from './Construct';\n\nexport async function publishEvents<\n\tT extends EventPublisher<any> | undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServiceName extends string = string,\n\tTPublisherService extends Service<TServiceName, T> | undefined = undefined,\n>(\n\tlogger: Logger,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tev: MappedEvent<T, OutSchema>[] = [],\n\tresponse: InferStandardSchema<OutSchema>,\n\tpublisherService: TPublisherService,\n) {\n\ttry {\n\t\tif (!ev?.length) {\n\t\t\tlogger.debug('No events to publish');\n\t\t\treturn;\n\t\t}\n\t\tif (!publisherService) {\n\t\t\tlogger.warn('No publisher service available');\n\t\t\treturn;\n\t\t}\n\n\t\tconst services = await serviceDiscovery.register([publisherService]);\n\n\t\tconst publisher = services[\n\t\t\tpublisherService.serviceName\n\t\t] as EventPublisher<any>;\n\n\t\tconst events: MappedEvent<T, OutSchema>[] = [];\n\n\t\tfor (const { when, payload, type, ...e } of ev) {\n\t\t\tlogger.debug({ event: type }, 'Processing event');\n\t\t\tconst resolvedPayload = await payload(response);\n\t\t\tconst event = {\n\t\t\t\t...e,\n\t\t\t\ttype,\n\t\t\t\tpayload: resolvedPayload,\n\t\t\t};\n\n\t\t\tif (!when || when(response as any)) {\n\t\t\t\tevents.push(event);\n\t\t\t}\n\t\t}\n\n\t\tif (events.length) {\n\t\t\tlogger.debug({ eventCount: ev.length }, 'Publishing events');\n\n\t\t\tawait publisher.publish(events).catch((err) => {\n\t\t\t\tlogger.error(err, 'Failed to publish events');\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tlogger.error(error as any, 'Something went wrong publishing events');\n\t}\n}\n\nexport async function publishConstructEvents<\n\tT extends EventPublisher<any> | undefined,\n\tOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServiceName extends string = string,\n\tTServices extends Service[] = [],\n\tTAuditStorageServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n>(\n\tconstruct: Construct<\n\t\tLogger,\n\t\tTServiceName,\n\t\tT,\n\t\tOutSchema,\n\t\tTServices,\n\t\tTAuditStorageServiceName,\n\t\tTAuditStorage\n\t>,\n\tresponse: InferStandardSchema<OutSchema>,\n\tserviceDiscovery: ServiceDiscovery<any>,\n\tlogger: Logger = construct.logger,\n) {\n\treturn publishEvents(\n\t\tlogger,\n\t\tserviceDiscovery,\n\t\tconstruct.events,\n\t\tresponse,\n\t\tconstruct.publisherService,\n\t);\n}\n"],"mappings":";;AAQA,eAAsB,cAMrBA,QACAC,kBACAC,KAAkC,CAAE,GACpCC,UACAC,kBACC;AACD,KAAI;AACH,OAAK,IAAI,QAAQ;AAChB,UAAO,MAAM,uBAAuB;AACpC;EACA;AACD,OAAK,kBAAkB;AACtB,UAAO,KAAK,iCAAiC;AAC7C;EACA;EAED,MAAM,WAAW,MAAM,iBAAiB,SAAS,CAAC,gBAAiB,EAAC;EAEpE,MAAM,YAAY,SACjB,iBAAiB;EAGlB,MAAMC,SAAsC,CAAE;AAE9C,OAAK,MAAM,EAAE,MAAM,SAAS,KAAM,GAAG,GAAG,IAAI,IAAI;AAC/C,UAAO,MAAM,EAAE,OAAO,KAAM,GAAE,mBAAmB;GACjD,MAAM,kBAAkB,MAAM,QAAQ,SAAS;GAC/C,MAAM,QAAQ;IACb,GAAG;IACH;IACA,SAAS;GACT;AAED,QAAK,QAAQ,KAAK,SAAgB,CACjC,QAAO,KAAK,MAAM;EAEnB;AAED,MAAI,OAAO,QAAQ;AAClB,UAAO,MAAM,EAAE,YAAY,GAAG,OAAQ,GAAE,oBAAoB;AAE5D,SAAM,UAAU,QAAQ,OAAO,CAAC,MAAM,CAAC,QAAQ;AAC9C,WAAO,MAAM,KAAK,2BAA2B;GAC7C,EAAC;EACF;CACD,SAAQ,OAAO;AACf,SAAO,MAAM,OAAc,yCAAyC;CACpE;AACD;AAED,eAAsB,uBAQrBC,WASAH,UACAF,kBACAD,SAAiB,UAAU,QAC1B;AACD,QAAO,cACN,QACA,kBACA,UAAU,QACV,UACA,UAAU,iBACV;AACD"}
@@ -1,4 +0,0 @@
1
- const require_publisher = require('./publisher-lFQleddL.cjs');
2
-
3
- exports.publishConstructEvents = require_publisher.publishConstructEvents;
4
- exports.publishEvents = require_publisher.publishEvents;
@@ -1,3 +0,0 @@
1
- import "./Construct-CX7HyFfT.cjs";
2
- import { publishConstructEvents, publishEvents } from "./publisher-BrzPGnm4.cjs";
3
- export { publishConstructEvents, publishEvents };
@@ -1,3 +0,0 @@
1
- import "./Construct-C2SyofdS.mjs";
2
- import { publishConstructEvents, publishEvents } from "./publisher-CP4gpv-4.mjs";
3
- export { publishConstructEvents, publishEvents };
@@ -1,3 +0,0 @@
1
- import { publishConstructEvents, publishEvents } from "./publisher-Bw4770Hi.mjs";
2
-
3
- export { publishConstructEvents, publishEvents };
@@ -1,9 +0,0 @@
1
- //#region src/endpoints/rls.ts
2
- /**
3
- * Symbol used to bypass RLS for an endpoint.
4
- */
5
- const RLS_BYPASS = Symbol.for("geekmidas.rls.bypass");
6
-
7
- //#endregion
8
- export { RLS_BYPASS };
9
- //# sourceMappingURL=rls-7XXX7DvY.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rls-7XXX7DvY.mjs","names":[],"sources":["../src/endpoints/rls.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport type { Service, ServiceRecord } from '@geekmidas/services';\nimport type { CookieFn, HeaderFn } from './Endpoint';\n\n/**\n * RLS context - key-value pairs to set as PostgreSQL session variables.\n * Keys become `prefix.key` (e.g., `app.user_id`).\n */\nexport interface RlsContext {\n\t[key: string]: string | number | boolean | null | undefined;\n}\n\n/**\n * Function type for extracting RLS context from request context.\n *\n * @template TServices - Available service dependencies\n * @template TSession - Session data type\n * @template TLogger - Logger type\n *\n * @example\n * ```ts\n * const extractor: RlsContextExtractor<[], UserSession> = ({ session }) => ({\n * user_id: session.userId,\n * tenant_id: session.tenantId,\n * roles: session.roles.join(','),\n * });\n * ```\n */\nexport type RlsContextExtractor<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n> = (ctx: {\n\tservices: ServiceRecord<TServices>;\n\tsession: TSession;\n\theader: HeaderFn;\n\tcookie: CookieFn;\n\tlogger: TLogger;\n}) => RlsContext | Promise<RlsContext>;\n\n/**\n * Configuration for RLS on an endpoint or factory.\n *\n * @template TServices - Available service dependencies\n * @template TSession - Session data type\n * @template TLogger - Logger type\n */\nexport interface RlsConfig<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n> {\n\t/** Function to extract RLS context from request */\n\textractor: RlsContextExtractor<TServices, TSession, TLogger>;\n\t/** Prefix for PostgreSQL session variables (default: 'app') */\n\tprefix?: string;\n}\n\n/**\n * Symbol used to bypass RLS for an endpoint.\n */\nexport const RLS_BYPASS = Symbol.for('geekmidas.rls.bypass');\n\n/**\n * Type for RLS bypass marker.\n */\nexport type RlsBypass = typeof RLS_BYPASS;\n"],"mappings":";;;;AA6DA,MAAa,aAAa,OAAO,IAAI,uBAAuB"}
@@ -1,15 +0,0 @@
1
-
2
- //#region src/endpoints/rls.ts
3
- /**
4
- * Symbol used to bypass RLS for an endpoint.
5
- */
6
- const RLS_BYPASS = Symbol.for("geekmidas.rls.bypass");
7
-
8
- //#endregion
9
- Object.defineProperty(exports, 'RLS_BYPASS', {
10
- enumerable: true,
11
- get: function () {
12
- return RLS_BYPASS;
13
- }
14
- });
15
- //# sourceMappingURL=rls-DxFqdIA0.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rls-DxFqdIA0.cjs","names":[],"sources":["../src/endpoints/rls.ts"],"sourcesContent":["import type { Logger } from '@geekmidas/logger';\nimport type { Service, ServiceRecord } from '@geekmidas/services';\nimport type { CookieFn, HeaderFn } from './Endpoint';\n\n/**\n * RLS context - key-value pairs to set as PostgreSQL session variables.\n * Keys become `prefix.key` (e.g., `app.user_id`).\n */\nexport interface RlsContext {\n\t[key: string]: string | number | boolean | null | undefined;\n}\n\n/**\n * Function type for extracting RLS context from request context.\n *\n * @template TServices - Available service dependencies\n * @template TSession - Session data type\n * @template TLogger - Logger type\n *\n * @example\n * ```ts\n * const extractor: RlsContextExtractor<[], UserSession> = ({ session }) => ({\n * user_id: session.userId,\n * tenant_id: session.tenantId,\n * roles: session.roles.join(','),\n * });\n * ```\n */\nexport type RlsContextExtractor<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n> = (ctx: {\n\tservices: ServiceRecord<TServices>;\n\tsession: TSession;\n\theader: HeaderFn;\n\tcookie: CookieFn;\n\tlogger: TLogger;\n}) => RlsContext | Promise<RlsContext>;\n\n/**\n * Configuration for RLS on an endpoint or factory.\n *\n * @template TServices - Available service dependencies\n * @template TSession - Session data type\n * @template TLogger - Logger type\n */\nexport interface RlsConfig<\n\tTServices extends Service[] = [],\n\tTSession = unknown,\n\tTLogger extends Logger = Logger,\n> {\n\t/** Function to extract RLS context from request */\n\textractor: RlsContextExtractor<TServices, TSession, TLogger>;\n\t/** Prefix for PostgreSQL session variables (default: 'app') */\n\tprefix?: string;\n}\n\n/**\n * Symbol used to bypass RLS for an endpoint.\n */\nexport const RLS_BYPASS = Symbol.for('geekmidas.rls.bypass');\n\n/**\n * Type for RLS bypass marker.\n */\nexport type RlsBypass = typeof RLS_BYPASS;\n"],"mappings":";;;;;AA6DA,MAAa,aAAa,OAAO,IAAI,uBAAuB"}
@@ -1,3 +0,0 @@
1
- const require_AWSLambdaSubscriberAdaptor = require('../AWSLambdaSubscriberAdaptor-eZ3qoKvK.cjs');
2
-
3
- exports.AWSLambdaSubscriber = require_AWSLambdaSubscriberAdaptor.AWSLambdaSubscriber;
@@ -1,4 +0,0 @@
1
- import "../Construct-CX7HyFfT.cjs";
2
- import "../Subscriber-1rDE7HuM.cjs";
3
- import { AWSLambdaHandler, AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-Cj1wjkUP.cjs";
4
- export { AWSLambdaHandler, AWSLambdaSubscriber };
@@ -1,4 +0,0 @@
1
- import "../Construct-C2SyofdS.mjs";
2
- import "../Subscriber-BgB3RRxb.mjs";
3
- import { AWSLambdaHandler, AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-OQvj2lKI.mjs";
4
- export { AWSLambdaHandler, AWSLambdaSubscriber };
@@ -1,3 +0,0 @@
1
- import { AWSLambdaSubscriber } from "../AWSLambdaSubscriberAdaptor-RKwKYLl1.mjs";
2
-
3
- export { AWSLambdaSubscriber };
@@ -1,4 +0,0 @@
1
- require('../Construct-BXG8cFSm.cjs');
2
- const require_Subscriber = require('../Subscriber-Scz7hrV6.cjs');
3
-
4
- exports.Subscriber = require_Subscriber.Subscriber;
@@ -1,3 +0,0 @@
1
- import "../Construct-CX7HyFfT.cjs";
2
- import { Subscriber, SubscriberContext, SubscriberHandler } from "../Subscriber-1rDE7HuM.cjs";
3
- export { Subscriber, SubscriberContext, SubscriberHandler };
@@ -1,3 +0,0 @@
1
- import "../Construct-C2SyofdS.mjs";
2
- import { Subscriber, SubscriberContext, SubscriberHandler } from "../Subscriber-BgB3RRxb.mjs";
3
- export { Subscriber, SubscriberContext, SubscriberHandler };
@@ -1,4 +0,0 @@
1
- import "../Construct-CQ9zV58W.mjs";
2
- import { Subscriber } from "../Subscriber-BEhOdNQi.mjs";
3
-
4
- export { Subscriber };
@@ -1,5 +0,0 @@
1
- require('../Construct-BXG8cFSm.cjs');
2
- require('../Subscriber-Scz7hrV6.cjs');
3
- const require_SubscriberBuilder = require('../SubscriberBuilder-B82h4v-S.cjs');
4
-
5
- exports.SubscriberBuilder = require_SubscriberBuilder.SubscriberBuilder;
@@ -1,4 +0,0 @@
1
- import "../Construct-CX7HyFfT.cjs";
2
- import "../Subscriber-1rDE7HuM.cjs";
3
- import { SubscriberBuilder } from "../SubscriberBuilder-B9uva8fZ.cjs";
4
- export { SubscriberBuilder };
@@ -1,4 +0,0 @@
1
- import "../Construct-C2SyofdS.mjs";
2
- import "../Subscriber-BgB3RRxb.mjs";
3
- import { SubscriberBuilder } from "../SubscriberBuilder-DaQkh2Nt.mjs";
4
- export { SubscriberBuilder };
@@ -1,5 +0,0 @@
1
- import "../Construct-CQ9zV58W.mjs";
2
- import "../Subscriber-BEhOdNQi.mjs";
3
- import { SubscriberBuilder } from "../SubscriberBuilder-DlUaG0Ej.mjs";
4
-
5
- export { SubscriberBuilder };
@@ -1,4 +0,0 @@
1
- require('../publisher-lFQleddL.cjs');
2
- const require_TestSubscriberAdaptor = require('../TestSubscriberAdaptor-Dgxr_0vL.cjs');
3
-
4
- exports.TestSubscriberAdaptor = require_TestSubscriberAdaptor.TestSubscriberAdaptor;
@@ -1,4 +0,0 @@
1
- import "../Construct-CX7HyFfT.cjs";
2
- import "../Subscriber-1rDE7HuM.cjs";
3
- import { TestSubscriberAdaptor, TestSubscriberRequest } from "../TestSubscriberAdaptor-DQk5xzb0.cjs";
4
- export { TestSubscriberAdaptor, TestSubscriberRequest };
@@ -1,4 +0,0 @@
1
- import "../Construct-C2SyofdS.mjs";
2
- import "../Subscriber-BgB3RRxb.mjs";
3
- import { TestSubscriberAdaptor, TestSubscriberRequest } from "../TestSubscriberAdaptor-CPEiqSfE.mjs";
4
- export { TestSubscriberAdaptor, TestSubscriberRequest };
@@ -1,4 +0,0 @@
1
- import "../publisher-Bw4770Hi.mjs";
2
- import { TestSubscriberAdaptor } from "../TestSubscriberAdaptor-CwP3qNJ4.mjs";
3
-
4
- export { TestSubscriberAdaptor };
File without changes
@@ -1,2 +0,0 @@
1
- import { Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse } from "./telemetry-BTaiRqPo.cjs";
2
- export { Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse };
@@ -1,2 +0,0 @@
1
- import { Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse } from "./telemetry-C-kNOW3C.mjs";
2
- export { Telemetry, TelemetryContext, TelemetryRequest, TelemetryResponse };
File without changes