@geekmidas/constructs 0.3.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. package/dist/{AWSLambdaFunction-C54a1doJ.mjs → AWSLambdaFunction-BMTaCrG9.mjs} +6 -6
  2. package/dist/AWSLambdaFunction-BMTaCrG9.mjs.map +1 -0
  3. package/dist/{AWSLambdaFunction-BdebRMUh.d.mts → AWSLambdaFunction-BfLF5vNa.d.cts} +6 -6
  4. package/dist/AWSLambdaFunction-BfLF5vNa.d.cts.map +1 -0
  5. package/dist/{AWSLambdaFunction-EPGY4s7i.cjs → AWSLambdaFunction-C1gRqLO7.cjs} +6 -6
  6. package/dist/AWSLambdaFunction-C1gRqLO7.cjs.map +1 -0
  7. package/dist/{AWSLambdaFunction-D0tEOTXQ.d.cts → AWSLambdaFunction-K94K8JU2.d.mts} +6 -6
  8. package/dist/AWSLambdaFunction-K94K8JU2.d.mts.map +1 -0
  9. package/dist/{AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts → AWSLambdaSubscriberAdaptor-B2Gk3fgx.d.cts} +2 -2
  10. package/dist/AWSLambdaSubscriberAdaptor-B2Gk3fgx.d.cts.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-BNcYYZ-P.cjs → AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs} +3 -3
  14. package/dist/AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs.map +1 -0
  15. package/dist/{AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts → AWSLambdaSubscriberAdaptor-QuMFwltJ.d.mts} +2 -2
  16. package/dist/AWSLambdaSubscriberAdaptor-QuMFwltJ.d.mts.map +1 -0
  17. package/dist/{AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs → AmazonApiGatewayEndpointAdaptor-B4gLJ2dx.mjs} +56 -14
  18. package/dist/AmazonApiGatewayEndpointAdaptor-B4gLJ2dx.mjs.map +1 -0
  19. package/dist/{AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts → AmazonApiGatewayEndpointAdaptor-C987ZCsM.d.cts} +51 -5
  20. package/dist/AmazonApiGatewayEndpointAdaptor-C987ZCsM.d.cts.map +1 -0
  21. package/dist/{AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs → AmazonApiGatewayEndpointAdaptor-CwRKMRr_.cjs} +55 -13
  22. package/dist/AmazonApiGatewayEndpointAdaptor-CwRKMRr_.cjs.map +1 -0
  23. package/dist/{AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts → AmazonApiGatewayEndpointAdaptor-DpPfO6Vj.d.mts} +52 -6
  24. package/dist/AmazonApiGatewayEndpointAdaptor-DpPfO6Vj.d.mts.map +1 -0
  25. package/dist/{AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs → AmazonApiGatewayV1EndpointAdaptor-BeZMu5DZ.cjs} +4 -4
  26. package/dist/AmazonApiGatewayV1EndpointAdaptor-BeZMu5DZ.cjs.map +1 -0
  27. package/dist/{AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts → AmazonApiGatewayV1EndpointAdaptor-DI_5kdqw.d.mts} +5 -5
  28. package/dist/AmazonApiGatewayV1EndpointAdaptor-DI_5kdqw.d.mts.map +1 -0
  29. package/dist/{AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts → AmazonApiGatewayV1EndpointAdaptor-DkGMOpoB.d.cts} +4 -4
  30. package/dist/AmazonApiGatewayV1EndpointAdaptor-DkGMOpoB.d.cts.map +1 -0
  31. package/dist/{AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs → AmazonApiGatewayV1EndpointAdaptor-VccB6FKp.mjs} +4 -4
  32. package/dist/AmazonApiGatewayV1EndpointAdaptor-VccB6FKp.mjs.map +1 -0
  33. package/dist/{AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts → AmazonApiGatewayV2EndpointAdaptor-BtBnMJS_.d.cts} +4 -6
  34. package/dist/AmazonApiGatewayV2EndpointAdaptor-BtBnMJS_.d.cts.map +1 -0
  35. package/dist/{AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs → AmazonApiGatewayV2EndpointAdaptor-BwsL9Gia.cjs} +4 -4
  36. package/dist/AmazonApiGatewayV2EndpointAdaptor-BwsL9Gia.cjs.map +1 -0
  37. package/dist/{AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs → AmazonApiGatewayV2EndpointAdaptor-CljxmUfz.mjs} +4 -4
  38. package/dist/AmazonApiGatewayV2EndpointAdaptor-CljxmUfz.mjs.map +1 -0
  39. package/dist/{AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts → AmazonApiGatewayV2EndpointAdaptor-DnCoqlvw.d.mts} +5 -7
  40. package/dist/AmazonApiGatewayV2EndpointAdaptor-DnCoqlvw.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-BAtutR6q.d.cts → BaseFunctionBuilder-BqZCqIeU.d.mts} +3 -3
  50. package/dist/BaseFunctionBuilder-BqZCqIeU.d.mts.map +1 -0
  51. package/dist/{BaseFunctionBuilder-DRY419e7.d.mts → BaseFunctionBuilder-CcK691ni.d.cts} +3 -3
  52. package/dist/BaseFunctionBuilder-CcK691ni.d.cts.map +1 -0
  53. package/dist/{BaseFunctionBuilder-Czi1Jwza.mjs → BaseFunctionBuilder-Dsqe6pnn.mjs} +2 -2
  54. package/dist/BaseFunctionBuilder-Dsqe6pnn.mjs.map +1 -0
  55. package/dist/{BaseFunctionBuilder-MYG3C9ug.cjs → BaseFunctionBuilder-Z0XwrKB5.cjs} +2 -2
  56. package/dist/BaseFunctionBuilder-Z0XwrKB5.cjs.map +1 -0
  57. package/dist/Construct-BNDLJJfD.mjs +150 -0
  58. package/dist/Construct-BNDLJJfD.mjs.map +1 -0
  59. package/dist/{Construct-Ba5cMxib.cjs → Construct-CPrCF8NK.cjs} +93 -9
  60. package/dist/Construct-CPrCF8NK.cjs.map +1 -0
  61. package/dist/{Construct-C4rPE67v.d.cts → Construct-Dl0l2d8d.d.cts} +30 -4
  62. package/dist/Construct-Dl0l2d8d.d.cts.map +1 -0
  63. package/dist/{Construct-XrijZFFh.d.mts → Construct-E8QPyHh4.d.mts} +30 -4
  64. package/dist/Construct-E8QPyHh4.d.mts.map +1 -0
  65. package/dist/Construct.cjs +4 -2
  66. package/dist/Construct.d.cts +2 -2
  67. package/dist/Construct.d.mts +2 -2
  68. package/dist/Construct.mjs +2 -2
  69. package/dist/{Cron-CGF4YAfM.cjs → Cron-BmPNTLla.cjs} +3 -3
  70. package/dist/Cron-BmPNTLla.cjs.map +1 -0
  71. package/dist/{Cron-BxhGs5up.mjs → Cron-BpJONaFv.mjs} +3 -3
  72. package/dist/Cron-BpJONaFv.mjs.map +1 -0
  73. package/dist/{Cron-bDLcTvV5.d.cts → Cron-CnmLLh3E.d.mts} +3 -3
  74. package/dist/Cron-CnmLLh3E.d.mts.map +1 -0
  75. package/dist/{Cron-cdjlSKNp.d.mts → Cron-DufAeHry.d.cts} +3 -3
  76. package/dist/Cron-DufAeHry.d.cts.map +1 -0
  77. package/dist/{CronBuilder-d2jh-IB2.mjs → CronBuilder-02HSIHJr.mjs} +4 -4
  78. package/dist/CronBuilder-02HSIHJr.mjs.map +1 -0
  79. package/dist/{CronBuilder-CcxKRtVP.cjs → CronBuilder-DC2zUS8a.cjs} +4 -4
  80. package/dist/CronBuilder-DC2zUS8a.cjs.map +1 -0
  81. package/dist/{CronBuilder-BC4m5-p1.d.mts → CronBuilder-anUSbMxb.d.mts} +4 -4
  82. package/dist/CronBuilder-anUSbMxb.d.mts.map +1 -0
  83. package/dist/{CronBuilder-DKVXyE0Q.d.cts → CronBuilder-fyqf_X8n.d.cts} +4 -4
  84. package/dist/CronBuilder-fyqf_X8n.d.cts.map +1 -0
  85. package/dist/{Endpoint-BVGZXFyV.cjs → Endpoint-BCWVbi8l.cjs} +6 -6
  86. package/dist/Endpoint-BCWVbi8l.cjs.map +1 -0
  87. package/dist/{Endpoint-BPv9_-m_.d.cts → Endpoint-BlcHiGNx.d.cts} +3 -3
  88. package/dist/Endpoint-BlcHiGNx.d.cts.map +1 -0
  89. package/dist/{Endpoint-BdwG75G_.d.mts → Endpoint-DEHuy46S.d.mts} +4 -4
  90. package/dist/Endpoint-DEHuy46S.d.mts.map +1 -0
  91. package/dist/{Endpoint-CuOEswxJ.mjs → Endpoint-ygxv2Ia6.mjs} +6 -6
  92. package/dist/Endpoint-ygxv2Ia6.mjs.map +1 -0
  93. package/dist/{EndpointBuilder-DIy_m1bu.d.cts → EndpointBuilder-DPLAUHqg.d.cts} +4 -4
  94. package/dist/EndpointBuilder-DPLAUHqg.d.cts.map +1 -0
  95. package/dist/{EndpointBuilder-B3az942t.d.mts → EndpointBuilder-DaeCeneF.d.mts} +5 -5
  96. package/dist/EndpointBuilder-DaeCeneF.d.mts.map +1 -0
  97. package/dist/{EndpointBuilder-Cgj1P_ra.cjs → EndpointBuilder-J5D67Y6a.cjs} +6 -6
  98. package/dist/EndpointBuilder-J5D67Y6a.cjs.map +1 -0
  99. package/dist/{EndpointBuilder-DnCB1h1j.mjs → EndpointBuilder-tn4zqoyw.mjs} +6 -6
  100. package/dist/EndpointBuilder-tn4zqoyw.mjs.map +1 -0
  101. package/dist/{EndpointFactory-CbdxPCIH.mjs → EndpointFactory-CIUZTTAF.mjs} +7 -7
  102. package/dist/EndpointFactory-CIUZTTAF.mjs.map +1 -0
  103. package/dist/{EndpointFactory-CyPbm3AD.d.cts → EndpointFactory-CiKcb5PX.d.cts} +4 -4
  104. package/dist/EndpointFactory-CiKcb5PX.d.cts.map +1 -0
  105. package/dist/{EndpointFactory-C-0nE6Jg.d.mts → EndpointFactory-DufM0t2z.d.mts} +4 -4
  106. package/dist/EndpointFactory-DufM0t2z.d.mts.map +1 -0
  107. package/dist/{EndpointFactory-CYj6BYok.cjs → EndpointFactory-d5uwWFkK.cjs} +7 -7
  108. package/dist/EndpointFactory-d5uwWFkK.cjs.map +1 -0
  109. package/dist/{Function-DDZb1525.cjs → Function-2qWSZqYB.cjs} +3 -3
  110. package/dist/Function-2qWSZqYB.cjs.map +1 -0
  111. package/dist/{Function-Cf7f_kCz.d.cts → Function-CbEohg13.d.cts} +3 -3
  112. package/dist/Function-CbEohg13.d.cts.map +1 -0
  113. package/dist/{Function-BVHqIDp9.mjs → Function-CdF1HmFu.mjs} +3 -3
  114. package/dist/Function-CdF1HmFu.mjs.map +1 -0
  115. package/dist/{Function-DN2G6OT5.d.mts → Function-EjIOLxlh.d.mts} +3 -3
  116. package/dist/Function-EjIOLxlh.d.mts.map +1 -0
  117. package/dist/{FunctionBuilder-DswJ-9sD.cjs → FunctionBuilder-B-pbgm09.cjs} +4 -4
  118. package/dist/FunctionBuilder-B-pbgm09.cjs.map +1 -0
  119. package/dist/{FunctionBuilder-CJBzzXL3.d.cts → FunctionBuilder-CX3ooNdq.d.cts} +4 -4
  120. package/dist/FunctionBuilder-CX3ooNdq.d.cts.map +1 -0
  121. package/dist/{FunctionBuilder-Cxx8D2na.d.mts → FunctionBuilder-D11ytDyy.d.mts} +4 -4
  122. package/dist/FunctionBuilder-D11ytDyy.d.mts.map +1 -0
  123. package/dist/{FunctionBuilder-CrDYgfiI.mjs → FunctionBuilder-DaWVthAJ.mjs} +4 -4
  124. package/dist/FunctionBuilder-DaWVthAJ.mjs.map +1 -0
  125. package/dist/{FunctionExecutionWrapper-DF260Aaj.d.mts → FunctionExecutionWrapper-BJcRjH9Z.d.cts} +5 -5
  126. package/dist/FunctionExecutionWrapper-BJcRjH9Z.d.cts.map +1 -0
  127. package/dist/{FunctionExecutionWrapper-BYI2bGTL.cjs → FunctionExecutionWrapper-C6ChBNHs.cjs} +3 -3
  128. package/dist/FunctionExecutionWrapper-C6ChBNHs.cjs.map +1 -0
  129. package/dist/{FunctionExecutionWrapper-Qy8bmgFR.d.cts → FunctionExecutionWrapper-D3RNjGIR.d.mts} +5 -5
  130. package/dist/FunctionExecutionWrapper-D3RNjGIR.d.mts.map +1 -0
  131. package/dist/{FunctionExecutionWrapper-CLDh7Z2_.mjs → FunctionExecutionWrapper-Dj3pmXaN.mjs} +3 -3
  132. package/dist/FunctionExecutionWrapper-Dj3pmXaN.mjs.map +1 -0
  133. package/dist/{HonoEndpointAdaptor-BaPlUhz0.d.mts → HonoEndpointAdaptor-CKP6nrG2.d.mts} +11 -6
  134. package/dist/HonoEndpointAdaptor-CKP6nrG2.d.mts.map +1 -0
  135. package/dist/HonoEndpointAdaptor-Cc8Rnp9G.mjs +251 -0
  136. package/dist/HonoEndpointAdaptor-Cc8Rnp9G.mjs.map +1 -0
  137. package/dist/{HonoEndpointAdaptor-YcRHYALH.d.cts → HonoEndpointAdaptor-hrrvyfw9.d.cts} +10 -5
  138. package/dist/HonoEndpointAdaptor-hrrvyfw9.d.cts.map +1 -0
  139. package/dist/HonoEndpointAdaptor-xGnDZa3a.cjs +257 -0
  140. package/dist/HonoEndpointAdaptor-xGnDZa3a.cjs.map +1 -0
  141. package/dist/{Subscriber-COYMSevD.d.cts → Subscriber-BBcIOkhW.d.cts} +2 -2
  142. package/dist/Subscriber-BBcIOkhW.d.cts.map +1 -0
  143. package/dist/{Subscriber-ikctpU3I.d.mts → Subscriber-BpTAXvbM.d.mts} +2 -2
  144. package/dist/Subscriber-BpTAXvbM.d.mts.map +1 -0
  145. package/dist/{Subscriber-BiHjVXtM.cjs → Subscriber-CL4iYm01.cjs} +2 -2
  146. package/dist/Subscriber-CL4iYm01.cjs.map +1 -0
  147. package/dist/{Subscriber-BmPf9GFb.mjs → Subscriber-CZ8Smwd2.mjs} +2 -2
  148. package/dist/Subscriber-CZ8Smwd2.mjs.map +1 -0
  149. package/dist/{SubscriberBuilder-DJPEeYDJ.mjs → SubscriberBuilder-CxQg3TTm.mjs} +2 -2
  150. package/dist/SubscriberBuilder-CxQg3TTm.mjs.map +1 -0
  151. package/dist/{SubscriberBuilder-Cp1C-xtT.cjs → SubscriberBuilder-D0OS3hd7.cjs} +2 -2
  152. package/dist/SubscriberBuilder-D0OS3hd7.cjs.map +1 -0
  153. package/dist/{SubscriberBuilder-D_9zzllj.d.mts → SubscriberBuilder-D7IgufwB.d.cts} +3 -3
  154. package/dist/SubscriberBuilder-D7IgufwB.d.cts.map +1 -0
  155. package/dist/{SubscriberBuilder-ivHAGIVi.d.cts → SubscriberBuilder-DOFBbWLt.d.mts} +3 -3
  156. package/dist/SubscriberBuilder-DOFBbWLt.d.mts.map +1 -0
  157. package/dist/{TestEndpointAdaptor-DB7bREhS.d.mts → TestEndpointAdaptor-BnJusjf7.d.mts} +4 -4
  158. package/dist/TestEndpointAdaptor-BnJusjf7.d.mts.map +1 -0
  159. package/dist/TestEndpointAdaptor-CPL8ru6q.mjs +170 -0
  160. package/dist/TestEndpointAdaptor-CPL8ru6q.mjs.map +1 -0
  161. package/dist/TestEndpointAdaptor-Ca4K26_d.cjs +176 -0
  162. package/dist/TestEndpointAdaptor-Ca4K26_d.cjs.map +1 -0
  163. package/dist/{TestEndpointAdaptor-C10xBI--.d.cts → TestEndpointAdaptor-EPPTjntv.d.cts} +3 -3
  164. package/dist/TestEndpointAdaptor-EPPTjntv.d.cts.map +1 -0
  165. package/dist/adaptors/aws.cjs +12 -12
  166. package/dist/adaptors/aws.d.cts +15 -14
  167. package/dist/adaptors/aws.d.mts +16 -15
  168. package/dist/adaptors/aws.mjs +12 -12
  169. package/dist/adaptors/hono.cjs +10 -9
  170. package/dist/adaptors/hono.d.cts +8 -8
  171. package/dist/adaptors/hono.d.mts +9 -9
  172. package/dist/adaptors/hono.mjs +10 -9
  173. package/dist/adaptors/testing.cjs +8 -7
  174. package/dist/adaptors/testing.d.cts +8 -8
  175. package/dist/adaptors/testing.d.mts +9 -9
  176. package/dist/adaptors/testing.mjs +8 -7
  177. package/dist/crons/Cron.cjs +6 -6
  178. package/dist/crons/Cron.d.cts +6 -6
  179. package/dist/crons/Cron.d.mts +6 -6
  180. package/dist/crons/Cron.mjs +6 -6
  181. package/dist/crons/CronBuilder.cjs +7 -7
  182. package/dist/crons/CronBuilder.d.cts +7 -7
  183. package/dist/crons/CronBuilder.d.mts +7 -7
  184. package/dist/crons/CronBuilder.mjs +7 -7
  185. package/dist/crons/index.cjs +7 -7
  186. package/dist/crons/index.cjs.map +1 -1
  187. package/dist/crons/index.d.cts +11 -11
  188. package/dist/crons/index.d.mts +7 -7
  189. package/dist/crons/index.mjs +7 -7
  190. package/dist/crons/index.mjs.map +1 -1
  191. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +7 -7
  192. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +10 -9
  193. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +11 -10
  194. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +7 -7
  195. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +8 -8
  196. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +10 -9
  197. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +11 -10
  198. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +8 -8
  199. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +8 -8
  200. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +11 -10
  201. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +12 -11
  202. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +8 -8
  203. package/dist/endpoints/Authorizer.cjs +1 -1
  204. package/dist/endpoints/Authorizer.d.cts +1 -1
  205. package/dist/endpoints/Authorizer.d.mts +1 -1
  206. package/dist/endpoints/Authorizer.mjs +1 -1
  207. package/dist/endpoints/Endpoint.cjs +6 -6
  208. package/dist/endpoints/Endpoint.d.cts +7 -7
  209. package/dist/endpoints/Endpoint.d.mts +8 -8
  210. package/dist/endpoints/Endpoint.mjs +6 -6
  211. package/dist/endpoints/EndpointBuilder.cjs +9 -9
  212. package/dist/endpoints/EndpointBuilder.d.cts +8 -8
  213. package/dist/endpoints/EndpointBuilder.d.mts +9 -9
  214. package/dist/endpoints/EndpointBuilder.mjs +9 -9
  215. package/dist/endpoints/EndpointFactory.cjs +10 -10
  216. package/dist/endpoints/EndpointFactory.d.cts +9 -9
  217. package/dist/endpoints/EndpointFactory.d.mts +10 -10
  218. package/dist/endpoints/EndpointFactory.mjs +10 -10
  219. package/dist/endpoints/HonoEndpointAdaptor.cjs +10 -9
  220. package/dist/endpoints/HonoEndpointAdaptor.d.cts +8 -8
  221. package/dist/endpoints/HonoEndpointAdaptor.d.mts +9 -9
  222. package/dist/endpoints/HonoEndpointAdaptor.mjs +10 -9
  223. package/dist/endpoints/TestEndpointAdaptor.cjs +8 -7
  224. package/dist/endpoints/TestEndpointAdaptor.d.cts +8 -8
  225. package/dist/endpoints/TestEndpointAdaptor.d.mts +9 -9
  226. package/dist/endpoints/TestEndpointAdaptor.mjs +8 -7
  227. package/dist/endpoints/audit.d.cts +7 -7
  228. package/dist/endpoints/audit.d.mts +8 -8
  229. package/dist/endpoints/helpers.cjs +7 -7
  230. package/dist/endpoints/helpers.d.cts +7 -7
  231. package/dist/endpoints/helpers.d.cts.map +1 -1
  232. package/dist/endpoints/helpers.d.mts +8 -8
  233. package/dist/endpoints/helpers.d.mts.map +1 -1
  234. package/dist/endpoints/helpers.mjs +7 -7
  235. package/dist/endpoints/index.cjs +20 -10
  236. package/dist/endpoints/index.cjs.map +1 -1
  237. package/dist/endpoints/index.d.cts +14 -12
  238. package/dist/endpoints/index.d.cts.map +1 -1
  239. package/dist/endpoints/index.d.mts +15 -13
  240. package/dist/endpoints/index.d.mts.map +1 -1
  241. package/dist/endpoints/index.mjs +13 -11
  242. package/dist/endpoints/index.mjs.map +1 -1
  243. package/dist/endpoints/lazyAccessors.cjs +10 -0
  244. package/dist/endpoints/lazyAccessors.d.cts +10 -0
  245. package/dist/endpoints/lazyAccessors.d.mts +10 -0
  246. package/dist/endpoints/lazyAccessors.mjs +3 -0
  247. package/dist/endpoints/parseHonoQuery.cjs +1 -1
  248. package/dist/endpoints/parseHonoQuery.mjs +1 -1
  249. package/dist/endpoints/parseQueryParams.d.cts.map +1 -1
  250. package/dist/endpoints/parseQueryParams.d.mts.map +1 -1
  251. package/dist/endpoints/processAudits.d.cts +7 -7
  252. package/dist/endpoints/processAudits.d.cts.map +1 -1
  253. package/dist/endpoints/processAudits.d.mts +8 -8
  254. package/dist/endpoints/processAudits.d.mts.map +1 -1
  255. package/dist/endpoints/rls.cjs +1 -1
  256. package/dist/endpoints/rls.d.cts +7 -7
  257. package/dist/endpoints/rls.d.mts +8 -8
  258. package/dist/endpoints/rls.mjs +1 -1
  259. package/dist/functions/AWSLambdaFunction.cjs +6 -6
  260. package/dist/functions/AWSLambdaFunction.d.cts +4 -4
  261. package/dist/functions/AWSLambdaFunction.d.mts +4 -4
  262. package/dist/functions/AWSLambdaFunction.mjs +6 -6
  263. package/dist/functions/BaseFunctionBuilder.cjs +2 -2
  264. package/dist/functions/BaseFunctionBuilder.d.cts +2 -2
  265. package/dist/functions/BaseFunctionBuilder.d.mts +2 -2
  266. package/dist/functions/BaseFunctionBuilder.mjs +2 -2
  267. package/dist/functions/Function.cjs +2 -2
  268. package/dist/functions/Function.d.cts +2 -2
  269. package/dist/functions/Function.d.mts +2 -2
  270. package/dist/functions/Function.mjs +2 -2
  271. package/dist/functions/FunctionBuilder.cjs +4 -4
  272. package/dist/functions/FunctionBuilder.d.cts +4 -4
  273. package/dist/functions/FunctionBuilder.d.mts +4 -4
  274. package/dist/functions/FunctionBuilder.mjs +4 -4
  275. package/dist/functions/FunctionExecutionWrapper.cjs +5 -5
  276. package/dist/functions/FunctionExecutionWrapper.d.cts +3 -3
  277. package/dist/functions/FunctionExecutionWrapper.d.mts +3 -3
  278. package/dist/functions/FunctionExecutionWrapper.mjs +5 -5
  279. package/dist/functions/TestFunctionAdaptor.cjs +7 -7
  280. package/dist/functions/TestFunctionAdaptor.cjs.map +1 -1
  281. package/dist/functions/TestFunctionAdaptor.d.cts +3 -3
  282. package/dist/functions/TestFunctionAdaptor.d.cts.map +1 -1
  283. package/dist/functions/TestFunctionAdaptor.d.mts +3 -3
  284. package/dist/functions/TestFunctionAdaptor.d.mts.map +1 -1
  285. package/dist/functions/TestFunctionAdaptor.mjs +7 -7
  286. package/dist/functions/TestFunctionAdaptor.mjs.map +1 -1
  287. package/dist/functions/index.cjs +5 -5
  288. package/dist/functions/index.d.cts +5 -5
  289. package/dist/functions/index.d.mts +5 -5
  290. package/dist/functions/index.mjs +5 -5
  291. package/dist/{functions-fTid0RMK.cjs → functions-CUEv5NC3.cjs} +2 -2
  292. package/dist/functions-CUEv5NC3.cjs.map +1 -0
  293. package/dist/functions-DOYBrb7n.mjs +8 -0
  294. package/dist/functions-DOYBrb7n.mjs.map +1 -0
  295. package/dist/{helpers-ByRTDO_m.mjs → helpers-Dl1eszfi.mjs} +2 -2
  296. package/dist/helpers-Dl1eszfi.mjs.map +1 -0
  297. package/dist/{helpers-BcP1tXAi.cjs → helpers-QMdfdnvU.cjs} +2 -2
  298. package/dist/helpers-QMdfdnvU.cjs.map +1 -0
  299. package/dist/{index-BWzGIj06.d.mts → index-BrGtMlpJ.d.cts} +2 -2
  300. package/dist/index-BrGtMlpJ.d.cts.map +1 -0
  301. package/dist/index-Dn4py3Db.d.mts +12 -0
  302. package/dist/index-Dn4py3Db.d.mts.map +1 -0
  303. package/dist/index.cjs +4 -2
  304. package/dist/index.d.cts +3 -2
  305. package/dist/index.d.mts +4 -3
  306. package/dist/index.mjs +2 -2
  307. package/dist/lazyAccessors-B-Jgkg2o.mjs +175 -0
  308. package/dist/lazyAccessors-B-Jgkg2o.mjs.map +1 -0
  309. package/dist/lazyAccessors-B8Hhras9.cjs +223 -0
  310. package/dist/lazyAccessors-B8Hhras9.cjs.map +1 -0
  311. package/dist/lazyAccessors-BFAj2-S4.d.mts +49 -0
  312. package/dist/lazyAccessors-BFAj2-S4.d.mts.map +1 -0
  313. package/dist/lazyAccessors-knaNZuTN.d.cts +49 -0
  314. package/dist/lazyAccessors-knaNZuTN.d.cts.map +1 -0
  315. package/dist/{parseHonoQuery-CZC5_97v.cjs → parseHonoQuery-D4MhxTRc.cjs} +1 -1
  316. package/dist/parseHonoQuery-D4MhxTRc.cjs.map +1 -0
  317. package/dist/{parseHonoQuery-DDgIkTO4.mjs → parseHonoQuery-DpK3sGPc.mjs} +1 -1
  318. package/dist/parseHonoQuery-DpK3sGPc.mjs.map +1 -0
  319. package/dist/parseQueryParams-BSNkjmZ9.cjs.map +1 -1
  320. package/dist/parseQueryParams-UMTRnRrW.mjs.map +1 -1
  321. package/dist/processAudits-CzHkPokQ.cjs.map +1 -1
  322. package/dist/processAudits-Dj8UGqcW.mjs.map +1 -1
  323. package/dist/publisher-BXG9YiRi.d.mts +16 -0
  324. package/dist/publisher-BXG9YiRi.d.mts.map +1 -0
  325. package/dist/publisher-Bw4770Hi.mjs.map +1 -1
  326. package/dist/publisher-D9ngDXg3.d.cts +16 -0
  327. package/dist/publisher-D9ngDXg3.d.cts.map +1 -0
  328. package/dist/publisher-lFQleddL.cjs.map +1 -1
  329. package/dist/publisher.d.cts +3 -16
  330. package/dist/publisher.d.mts +3 -16
  331. package/dist/{rls-CmJ7bRsz.cjs → rls-BrywnrQb.cjs} +1 -1
  332. package/dist/{rls-CmJ7bRsz.cjs.map → rls-BrywnrQb.cjs.map} +1 -1
  333. package/dist/{rls-Bf3FRwto.mjs → rls-C0cWOnk4.mjs} +1 -1
  334. package/dist/{rls-Bf3FRwto.mjs.map → rls-C0cWOnk4.mjs.map} +1 -1
  335. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
  336. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.cts +3 -3
  337. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +3 -3
  338. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
  339. package/dist/subscribers/Subscriber.cjs +2 -2
  340. package/dist/subscribers/Subscriber.d.cts +2 -2
  341. package/dist/subscribers/Subscriber.d.mts +2 -2
  342. package/dist/subscribers/Subscriber.mjs +2 -2
  343. package/dist/subscribers/SubscriberBuilder.cjs +3 -3
  344. package/dist/subscribers/SubscriberBuilder.d.cts +3 -3
  345. package/dist/subscribers/SubscriberBuilder.d.mts +3 -3
  346. package/dist/subscribers/SubscriberBuilder.mjs +3 -3
  347. package/dist/subscribers/index.cjs +3 -3
  348. package/dist/subscribers/index.cjs.map +1 -1
  349. package/dist/subscribers/index.d.cts +5 -5
  350. package/dist/subscribers/index.d.cts.map +1 -1
  351. package/dist/subscribers/index.d.mts +5 -5
  352. package/dist/subscribers/index.d.mts.map +1 -1
  353. package/dist/subscribers/index.mjs +3 -3
  354. package/dist/subscribers/index.mjs.map +1 -1
  355. package/dist/telemetry-BTaiRqPo.d.cts +95 -0
  356. package/dist/telemetry-BTaiRqPo.d.cts.map +1 -0
  357. package/dist/telemetry-yAHf5yDs.d.mts +95 -0
  358. package/dist/telemetry-yAHf5yDs.d.mts.map +1 -0
  359. package/dist/telemetry.cjs +0 -0
  360. package/dist/telemetry.d.cts +2 -0
  361. package/dist/telemetry.d.mts +2 -0
  362. package/dist/telemetry.mjs +0 -0
  363. package/dist/types-B5H3piDg.d.cts.map +1 -1
  364. package/dist/{types-DdIlpxAd.d.mts → types-Dw-iLd3Y.d.mts} +1 -1
  365. package/dist/types-Dw-iLd3Y.d.mts.map +1 -0
  366. package/dist/types.d.mts +1 -1
  367. package/package.json +19 -18
  368. package/src/Construct.ts +189 -94
  369. package/src/__benchmarks__/build-time-optimization.bench.ts +274 -0
  370. package/src/__benchmarks__/endpoint.bench.ts +375 -375
  371. package/src/__benchmarks__/fixtures.ts +241 -0
  372. package/src/__benchmarks__/hono-adaptor.bench.ts +533 -0
  373. package/src/__benchmarks__/hono-server.bench.ts +206 -206
  374. package/src/__benchmarks__/response-builder.bench.ts +428 -0
  375. package/src/__benchmarks__/strategies/strategy-a-lazy-services.ts +319 -0
  376. package/src/__benchmarks__/strategies/strategy-c-middleware.ts +530 -0
  377. package/src/__benchmarks__/strategies/strategy-d-opt-in-events.ts +567 -0
  378. package/src/__tests__/Construct.environment.spec.ts +572 -351
  379. package/src/__tests__/publisher.setting.spec.ts +496 -499
  380. package/src/__tests__/publisher.spec.ts +440 -442
  381. package/src/crons/Cron.ts +117 -117
  382. package/src/crons/CronBuilder.ts +237 -238
  383. package/src/crons/__tests__/Cron.spec.ts +448 -448
  384. package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +214 -214
  385. package/src/crons/index.ts +4 -4
  386. package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +571 -463
  387. package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +86 -86
  388. package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +85 -81
  389. package/src/endpoints/Authorizer.ts +100 -100
  390. package/src/endpoints/Endpoint.ts +921 -937
  391. package/src/endpoints/EndpointBuilder.ts +703 -703
  392. package/src/endpoints/EndpointFactory.ts +1054 -1056
  393. package/src/endpoints/HonoEndpointAdaptor.ts +621 -548
  394. package/src/endpoints/TestEndpointAdaptor.ts +372 -353
  395. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.audits.spec.ts +499 -0
  396. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +541 -542
  397. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +1172 -1174
  398. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +599 -599
  399. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +710 -710
  400. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +280 -280
  401. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +924 -730
  402. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.rls.spec.ts +307 -0
  403. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +408 -408
  404. package/src/endpoints/__tests__/Authorizer.spec.ts +286 -0
  405. package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +162 -162
  406. package/src/endpoints/__tests__/Endpoint.headers.spec.ts +182 -182
  407. package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +158 -159
  408. package/src/endpoints/__tests__/Endpoint.spec.ts +819 -822
  409. package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +427 -427
  410. package/src/endpoints/__tests__/EndpointBuilder.spec.ts +478 -478
  411. package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +426 -426
  412. package/src/endpoints/__tests__/EndpointFactory.database-auditor.spec.ts +501 -501
  413. package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +177 -177
  414. package/src/endpoints/__tests__/EndpointFactory.spec.ts +471 -471
  415. package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +143 -143
  416. package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +663 -663
  417. package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +608 -608
  418. package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +561 -561
  419. package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +1036 -1036
  420. package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +278 -278
  421. package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +1093 -1093
  422. package/src/endpoints/__tests__/ResponseBuilder.spec.ts +230 -230
  423. package/src/endpoints/__tests__/TestEndpointAdaptor.audits.spec.ts +569 -569
  424. package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +841 -841
  425. package/src/endpoints/__tests__/endpoint-types.test.ts +68 -68
  426. package/src/endpoints/__tests__/helpers.spec.ts +37 -0
  427. package/src/endpoints/__tests__/lazyAccessors.spec.ts +330 -0
  428. package/src/endpoints/__tests__/processAudits.spec.ts +631 -0
  429. package/src/endpoints/audit.ts +51 -51
  430. package/src/endpoints/helpers.ts +34 -35
  431. package/src/endpoints/index.ts +33 -23
  432. package/src/endpoints/lazyAccessors.ts +241 -0
  433. package/src/endpoints/parseHonoQuery.ts +41 -41
  434. package/src/endpoints/parseQueryParams.ts +36 -36
  435. package/src/endpoints/processAudits.ts +269 -269
  436. package/src/endpoints/rls.ts +16 -16
  437. package/src/functions/AWSLambdaFunction.ts +294 -295
  438. package/src/functions/BaseFunctionBuilder.ts +185 -185
  439. package/src/functions/Function.ts +190 -190
  440. package/src/functions/FunctionBuilder.ts +353 -353
  441. package/src/functions/FunctionExecutionWrapper.ts +199 -200
  442. package/src/functions/TestFunctionAdaptor.ts +191 -191
  443. package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +424 -424
  444. package/src/functions/__tests__/Function.audits.spec.ts +364 -364
  445. package/src/functions/__tests__/Function.spec.ts +453 -454
  446. package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +179 -179
  447. package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +369 -369
  448. package/src/functions/index.ts +6 -4
  449. package/src/index.ts +18 -9
  450. package/src/publisher.ts +71 -72
  451. package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +244 -248
  452. package/src/subscribers/Subscriber.ts +82 -84
  453. package/src/subscribers/SubscriberBuilder.ts +129 -129
  454. package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +589 -589
  455. package/src/subscribers/__tests__/Subscriber.spec.ts +402 -404
  456. package/src/subscribers/index.ts +1 -0
  457. package/src/telemetry.ts +103 -0
  458. package/src/types.ts +7 -7
  459. package/test.ts +58 -59
  460. package/dist/AWSLambdaFunction-BdebRMUh.d.mts.map +0 -1
  461. package/dist/AWSLambdaFunction-C54a1doJ.mjs.map +0 -1
  462. package/dist/AWSLambdaFunction-D0tEOTXQ.d.cts.map +0 -1
  463. package/dist/AWSLambdaFunction-EPGY4s7i.cjs.map +0 -1
  464. package/dist/AWSLambdaSubscriberAdaptor-BLfO612H.mjs.map +0 -1
  465. package/dist/AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs.map +0 -1
  466. package/dist/AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts.map +0 -1
  467. package/dist/AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts.map +0 -1
  468. package/dist/AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs.map +0 -1
  469. package/dist/AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts.map +0 -1
  470. package/dist/AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs.map +0 -1
  471. package/dist/AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts.map +0 -1
  472. package/dist/AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs.map +0 -1
  473. package/dist/AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs.map +0 -1
  474. package/dist/AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts.map +0 -1
  475. package/dist/AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts.map +0 -1
  476. package/dist/AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs.map +0 -1
  477. package/dist/AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts.map +0 -1
  478. package/dist/AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts.map +0 -1
  479. package/dist/AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs.map +0 -1
  480. package/dist/Authorizer-B-btowNd.d.cts.map +0 -1
  481. package/dist/Authorizer-C0ge_tc8.cjs.map +0 -1
  482. package/dist/Authorizer-gWxYsGEp.d.mts.map +0 -1
  483. package/dist/Authorizer-r9U3y_ms.mjs.map +0 -1
  484. package/dist/BaseFunctionBuilder-BAtutR6q.d.cts.map +0 -1
  485. package/dist/BaseFunctionBuilder-Czi1Jwza.mjs.map +0 -1
  486. package/dist/BaseFunctionBuilder-DRY419e7.d.mts.map +0 -1
  487. package/dist/BaseFunctionBuilder-MYG3C9ug.cjs.map +0 -1
  488. package/dist/Construct-Ba5cMxib.cjs.map +0 -1
  489. package/dist/Construct-C4rPE67v.d.cts.map +0 -1
  490. package/dist/Construct-DdyGHuag.mjs +0 -78
  491. package/dist/Construct-DdyGHuag.mjs.map +0 -1
  492. package/dist/Construct-XrijZFFh.d.mts.map +0 -1
  493. package/dist/Cron-BxhGs5up.mjs.map +0 -1
  494. package/dist/Cron-CGF4YAfM.cjs.map +0 -1
  495. package/dist/Cron-bDLcTvV5.d.cts.map +0 -1
  496. package/dist/Cron-cdjlSKNp.d.mts.map +0 -1
  497. package/dist/CronBuilder-BC4m5-p1.d.mts.map +0 -1
  498. package/dist/CronBuilder-CcxKRtVP.cjs.map +0 -1
  499. package/dist/CronBuilder-DKVXyE0Q.d.cts.map +0 -1
  500. package/dist/CronBuilder-d2jh-IB2.mjs.map +0 -1
  501. package/dist/Endpoint-BPv9_-m_.d.cts.map +0 -1
  502. package/dist/Endpoint-BVGZXFyV.cjs.map +0 -1
  503. package/dist/Endpoint-BdwG75G_.d.mts.map +0 -1
  504. package/dist/Endpoint-CuOEswxJ.mjs.map +0 -1
  505. package/dist/EndpointBuilder-B3az942t.d.mts.map +0 -1
  506. package/dist/EndpointBuilder-Cgj1P_ra.cjs.map +0 -1
  507. package/dist/EndpointBuilder-DIy_m1bu.d.cts.map +0 -1
  508. package/dist/EndpointBuilder-DnCB1h1j.mjs.map +0 -1
  509. package/dist/EndpointFactory-C-0nE6Jg.d.mts.map +0 -1
  510. package/dist/EndpointFactory-CYj6BYok.cjs.map +0 -1
  511. package/dist/EndpointFactory-CbdxPCIH.mjs.map +0 -1
  512. package/dist/EndpointFactory-CyPbm3AD.d.cts.map +0 -1
  513. package/dist/Function-BVHqIDp9.mjs.map +0 -1
  514. package/dist/Function-Cf7f_kCz.d.cts.map +0 -1
  515. package/dist/Function-DDZb1525.cjs.map +0 -1
  516. package/dist/Function-DN2G6OT5.d.mts.map +0 -1
  517. package/dist/FunctionBuilder-CJBzzXL3.d.cts.map +0 -1
  518. package/dist/FunctionBuilder-CrDYgfiI.mjs.map +0 -1
  519. package/dist/FunctionBuilder-Cxx8D2na.d.mts.map +0 -1
  520. package/dist/FunctionBuilder-DswJ-9sD.cjs.map +0 -1
  521. package/dist/FunctionExecutionWrapper-BYI2bGTL.cjs.map +0 -1
  522. package/dist/FunctionExecutionWrapper-CLDh7Z2_.mjs.map +0 -1
  523. package/dist/FunctionExecutionWrapper-DF260Aaj.d.mts.map +0 -1
  524. package/dist/FunctionExecutionWrapper-Qy8bmgFR.d.cts.map +0 -1
  525. package/dist/HonoEndpointAdaptor-BaPlUhz0.d.mts.map +0 -1
  526. package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs +0 -234
  527. package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs.map +0 -1
  528. package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs +0 -228
  529. package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs.map +0 -1
  530. package/dist/HonoEndpointAdaptor-YcRHYALH.d.cts.map +0 -1
  531. package/dist/Subscriber-BiHjVXtM.cjs.map +0 -1
  532. package/dist/Subscriber-BmPf9GFb.mjs.map +0 -1
  533. package/dist/Subscriber-COYMSevD.d.cts.map +0 -1
  534. package/dist/Subscriber-ikctpU3I.d.mts.map +0 -1
  535. package/dist/SubscriberBuilder-Cp1C-xtT.cjs.map +0 -1
  536. package/dist/SubscriberBuilder-DJPEeYDJ.mjs.map +0 -1
  537. package/dist/SubscriberBuilder-D_9zzllj.d.mts.map +0 -1
  538. package/dist/SubscriberBuilder-ivHAGIVi.d.cts.map +0 -1
  539. package/dist/TestEndpointAdaptor-C10xBI--.d.cts.map +0 -1
  540. package/dist/TestEndpointAdaptor-DB7bREhS.d.mts.map +0 -1
  541. package/dist/TestEndpointAdaptor-DJgik2Wj.mjs +0 -160
  542. package/dist/TestEndpointAdaptor-DJgik2Wj.mjs.map +0 -1
  543. package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs +0 -166
  544. package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs.map +0 -1
  545. package/dist/functions-C6EK1xL6.mjs +0 -8
  546. package/dist/functions-C6EK1xL6.mjs.map +0 -1
  547. package/dist/functions-fTid0RMK.cjs.map +0 -1
  548. package/dist/helpers-BcP1tXAi.cjs.map +0 -1
  549. package/dist/helpers-ByRTDO_m.mjs.map +0 -1
  550. package/dist/index-BWzGIj06.d.mts.map +0 -1
  551. package/dist/index-DmFozqLd.d.cts +0 -12
  552. package/dist/index-DmFozqLd.d.cts.map +0 -1
  553. package/dist/parseHonoQuery-CZC5_97v.cjs.map +0 -1
  554. package/dist/parseHonoQuery-DDgIkTO4.mjs.map +0 -1
  555. package/dist/publisher.d.cts.map +0 -1
  556. package/dist/publisher.d.mts.map +0 -1
  557. package/dist/types-DdIlpxAd.d.mts.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { EnvironmentParser } from '@geekmidas/envkit';
