@geekmidas/constructs 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/dist/{AWSLambdaFunction-EPGY4s7i.cjs → AWSLambdaFunction-Ba1DcsW2.cjs} +6 -6
  2. package/dist/AWSLambdaFunction-Ba1DcsW2.cjs.map +1 -0
  3. package/dist/{AWSLambdaFunction-BdebRMUh.d.mts → AWSLambdaFunction-CKe73Qr0.d.cts} +6 -6
  4. package/dist/AWSLambdaFunction-CKe73Qr0.d.cts.map +1 -0
  5. package/dist/{AWSLambdaFunction-D0tEOTXQ.d.cts → AWSLambdaFunction-CuG3HNZx.d.mts} +6 -6
  6. package/dist/AWSLambdaFunction-CuG3HNZx.d.mts.map +1 -0
  7. package/dist/{AWSLambdaFunction-C54a1doJ.mjs → AWSLambdaFunction-DnMm4xvz.mjs} +6 -6
  8. package/dist/AWSLambdaFunction-DnMm4xvz.mjs.map +1 -0
  9. package/dist/{AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts → AWSLambdaSubscriberAdaptor-B4HH-WuQ.d.mts} +4 -4
  10. package/dist/AWSLambdaSubscriberAdaptor-B4HH-WuQ.d.mts.map +1 -0
  11. package/dist/{AWSLambdaSubscriberAdaptor-BLfO612H.mjs → AWSLambdaSubscriberAdaptor-BD3FwGUb.mjs} +3 -3
  12. package/dist/AWSLambdaSubscriberAdaptor-BD3FwGUb.mjs.map +1 -0
  13. package/dist/{AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts → AWSLambdaSubscriberAdaptor-BEqQ96VJ.d.cts} +4 -4
  14. package/dist/AWSLambdaSubscriberAdaptor-BEqQ96VJ.d.cts.map +1 -0
  15. package/dist/{AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs → AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs} +3 -3
  16. package/dist/AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs.map +1 -0
  17. package/dist/{AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs → AmazonApiGatewayEndpointAdaptor-Bvy-Hgjf.mjs} +56 -14
  18. package/dist/AmazonApiGatewayEndpointAdaptor-Bvy-Hgjf.mjs.map +1 -0
  19. package/dist/{AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs → AmazonApiGatewayEndpointAdaptor-Cpxluhfg.cjs} +55 -13
  20. package/dist/AmazonApiGatewayEndpointAdaptor-Cpxluhfg.cjs.map +1 -0
  21. package/dist/{AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts → AmazonApiGatewayEndpointAdaptor-DTgdZ8I1.d.mts} +52 -6
  22. package/dist/AmazonApiGatewayEndpointAdaptor-DTgdZ8I1.d.mts.map +1 -0
  23. package/dist/{AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts → AmazonApiGatewayEndpointAdaptor-DsWnO6x9.d.cts} +51 -5
  24. package/dist/AmazonApiGatewayEndpointAdaptor-DsWnO6x9.d.cts.map +1 -0
  25. package/dist/{AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts → AmazonApiGatewayV1EndpointAdaptor-7ELXUBFK.d.cts} +4 -4
  26. package/dist/AmazonApiGatewayV1EndpointAdaptor-7ELXUBFK.d.cts.map +1 -0
  27. package/dist/{AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs → AmazonApiGatewayV1EndpointAdaptor-B8vIYYNh.cjs} +4 -4
  28. package/dist/AmazonApiGatewayV1EndpointAdaptor-B8vIYYNh.cjs.map +1 -0
  29. package/dist/{AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs → AmazonApiGatewayV1EndpointAdaptor-ByXGIju8.mjs} +4 -4
  30. package/dist/AmazonApiGatewayV1EndpointAdaptor-ByXGIju8.mjs.map +1 -0
  31. package/dist/{AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts → AmazonApiGatewayV1EndpointAdaptor-RWRmFPrN.d.mts} +5 -5
  32. package/dist/AmazonApiGatewayV1EndpointAdaptor-RWRmFPrN.d.mts.map +1 -0
  33. package/dist/{AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs → AmazonApiGatewayV2EndpointAdaptor-DIetspUm.cjs} +4 -4
  34. package/dist/AmazonApiGatewayV2EndpointAdaptor-DIetspUm.cjs.map +1 -0
  35. package/dist/{AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs → AmazonApiGatewayV2EndpointAdaptor-DWemCZvl.mjs} +4 -4
  36. package/dist/AmazonApiGatewayV2EndpointAdaptor-DWemCZvl.mjs.map +1 -0
  37. package/dist/{AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts → AmazonApiGatewayV2EndpointAdaptor-D_uMTmuJ.d.cts} +4 -6
  38. package/dist/AmazonApiGatewayV2EndpointAdaptor-D_uMTmuJ.d.cts.map +1 -0
  39. package/dist/{AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts → AmazonApiGatewayV2EndpointAdaptor-wnOMDv6o.d.mts} +5 -7
  40. package/dist/AmazonApiGatewayV2EndpointAdaptor-wnOMDv6o.d.mts.map +1 -0
  41. package/dist/{Authorizer-C0ge_tc8.cjs → Authorizer-BXxBee2P.cjs} +1 -1
  42. package/dist/Authorizer-BXxBee2P.cjs.map +1 -0
  43. package/dist/{Authorizer-r9U3y_ms.mjs → Authorizer-BgjU8-z6.mjs} +1 -1
  44. package/dist/Authorizer-BgjU8-z6.mjs.map +1 -0
  45. package/dist/{Authorizer-gWxYsGEp.d.mts → Authorizer-DCcYOx3h.d.mts} +1 -1
  46. package/dist/Authorizer-DCcYOx3h.d.mts.map +1 -0
  47. package/dist/{Authorizer-B-btowNd.d.cts → Authorizer-DWtwC8we.d.cts} +1 -1
  48. package/dist/Authorizer-DWtwC8we.d.cts.map +1 -0
  49. package/dist/{BaseFunctionBuilder-Czi1Jwza.mjs → BaseFunctionBuilder-0qlenb9z.mjs} +2 -2
  50. package/dist/BaseFunctionBuilder-0qlenb9z.mjs.map +1 -0
  51. package/dist/BaseFunctionBuilder-BAtutR6q.d.cts.map +1 -1
  52. package/dist/{BaseFunctionBuilder-DRY419e7.d.mts → BaseFunctionBuilder-CDfDWWAQ.d.mts} +2 -2
  53. package/dist/BaseFunctionBuilder-CDfDWWAQ.d.mts.map +1 -0
  54. package/dist/{BaseFunctionBuilder-MYG3C9ug.cjs → BaseFunctionBuilder-D7o93EGv.cjs} +2 -2
  55. package/dist/BaseFunctionBuilder-D7o93EGv.cjs.map +1 -0
  56. package/dist/{Construct-Ba5cMxib.cjs → Construct-BlnyYtJC.cjs} +31 -2
  57. package/dist/Construct-BlnyYtJC.cjs.map +1 -0
  58. package/dist/Construct-C4rPE67v.d.cts.map +1 -1
  59. package/dist/{Construct-DdyGHuag.mjs → Construct-D5dCvxZ3.mjs} +31 -2
  60. package/dist/Construct-D5dCvxZ3.mjs.map +1 -0
  61. package/dist/{Construct-XrijZFFh.d.mts → Construct-dZiwVo0q.d.mts} +1 -1
  62. package/dist/Construct-dZiwVo0q.d.mts.map +1 -0
  63. package/dist/Construct.cjs +1 -1
  64. package/dist/Construct.d.mts +1 -1
  65. package/dist/Construct.mjs +1 -1
  66. package/dist/{Cron-bDLcTvV5.d.cts → Cron-B6FnTu7k.d.cts} +2 -2
  67. package/dist/Cron-B6FnTu7k.d.cts.map +1 -0
  68. package/dist/{Cron-CGF4YAfM.cjs → Cron-BAPQetlC.cjs} +3 -3
  69. package/dist/Cron-BAPQetlC.cjs.map +1 -0
  70. package/dist/{Cron-BxhGs5up.mjs → Cron-CAk_ddH8.mjs} +3 -3
  71. package/dist/Cron-CAk_ddH8.mjs.map +1 -0
  72. package/dist/{Cron-cdjlSKNp.d.mts → Cron-D3bEljxQ.d.mts} +2 -2
  73. package/dist/Cron-D3bEljxQ.d.mts.map +1 -0
  74. package/dist/{CronBuilder-DKVXyE0Q.d.cts → CronBuilder-CA8euP0z.d.cts} +4 -4
  75. package/dist/CronBuilder-CA8euP0z.d.cts.map +1 -0
  76. package/dist/{CronBuilder-BC4m5-p1.d.mts → CronBuilder-DvdiKzhq.d.mts} +4 -4
  77. package/dist/CronBuilder-DvdiKzhq.d.mts.map +1 -0
  78. package/dist/{CronBuilder-CcxKRtVP.cjs → CronBuilder-DxXA5ymv.cjs} +4 -4
  79. package/dist/CronBuilder-DxXA5ymv.cjs.map +1 -0
  80. package/dist/{CronBuilder-d2jh-IB2.mjs → CronBuilder-e8TaHPYm.mjs} +4 -4
  81. package/dist/CronBuilder-e8TaHPYm.mjs.map +1 -0
  82. package/dist/{Endpoint-BPv9_-m_.d.cts → Endpoint-BOlbY5iq.d.cts} +3 -3
  83. package/dist/Endpoint-BOlbY5iq.d.cts.map +1 -0
  84. package/dist/{Endpoint-CuOEswxJ.mjs → Endpoint-BbdNmtlM.mjs} +6 -6
  85. package/dist/Endpoint-BbdNmtlM.mjs.map +1 -0
  86. package/dist/{Endpoint-BdwG75G_.d.mts → Endpoint-Dlv7nxgj.d.mts} +4 -4
  87. package/dist/Endpoint-Dlv7nxgj.d.mts.map +1 -0
  88. package/dist/{Endpoint-BVGZXFyV.cjs → Endpoint-DxvnlfXg.cjs} +6 -6
  89. package/dist/Endpoint-DxvnlfXg.cjs.map +1 -0
  90. package/dist/{EndpointBuilder-Cgj1P_ra.cjs → EndpointBuilder-40Iz5CjY.cjs} +6 -6
  91. package/dist/EndpointBuilder-40Iz5CjY.cjs.map +1 -0
  92. package/dist/{EndpointBuilder-DnCB1h1j.mjs → EndpointBuilder-BaVvhW9m.mjs} +6 -6
  93. package/dist/EndpointBuilder-BaVvhW9m.mjs.map +1 -0
  94. package/dist/{EndpointBuilder-DIy_m1bu.d.cts → EndpointBuilder-CFfWWjUa.d.cts} +3 -3
  95. package/dist/EndpointBuilder-CFfWWjUa.d.cts.map +1 -0
  96. package/dist/{EndpointBuilder-B3az942t.d.mts → EndpointBuilder-T_K2NLWw.d.mts} +5 -5
  97. package/dist/EndpointBuilder-T_K2NLWw.d.mts.map +1 -0
  98. package/dist/{EndpointFactory-CyPbm3AD.d.cts → EndpointFactory-ChzBVEM9.d.cts} +4 -4
  99. package/dist/EndpointFactory-ChzBVEM9.d.cts.map +1 -0
  100. package/dist/{EndpointFactory-CbdxPCIH.mjs → EndpointFactory-DfNjSgVG.mjs} +7 -7
  101. package/dist/EndpointFactory-DfNjSgVG.mjs.map +1 -0
  102. package/dist/{EndpointFactory-C-0nE6Jg.d.mts → EndpointFactory-GAL_tuPf.d.mts} +4 -4
  103. package/dist/EndpointFactory-GAL_tuPf.d.mts.map +1 -0
  104. package/dist/{EndpointFactory-CYj6BYok.cjs → EndpointFactory-r6jxPvQ8.cjs} +7 -7
  105. package/dist/EndpointFactory-r6jxPvQ8.cjs.map +1 -0
  106. package/dist/{Function-BVHqIDp9.mjs → Function-D8tBamM3.mjs} +3 -3
  107. package/dist/Function-D8tBamM3.mjs.map +1 -0
  108. package/dist/{Function-DN2G6OT5.d.mts → Function-DBmU3uGI.d.mts} +3 -3
  109. package/dist/Function-DBmU3uGI.d.mts.map +1 -0
  110. package/dist/{Function-Cf7f_kCz.d.cts → Function-PNW4HdNE.d.cts} +2 -2
  111. package/dist/Function-PNW4HdNE.d.cts.map +1 -0
  112. package/dist/{Function-DDZb1525.cjs → Function-iLKrUXuw.cjs} +3 -3
  113. package/dist/Function-iLKrUXuw.cjs.map +1 -0
  114. package/dist/{FunctionBuilder-DswJ-9sD.cjs → FunctionBuilder-BEpPgeho.cjs} +4 -4
  115. package/dist/FunctionBuilder-BEpPgeho.cjs.map +1 -0
  116. package/dist/{FunctionBuilder-Cxx8D2na.d.mts → FunctionBuilder-Bv4H2I1a.d.mts} +4 -4
  117. package/dist/FunctionBuilder-Bv4H2I1a.d.mts.map +1 -0
  118. package/dist/{FunctionBuilder-CrDYgfiI.mjs → FunctionBuilder-BwNF99AB.mjs} +4 -4
  119. package/dist/FunctionBuilder-BwNF99AB.mjs.map +1 -0
  120. package/dist/{FunctionBuilder-CJBzzXL3.d.cts → FunctionBuilder-DCqXIHaq.d.cts} +2 -2
  121. package/dist/FunctionBuilder-DCqXIHaq.d.cts.map +1 -0
  122. package/dist/{FunctionExecutionWrapper-CLDh7Z2_.mjs → FunctionExecutionWrapper-B__HE_B-.mjs} +3 -3
  123. package/dist/FunctionExecutionWrapper-B__HE_B-.mjs.map +1 -0
  124. package/dist/{FunctionExecutionWrapper-DF260Aaj.d.mts → FunctionExecutionWrapper-BclgIztn.d.cts} +5 -5
  125. package/dist/FunctionExecutionWrapper-BclgIztn.d.cts.map +1 -0
  126. package/dist/{FunctionExecutionWrapper-BYI2bGTL.cjs → FunctionExecutionWrapper-BjF6t9Hb.cjs} +3 -3
  127. package/dist/FunctionExecutionWrapper-BjF6t9Hb.cjs.map +1 -0
  128. package/dist/{FunctionExecutionWrapper-Qy8bmgFR.d.cts → FunctionExecutionWrapper-Dq21c6vt.d.mts} +5 -5
  129. package/dist/FunctionExecutionWrapper-Dq21c6vt.d.mts.map +1 -0
  130. package/dist/HonoEndpointAdaptor-C_ym_Sbr.mjs +251 -0
  131. package/dist/HonoEndpointAdaptor-C_ym_Sbr.mjs.map +1 -0
  132. package/dist/HonoEndpointAdaptor-DiQH0eTb.cjs +257 -0
  133. package/dist/HonoEndpointAdaptor-DiQH0eTb.cjs.map +1 -0
  134. package/dist/{HonoEndpointAdaptor-YcRHYALH.d.cts → HonoEndpointAdaptor-Dkkemmbo.d.cts} +10 -5
  135. package/dist/HonoEndpointAdaptor-Dkkemmbo.d.cts.map +1 -0
  136. package/dist/{HonoEndpointAdaptor-BaPlUhz0.d.mts → HonoEndpointAdaptor-HukjdF6M.d.mts} +11 -6
  137. package/dist/HonoEndpointAdaptor-HukjdF6M.d.mts.map +1 -0
  138. package/dist/{Subscriber-COYMSevD.d.cts → Subscriber--zUjZDR6.d.cts} +1 -1
  139. package/dist/Subscriber--zUjZDR6.d.cts.map +1 -0
  140. package/dist/{Subscriber-ikctpU3I.d.mts → Subscriber-0Ac7cXID.d.mts} +2 -2
  141. package/dist/Subscriber-0Ac7cXID.d.mts.map +1 -0
  142. package/dist/{Subscriber-BmPf9GFb.mjs → Subscriber-BgZ8T-O2.mjs} +2 -2
  143. package/dist/Subscriber-BgZ8T-O2.mjs.map +1 -0
  144. package/dist/{Subscriber-BiHjVXtM.cjs → Subscriber-CoFmHMIM.cjs} +2 -2
  145. package/dist/Subscriber-CoFmHMIM.cjs.map +1 -0
  146. package/dist/{SubscriberBuilder-D_9zzllj.d.mts → SubscriberBuilder-D8cmUHee.d.mts} +2 -2
  147. package/dist/SubscriberBuilder-D8cmUHee.d.mts.map +1 -0
  148. package/dist/{SubscriberBuilder-DJPEeYDJ.mjs → SubscriberBuilder-DWXWZBPo.mjs} +2 -2
  149. package/dist/SubscriberBuilder-DWXWZBPo.mjs.map +1 -0
  150. package/dist/{SubscriberBuilder-ivHAGIVi.d.cts → SubscriberBuilder-DciTqb-7.d.cts} +2 -2
  151. package/dist/SubscriberBuilder-DciTqb-7.d.cts.map +1 -0
  152. package/dist/{SubscriberBuilder-Cp1C-xtT.cjs → SubscriberBuilder-JlxhyqGp.cjs} +2 -2
  153. package/dist/SubscriberBuilder-JlxhyqGp.cjs.map +1 -0
  154. package/dist/{TestEndpointAdaptor-DB7bREhS.d.mts → TestEndpointAdaptor-Boijwbmz.d.mts} +4 -4
  155. package/dist/TestEndpointAdaptor-Boijwbmz.d.mts.map +1 -0
  156. package/dist/{TestEndpointAdaptor-C10xBI--.d.cts → TestEndpointAdaptor-DdwpRyNh.d.cts} +3 -3
  157. package/dist/TestEndpointAdaptor-DdwpRyNh.d.cts.map +1 -0
  158. package/dist/TestEndpointAdaptor-Dk75ExxE.cjs +176 -0
  159. package/dist/TestEndpointAdaptor-Dk75ExxE.cjs.map +1 -0
  160. package/dist/TestEndpointAdaptor-OiA2JLDp.mjs +170 -0
  161. package/dist/TestEndpointAdaptor-OiA2JLDp.mjs.map +1 -0
  162. package/dist/adaptors/aws.cjs +12 -12
  163. package/dist/adaptors/aws.d.cts +13 -12
  164. package/dist/adaptors/aws.d.mts +16 -15
  165. package/dist/adaptors/aws.mjs +12 -12
  166. package/dist/adaptors/hono.cjs +10 -9
  167. package/dist/adaptors/hono.d.cts +6 -6
  168. package/dist/adaptors/hono.d.mts +9 -9
  169. package/dist/adaptors/hono.mjs +10 -9
  170. package/dist/adaptors/testing.cjs +8 -7
  171. package/dist/adaptors/testing.d.cts +6 -6
  172. package/dist/adaptors/testing.d.mts +9 -9
  173. package/dist/adaptors/testing.mjs +8 -7
  174. package/dist/crons/Cron.cjs +6 -6
  175. package/dist/crons/Cron.d.cts +4 -4
  176. package/dist/crons/Cron.d.mts +6 -6
  177. package/dist/crons/Cron.mjs +6 -6
  178. package/dist/crons/CronBuilder.cjs +7 -7
  179. package/dist/crons/CronBuilder.d.cts +5 -5
  180. package/dist/crons/CronBuilder.d.mts +7 -7
  181. package/dist/crons/CronBuilder.mjs +7 -7
  182. package/dist/crons/index.cjs +7 -7
  183. package/dist/crons/index.cjs.map +1 -1
  184. package/dist/crons/index.d.cts +9 -9
  185. package/dist/crons/index.d.mts +7 -7
  186. package/dist/crons/index.mjs +7 -7
  187. package/dist/crons/index.mjs.map +1 -1
  188. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +7 -7
  189. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +8 -7
  190. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +11 -10
  191. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +7 -7
  192. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +8 -8
  193. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +8 -7
  194. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +11 -10
  195. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +8 -8
  196. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +8 -8
  197. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +9 -8
  198. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +12 -11
  199. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +8 -8
  200. package/dist/endpoints/Authorizer.cjs +1 -1
  201. package/dist/endpoints/Authorizer.d.cts +1 -1
  202. package/dist/endpoints/Authorizer.d.mts +1 -1
  203. package/dist/endpoints/Authorizer.mjs +1 -1
  204. package/dist/endpoints/Endpoint.cjs +6 -6
  205. package/dist/endpoints/Endpoint.d.cts +5 -5
  206. package/dist/endpoints/Endpoint.d.mts +8 -8
  207. package/dist/endpoints/Endpoint.mjs +6 -6
  208. package/dist/endpoints/EndpointBuilder.cjs +9 -9
  209. package/dist/endpoints/EndpointBuilder.d.cts +6 -6
  210. package/dist/endpoints/EndpointBuilder.d.mts +9 -9
  211. package/dist/endpoints/EndpointBuilder.mjs +9 -9
  212. package/dist/endpoints/EndpointFactory.cjs +10 -10
  213. package/dist/endpoints/EndpointFactory.d.cts +7 -7
  214. package/dist/endpoints/EndpointFactory.d.mts +10 -10
  215. package/dist/endpoints/EndpointFactory.mjs +10 -10
  216. package/dist/endpoints/HonoEndpointAdaptor.cjs +10 -9
  217. package/dist/endpoints/HonoEndpointAdaptor.d.cts +6 -6
  218. package/dist/endpoints/HonoEndpointAdaptor.d.mts +9 -9
  219. package/dist/endpoints/HonoEndpointAdaptor.mjs +10 -9
  220. package/dist/endpoints/TestEndpointAdaptor.cjs +8 -7
  221. package/dist/endpoints/TestEndpointAdaptor.d.cts +6 -6
  222. package/dist/endpoints/TestEndpointAdaptor.d.mts +9 -9
  223. package/dist/endpoints/TestEndpointAdaptor.mjs +8 -7
  224. package/dist/endpoints/audit.d.cts +5 -5
  225. package/dist/endpoints/audit.d.mts +8 -8
  226. package/dist/endpoints/helpers.cjs +7 -7
  227. package/dist/endpoints/helpers.d.cts +5 -5
  228. package/dist/endpoints/helpers.d.cts.map +1 -1
  229. package/dist/endpoints/helpers.d.mts +8 -8
  230. package/dist/endpoints/helpers.d.mts.map +1 -1
  231. package/dist/endpoints/helpers.mjs +7 -7
  232. package/dist/endpoints/index.cjs +20 -10
  233. package/dist/endpoints/index.cjs.map +1 -1
  234. package/dist/endpoints/index.d.cts +12 -10
  235. package/dist/endpoints/index.d.cts.map +1 -1
  236. package/dist/endpoints/index.d.mts +15 -13
  237. package/dist/endpoints/index.d.mts.map +1 -1
  238. package/dist/endpoints/index.mjs +13 -11
  239. package/dist/endpoints/index.mjs.map +1 -1
  240. package/dist/endpoints/lazyAccessors.cjs +10 -0
  241. package/dist/endpoints/lazyAccessors.d.cts +10 -0
  242. package/dist/endpoints/lazyAccessors.d.mts +10 -0
  243. package/dist/endpoints/lazyAccessors.mjs +3 -0
  244. package/dist/endpoints/parseHonoQuery.cjs +1 -1
  245. package/dist/endpoints/parseHonoQuery.mjs +1 -1
  246. package/dist/endpoints/parseQueryParams.d.cts.map +1 -1
  247. package/dist/endpoints/parseQueryParams.d.mts.map +1 -1
  248. package/dist/endpoints/processAudits.d.cts +5 -5
  249. package/dist/endpoints/processAudits.d.cts.map +1 -1
  250. package/dist/endpoints/processAudits.d.mts +8 -8
  251. package/dist/endpoints/processAudits.d.mts.map +1 -1
  252. package/dist/endpoints/rls.cjs +1 -1
  253. package/dist/endpoints/rls.d.cts +5 -5
  254. package/dist/endpoints/rls.d.mts +8 -8
  255. package/dist/endpoints/rls.mjs +1 -1
  256. package/dist/functions/AWSLambdaFunction.cjs +6 -6
  257. package/dist/functions/AWSLambdaFunction.d.cts +3 -3
  258. package/dist/functions/AWSLambdaFunction.d.mts +4 -4
  259. package/dist/functions/AWSLambdaFunction.mjs +6 -6
  260. package/dist/functions/BaseFunctionBuilder.cjs +2 -2
  261. package/dist/functions/BaseFunctionBuilder.d.mts +2 -2
  262. package/dist/functions/BaseFunctionBuilder.mjs +2 -2
  263. package/dist/functions/Function.cjs +2 -2
  264. package/dist/functions/Function.d.cts +1 -1
  265. package/dist/functions/Function.d.mts +2 -2
  266. package/dist/functions/Function.mjs +2 -2
  267. package/dist/functions/FunctionBuilder.cjs +4 -4
  268. package/dist/functions/FunctionBuilder.d.cts +2 -2
  269. package/dist/functions/FunctionBuilder.d.mts +4 -4
  270. package/dist/functions/FunctionBuilder.mjs +4 -4
  271. package/dist/functions/FunctionExecutionWrapper.cjs +5 -5
  272. package/dist/functions/FunctionExecutionWrapper.d.cts +2 -2
  273. package/dist/functions/FunctionExecutionWrapper.d.mts +3 -3
  274. package/dist/functions/FunctionExecutionWrapper.mjs +5 -5
  275. package/dist/functions/TestFunctionAdaptor.cjs +7 -7
  276. package/dist/functions/TestFunctionAdaptor.cjs.map +1 -1
  277. package/dist/functions/TestFunctionAdaptor.d.cts +2 -2
  278. package/dist/functions/TestFunctionAdaptor.d.cts.map +1 -1
  279. package/dist/functions/TestFunctionAdaptor.d.mts +3 -3
  280. package/dist/functions/TestFunctionAdaptor.d.mts.map +1 -1
  281. package/dist/functions/TestFunctionAdaptor.mjs +7 -7
  282. package/dist/functions/TestFunctionAdaptor.mjs.map +1 -1
  283. package/dist/functions/index.cjs +5 -5
  284. package/dist/functions/index.d.cts +3 -3
  285. package/dist/functions/index.d.mts +5 -5
  286. package/dist/functions/index.mjs +5 -5
  287. package/dist/{functions-fTid0RMK.cjs → functions-BkKXVeHm.cjs} +2 -2
  288. package/dist/functions-BkKXVeHm.cjs.map +1 -0
  289. package/dist/functions-C3A1vMRW.mjs +8 -0
  290. package/dist/functions-C3A1vMRW.mjs.map +1 -0
  291. package/dist/{helpers-BcP1tXAi.cjs → helpers-BelEzV4U.cjs} +2 -2
  292. package/dist/helpers-BelEzV4U.cjs.map +1 -0
  293. package/dist/{helpers-ByRTDO_m.mjs → helpers-DgsMFMUV.mjs} +2 -2
  294. package/dist/helpers-DgsMFMUV.mjs.map +1 -0
  295. package/dist/{index-BWzGIj06.d.mts → index-CgAQHr3f.d.mts} +2 -2
  296. package/dist/index-CgAQHr3f.d.mts.map +1 -0
  297. package/dist/index-D0fp_IK1.d.cts +12 -0
  298. package/dist/index-D0fp_IK1.d.cts.map +1 -0
  299. package/dist/index.cjs +1 -1
  300. package/dist/index.d.cts +2 -1
  301. package/dist/index.d.mts +4 -3
  302. package/dist/index.mjs +1 -1
  303. package/dist/lazyAccessors-B-Jgkg2o.mjs +175 -0
  304. package/dist/lazyAccessors-B-Jgkg2o.mjs.map +1 -0
  305. package/dist/lazyAccessors-B2ILzU-j.d.mts +49 -0
  306. package/dist/lazyAccessors-B2ILzU-j.d.mts.map +1 -0
  307. package/dist/lazyAccessors-B8Hhras9.cjs +223 -0
  308. package/dist/lazyAccessors-B8Hhras9.cjs.map +1 -0
  309. package/dist/lazyAccessors-Bcpi06ed.d.cts +49 -0
  310. package/dist/lazyAccessors-Bcpi06ed.d.cts.map +1 -0
  311. package/dist/{parseHonoQuery-CZC5_97v.cjs → parseHonoQuery-D4MhxTRc.cjs} +1 -1
  312. package/dist/parseHonoQuery-D4MhxTRc.cjs.map +1 -0
  313. package/dist/{parseHonoQuery-DDgIkTO4.mjs → parseHonoQuery-DpK3sGPc.mjs} +1 -1
  314. package/dist/parseHonoQuery-DpK3sGPc.mjs.map +1 -0
  315. package/dist/parseQueryParams-BSNkjmZ9.cjs.map +1 -1
  316. package/dist/parseQueryParams-UMTRnRrW.mjs.map +1 -1
  317. package/dist/processAudits-CzHkPokQ.cjs.map +1 -1
  318. package/dist/processAudits-Dj8UGqcW.mjs.map +1 -1
  319. package/dist/publisher-Bw4770Hi.mjs.map +1 -1
  320. package/dist/publisher-C4BhHB5I.d.cts +16 -0
  321. package/dist/publisher-C4BhHB5I.d.cts.map +1 -0
  322. package/dist/publisher-NE-GnXL8.d.mts +16 -0
  323. package/dist/publisher-NE-GnXL8.d.mts.map +1 -0
  324. package/dist/publisher-lFQleddL.cjs.map +1 -1
  325. package/dist/publisher.d.cts +3 -16
  326. package/dist/publisher.d.mts +3 -16
  327. package/dist/{rls-CmJ7bRsz.cjs → rls-BrywnrQb.cjs} +1 -1
  328. package/dist/{rls-CmJ7bRsz.cjs.map → rls-BrywnrQb.cjs.map} +1 -1
  329. package/dist/{rls-Bf3FRwto.mjs → rls-C0cWOnk4.mjs} +1 -1
  330. package/dist/{rls-Bf3FRwto.mjs.map → rls-C0cWOnk4.mjs.map} +1 -1
  331. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
  332. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.cts +2 -2
  333. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +3 -3
  334. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
  335. package/dist/subscribers/Subscriber.cjs +2 -2
  336. package/dist/subscribers/Subscriber.d.cts +1 -1
  337. package/dist/subscribers/Subscriber.d.mts +2 -2
  338. package/dist/subscribers/Subscriber.mjs +2 -2
  339. package/dist/subscribers/SubscriberBuilder.cjs +3 -3
  340. package/dist/subscribers/SubscriberBuilder.d.cts +2 -2
  341. package/dist/subscribers/SubscriberBuilder.d.mts +3 -3
  342. package/dist/subscribers/SubscriberBuilder.mjs +3 -3
  343. package/dist/subscribers/index.cjs +3 -3
  344. package/dist/subscribers/index.cjs.map +1 -1
  345. package/dist/subscribers/index.d.cts +4 -4
  346. package/dist/subscribers/index.d.cts.map +1 -1
  347. package/dist/subscribers/index.d.mts +3 -3
  348. package/dist/subscribers/index.d.mts.map +1 -1
  349. package/dist/subscribers/index.mjs +3 -3
  350. package/dist/subscribers/index.mjs.map +1 -1
  351. package/dist/telemetry-BTaiRqPo.d.cts +95 -0
  352. package/dist/telemetry-BTaiRqPo.d.cts.map +1 -0
  353. package/dist/telemetry-yAHf5yDs.d.mts +95 -0
  354. package/dist/telemetry-yAHf5yDs.d.mts.map +1 -0
  355. package/dist/telemetry.cjs +0 -0
  356. package/dist/telemetry.d.cts +2 -0
  357. package/dist/telemetry.d.mts +2 -0
  358. package/dist/telemetry.mjs +0 -0
  359. package/dist/types-B5H3piDg.d.cts.map +1 -1
  360. package/dist/{types-DdIlpxAd.d.mts → types-Dw-iLd3Y.d.mts} +1 -1
  361. package/dist/types-Dw-iLd3Y.d.mts.map +1 -0
  362. package/dist/types.d.mts +1 -1
  363. package/package.json +18 -18
  364. package/src/Construct.ts +117 -86
  365. package/src/__benchmarks__/build-time-optimization.bench.ts +274 -0
  366. package/src/__benchmarks__/endpoint.bench.ts +375 -375
  367. package/src/__benchmarks__/fixtures.ts +241 -0
  368. package/src/__benchmarks__/hono-adaptor.bench.ts +533 -0
  369. package/src/__benchmarks__/hono-server.bench.ts +206 -206
  370. package/src/__benchmarks__/response-builder.bench.ts +428 -0
  371. package/src/__benchmarks__/strategies/strategy-a-lazy-services.ts +319 -0
  372. package/src/__benchmarks__/strategies/strategy-c-middleware.ts +530 -0
  373. package/src/__benchmarks__/strategies/strategy-d-opt-in-events.ts +567 -0
  374. package/src/__tests__/Construct.environment.spec.ts +349 -350
  375. package/src/__tests__/publisher.setting.spec.ts +496 -499
  376. package/src/__tests__/publisher.spec.ts +440 -442
  377. package/src/crons/Cron.ts +117 -117
  378. package/src/crons/CronBuilder.ts +237 -238
  379. package/src/crons/__tests__/Cron.spec.ts +448 -448
  380. package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +214 -214
  381. package/src/crons/index.ts +4 -4
  382. package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +571 -463
  383. package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +86 -86
  384. package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +85 -81
  385. package/src/endpoints/Authorizer.ts +100 -100
  386. package/src/endpoints/Endpoint.ts +921 -937
  387. package/src/endpoints/EndpointBuilder.ts +703 -703
  388. package/src/endpoints/EndpointFactory.ts +1054 -1056
  389. package/src/endpoints/HonoEndpointAdaptor.ts +621 -548
  390. package/src/endpoints/TestEndpointAdaptor.ts +372 -353
  391. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.audits.spec.ts +499 -0
  392. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +541 -542
  393. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +1172 -1174
  394. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +599 -599
  395. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +710 -710
  396. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +280 -280
  397. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +924 -730
  398. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.rls.spec.ts +307 -0
  399. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +408 -408
  400. package/src/endpoints/__tests__/Authorizer.spec.ts +286 -0
  401. package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +162 -162
  402. package/src/endpoints/__tests__/Endpoint.headers.spec.ts +182 -182
  403. package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +158 -159
  404. package/src/endpoints/__tests__/Endpoint.spec.ts +819 -822
  405. package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +427 -427
  406. package/src/endpoints/__tests__/EndpointBuilder.spec.ts +478 -478
  407. package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +426 -426
  408. package/src/endpoints/__tests__/EndpointFactory.database-auditor.spec.ts +501 -501
  409. package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +177 -177
  410. package/src/endpoints/__tests__/EndpointFactory.spec.ts +471 -471
  411. package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +143 -143
  412. package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +663 -663
  413. package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +608 -608
  414. package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +561 -561
  415. package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +1036 -1036
  416. package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +278 -278
  417. package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +1093 -1093
  418. package/src/endpoints/__tests__/ResponseBuilder.spec.ts +230 -230
  419. package/src/endpoints/__tests__/TestEndpointAdaptor.audits.spec.ts +569 -569
  420. package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +841 -841
  421. package/src/endpoints/__tests__/endpoint-types.test.ts +68 -68
  422. package/src/endpoints/__tests__/helpers.spec.ts +37 -0
  423. package/src/endpoints/__tests__/lazyAccessors.spec.ts +330 -0
  424. package/src/endpoints/__tests__/processAudits.spec.ts +631 -0
  425. package/src/endpoints/audit.ts +51 -51
  426. package/src/endpoints/helpers.ts +34 -35
  427. package/src/endpoints/index.ts +33 -23
  428. package/src/endpoints/lazyAccessors.ts +241 -0
  429. package/src/endpoints/parseHonoQuery.ts +41 -41
  430. package/src/endpoints/parseQueryParams.ts +36 -36
  431. package/src/endpoints/processAudits.ts +269 -269
  432. package/src/endpoints/rls.ts +16 -16
  433. package/src/functions/AWSLambdaFunction.ts +294 -295
  434. package/src/functions/BaseFunctionBuilder.ts +185 -185
  435. package/src/functions/Function.ts +190 -190
  436. package/src/functions/FunctionBuilder.ts +353 -353
  437. package/src/functions/FunctionExecutionWrapper.ts +199 -200
  438. package/src/functions/TestFunctionAdaptor.ts +191 -191
  439. package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +424 -424
  440. package/src/functions/__tests__/Function.audits.spec.ts +364 -364
  441. package/src/functions/__tests__/Function.spec.ts +453 -454
  442. package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +179 -179
  443. package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +369 -369
  444. package/src/functions/index.ts +6 -4
  445. package/src/index.ts +13 -9
  446. package/src/publisher.ts +71 -72
  447. package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +244 -248
  448. package/src/subscribers/Subscriber.ts +82 -84
  449. package/src/subscribers/SubscriberBuilder.ts +129 -129
  450. package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +589 -589
  451. package/src/subscribers/__tests__/Subscriber.spec.ts +402 -404
  452. package/src/subscribers/index.ts +1 -0
  453. package/src/telemetry.ts +103 -0
  454. package/src/types.ts +7 -7
  455. package/test.ts +58 -59
  456. package/dist/AWSLambdaFunction-BdebRMUh.d.mts.map +0 -1
  457. package/dist/AWSLambdaFunction-C54a1doJ.mjs.map +0 -1
  458. package/dist/AWSLambdaFunction-D0tEOTXQ.d.cts.map +0 -1
  459. package/dist/AWSLambdaFunction-EPGY4s7i.cjs.map +0 -1
  460. package/dist/AWSLambdaSubscriberAdaptor-BLfO612H.mjs.map +0 -1
  461. package/dist/AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs.map +0 -1
  462. package/dist/AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts.map +0 -1
  463. package/dist/AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts.map +0 -1
  464. package/dist/AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs.map +0 -1
  465. package/dist/AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts.map +0 -1
  466. package/dist/AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs.map +0 -1
  467. package/dist/AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts.map +0 -1
  468. package/dist/AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs.map +0 -1
  469. package/dist/AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs.map +0 -1
  470. package/dist/AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts.map +0 -1
  471. package/dist/AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts.map +0 -1
  472. package/dist/AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs.map +0 -1
  473. package/dist/AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts.map +0 -1
  474. package/dist/AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts.map +0 -1
  475. package/dist/AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs.map +0 -1
  476. package/dist/Authorizer-B-btowNd.d.cts.map +0 -1
  477. package/dist/Authorizer-C0ge_tc8.cjs.map +0 -1
  478. package/dist/Authorizer-gWxYsGEp.d.mts.map +0 -1
  479. package/dist/Authorizer-r9U3y_ms.mjs.map +0 -1
  480. package/dist/BaseFunctionBuilder-Czi1Jwza.mjs.map +0 -1
  481. package/dist/BaseFunctionBuilder-DRY419e7.d.mts.map +0 -1
  482. package/dist/BaseFunctionBuilder-MYG3C9ug.cjs.map +0 -1
  483. package/dist/Construct-Ba5cMxib.cjs.map +0 -1
  484. package/dist/Construct-DdyGHuag.mjs.map +0 -1
  485. package/dist/Construct-XrijZFFh.d.mts.map +0 -1
  486. package/dist/Cron-BxhGs5up.mjs.map +0 -1
  487. package/dist/Cron-CGF4YAfM.cjs.map +0 -1
  488. package/dist/Cron-bDLcTvV5.d.cts.map +0 -1
  489. package/dist/Cron-cdjlSKNp.d.mts.map +0 -1
  490. package/dist/CronBuilder-BC4m5-p1.d.mts.map +0 -1
  491. package/dist/CronBuilder-CcxKRtVP.cjs.map +0 -1
  492. package/dist/CronBuilder-DKVXyE0Q.d.cts.map +0 -1
  493. package/dist/CronBuilder-d2jh-IB2.mjs.map +0 -1
  494. package/dist/Endpoint-BPv9_-m_.d.cts.map +0 -1
  495. package/dist/Endpoint-BVGZXFyV.cjs.map +0 -1
  496. package/dist/Endpoint-BdwG75G_.d.mts.map +0 -1
  497. package/dist/Endpoint-CuOEswxJ.mjs.map +0 -1
  498. package/dist/EndpointBuilder-B3az942t.d.mts.map +0 -1
  499. package/dist/EndpointBuilder-Cgj1P_ra.cjs.map +0 -1
  500. package/dist/EndpointBuilder-DIy_m1bu.d.cts.map +0 -1
  501. package/dist/EndpointBuilder-DnCB1h1j.mjs.map +0 -1
  502. package/dist/EndpointFactory-C-0nE6Jg.d.mts.map +0 -1
  503. package/dist/EndpointFactory-CYj6BYok.cjs.map +0 -1
  504. package/dist/EndpointFactory-CbdxPCIH.mjs.map +0 -1
  505. package/dist/EndpointFactory-CyPbm3AD.d.cts.map +0 -1
  506. package/dist/Function-BVHqIDp9.mjs.map +0 -1
  507. package/dist/Function-Cf7f_kCz.d.cts.map +0 -1
  508. package/dist/Function-DDZb1525.cjs.map +0 -1
  509. package/dist/Function-DN2G6OT5.d.mts.map +0 -1
  510. package/dist/FunctionBuilder-CJBzzXL3.d.cts.map +0 -1
  511. package/dist/FunctionBuilder-CrDYgfiI.mjs.map +0 -1
  512. package/dist/FunctionBuilder-Cxx8D2na.d.mts.map +0 -1
  513. package/dist/FunctionBuilder-DswJ-9sD.cjs.map +0 -1
  514. package/dist/FunctionExecutionWrapper-BYI2bGTL.cjs.map +0 -1
  515. package/dist/FunctionExecutionWrapper-CLDh7Z2_.mjs.map +0 -1
  516. package/dist/FunctionExecutionWrapper-DF260Aaj.d.mts.map +0 -1
  517. package/dist/FunctionExecutionWrapper-Qy8bmgFR.d.cts.map +0 -1
  518. package/dist/HonoEndpointAdaptor-BaPlUhz0.d.mts.map +0 -1
  519. package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs +0 -234
  520. package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs.map +0 -1
  521. package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs +0 -228
  522. package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs.map +0 -1
  523. package/dist/HonoEndpointAdaptor-YcRHYALH.d.cts.map +0 -1
  524. package/dist/Subscriber-BiHjVXtM.cjs.map +0 -1
  525. package/dist/Subscriber-BmPf9GFb.mjs.map +0 -1
  526. package/dist/Subscriber-COYMSevD.d.cts.map +0 -1
  527. package/dist/Subscriber-ikctpU3I.d.mts.map +0 -1
  528. package/dist/SubscriberBuilder-Cp1C-xtT.cjs.map +0 -1
  529. package/dist/SubscriberBuilder-DJPEeYDJ.mjs.map +0 -1
  530. package/dist/SubscriberBuilder-D_9zzllj.d.mts.map +0 -1
  531. package/dist/SubscriberBuilder-ivHAGIVi.d.cts.map +0 -1
  532. package/dist/TestEndpointAdaptor-C10xBI--.d.cts.map +0 -1
  533. package/dist/TestEndpointAdaptor-DB7bREhS.d.mts.map +0 -1
  534. package/dist/TestEndpointAdaptor-DJgik2Wj.mjs +0 -160
  535. package/dist/TestEndpointAdaptor-DJgik2Wj.mjs.map +0 -1
  536. package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs +0 -166
  537. package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs.map +0 -1
  538. package/dist/functions-C6EK1xL6.mjs +0 -8
  539. package/dist/functions-C6EK1xL6.mjs.map +0 -1
  540. package/dist/functions-fTid0RMK.cjs.map +0 -1
  541. package/dist/helpers-BcP1tXAi.cjs.map +0 -1
  542. package/dist/helpers-ByRTDO_m.mjs.map +0 -1
  543. package/dist/index-BWzGIj06.d.mts.map +0 -1
  544. package/dist/index-DmFozqLd.d.cts +0 -12
  545. package/dist/index-DmFozqLd.d.cts.map +0 -1
  546. package/dist/parseHonoQuery-CZC5_97v.cjs.map +0 -1
  547. package/dist/parseHonoQuery-DDgIkTO4.mjs.map +0 -1
  548. package/dist/publisher.d.cts.map +0 -1
  549. package/dist/publisher.d.mts.map +0 -1
  550. package/dist/types-DdIlpxAd.d.mts.map +0 -1
@@ -1,454 +1,452 @@
1
+ import { EnvironmentParser } from '@geekmidas/envkit';
2
+ import type { EventPublisher, PublishableMessage } from '@geekmidas/events';
1
3
  import type { Logger } from '@geekmidas/logger';
2
4
  import { type Service, ServiceDiscovery } from '@geekmidas/services';
3
5
  import { beforeEach, describe, expect, it, vi } from 'vitest';
4
6
  import { z } from 'zod';
5
-
6
- import { EnvironmentParser } from '@geekmidas/envkit';
7
- import type { EventPublisher, PublishableMessage } from '@geekmidas/events';
8
7
  import { e } from '../endpoints';
9
8
  import { publishConstructEvents } from '../publisher';
10
9
 
11
10
  // Test event types
12
11
  type TestEvent =
13
- | PublishableMessage<'user.created', { userId: string; email: string }>
14
- | PublishableMessage<'user.updated', { userId: string; changes: string[] }>
15
- | PublishableMessage<'user.deleted', { userId: string }>;
12
+ | PublishableMessage<'user.created', { userId: string; email: string }>
13
+ | PublishableMessage<'user.updated', { userId: string; changes: string[] }>
14
+ | PublishableMessage<'user.deleted', { userId: string }>;
16
15
 
17
16
  describe('publishEndpointEvents', () => {
18
- const mockLogger: Logger = {
19
- debug: vi.fn(),
20
- info: vi.fn(),
21
- warn: vi.fn(),
22
- error: vi.fn(),
23
- fatal: vi.fn(),
24
- trace: vi.fn(),
25
- child: vi.fn(() => mockLogger),
26
- };
27
- const debugSpy = mockLogger.debug as any;
28
- const warnSpy = mockLogger.warn as any;
29
- const errorSpy = mockLogger.error as any;
30
-
31
- const serviceDiscovery = ServiceDiscovery.getInstance(
32
- mockLogger,
33
- new EnvironmentParser({}),
34
- );
35
-
36
- beforeEach(() => {
37
- vi.clearAllMocks();
38
- });
39
-
40
- it('should return early when no events are defined', async () => {
41
- const endpoint = e
42
- .logger(mockLogger)
43
- .post('/test')
44
- .output(z.object({ success: z.boolean() }))
45
- .handle(async () => ({ success: true }));
46
-
47
- await publishConstructEvents(
48
- endpoint,
49
- { success: true },
50
- serviceDiscovery as ServiceDiscovery<any, any>,
51
- );
52
-
53
- expect(debugSpy).toHaveBeenCalledWith('No events to publish');
54
- });
55
-
56
- it('should return early when events array is empty', async () => {
57
- const mockPublisher: EventPublisher<TestEvent> = {
58
- publish: vi.fn(),
59
- };
60
-
61
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
62
- serviceName: Math.random().toString(),
63
- register: vi.fn().mockResolvedValue(mockPublisher),
64
- };
65
-
66
- const endpoint = e
67
- .logger(mockLogger)
68
- .publisher(mockPublisherService)
69
- .post('/test')
70
- .output(z.object({ success: z.boolean() }))
71
- .handle(async () => ({ success: true }));
72
-
73
- await publishConstructEvents(
74
- endpoint,
75
- { success: true },
76
- serviceDiscovery as ServiceDiscovery<any, any>,
77
- );
78
-
79
- expect(debugSpy).toHaveBeenCalledWith('No events to publish');
80
- expect(mockPublisher.publish).not.toHaveBeenCalled();
81
- });
82
-
83
- it('should warn when publisher is not available', async () => {
84
- const outputSchema = z.object({ id: z.string(), email: z.string() });
85
-
86
- const endpoint = e
87
- .logger(mockLogger)
88
- .post('/test')
89
- .output(outputSchema)
90
-
91
- .event({
92
- // @ts-ignore
93
- type: 'user.created',
94
- // @ts-ignore
95
- payload: (response) => ({
96
- userId: response.id,
97
- email: response.email,
98
- }),
99
- })
100
- .handle(async () => ({ id: '123', email: 'test@example.com' }));
101
-
102
- await publishConstructEvents(
103
- endpoint,
104
- {
105
- id: '123',
106
- email: 'test@example.com',
107
- },
108
- serviceDiscovery as ServiceDiscovery<any, any>,
109
- );
110
-
111
- expect(warnSpy).toHaveBeenCalledWith('No publisher service available');
112
- });
113
-
114
- it('should publish single event successfully', async () => {
115
- const mockPublisher: EventPublisher<TestEvent> = {
116
- publish: vi.fn().mockResolvedValue(undefined),
117
- };
118
-
119
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
120
- serviceName: Math.random().toString(),
121
- register: vi.fn().mockResolvedValue(mockPublisher),
122
- };
123
-
124
- const outputSchema = z.object({ id: z.string(), email: z.string() });
125
-
126
- const endpoint = e
127
- .logger(mockLogger)
128
- .publisher(mockPublisherService)
129
- .post('/test')
130
- .output(outputSchema)
131
- .event({
132
- type: 'user.created',
133
- payload: (response) => ({
134
- userId: response.id,
135
- email: response.email,
136
- }),
137
- })
138
- .handle(async () => ({ id: '123', email: 'test@example.com' }));
139
-
140
- await publishConstructEvents(
141
- endpoint,
142
- {
143
- id: '123',
144
- email: 'test@example.com',
145
- },
146
- serviceDiscovery as ServiceDiscovery<any, any>,
147
- );
148
-
149
- expect(debugSpy).toHaveBeenCalledWith(
150
- { event: 'user.created' },
151
- 'Processing event',
152
- );
153
- expect(debugSpy).toHaveBeenCalledWith(
154
- { eventCount: 1 },
155
- 'Publishing events',
156
- );
157
- expect(mockPublisher.publish).toHaveBeenCalledWith([
158
- {
159
- type: 'user.created',
160
- payload: { userId: '123', email: 'test@example.com' },
161
- },
162
- ]);
163
- });
164
-
165
- it('should publish multiple events successfully', async () => {
166
- const mockPublisher: EventPublisher<TestEvent> = {
167
- publish: vi.fn().mockResolvedValue(undefined),
168
- };
169
-
170
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
171
- serviceName: Math.random().toString(),
172
- register: vi.fn().mockResolvedValue(mockPublisher),
173
- };
174
-
175
- const outputSchema = z.object({ id: z.string(), email: z.string() });
176
-
177
- const endpoint = e
178
- .publisher(mockPublisherService)
179
-
180
- .post('/test')
181
- .output(outputSchema)
182
- .event({
183
- type: 'user.created',
184
- payload: (response) => ({
185
- userId: response.id,
186
- email: response.email,
187
- }),
188
- })
189
- .event({
190
- type: 'user.updated',
191
- payload: (response) => ({ userId: response.id, changes: ['email'] }),
192
- })
193
-
194
- .handle(async () => ({ id: '123', email: 'test@example.com' }));
195
-
196
- await publishConstructEvents(
197
- endpoint,
198
- {
199
- id: '123',
200
- email: 'test@example.com',
201
- },
202
- serviceDiscovery as ServiceDiscovery<any, any>,
203
- );
204
-
205
- expect(mockPublisher.publish).toHaveBeenCalledWith([
206
- {
207
- type: 'user.created',
208
- payload: { userId: '123', email: 'test@example.com' },
209
- },
210
- {
211
- type: 'user.updated',
212
- payload: { userId: '123', changes: ['email'] },
213
- },
214
- ]);
215
- });
216
-
217
- it('should respect when condition for events', async () => {
218
- const mockPublisher: EventPublisher<TestEvent> = {
219
- publish: vi.fn().mockResolvedValue(undefined),
220
- };
221
-
222
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
223
- serviceName: Math.random().toString(),
224
- register: vi.fn().mockResolvedValue(mockPublisher),
225
- };
226
-
227
- const outputSchema = z.object({
228
- id: z.string(),
229
- email: z.string(),
230
- isNew: z.boolean(),
231
- });
232
-
233
- const endpoint = e
234
- .logger(mockLogger)
235
- .publisher(mockPublisherService)
236
- .post('/test')
237
- .output(outputSchema)
238
- .event({
239
- type: 'user.created',
240
- payload: (response) => ({
241
- userId: response.id,
242
- email: response.email,
243
- }),
244
- when: (response) => response.isNew === true,
245
- })
246
- .event({
247
- type: 'user.updated',
248
- payload: (response) => ({ userId: response.id, changes: ['email'] }),
249
- when: (response) => response.isNew === false,
250
- })
251
- .handle(async () => ({
252
- id: '123',
253
- email: 'test@example.com',
254
- isNew: false,
255
- }));
256
-
257
- await publishConstructEvents(
258
- endpoint,
259
- {
260
- id: '123',
261
- email: 'test@example.com',
262
- isNew: false,
263
- },
264
- serviceDiscovery as ServiceDiscovery<any, any>,
265
- );
266
-
267
- // Only the user.updated event should be published
268
- expect(mockPublisher.publish).toHaveBeenCalledWith([
269
- {
270
- type: 'user.updated',
271
- payload: { userId: '123', changes: ['email'] },
272
- },
273
- ]);
274
- });
275
-
276
- it('should not publish any events when all when conditions are false', async () => {
277
- const mockPublisher: EventPublisher<TestEvent> = {
278
- publish: vi.fn().mockResolvedValue(undefined),
279
- };
280
-
281
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
282
- serviceName: Math.random().toString(),
283
- register: vi.fn().mockResolvedValue(mockPublisher),
284
- };
285
-
286
- const outputSchema = z.object({ id: z.string(), email: z.string() });
287
-
288
- const endpoint = e
289
- .logger(mockLogger)
290
- .publisher(mockPublisherService)
291
- .post('/test')
292
- .output(outputSchema)
293
- .event({
294
- type: 'user.created',
295
- payload: (response) => ({
296
- userId: response.id,
297
- email: response.email,
298
- }),
299
- when: () => false,
300
- })
301
- .event({
302
- type: 'user.updated',
303
- payload: (response) => ({ userId: response.id, changes: ['email'] }),
304
- when: () => false,
305
- })
306
- .handle(async () => ({ id: '123', email: 'test@example.com' }));
307
-
308
- await publishConstructEvents(
309
- endpoint,
310
- {
311
- id: '123',
312
- email: 'test@example.com',
313
- },
314
- serviceDiscovery as ServiceDiscovery<any, any>,
315
- );
316
-
317
- expect(mockPublisher.publish).not.toHaveBeenCalled();
318
- });
319
-
320
- it('should handle async payload functions', async () => {
321
- const mockPublisher: EventPublisher<TestEvent> = {
322
- publish: vi.fn().mockResolvedValue(undefined),
323
- };
324
-
325
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
326
- serviceName: Math.random().toString(),
327
- register: vi.fn().mockResolvedValue(mockPublisher),
328
- };
329
-
330
- const outputSchema = z.object({ id: z.string(), email: z.string() });
331
-
332
- const endpoint = e
333
- .logger(mockLogger)
334
- .publisher(mockPublisherService)
335
- .post('/test')
336
- .output(outputSchema)
337
- .event({
338
- type: 'user.created',
339
- payload: (response) => ({
340
- // Simulate async operation
341
- userId: response.id,
342
- email: response.email,
343
- }),
344
- })
345
- .handle(async () => ({ id: '123', email: 'test@example.com' }));
346
-
347
- await publishConstructEvents(
348
- endpoint,
349
- {
350
- id: '123',
351
- email: 'test@example.com',
352
- },
353
- serviceDiscovery as ServiceDiscovery<any, any>,
354
- );
355
-
356
- expect(mockPublisher.publish).toHaveBeenCalledWith([
357
- {
358
- type: 'user.created',
359
- payload: { userId: '123', email: 'test@example.com' },
360
- },
361
- ]);
362
- });
363
-
364
- it('should catch and log publish errors', async () => {
365
- const publishError = new Error('Failed to connect to event bus');
366
- const mockPublisher: EventPublisher<TestEvent> = {
367
- publish: vi.fn().mockRejectedValue(publishError),
368
- };
369
-
370
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
371
- serviceName: Math.random().toString(),
372
- register: vi.fn().mockResolvedValue(mockPublisher),
373
- };
374
-
375
- const outputSchema = z.object({ id: z.string(), email: z.string() });
376
-
377
- const endpoint = e
378
- .logger(mockLogger)
379
- .publisher(mockPublisherService)
380
- .post('/test')
381
- .output(outputSchema)
382
- .event({
383
- type: 'user.created',
384
- payload: (response) => ({
385
- userId: response.id,
386
- email: response.email,
387
- }),
388
- })
389
- .handle(async () => ({ id: '123', email: 'test@example.com' }));
390
-
391
- // Should not throw
392
- await publishConstructEvents(
393
- endpoint,
394
- {
395
- id: '123',
396
- email: 'test@example.com',
397
- },
398
- serviceDiscovery as ServiceDiscovery<any, any>,
399
- );
400
-
401
- expect(errorSpy).toHaveBeenCalledWith(
402
- publishError,
403
- 'Failed to publish events',
404
- );
405
- });
406
-
407
- it('should preserve additional event properties', async () => {
408
- const mockPublisher: EventPublisher<TestEvent> = {
409
- publish: vi.fn().mockResolvedValue(undefined),
410
- };
411
-
412
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
413
- serviceName: Math.random().toString(),
414
- register: vi.fn().mockResolvedValue(mockPublisher),
415
- };
416
-
417
- const outputSchema = z.object({ id: z.string(), email: z.string() });
418
-
419
- const endpoint = e
420
- .logger(mockLogger)
421
- .publisher(mockPublisherService)
422
- .post('/test')
423
- .output(outputSchema)
424
- .event({
425
- type: 'user.created',
426
- payload: (response) => ({
427
- userId: response.id,
428
- email: response.email,
429
- }),
430
- // Additional properties that should be preserved
431
- metadata: { source: 'api', version: '1.0' },
432
- priority: 'high',
433
- })
434
- .handle(async () => ({ id: '123', email: 'test@example.com' }));
435
-
436
- await publishConstructEvents(
437
- endpoint,
438
- {
439
- id: '123',
440
- email: 'test@example.com',
441
- },
442
- serviceDiscovery as ServiceDiscovery<any, any>,
443
- );
444
-
445
- expect(mockPublisher.publish).toHaveBeenCalledWith([
446
- {
447
- type: 'user.created',
448
- payload: { userId: '123', email: 'test@example.com' },
449
- metadata: { source: 'api', version: '1.0' },
450
- priority: 'high',
451
- },
452
- ]);
453
- });
17
+ const mockLogger: Logger = {
18
+ debug: vi.fn(),
19
+ info: vi.fn(),
20
+ warn: vi.fn(),
21
+ error: vi.fn(),
22
+ fatal: vi.fn(),
23
+ trace: vi.fn(),
24
+ child: vi.fn(() => mockLogger),
25
+ };
26
+ const debugSpy = mockLogger.debug as any;
27
+ const warnSpy = mockLogger.warn as any;
28
+ const errorSpy = mockLogger.error as any;
29
+
30
+ const serviceDiscovery = ServiceDiscovery.getInstance(
31
+ new EnvironmentParser({}),
32
+ );
33
+
34
+ beforeEach(() => {
35
+ vi.clearAllMocks();
36
+ });
37
+
38
+ it('should return early when no events are defined', async () => {
39
+ const endpoint = e
40
+ .logger(mockLogger)
41
+ .post('/test')
42
+ .output(z.object({ success: z.boolean() }))
43
+ .handle(async () => ({ success: true }));
44
+
45
+ await publishConstructEvents(
46
+ endpoint,
47
+ { success: true },
48
+ serviceDiscovery as ServiceDiscovery<any, any>,
49
+ );
50
+
51
+ expect(debugSpy).toHaveBeenCalledWith('No events to publish');
52
+ });
53
+
54
+ it('should return early when events array is empty', async () => {
55
+ const mockPublisher: EventPublisher<TestEvent> = {
56
+ publish: vi.fn(),
57
+ };
58
+
59
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
60
+ serviceName: Math.random().toString(),
61
+ register: vi.fn().mockResolvedValue(mockPublisher),
62
+ };
63
+
64
+ const endpoint = e
65
+ .logger(mockLogger)
66
+ .publisher(mockPublisherService)
67
+ .post('/test')
68
+ .output(z.object({ success: z.boolean() }))
69
+ .handle(async () => ({ success: true }));
70
+
71
+ await publishConstructEvents(
72
+ endpoint,
73
+ { success: true },
74
+ serviceDiscovery as ServiceDiscovery<any, any>,
75
+ );
76
+
77
+ expect(debugSpy).toHaveBeenCalledWith('No events to publish');
78
+ expect(mockPublisher.publish).not.toHaveBeenCalled();
79
+ });
80
+
81
+ it('should warn when publisher is not available', async () => {
82
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
83
+
84
+ const endpoint = e
85
+ .logger(mockLogger)
86
+ .post('/test')
87
+ .output(outputSchema)
88
+
89
+ .event({
90
+ // @ts-expect-error
91
+ type: 'user.created',
92
+ // @ts-expect-error
93
+ payload: (response) => ({
94
+ userId: response.id,
95
+ email: response.email,
96
+ }),
97
+ })
98
+ .handle(async () => ({ id: '123', email: 'test@example.com' }));
99
+
100
+ await publishConstructEvents(
101
+ endpoint,
102
+ {
103
+ id: '123',
104
+ email: 'test@example.com',
105
+ },
106
+ serviceDiscovery as ServiceDiscovery<any, any>,
107
+ );
108
+
109
+ expect(warnSpy).toHaveBeenCalledWith('No publisher service available');
110
+ });
111
+
112
+ it('should publish single event successfully', async () => {
113
+ const mockPublisher: EventPublisher<TestEvent> = {
114
+ publish: vi.fn().mockResolvedValue(undefined),
115
+ };
116
+
117
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
118
+ serviceName: Math.random().toString(),
119
+ register: vi.fn().mockResolvedValue(mockPublisher),
120
+ };
121
+
122
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
123
+
124
+ const endpoint = e
125
+ .logger(mockLogger)
126
+ .publisher(mockPublisherService)
127
+ .post('/test')
128
+ .output(outputSchema)
129
+ .event({
130
+ type: 'user.created',
131
+ payload: (response) => ({
132
+ userId: response.id,
133
+ email: response.email,
134
+ }),
135
+ })
136
+ .handle(async () => ({ id: '123', email: 'test@example.com' }));
137
+
138
+ await publishConstructEvents(
139
+ endpoint,
140
+ {
141
+ id: '123',
142
+ email: 'test@example.com',
143
+ },
144
+ serviceDiscovery as ServiceDiscovery<any, any>,
145
+ );
146
+
147
+ expect(debugSpy).toHaveBeenCalledWith(
148
+ { event: 'user.created' },
149
+ 'Processing event',
150
+ );
151
+ expect(debugSpy).toHaveBeenCalledWith(
152
+ { eventCount: 1 },
153
+ 'Publishing events',
154
+ );
155
+ expect(mockPublisher.publish).toHaveBeenCalledWith([
156
+ {
157
+ type: 'user.created',
158
+ payload: { userId: '123', email: 'test@example.com' },
159
+ },
160
+ ]);
161
+ });
162
+
163
+ it('should publish multiple events successfully', async () => {
164
+ const mockPublisher: EventPublisher<TestEvent> = {
165
+ publish: vi.fn().mockResolvedValue(undefined),
166
+ };
167
+
168
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
169
+ serviceName: Math.random().toString(),
170
+ register: vi.fn().mockResolvedValue(mockPublisher),
171
+ };
172
+
173
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
174
+
175
+ const endpoint = e
176
+ .publisher(mockPublisherService)
177
+
178
+ .post('/test')
179
+ .output(outputSchema)
180
+ .event({
181
+ type: 'user.created',
182
+ payload: (response) => ({
183
+ userId: response.id,
184
+ email: response.email,
185
+ }),
186
+ })
187
+ .event({
188
+ type: 'user.updated',
189
+ payload: (response) => ({ userId: response.id, changes: ['email'] }),
190
+ })
191
+
192
+ .handle(async () => ({ id: '123', email: 'test@example.com' }));
193
+
194
+ await publishConstructEvents(
195
+ endpoint,
196
+ {
197
+ id: '123',
198
+ email: 'test@example.com',
199
+ },
200
+ serviceDiscovery as ServiceDiscovery<any, any>,
201
+ );
202
+
203
+ expect(mockPublisher.publish).toHaveBeenCalledWith([
204
+ {
205
+ type: 'user.created',
206
+ payload: { userId: '123', email: 'test@example.com' },
207
+ },
208
+ {
209
+ type: 'user.updated',
210
+ payload: { userId: '123', changes: ['email'] },
211
+ },
212
+ ]);
213
+ });
214
+
215
+ it('should respect when condition for events', async () => {
216
+ const mockPublisher: EventPublisher<TestEvent> = {
217
+ publish: vi.fn().mockResolvedValue(undefined),
218
+ };
219
+
220
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
221
+ serviceName: Math.random().toString(),
222
+ register: vi.fn().mockResolvedValue(mockPublisher),
223
+ };
224
+
225
+ const outputSchema = z.object({
226
+ id: z.string(),
227
+ email: z.string(),
228
+ isNew: z.boolean(),
229
+ });
230
+
231
+ const endpoint = e
232
+ .logger(mockLogger)
233
+ .publisher(mockPublisherService)
234
+ .post('/test')
235
+ .output(outputSchema)
236
+ .event({
237
+ type: 'user.created',
238
+ payload: (response) => ({
239
+ userId: response.id,
240
+ email: response.email,
241
+ }),
242
+ when: (response) => response.isNew === true,
243
+ })
244
+ .event({
245
+ type: 'user.updated',
246
+ payload: (response) => ({ userId: response.id, changes: ['email'] }),
247
+ when: (response) => response.isNew === false,
248
+ })
249
+ .handle(async () => ({
250
+ id: '123',
251
+ email: 'test@example.com',
252
+ isNew: false,
253
+ }));
254
+
255
+ await publishConstructEvents(
256
+ endpoint,
257
+ {
258
+ id: '123',
259
+ email: 'test@example.com',
260
+ isNew: false,
261
+ },
262
+ serviceDiscovery as ServiceDiscovery<any, any>,
263
+ );
264
+
265
+ // Only the user.updated event should be published
266
+ expect(mockPublisher.publish).toHaveBeenCalledWith([
267
+ {
268
+ type: 'user.updated',
269
+ payload: { userId: '123', changes: ['email'] },
270
+ },
271
+ ]);
272
+ });
273
+
274
+ it('should not publish any events when all when conditions are false', async () => {
275
+ const mockPublisher: EventPublisher<TestEvent> = {
276
+ publish: vi.fn().mockResolvedValue(undefined),
277
+ };
278
+
279
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
280
+ serviceName: Math.random().toString(),
281
+ register: vi.fn().mockResolvedValue(mockPublisher),
282
+ };
283
+
284
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
285
+
286
+ const endpoint = e
287
+ .logger(mockLogger)
288
+ .publisher(mockPublisherService)
289
+ .post('/test')
290
+ .output(outputSchema)
291
+ .event({
292
+ type: 'user.created',
293
+ payload: (response) => ({
294
+ userId: response.id,
295
+ email: response.email,
296
+ }),
297
+ when: () => false,
298
+ })
299
+ .event({
300
+ type: 'user.updated',
301
+ payload: (response) => ({ userId: response.id, changes: ['email'] }),
302
+ when: () => false,
303
+ })
304
+ .handle(async () => ({ id: '123', email: 'test@example.com' }));
305
+
306
+ await publishConstructEvents(
307
+ endpoint,
308
+ {
309
+ id: '123',
310
+ email: 'test@example.com',
311
+ },
312
+ serviceDiscovery as ServiceDiscovery<any, any>,
313
+ );
314
+
315
+ expect(mockPublisher.publish).not.toHaveBeenCalled();
316
+ });
317
+
318
+ it('should handle async payload functions', async () => {
319
+ const mockPublisher: EventPublisher<TestEvent> = {
320
+ publish: vi.fn().mockResolvedValue(undefined),
321
+ };
322
+
323
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
324
+ serviceName: Math.random().toString(),
325
+ register: vi.fn().mockResolvedValue(mockPublisher),
326
+ };
327
+
328
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
329
+
330
+ const endpoint = e
331
+ .logger(mockLogger)
332
+ .publisher(mockPublisherService)
333
+ .post('/test')
334
+ .output(outputSchema)
335
+ .event({
336
+ type: 'user.created',
337
+ payload: (response) => ({
338
+ // Simulate async operation
339
+ userId: response.id,
340
+ email: response.email,
341
+ }),
342
+ })
343
+ .handle(async () => ({ id: '123', email: 'test@example.com' }));
344
+
345
+ await publishConstructEvents(
346
+ endpoint,
347
+ {
348
+ id: '123',
349
+ email: 'test@example.com',
350
+ },
351
+ serviceDiscovery as ServiceDiscovery<any, any>,
352
+ );
353
+
354
+ expect(mockPublisher.publish).toHaveBeenCalledWith([
355
+ {
356
+ type: 'user.created',
357
+ payload: { userId: '123', email: 'test@example.com' },
358
+ },
359
+ ]);
360
+ });
361
+
362
+ it('should catch and log publish errors', async () => {
363
+ const publishError = new Error('Failed to connect to event bus');
364
+ const mockPublisher: EventPublisher<TestEvent> = {
365
+ publish: vi.fn().mockRejectedValue(publishError),
366
+ };
367
+
368
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
369
+ serviceName: Math.random().toString(),
370
+ register: vi.fn().mockResolvedValue(mockPublisher),
371
+ };
372
+
373
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
374
+
375
+ const endpoint = e
376
+ .logger(mockLogger)
377
+ .publisher(mockPublisherService)
378
+ .post('/test')
379
+ .output(outputSchema)
380
+ .event({
381
+ type: 'user.created',
382
+ payload: (response) => ({
383
+ userId: response.id,
384
+ email: response.email,
385
+ }),
386
+ })
387
+ .handle(async () => ({ id: '123', email: 'test@example.com' }));
388
+
389
+ // Should not throw
390
+ await publishConstructEvents(
391
+ endpoint,
392
+ {
393
+ id: '123',
394
+ email: 'test@example.com',
395
+ },
396
+ serviceDiscovery as ServiceDiscovery<any, any>,
397
+ );
398
+
399
+ expect(errorSpy).toHaveBeenCalledWith(
400
+ publishError,
401
+ 'Failed to publish events',
402
+ );
403
+ });
404
+
405
+ it('should preserve additional event properties', async () => {
406
+ const mockPublisher: EventPublisher<TestEvent> = {
407
+ publish: vi.fn().mockResolvedValue(undefined),
408
+ };
409
+
410
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
411
+ serviceName: Math.random().toString(),
412
+ register: vi.fn().mockResolvedValue(mockPublisher),
413
+ };
414
+
415
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
416
+
417
+ const endpoint = e
418
+ .logger(mockLogger)
419
+ .publisher(mockPublisherService)
420
+ .post('/test')
421
+ .output(outputSchema)
422
+ .event({
423
+ type: 'user.created',
424
+ payload: (response) => ({
425
+ userId: response.id,
426
+ email: response.email,
427
+ }),
428
+ // Additional properties that should be preserved
429
+ metadata: { source: 'api', version: '1.0' },
430
+ priority: 'high',
431
+ })
432
+ .handle(async () => ({ id: '123', email: 'test@example.com' }));
433
+
434
+ await publishConstructEvents(
435
+ endpoint,
436
+ {
437
+ id: '123',
438
+ email: 'test@example.com',
439
+ },
440
+ serviceDiscovery as ServiceDiscovery<any, any>,
441
+ );
442
+
443
+ expect(mockPublisher.publish).toHaveBeenCalledWith([
444
+ {
445
+ type: 'user.created',
446
+ payload: { userId: '123', email: 'test@example.com' },
447
+ metadata: { source: 'api', version: '1.0' },
448
+ priority: 'high',
449
+ },
450
+ ]);
451
+ });
454
452
  });