2
2
  import type {
3
- EventPublisher,
4
- MappedEvent,
5
- PublishableMessage,
3
+ EventPublisher,
4
+ MappedEvent,
5
+ PublishableMessage,
6
6
  } from '@geekmidas/events';
7
7
  import type { Logger } from '@geekmidas/logger';
8
8
  import { type Service, ServiceDiscovery } from '@geekmidas/services';
@@ -14,564 +14,564 @@ import { HonoEndpoint } from '../HonoEndpointAdaptor';
14
14
 
15
15
  // Test event types
16
16
  type TestEvent =
17
- | PublishableMessage<'user.created', { userId: string; email: string }>
18
- | PublishableMessage<'user.updated', { userId: string; changes: string[] }>
19
- | PublishableMessage<'notification.sent', { userId: string; type: string }>;
17
+ | PublishableMessage<'user.created', { userId: string; email: string }>
18
+ | PublishableMessage<'user.updated', { userId: string; changes: string[] }>
19
+ | PublishableMessage<'notification.sent', { userId: string; type: string }>;
20
20
 
21
21
  describe('HonoEndpoint Events', () => {
22
- const mockLogger: Logger = {
23
- debug: vi.fn(),
24
- info: vi.fn(),
25
- warn: vi.fn(),
26
- error: vi.fn(),
27
- fatal: vi.fn(),
28
- trace: vi.fn(),
29
- child: vi.fn(() => mockLogger),
30
- };
31
- const envParser = new EnvironmentParser({});
32
- const serviceDiscovery = ServiceDiscovery.getInstance(mockLogger, envParser);
33
-
34
- it('should publish events after successful endpoint execution', async () => {
35
- const mockPublisher: EventPublisher<TestEvent> = {
36
- publish: vi.fn().mockResolvedValue(undefined),
37
- };
38
-
39
- const mockPublisherService: Service<
40
- 'publisher',
41
- EventPublisher<TestEvent>
42
- > = {
43
- serviceName: 'publisher' as const,
44
- register: vi.fn().mockResolvedValue(mockPublisher),
45
- };
46
-
47
- const outputSchema = z.object({ id: z.string(), email: z.string() });
48
-
49
- const events: MappedEvent<
50
- EventPublisher<TestEvent>,
51
- typeof outputSchema
52
- >[] = [
53
- {
54
- type: 'user.created',
55
- payload: (response) => ({ userId: response.id, email: response.email }),
56
- },
57
- ];
58
-
59
- const endpoint = new Endpoint({
60
- route: '/users',
61
- method: 'POST',
62
- fn: async () => ({ id: '123', email: 'test@example.com' }),
63
- input: undefined,
64
- output: outputSchema,
65
- services: [],
66
- logger: mockLogger,
67
- timeout: undefined,
68
- memorySize: undefined,
69
- status: 200,
70
- getSession: undefined,
71
- authorize: undefined,
72
- description: undefined,
73
- events,
74
- publisherService: mockPublisherService,
75
- });
76
-
77
- const adaptor = new HonoEndpoint(endpoint);
78
- const app = new Hono();
79
- HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
80
-
81
- adaptor.addRoute(serviceDiscovery, app);
82
-
83
- const response = await app.request('/users', {
84
- method: 'POST',
85
- body: JSON.stringify({}),
86
- headers: { 'Content-Type': 'application/json' },
87
- });
88
-
89
- expect(response.status).toBe(200);
90
- expect(await response.json()).toEqual({
91
- id: '123',
92
- email: 'test@example.com',
93
- });
94
-
95
- expect(mockPublisher.publish).toHaveBeenCalledWith([
96
- {
97
- type: 'user.created',
98
- payload: { userId: '123', email: 'test@example.com' },
99
- },
100
- ]);
101
- });
102
-
103
- it('should publish multiple events after successful endpoint execution', async () => {
104
- const mockPublisher: EventPublisher<TestEvent> = {
105
- publish: vi.fn().mockResolvedValue(undefined),
106
- };
107
-
108
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
109
- serviceName: Math.random().toString(),
110
- register: vi.fn().mockResolvedValue(mockPublisher),
111
- };
112
-
113
- const outputSchema = z.object({ id: z.string(), email: z.string() });
114
-
115
- const events: MappedEvent<
116
- EventPublisher<TestEvent>,
117
- typeof outputSchema
118
- >[] = [
119
- {
120
- type: 'user.created',
121
- payload: (response) => ({ userId: response.id, email: response.email }),
122
- },
123
- {
124
- type: 'notification.sent',
125
- payload: (response) => ({ userId: response.id, type: 'welcome' }),
126
- },
127
- ];
128
-
129
- const endpoint = new Endpoint({
130
- route: '/users',
131
- method: 'POST',
132
- fn: async () => ({ id: '456', email: 'user@example.com' }),
133
- input: undefined,
134
- output: outputSchema,
135
- services: [],
136
- logger: mockLogger,
137
- timeout: undefined,
138
- memorySize: undefined,
139
- status: 201,
140
- getSession: undefined,
141
- authorize: undefined,
142
- description: undefined,
143
- events,
144
- publisherService: mockPublisherService,
145
- });
146
-
147
- const adaptor = new HonoEndpoint(endpoint);
148
- const app = new Hono();
149
-
150
- HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
151
-
152
- adaptor.addRoute(serviceDiscovery, app);
153
-
154
- const response = await app.request('/users', {
155
- method: 'POST',
156
- body: JSON.stringify({}),
157
- headers: { 'Content-Type': 'application/json' },
158
- });
159
-
160
- expect(response.status).toBe(201);
161
- expect(await response.json()).toEqual({
162
- id: '456',
163
- email: 'user@example.com',
164
- });
165
-
166
- expect(mockPublisher.publish).toHaveBeenCalledWith([
167
- {
168
- type: 'user.created',
169
- payload: { userId: '456', email: 'user@example.com' },
170
- },
171
- {
172
- type: 'notification.sent',
173
- payload: { userId: '456', type: 'welcome' },
174
- },
175
- ]);
176
- });
177
-
178
- it('should respect when conditions for events', async () => {
179
- const mockPublisher: EventPublisher<TestEvent> = {
180
- publish: vi.fn().mockResolvedValue(undefined),
181
- };
182
-
183
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
184
- serviceName: Math.random().toString(),
185
- register: vi.fn().mockResolvedValue(mockPublisher),
186
- };
187
-
188
- const outputSchema = z.object({
189
- id: z.string(),
190
- email: z.string(),
191
- isNew: z.boolean(),
192
- });
193
-
194
- const events: MappedEvent<
195
- EventPublisher<TestEvent>,
196
- typeof outputSchema
197
- >[] = [
198
- {
199
- type: 'user.created',
200
- payload: (response) => ({ userId: response.id, email: response.email }),
201
- when: (response) => response.isNew === true,
202
- },
203
- {
204
- type: 'user.updated',
205
- payload: (response) => ({ userId: response.id, changes: ['email'] }),
206
- when: (response) => response.isNew === false,
207
- },
208
- ];
209
-
210
- const endpoint = new Endpoint({
211
- route: '/users/:id',
212
- method: 'PUT',
213
- fn: async () => ({
214
- id: '789',
215
- email: 'updated@example.com',
216
- isNew: false,
217
- }),
218
- input: undefined,
219
- output: outputSchema,
220
- services: [],
221
- logger: mockLogger,
222
- timeout: undefined,
223
- memorySize: undefined,
224
- status: 200,
225
- getSession: undefined,
226
- authorize: undefined,
227
- description: undefined,
228
- events,
229
- publisherService: mockPublisherService,
230
- });
231
-
232
- const adaptor = new HonoEndpoint(endpoint);
233
- const app = new Hono();
234
- HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
235
-
236
- adaptor.addRoute(serviceDiscovery, app);
237
-
238
- const response = await app.request('/users/789', {
239
- method: 'PUT',
240
- body: JSON.stringify({}),
241
- headers: { 'Content-Type': 'application/json' },
242
- });
243
-
244
- expect(response.status).toBe(200);
245
- expect(await response.json()).toEqual({
246
- id: '789',
247
- email: 'updated@example.com',
248
- isNew: false,
249
- });
250
-
251
- // Only user.updated event should be published due to when condition
252
- expect(mockPublisher.publish).toHaveBeenCalledWith([
253
- {
254
- type: 'user.updated',
255
- payload: { userId: '789', changes: ['email'] },
256
- },
257
- ]);
258
- });
259
-
260
- it('should not publish events when no publisher is configured', async () => {
261
- const outputSchema = z.object({ id: z.string(), email: z.string() });
262
-
263
- const events: MappedEvent<
264
- EventPublisher<TestEvent>,
265
- typeof outputSchema
266
- >[] = [
267
- {
268
- type: 'user.created',
269
- payload: (response) => ({ userId: response.id, email: response.email }),
270
- },
271
- ];
272
-
273
- const endpoint = new Endpoint({
274
- route: '/users',
275
- method: 'POST',
276
- fn: async () => ({ id: '999', email: 'test@example.com' }),
277
- input: undefined,
278
- output: outputSchema,
279
- services: [],
280
- logger: mockLogger,
281
- timeout: undefined,
282
- memorySize: undefined,
283
- status: 200,
284
- getSession: undefined,
285
- authorize: undefined,
286
- description: undefined,
287
- events,
288
- publisherService: undefined, // No publisher service
289
- });
290
-
291
- const adaptor = new HonoEndpoint(endpoint);
292
- const app = new Hono();
293
- HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
294
-
295
- adaptor.addRoute(serviceDiscovery, app);
296
-
297
- const response = await app.request('/users', {
298
- method: 'POST',
299
- body: JSON.stringify({}),
300
- headers: { 'Content-Type': 'application/json' },
301
- });
302
-
303
- expect(response.status).toBe(200);
304
- expect(await response.json()).toEqual({
305
- id: '999',
306
- email: 'test@example.com',
307
- });
308
-
309
- // No publisher calls should be made
310
- expect(mockLogger.warn).toHaveBeenCalledWith(
311
- 'No publisher service available',
312
- );
313
- });
314
-
315
- it('should not publish events when no events are configured', async () => {
316
- const mockPublisher: EventPublisher<TestEvent> = {
317
- publish: vi.fn().mockResolvedValue(undefined),
318
- };
319
-
320
- const mockPublisherService: Service<
321
- 'publisher',
322
- EventPublisher<TestEvent>
323
- > = {
324
- serviceName: 'publisher' as const,
325
- register: vi.fn().mockResolvedValue(mockPublisher),
326
- };
327
-
328
- const outputSchema = z.object({ id: z.string(), email: z.string() });
329
-
330
- const endpoint = new Endpoint({
331
- route: '/users',
332
- method: 'POST',
333
- fn: async () => ({ id: '111', email: 'test@example.com' }),
334
- input: undefined,
335
- output: outputSchema,
336
- services: [],
337
- logger: mockLogger,
338
- timeout: undefined,
339
- memorySize: undefined,
340
- status: 200,
341
- getSession: undefined,
342
- authorize: undefined,
343
- description: undefined,
344
- events: undefined, // No events
345
- publisherService: mockPublisherService,
346
- });
347
-
348
- const adaptor = new HonoEndpoint(endpoint);
349
- const app = new Hono();
350
- HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
351
-
352
- adaptor.addRoute(serviceDiscovery, app);
353
-
354
- const response = await app.request('/users', {
355
- method: 'POST',
356
- body: JSON.stringify({}),
357
- headers: { 'Content-Type': 'application/json' },
358
- });
359
-
360
- expect(response.status).toBe(200);
361
- expect(await response.json()).toEqual({
362
- id: '111',
363
- email: 'test@example.com',
364
- });
365
-
366
- // No events should be published
367
- expect(mockPublisher.publish).not.toHaveBeenCalled();
368
- expect(mockLogger.debug).toHaveBeenCalledWith('No events to publish');
369
- });
370
-
371
- it('should continue processing even when event publishing fails', async () => {
372
- const publishError = new Error('Event bus connection failed');
373
- const mockPublisher: EventPublisher<TestEvent> = {
374
- publish: vi.fn().mockRejectedValue(publishError),
375
- };
376
-
377
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
378
- serviceName: Math.random().toString(),
379
- register: vi.fn().mockResolvedValue(mockPublisher),
380
- };
381
-
382
- const outputSchema = z.object({ id: z.string(), email: z.string() });
383
-
384
- const events: MappedEvent<
385
- EventPublisher<TestEvent>,
386
- typeof outputSchema
387
- >[] = [
388
- {
389
- type: 'user.created',
390
- payload: (response) => ({ userId: response.id, email: response.email }),
391
- },
392
- ];
393
-
394
- const endpoint = new Endpoint({
395
- route: '/users',
396
- method: 'POST',
397
- fn: async () => ({ id: '888', email: 'error@example.com' }),
398
- input: undefined,
399
- output: outputSchema,
400
- services: [],
401
- logger: mockLogger,
402
- timeout: undefined,
403
- memorySize: undefined,
404
- status: 200,
405
- getSession: undefined,
406
- authorize: undefined,
407
- description: undefined,
408
- events,
409
- publisherService: mockPublisherService,
410
- });
411
-
412
- const adaptor = new HonoEndpoint(endpoint);
413
- const app = new Hono();
414
- HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
415
-
416
- adaptor.addRoute(serviceDiscovery, app);
417
-
418
- const response = await app.request('/users', {
419
- method: 'POST',
420
- body: JSON.stringify({}),
421
- headers: { 'Content-Type': 'application/json' },
422
- });
423
-
424
- // The endpoint should still succeed despite event publishing failure
425
- expect(response.status).toBe(200);
426
- expect(await response.json()).toEqual({
427
- id: '888',
428
- email: 'error@example.com',
429
- });
430
-
431
- expect(mockPublisher.publish).toHaveBeenCalled();
432
- expect(mockLogger.error).toHaveBeenCalledWith(
433
- publishError,
434
- 'Failed to publish events',
435
- );
436
- });
437
-
438
- it('should publish events with input data context', async () => {
439
- const mockPublisher: EventPublisher<TestEvent> = {
440
- publish: vi.fn().mockResolvedValue(undefined),
441
- };
442
-
443
- const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
444
- serviceName: Math.random().toString(),
445
- register: vi.fn().mockResolvedValue(mockPublisher),
446
- };
447
-
448
- const bodySchema = z.object({ name: z.string(), email: z.string() });
449
- const outputSchema = z.object({
450
- id: z.string(),
451
- name: z.string(),
452
- email: z.string(),
453
- });
454
-
455
- const events: MappedEvent<
456
- EventPublisher<TestEvent>,
457
- typeof outputSchema
458
- >[] = [
459
- {
460
- type: 'user.created',
461
- payload: (response) => ({ userId: response.id, email: response.email }),
462
- },
463
- ];
464
-
465
- const endpoint = new Endpoint({
466
- route: '/users',
467
- method: 'POST',
468
- fn: async ({ body }) => ({
469
- id: '777',
470
- name: body.name,
471
- email: body.email,
472
- }),
473
- input: { body: bodySchema },
474
- output: outputSchema,
475
- services: [],
476
- logger: mockLogger,
477
- timeout: undefined,
478
- memorySize: undefined,
479
- status: 201,
480
- getSession: undefined,
481
- authorize: undefined,
482
- description: undefined,
483
- events,
484
- publisherService: mockPublisherService,
485
- });
486
-
487
- const adaptor = new HonoEndpoint(endpoint);
488
- const app = new Hono();
489
- HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
490
-
491
- adaptor.addRoute(serviceDiscovery, app);
492
-
493
- const response = await app.request('/users', {
494
- method: 'POST',
495
- body: JSON.stringify({ name: 'John Doe', email: 'john@example.com' }),
496
- headers: { 'Content-Type': 'application/json' },
497
- });
498
-
499
- expect(response.status).toBe(201);
500
- expect(await response.json()).toEqual({
501
- id: '777',
502
- name: 'John Doe',
503
- email: 'john@example.com',
504
- });
505
-
506
- expect(mockPublisher.publish).toHaveBeenCalledWith([
507
- {
508
- type: 'user.created',
509
- payload: { userId: '777', email: 'john@example.com' },
510
- },
511
- ]);
512
- });
513
-
514
- it('should not publish events when endpoint throws an error', async () => {
515
- const mockPublisher: EventPublisher<TestEvent> = {
516
- publish: vi.fn().mockResolvedValue(undefined),
517
- };
518
-
519
- const mockPublisherService: Service<
520
- 'publisher',
521
- EventPublisher<TestEvent>
522
- > = {
523
- serviceName: 'publisher' as const,
524
- register: vi.fn().mockResolvedValue(mockPublisher),
525
- };
526
-
527
- const outputSchema = z.object({ id: z.string(), email: z.string() });
528
-
529
- const events: MappedEvent<
530
- EventPublisher<TestEvent>,
531
- typeof outputSchema
532
- >[] = [
533
- {
534
- type: 'user.created',
535
- payload: (response) => ({ userId: response.id, email: response.email }),
536
- },
537
- ];
538
-
539
- const endpoint = new Endpoint({
540
- route: '/users',
541
- method: 'POST',
542
- fn: async () => {
543
- throw new Error('Something went wrong');
544
- },
545
- input: undefined,
546
- output: outputSchema,
547
- services: [],
548
- logger: mockLogger,
549
- timeout: undefined,
550
- memorySize: undefined,
551
- status: 200,
552
- getSession: undefined,
553
- authorize: undefined,
554
- description: undefined,
555
- events,
556
- publisherService: mockPublisherService,
557
- });
558
-
559
- const adaptor = new HonoEndpoint(endpoint);
560
- const app = new Hono();
561
- HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
562
-
563
- adaptor.addRoute(serviceDiscovery, app);
564
-
565
- const response = await app.request('/users', {
566
- method: 'POST',
567
- body: JSON.stringify({}),
568
- headers: { 'Content-Type': 'application/json' },
569
- });
570
-
571
- // Should return 500 due to error
572
- expect(response.status).toBe(500);
573
-
574
- // No events should be published when endpoint throws an error
575
- expect(mockPublisher.publish).not.toHaveBeenCalled();
576
- });
22
+ const mockLogger: Logger = {
23
+ debug: vi.fn(),
24
+ info: vi.fn(),
25
+ warn: vi.fn(),
26
+ error: vi.fn(),
27
+ fatal: vi.fn(),
28
+ trace: vi.fn(),
29
+ child: vi.fn(() => mockLogger),
30
+ };
31
+ const envParser = new EnvironmentParser({});
32
+ const serviceDiscovery = ServiceDiscovery.getInstance(envParser);
33
+
34
+ it('should publish events after successful endpoint execution', async () => {
35
+ const mockPublisher: EventPublisher<TestEvent> = {
36
+ publish: vi.fn().mockResolvedValue(undefined),
37
+ };
38
+
39
+ const mockPublisherService: Service<
40
+ 'publisher',
41
+ EventPublisher<TestEvent>
42
+ > = {
43
+ serviceName: 'publisher' as const,
44
+ register: vi.fn().mockResolvedValue(mockPublisher),
45
+ };
46
+
47
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
48
+
49
+ const events: MappedEvent<
50
+ EventPublisher<TestEvent>,
51
+ typeof outputSchema
52
+ >[] = [
53
+ {
54
+ type: 'user.created',
55
+ payload: (response) => ({ userId: response.id, email: response.email }),
56
+ },
57
+ ];
58
+
59
+ const endpoint = new Endpoint({
60
+ route: '/users',
61
+ method: 'POST',
62
+ fn: async () => ({ id: '123', email: 'test@example.com' }),
63
+ input: undefined,
64
+ output: outputSchema,
65
+ services: [],
66
+ logger: mockLogger,
67
+ timeout: undefined,
68
+ memorySize: undefined,
69
+ status: 200,
70
+ getSession: undefined,
71
+ authorize: undefined,
72
+ description: undefined,
73
+ events,
74
+ publisherService: mockPublisherService,
75
+ });
76
+
77
+ const adaptor = new HonoEndpoint(endpoint);
78
+ const app = new Hono();
79
+ HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
80
+
81
+ adaptor.addRoute(serviceDiscovery, app);
82
+
83
+ const response = await app.request('/users', {
84
+ method: 'POST',
85
+ body: JSON.stringify({}),
86
+ headers: { 'Content-Type': 'application/json' },
87
+ });
88
+
89
+ expect(response.status).toBe(200);
90
+ expect(await response.json()).toEqual({
91
+ id: '123',
92
+ email: 'test@example.com',
93
+ });
94
+
95
+ expect(mockPublisher.publish).toHaveBeenCalledWith([
96
+ {
97
+ type: 'user.created',
98
+ payload: { userId: '123', email: 'test@example.com' },
99
+ },
100
+ ]);
101
+ });
102
+
103
+ it('should publish multiple events after successful endpoint execution', async () => {
104
+ const mockPublisher: EventPublisher<TestEvent> = {
105
+ publish: vi.fn().mockResolvedValue(undefined),
106
+ };
107
+
108
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
109
+ serviceName: Math.random().toString(),
110
+ register: vi.fn().mockResolvedValue(mockPublisher),
111
+ };
112
+
113
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
114
+
115
+ const events: MappedEvent<
116
+ EventPublisher<TestEvent>,
117
+ typeof outputSchema
118
+ >[] = [
119
+ {
120
+ type: 'user.created',
121
+ payload: (response) => ({ userId: response.id, email: response.email }),
122
+ },
123
+ {
124
+ type: 'notification.sent',
125
+ payload: (response) => ({ userId: response.id, type: 'welcome' }),
126
+ },
127
+ ];
128
+
129
+ const endpoint = new Endpoint({
130
+ route: '/users',
131
+ method: 'POST',
132
+ fn: async () => ({ id: '456', email: 'user@example.com' }),
133
+ input: undefined,
134
+ output: outputSchema,
135
+ services: [],
136
+ logger: mockLogger,
137
+ timeout: undefined,
138
+ memorySize: undefined,
139
+ status: 201,
140
+ getSession: undefined,
141
+ authorize: undefined,
142
+ description: undefined,
143
+ events,
144
+ publisherService: mockPublisherService,
145
+ });
146
+
147
+ const adaptor = new HonoEndpoint(endpoint);
148
+ const app = new Hono();
149
+
150
+ HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
151
+
152
+ adaptor.addRoute(serviceDiscovery, app);
153
+
154
+ const response = await app.request('/users', {
155
+ method: 'POST',
156
+ body: JSON.stringify({}),
157
+ headers: { 'Content-Type': 'application/json' },
158
+ });
159
+
160
+ expect(response.status).toBe(201);
161
+ expect(await response.json()).toEqual({
162
+ id: '456',
163
+ email: 'user@example.com',
164
+ });
165
+
166
+ expect(mockPublisher.publish).toHaveBeenCalledWith([
167
+ {
168
+ type: 'user.created',
169
+ payload: { userId: '456', email: 'user@example.com' },
170
+ },
171
+ {
172
+ type: 'notification.sent',
173
+ payload: { userId: '456', type: 'welcome' },
174
+ },
175
+ ]);
176
+ });
177
+
178
+ it('should respect when conditions for events', async () => {
179
+ const mockPublisher: EventPublisher<TestEvent> = {
180
+ publish: vi.fn().mockResolvedValue(undefined),
181
+ };
182
+
183
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
184
+ serviceName: Math.random().toString(),
185
+ register: vi.fn().mockResolvedValue(mockPublisher),
186
+ };
187
+
188
+ const outputSchema = z.object({
189
+ id: z.string(),
190
+ email: z.string(),
191
+ isNew: z.boolean(),
192
+ });
193
+
194
+ const events: MappedEvent<
195
+ EventPublisher<TestEvent>,
196
+ typeof outputSchema
197
+ >[] = [
198
+ {
199
+ type: 'user.created',
200
+ payload: (response) => ({ userId: response.id, email: response.email }),
201
+ when: (response) => response.isNew === true,
202
+ },
203
+ {
204
+ type: 'user.updated',
205
+ payload: (response) => ({ userId: response.id, changes: ['email'] }),
206
+ when: (response) => response.isNew === false,
207
+ },
208
+ ];
209
+
210
+ const endpoint = new Endpoint({
211
+ route: '/users/:id',
212
+ method: 'PUT',
213
+ fn: async () => ({
214
+ id: '789',
215
+ email: 'updated@example.com',
216
+ isNew: false,
217
+ }),
218
+ input: undefined,
219
+ output: outputSchema,
220
+ services: [],
221
+ logger: mockLogger,
222
+ timeout: undefined,
223
+ memorySize: undefined,
224
+ status: 200,
225
+ getSession: undefined,
226
+ authorize: undefined,
227
+ description: undefined,
228
+ events,
229
+ publisherService: mockPublisherService,
230
+ });
231
+
232
+ const adaptor = new HonoEndpoint(endpoint);
233
+ const app = new Hono();
234
+ HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
235
+
236
+ adaptor.addRoute(serviceDiscovery, app);
237
+
238
+ const response = await app.request('/users/789', {
239
+ method: 'PUT',
240
+ body: JSON.stringify({}),
241
+ headers: { 'Content-Type': 'application/json' },
242
+ });
243
+
244
+ expect(response.status).toBe(200);
245
+ expect(await response.json()).toEqual({
246
+ id: '789',
247
+ email: 'updated@example.com',
248
+ isNew: false,
249
+ });
250
+
251
+ // Only user.updated event should be published due to when condition
252
+ expect(mockPublisher.publish).toHaveBeenCalledWith([
253
+ {
254
+ type: 'user.updated',
255
+ payload: { userId: '789', changes: ['email'] },
256
+ },
257
+ ]);
258
+ });
259
+
260
+ it('should not publish events when no publisher is configured', async () => {
261
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
262
+
263
+ const events: MappedEvent<
264
+ EventPublisher<TestEvent>,
265
+ typeof outputSchema
266
+ >[] = [
267
+ {
268
+ type: 'user.created',
269
+ payload: (response) => ({ userId: response.id, email: response.email }),
270
+ },
271
+ ];
272
+
273
+ const endpoint = new Endpoint({
274
+ route: '/users',
275
+ method: 'POST',
276
+ fn: async () => ({ id: '999', email: 'test@example.com' }),
277
+ input: undefined,
278
+ output: outputSchema,
279
+ services: [],
280
+ logger: mockLogger,
281
+ timeout: undefined,
282
+ memorySize: undefined,
283
+ status: 200,
284
+ getSession: undefined,
285
+ authorize: undefined,
286
+ description: undefined,
287
+ events,
288
+ publisherService: undefined, // No publisher service
289
+ });
290
+
291
+ const adaptor = new HonoEndpoint(endpoint);
292
+ const app = new Hono();
293
+ HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
294
+
295
+ adaptor.addRoute(serviceDiscovery, app);
296
+
297
+ const response = await app.request('/users', {
298
+ method: 'POST',
299
+ body: JSON.stringify({}),
300
+ headers: { 'Content-Type': 'application/json' },
301
+ });
302
+
303
+ expect(response.status).toBe(200);
304
+ expect(await response.json()).toEqual({
305
+ id: '999',
306
+ email: 'test@example.com',
307
+ });
308
+
309
+ // No publisher calls should be made
310
+ expect(mockLogger.warn).toHaveBeenCalledWith(
311
+ 'No publisher service available',
312
+ );
313
+ });
314
+
315
+ it('should not publish events when no events are configured', async () => {
316
+ const mockPublisher: EventPublisher<TestEvent> = {
317
+ publish: vi.fn().mockResolvedValue(undefined),
318
+ };
319
+
320
+ const mockPublisherService: Service<
321
+ 'publisher',
322
+ EventPublisher<TestEvent>
323
+ > = {
324
+ serviceName: 'publisher' as const,
325
+ register: vi.fn().mockResolvedValue(mockPublisher),
326
+ };
327
+
328
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
329
+
330
+ const endpoint = new Endpoint({
331
+ route: '/users',
332
+ method: 'POST',
333
+ fn: async () => ({ id: '111', email: 'test@example.com' }),
334
+ input: undefined,
335
+ output: outputSchema,
336
+ services: [],
337
+ logger: mockLogger,
338
+ timeout: undefined,
339
+ memorySize: undefined,
340
+ status: 200,
341
+ getSession: undefined,
342
+ authorize: undefined,
343
+ description: undefined,
344
+ events: undefined, // No events
345
+ publisherService: mockPublisherService,
346
+ });
347
+
348
+ const adaptor = new HonoEndpoint(endpoint);
349
+ const app = new Hono();
350
+ HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
351
+
352
+ adaptor.addRoute(serviceDiscovery, app);
353
+
354
+ const response = await app.request('/users', {
355
+ method: 'POST',
356
+ body: JSON.stringify({}),
357
+ headers: { 'Content-Type': 'application/json' },
358
+ });
359
+
360
+ expect(response.status).toBe(200);
361
+ expect(await response.json()).toEqual({
362
+ id: '111',
363
+ email: 'test@example.com',
364
+ });
365
+
366
+ // No events should be published - with optimization, event processing is skipped entirely
367
+ // for endpoints without events configured, so no log message is emitted
368
+ expect(mockPublisher.publish).not.toHaveBeenCalled();
369
+ });
370
+
371
+ it('should continue processing even when event publishing fails', async () => {
372
+ const publishError = new Error('Event bus connection failed');
373
+ const mockPublisher: EventPublisher<TestEvent> = {
374
+ publish: vi.fn().mockRejectedValue(publishError),
375
+ };
376
+
377
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
378
+ serviceName: Math.random().toString(),
379
+ register: vi.fn().mockResolvedValue(mockPublisher),
380
+ };
381
+
382
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
383
+
384
+ const events: MappedEvent<
385
+ EventPublisher<TestEvent>,
386
+ typeof outputSchema
387
+ >[] = [
388
+ {
389
+ type: 'user.created',
390
+ payload: (response) => ({ userId: response.id, email: response.email }),
391
+ },
392
+ ];
393
+
394
+ const endpoint = new Endpoint({
395
+ route: '/users',
396
+ method: 'POST',
397
+ fn: async () => ({ id: '888', email: 'error@example.com' }),
398
+ input: undefined,
399
+ output: outputSchema,
400
+ services: [],
401
+ logger: mockLogger,
402
+ timeout: undefined,
403
+ memorySize: undefined,
404
+ status: 200,
405
+ getSession: undefined,
406
+ authorize: undefined,
407
+ description: undefined,
408
+ events,
409
+ publisherService: mockPublisherService,
410
+ });
411
+
412
+ const adaptor = new HonoEndpoint(endpoint);
413
+ const app = new Hono();
414
+ HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
415
+
416
+ adaptor.addRoute(serviceDiscovery, app);
417
+
418
+ const response = await app.request('/users', {
419
+ method: 'POST',
420
+ body: JSON.stringify({}),
421
+ headers: { 'Content-Type': 'application/json' },
422
+ });
423
+
424
+ // The endpoint should still succeed despite event publishing failure
425
+ expect(response.status).toBe(200);
426
+ expect(await response.json()).toEqual({
427
+ id: '888',
428
+ email: 'error@example.com',
429
+ });
430
+
431
+ expect(mockPublisher.publish).toHaveBeenCalled();
432
+ expect(mockLogger.error).toHaveBeenCalledWith(
433
+ publishError,
434
+ 'Failed to publish events',
435
+ );
436
+ });
437
+
438
+ it('should publish events with input data context', async () => {
439
+ const mockPublisher: EventPublisher<TestEvent> = {
440
+ publish: vi.fn().mockResolvedValue(undefined),
441
+ };
442
+
443
+ const mockPublisherService: Service<string, EventPublisher<TestEvent>> = {
444
+ serviceName: Math.random().toString(),
445
+ register: vi.fn().mockResolvedValue(mockPublisher),
446
+ };
447
+
448
+ const bodySchema = z.object({ name: z.string(), email: z.string() });
449
+ const outputSchema = z.object({
450
+ id: z.string(),
451
+ name: z.string(),
452
+ email: z.string(),
453
+ });
454
+
455
+ const events: MappedEvent<
456
+ EventPublisher<TestEvent>,
457
+ typeof outputSchema
458
+ >[] = [
459
+ {
460
+ type: 'user.created',
461
+ payload: (response) => ({ userId: response.id, email: response.email }),
462
+ },
463
+ ];
464
+
465
+ const endpoint = new Endpoint({
466
+ route: '/users',
467
+ method: 'POST',
468
+ fn: async ({ body }) => ({
469
+ id: '777',
470
+ name: body.name,
471
+ email: body.email,
472
+ }),
473
+ input: { body: bodySchema },
474
+ output: outputSchema,
475
+ services: [],
476
+ logger: mockLogger,
477
+ timeout: undefined,
478
+ memorySize: undefined,
479
+ status: 201,
480
+ getSession: undefined,
481
+ authorize: undefined,
482
+ description: undefined,
483
+ events,
484
+ publisherService: mockPublisherService,
485
+ });
486
+
487
+ const adaptor = new HonoEndpoint(endpoint);
488
+ const app = new Hono();
489
+ HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
490
+
491
+ adaptor.addRoute(serviceDiscovery, app);
492
+
493
+ const response = await app.request('/users', {
494
+ method: 'POST',
495
+ body: JSON.stringify({ name: 'John Doe', email: 'john@example.com' }),
496
+ headers: { 'Content-Type': 'application/json' },
497
+ });
498
+
499
+ expect(response.status).toBe(201);
500
+ expect(await response.json()).toEqual({
501
+ id: '777',
502
+ name: 'John Doe',
503
+ email: 'john@example.com',
504
+ });
505
+
506
+ expect(mockPublisher.publish).toHaveBeenCalledWith([
507
+ {
508
+ type: 'user.created',
509
+ payload: { userId: '777', email: 'john@example.com' },
510
+ },
511
+ ]);
512
+ });
513
+
514
+ it('should not publish events when endpoint throws an error', async () => {
515
+ const mockPublisher: EventPublisher<TestEvent> = {
516
+ publish: vi.fn().mockResolvedValue(undefined),
517
+ };
518
+
519
+ const mockPublisherService: Service<
520
+ 'publisher',
521
+ EventPublisher<TestEvent>
522
+ > = {
523
+ serviceName: 'publisher' as const,
524
+ register: vi.fn().mockResolvedValue(mockPublisher),
525
+ };
526
+
527
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
528
+
529
+ const events: MappedEvent<
530
+ EventPublisher<TestEvent>,
531
+ typeof outputSchema
532
+ >[] = [
533
+ {
534
+ type: 'user.created',
535
+ payload: (response) => ({ userId: response.id, email: response.email }),
536
+ },
537
+ ];
538
+
539
+ const endpoint = new Endpoint({
540
+ route: '/users',
541
+ method: 'POST',
542
+ fn: async () => {
543
+ throw new Error('Something went wrong');
544
+ },
545
+ input: undefined,
546
+ output: outputSchema,
547
+ services: [],
548
+ logger: mockLogger,
549
+ timeout: undefined,
550
+ memorySize: undefined,
551
+ status: 200,
552
+ getSession: undefined,
553
+ authorize: undefined,
554
+ description: undefined,
555
+ events,
556
+ publisherService: mockPublisherService,
557
+ });
558
+
559
+ const adaptor = new HonoEndpoint(endpoint);
560
+ const app = new Hono();
561
+ HonoEndpoint.applyEventMiddleware(app, serviceDiscovery);
562
+
563
+ adaptor.addRoute(serviceDiscovery, app);
564
+
565
+ const response = await app.request('/users', {
566
+ method: 'POST',
567
+ body: JSON.stringify({}),
568
+ headers: { 'Content-Type': 'application/json' },
569
+ });
570
+
571
+ // Should return 500 due to error
572
+ expect(response.status).toBe(500);
573
+
574
+ // No events should be published when endpoint throws an error
575
+ expect(mockPublisher.publish).not.toHaveBeenCalled();
576
+ });
577
577
  });