@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,432 +1,430 @@
1
+ import type { EventPublisher, PublishableMessage } from '@geekmidas/events';
1
2
  import type { Logger } from '@geekmidas/logger';
2
3
  import type { Service } from '@geekmidas/services';
3
4
  import { describe, expect, it, vi } from 'vitest';
4
5
  import { z } from 'zod';
5
6
  import { ConstructType } from '../../Construct';
6
7
  import { Subscriber, type SubscriberContext } from '../Subscriber';
7
-
8
8
  import { SubscriberBuilder } from '../SubscriberBuilder';
9
9
 
10
- import type { EventPublisher, PublishableMessage } from '@geekmidas/events';
11
-
12
10
  // Define test event types
13
11
  type UserEvent =
14
- | PublishableMessage<
15
- 'user.created',
16
- { userId: string; email: string; name: string }
17
- >
18
- | PublishableMessage<
19
- 'user.updated',
20
- { userId: string; changes: Record<string, any> }
21
- >
22
- | PublishableMessage<'user.deleted', { userId: string; deletedAt: Date }>;
12
+ | PublishableMessage<
13
+ 'user.created',
14
+ { userId: string; email: string; name: string }
15
+ >
16
+ | PublishableMessage<
17
+ 'user.updated',
18
+ { userId: string; changes: Record<string, any> }
19
+ >
20
+ | PublishableMessage<'user.deleted', { userId: string; deletedAt: Date }>;
23
21
 
24
22
  // Mock event publisher
25
23
  class TestEventPublisher implements EventPublisher<UserEvent> {
26
- async publish(events: UserEvent[]): Promise<void> {
27
- void events;
28
- }
24
+ async publish(events: UserEvent[]): Promise<void> {
25
+ void events;
26
+ }
29
27
  }
30
28
 
31
29
  // Mock service for testing
32
30
  const TestEventService: Service<'testEventPublisher', TestEventPublisher> = {
33
- serviceName: 'testEventPublisher' as const,
34
- register() {
35
- return new TestEventPublisher();
36
- },
31
+ serviceName: 'testEventPublisher' as const,
32
+ register() {
33
+ return new TestEventPublisher();
34
+ },
37
35
  };
38
36
 
39
37
  // Mock logger
40
38
  const mockLogger: Logger = {
41
- debug: vi.fn(),
42
- info: vi.fn(),
43
- warn: vi.fn(),
44
- error: vi.fn(),
45
- fatal: vi.fn(),
46
- trace: vi.fn(),
47
- child: vi.fn(() => mockLogger),
39
+ debug: vi.fn(),
40
+ info: vi.fn(),
41
+ warn: vi.fn(),
42
+ error: vi.fn(),
43
+ fatal: vi.fn(),
44
+ trace: vi.fn(),
45
+ child: vi.fn(() => mockLogger),
48
46
  };
49
47
 
50
48
  describe('Subscriber', () => {
51
- describe('isSubscriber', () => {
52
- it('should identify valid subscriber instances', () => {
53
- const subscriber = new Subscriber(
54
- async () => {},
55
- 30000,
56
- ['user.created'],
57
- undefined,
58
- [],
59
- mockLogger,
60
- TestEventService,
61
- );
62
-
63
- expect(Subscriber.isSubscriber(subscriber)).toBe(true);
64
- });
65
-
66
- it('should reject non-subscriber objects', () => {
67
- expect(Subscriber.isSubscriber({})).toBe(false);
68
- expect(Subscriber.isSubscriber(null)).toBe(false);
69
- expect(Subscriber.isSubscriber(undefined)).toBe(false);
70
- expect(Subscriber.isSubscriber({ type: ConstructType.Endpoint })).toBe(
71
- false,
72
- );
73
- });
74
- });
75
-
76
- describe('constructor', () => {
77
- it('should create a subscriber with correct type', () => {
78
- const handler = vi.fn();
79
- const subscriber = new Subscriber(
80
- handler,
81
- 30000,
82
- ['user.created'],
83
- undefined,
84
- [],
85
- mockLogger,
86
- TestEventService,
87
- );
88
-
89
- expect(subscriber.type).toBe(ConstructType.Subscriber);
90
- expect(subscriber.__IS_SUBSCRIBER__).toBe(true);
91
- expect(subscriber.handler).toBe(handler);
92
- expect(subscriber.timeout).toBe(30000);
93
- expect(subscriber.subscribedEvents).toEqual(['user.created']);
94
- });
95
-
96
- it('should accept explicit timeout value', () => {
97
- const subscriber = new Subscriber(
98
- async () => {},
99
- 45000,
100
- ['user.created'],
101
- undefined,
102
- [],
103
- mockLogger,
104
- TestEventService,
105
- );
106
-
107
- expect(subscriber.timeout).toBe(45000);
108
- });
109
- });
49
+ describe('isSubscriber', () => {
50
+ it('should identify valid subscriber instances', () => {
51
+ const subscriber = new Subscriber(
52
+ async () => {},
53
+ 30000,
54
+ ['user.created'],
55
+ undefined,
56
+ [],
57
+ mockLogger,
58
+ TestEventService,
59
+ );
60
+
61
+ expect(Subscriber.isSubscriber(subscriber)).toBe(true);
62
+ });
63
+
64
+ it('should reject non-subscriber objects', () => {
65
+ expect(Subscriber.isSubscriber({})).toBe(false);
66
+ expect(Subscriber.isSubscriber(null)).toBe(false);
67
+ expect(Subscriber.isSubscriber(undefined)).toBe(false);
68
+ expect(Subscriber.isSubscriber({ type: ConstructType.Endpoint })).toBe(
69
+ false,
70
+ );
71
+ });
72
+ });
73
+
74
+ describe('constructor', () => {
75
+ it('should create a subscriber with correct type', () => {
76
+ const handler = vi.fn();
77
+ const subscriber = new Subscriber(
78
+ handler,
79
+ 30000,
80
+ ['user.created'],
81
+ undefined,
82
+ [],
83
+ mockLogger,
84
+ TestEventService,
85
+ );
86
+
87
+ expect(subscriber.type).toBe(ConstructType.Subscriber);
88
+ expect(subscriber.__IS_SUBSCRIBER__).toBe(true);
89
+ expect(subscriber.handler).toBe(handler);
90
+ expect(subscriber.timeout).toBe(30000);
91
+ expect(subscriber.subscribedEvents).toEqual(['user.created']);
92
+ });
93
+
94
+ it('should accept explicit timeout value', () => {
95
+ const subscriber = new Subscriber(
96
+ async () => {},
97
+ 45000,
98
+ ['user.created'],
99
+ undefined,
100
+ [],
101
+ mockLogger,
102
+ TestEventService,
103
+ );
104
+
105
+ expect(subscriber.timeout).toBe(45000);
106
+ });
107
+ });
110
108
  });
111
109
 
112
110
  describe('SubscriberBuilder', () => {
113
- describe('timeout', () => {
114
- it('should set custom timeout', () => {
115
- const subscriber = new SubscriberBuilder()
116
- .publisher(TestEventService)
117
- .timeout(60000)
118
- .subscribe('user.created')
119
- .handle(async () => {});
120
-
121
- expect(subscriber.timeout).toBe(60000);
122
- });
123
-
124
- it('should use default timeout if not set', () => {
125
- const subscriber = new SubscriberBuilder()
126
- .publisher(TestEventService)
127
- .subscribe('user.created')
128
- .handle(async () => {});
129
-
130
- expect(subscriber.timeout).toBe(30000);
131
- });
132
- });
133
-
134
- describe('output', () => {
135
- it('should set output schema', () => {
136
- const outputSchema = z.object({
137
- processed: z.number(),
138
- });
139
-
140
- const subscriber = new SubscriberBuilder()
141
- .publisher(TestEventService)
142
- .output(outputSchema)
143
- .subscribe('user.created')
144
- .handle(async () => ({ processed: 1 }));
145
-
146
- expect(subscriber.outputSchema).toBe(outputSchema);
147
- });
148
- });
149
-
150
- describe('services', () => {
151
- it('should register services', () => {
152
- const mockService: Service<'test', { foo: string }> = {
153
- serviceName: 'test' as const,
154
- register() {
155
- return { foo: 'bar' };
156
- },
157
- };
158
-
159
- const subscriber = new SubscriberBuilder()
160
- .publisher(TestEventService)
161
- .services([mockService])
162
- .subscribe('user.created')
163
- .handle(async () => {});
164
-
165
- expect(subscriber.services).toEqual([mockService]);
166
- });
167
-
168
- it('should accumulate multiple service calls', () => {
169
- const service1: Service<'service1', { a: string }> = {
170
- serviceName: 'service1' as const,
171
- register() {
172
- return { a: 'a' };
173
- },
174
- };
175
- const service2: Service<'service2', { b: string }> = {
176
- serviceName: 'service2' as const,
177
- register() {
178
- return { b: 'b' };
179
- },
180
- };
181
-
182
- const subscriber = new SubscriberBuilder()
183
- .publisher(TestEventService)
184
- .services([service1])
185
- .services([service2])
186
- .subscribe('user.created')
187
- .handle(async () => {});
188
-
189
- expect(subscriber.services).toEqual([service1, service2]);
190
- });
191
- });
192
-
193
- describe('logger', () => {
194
- it('should set custom logger', () => {
195
- const customLogger: Logger = {
196
- ...mockLogger,
197
- info: vi.fn(),
198
- };
199
-
200
- const subscriber = new SubscriberBuilder()
201
- .publisher(TestEventService)
202
- .logger(customLogger)
203
- .subscribe('user.created')
204
- .handle(async () => {});
205
-
206
- expect(subscriber.logger).toBe(customLogger);
207
- });
208
- });
209
-
210
- describe('publisher', () => {
211
- it('should set publisher service', () => {
212
- const subscriber = new SubscriberBuilder()
213
- .publisher(TestEventService)
214
- .subscribe('user.created')
215
- .handle(async () => {});
216
-
217
- expect(subscriber.publisherService).toBe(TestEventService);
218
- });
219
- });
220
-
221
- describe('subscribe', () => {
222
- it('should subscribe to single event', () => {
223
- const subscriber = new SubscriberBuilder()
224
- .publisher(TestEventService)
225
- .subscribe('user.created')
226
- .handle(async () => {});
227
-
228
- expect(subscriber.subscribedEvents).toEqual(['user.created']);
229
- });
230
-
231
- it('should subscribe to multiple events via chaining', () => {
232
- const subscriber = new SubscriberBuilder()
233
- .publisher(TestEventService)
234
- .subscribe('user.created')
235
- .subscribe('user.updated')
236
- .subscribe('user.deleted')
237
- .handle(async () => {});
238
-
239
- expect(subscriber.subscribedEvents).toEqual([
240
- 'user.created',
241
- 'user.updated',
242
- 'user.deleted',
243
- ]);
244
- });
245
-
246
- it('should subscribe to multiple events via array', () => {
247
- const subscriber = new SubscriberBuilder()
248
- .publisher(TestEventService)
249
- .subscribe(['user.created', 'user.updated', 'user.deleted'])
250
- .handle(async () => {});
251
-
252
- expect(subscriber.subscribedEvents).toEqual([
253
- 'user.created',
254
- 'user.updated',
255
- 'user.deleted',
256
- ]);
257
- });
258
-
259
- it('should mix array and single subscriptions', () => {
260
- const subscriber = new SubscriberBuilder()
261
- .publisher(TestEventService)
262
- .subscribe(['user.created', 'user.updated'])
263
- .subscribe('user.deleted')
264
- .handle(async () => {});
265
-
266
- expect(subscriber.subscribedEvents).toEqual([
267
- 'user.created',
268
- 'user.updated',
269
- 'user.deleted',
270
- ]);
271
- });
272
- });
273
-
274
- describe('handle', () => {
275
- it('should create a subscriber instance', () => {
276
- const handler = vi.fn(async () => {});
277
- const subscriber = new SubscriberBuilder()
278
- .publisher(TestEventService)
279
- .subscribe('user.created')
280
- .handle(handler);
281
-
282
- expect(subscriber).toBeInstanceOf(Subscriber);
283
- expect(subscriber.handler).toBe(handler);
284
- });
285
-
286
- it('should pass context to handler', async () => {
287
- const handler = vi.fn(
288
- async ({ events, services, logger }: SubscriberContext<any, any>) => {
289
- expect(events).toBeDefined();
290
- expect(services).toBeDefined();
291
- expect(logger).toBeDefined();
292
- },
293
- );
294
-
295
- const subscriber = new SubscriberBuilder()
296
- .publisher(TestEventService)
297
- .subscribe('user.created')
298
- .handle(handler);
299
-
300
- // Simulate calling the handler
301
- await subscriber.handler({
302
- events: [
303
- {
304
- type: 'user.created',
305
- payload: { userId: '1', email: 'test@example.com', name: 'Test' },
306
- },
307
- ] as any,
308
- services: {} as any,
309
- logger: mockLogger,
310
- });
311
-
312
- expect(handler).toHaveBeenCalled();
313
- });
314
-
315
- it('should handle events with correct typing', async () => {
316
- const handler = vi.fn(
317
- async ({
318
- events,
319
- }: SubscriberContext<TestEventPublisher, ['user.created']>) => {
320
- // Type assertions to verify correct typing
321
- events.forEach((event) => {
322
- if (event.type === 'user.created') {
323
- expect(event.payload.userId).toBeDefined();
324
- expect(event.payload.email).toBeDefined();
325
- expect(event.payload.name).toBeDefined();
326
- }
327
- });
328
-
329
- return { processed: events.length };
330
- },
331
- );
332
-
333
- const outputSchema = z.object({ processed: z.number() });
334
-
335
- const subscriber = new SubscriberBuilder()
336
- .publisher(TestEventService)
337
- .output(outputSchema)
338
- .subscribe('user.created')
339
- .handle(handler);
340
-
341
- const result = await subscriber.handler({
342
- events: [
343
- {
344
- type: 'user.created',
345
- payload: {
346
- userId: '123',
347
- email: 'test@example.com',
348
- name: 'Test User',
349
- },
350
- },
351
- ] as any,
352
- services: {} as any,
353
- logger: mockLogger,
354
- });
355
-
356
- expect(result).toEqual({ processed: 1 });
357
- expect(handler).toHaveBeenCalled();
358
- });
359
-
360
- it('should handle batch of events', async () => {
361
- const processedEvents: UserEvent[] = [];
362
- const handler = vi.fn(async ({ events }) => {
363
- processedEvents.push(...events);
364
- return { count: events.length };
365
- });
366
-
367
- const subscriber = new SubscriberBuilder()
368
- .publisher(TestEventService)
369
- .subscribe(['user.created', 'user.updated'])
370
- .handle(handler);
371
-
372
- const testEvents = [
373
- {
374
- type: 'user.created' as const,
375
- payload: { userId: '1', email: 'user1@test.com', name: 'User 1' },
376
- },
377
- {
378
- type: 'user.created' as const,
379
- payload: { userId: '2', email: 'user2@test.com', name: 'User 2' },
380
- },
381
- {
382
- type: 'user.updated' as const,
383
- payload: { userId: '1', changes: { name: 'Updated Name' } },
384
- },
385
- ];
386
-
387
- await subscriber.handler({
388
- events: testEvents as any,
389
- services: {} as any,
390
- logger: mockLogger,
391
- });
392
-
393
- expect(handler).toHaveBeenCalled();
394
- expect(processedEvents).toHaveLength(3);
395
- });
396
- });
397
-
398
- describe('builder chaining', () => {
399
- it('should support fluent builder pattern', () => {
400
- const mockService: Service<'db', any> = {
401
- serviceName: 'db' as const,
402
- register() {
403
- return {};
404
- },
405
- };
406
-
407
- const customLogger = { ...mockLogger };
408
-
409
- const subscriber = new SubscriberBuilder()
410
- .timeout(45000)
411
- .logger(customLogger)
412
- .publisher(TestEventService)
413
- .services([mockService])
414
- .output(z.object({ success: z.boolean() }))
415
- .subscribe('user.created')
416
- .subscribe('user.updated')
417
- .handle(async ({ events }) => {
418
- return { success: events.length > 0 };
419
- });
420
-
421
- expect(subscriber.timeout).toBe(45000);
422
- expect(subscriber.logger).toBe(customLogger);
423
- expect(subscriber.publisherService).toBe(TestEventService);
424
- expect(subscriber.services).toEqual([mockService]);
425
- expect(subscriber.subscribedEvents).toEqual([
426
- 'user.created',
427
- 'user.updated',
428
- ]);
429
- expect(subscriber.outputSchema).toBeDefined();
430
- });
431
- });
111
+ describe('timeout', () => {
112
+ it('should set custom timeout', () => {
113
+ const subscriber = new SubscriberBuilder()
114
+ .publisher(TestEventService)
115
+ .timeout(60000)
116
+ .subscribe('user.created')
117
+ .handle(async () => {});
118
+
119
+ expect(subscriber.timeout).toBe(60000);
120
+ });
121
+
122
+ it('should use default timeout if not set', () => {
123
+ const subscriber = new SubscriberBuilder()
124
+ .publisher(TestEventService)
125
+ .subscribe('user.created')
126
+ .handle(async () => {});
127
+
128
+ expect(subscriber.timeout).toBe(30000);
129
+ });
130
+ });
131
+
132
+ describe('output', () => {
133
+ it('should set output schema', () => {
134
+ const outputSchema = z.object({
135
+ processed: z.number(),
136
+ });
137
+
138
+ const subscriber = new SubscriberBuilder()
139
+ .publisher(TestEventService)
140
+ .output(outputSchema)
141
+ .subscribe('user.created')
142
+ .handle(async () => ({ processed: 1 }));
143
+
144
+ expect(subscriber.outputSchema).toBe(outputSchema);
145
+ });
146
+ });
147
+
148
+ describe('services', () => {
149
+ it('should register services', () => {
150
+ const mockService: Service<'test', { foo: string }> = {
151
+ serviceName: 'test' as const,
152
+ register() {
153
+ return { foo: 'bar' };
154
+ },
155
+ };
156
+
157
+ const subscriber = new SubscriberBuilder()
158
+ .publisher(TestEventService)
159
+ .services([mockService])
160
+ .subscribe('user.created')
161
+ .handle(async () => {});
162
+
163
+ expect(subscriber.services).toEqual([mockService]);
164
+ });
165
+
166
+ it('should accumulate multiple service calls', () => {
167
+ const service1: Service<'service1', { a: string }> = {
168
+ serviceName: 'service1' as const,
169
+ register() {
170
+ return { a: 'a' };
171
+ },
172
+ };
173
+ const service2: Service<'service2', { b: string }> = {
174
+ serviceName: 'service2' as const,
175
+ register() {
176
+ return { b: 'b' };
177
+ },
178
+ };
179
+
180
+ const subscriber = new SubscriberBuilder()
181
+ .publisher(TestEventService)
182
+ .services([service1])
183
+ .services([service2])
184
+ .subscribe('user.created')
185
+ .handle(async () => {});
186
+
187
+ expect(subscriber.services).toEqual([service1, service2]);
188
+ });
189
+ });
190
+
191
+ describe('logger', () => {
192
+ it('should set custom logger', () => {
193
+ const customLogger: Logger = {
194
+ ...mockLogger,
195
+ info: vi.fn(),
196
+ };
197
+
198
+ const subscriber = new SubscriberBuilder()
199
+ .publisher(TestEventService)
200
+ .logger(customLogger)
201
+ .subscribe('user.created')
202
+ .handle(async () => {});
203
+
204
+ expect(subscriber.logger).toBe(customLogger);
205
+ });
206
+ });
207
+
208
+ describe('publisher', () => {
209
+ it('should set publisher service', () => {
210
+ const subscriber = new SubscriberBuilder()
211
+ .publisher(TestEventService)
212
+ .subscribe('user.created')
213
+ .handle(async () => {});
214
+
215
+ expect(subscriber.publisherService).toBe(TestEventService);
216
+ });
217
+ });
218
+
219
+ describe('subscribe', () => {
220
+ it('should subscribe to single event', () => {
221
+ const subscriber = new SubscriberBuilder()
222
+ .publisher(TestEventService)
223
+ .subscribe('user.created')
224
+ .handle(async () => {});
225
+
226
+ expect(subscriber.subscribedEvents).toEqual(['user.created']);
227
+ });
228
+
229
+ it('should subscribe to multiple events via chaining', () => {
230
+ const subscriber = new SubscriberBuilder()
231
+ .publisher(TestEventService)
232
+ .subscribe('user.created')
233
+ .subscribe('user.updated')
234
+ .subscribe('user.deleted')
235
+ .handle(async () => {});
236
+
237
+ expect(subscriber.subscribedEvents).toEqual([
238
+ 'user.created',
239
+ 'user.updated',
240
+ 'user.deleted',
241
+ ]);
242
+ });
243
+
244
+ it('should subscribe to multiple events via array', () => {
245
+ const subscriber = new SubscriberBuilder()
246
+ .publisher(TestEventService)
247
+ .subscribe(['user.created', 'user.updated', 'user.deleted'])
248
+ .handle(async () => {});
249
+
250
+ expect(subscriber.subscribedEvents).toEqual([
251
+ 'user.created',
252
+ 'user.updated',
253
+ 'user.deleted',
254
+ ]);
255
+ });
256
+
257
+ it('should mix array and single subscriptions', () => {
258
+ const subscriber = new SubscriberBuilder()
259
+ .publisher(TestEventService)
260
+ .subscribe(['user.created', 'user.updated'])
261
+ .subscribe('user.deleted')
262
+ .handle(async () => {});
263
+
264
+ expect(subscriber.subscribedEvents).toEqual([
265
+ 'user.created',
266
+ 'user.updated',
267
+ 'user.deleted',
268
+ ]);
269
+ });
270
+ });
271
+
272
+ describe('handle', () => {
273
+ it('should create a subscriber instance', () => {
274
+ const handler = vi.fn(async () => {});
275
+ const subscriber = new SubscriberBuilder()
276
+ .publisher(TestEventService)
277
+ .subscribe('user.created')
278
+ .handle(handler);
279
+
280
+ expect(subscriber).toBeInstanceOf(Subscriber);
281
+ expect(subscriber.handler).toBe(handler);
282
+ });
283
+
284
+ it('should pass context to handler', async () => {
285
+ const handler = vi.fn(
286
+ async ({ events, services, logger }: SubscriberContext<any, any>) => {
287
+ expect(events).toBeDefined();
288
+ expect(services).toBeDefined();
289
+ expect(logger).toBeDefined();
290
+ },
291
+ );
292
+
293
+ const subscriber = new SubscriberBuilder()
294
+ .publisher(TestEventService)
295
+ .subscribe('user.created')
296
+ .handle(handler);
297
+
298
+ // Simulate calling the handler
299
+ await subscriber.handler({
300
+ events: [
301
+ {
302
+ type: 'user.created',
303
+ payload: { userId: '1', email: 'test@example.com', name: 'Test' },
304
+ },
305
+ ] as any,
306
+ services: {} as any,
307
+ logger: mockLogger,
308
+ });
309
+
310
+ expect(handler).toHaveBeenCalled();
311
+ });
312
+
313
+ it('should handle events with correct typing', async () => {
314
+ const handler = vi.fn(
315
+ async ({
316
+ events,
317
+ }: SubscriberContext<TestEventPublisher, ['user.created']>) => {
318
+ // Type assertions to verify correct typing
319
+ events.forEach((event) => {
320
+ if (event.type === 'user.created') {
321
+ expect(event.payload.userId).toBeDefined();
322
+ expect(event.payload.email).toBeDefined();
323
+ expect(event.payload.name).toBeDefined();
324
+ }
325
+ });
326
+
327
+ return { processed: events.length };
328
+ },
329
+ );
330
+
331
+ const outputSchema = z.object({ processed: z.number() });
332
+
333
+ const subscriber = new SubscriberBuilder()
334
+ .publisher(TestEventService)
335
+ .output(outputSchema)
336
+ .subscribe('user.created')
337
+ .handle(handler);
338
+
339
+ const result = await subscriber.handler({
340
+ events: [
341
+ {
342
+ type: 'user.created',
343
+ payload: {
344
+ userId: '123',
345
+ email: 'test@example.com',
346
+ name: 'Test User',
347
+ },
348
+ },
349
+ ] as any,
350
+ services: {} as any,
351
+ logger: mockLogger,
352
+ });
353
+
354
+ expect(result).toEqual({ processed: 1 });
355
+ expect(handler).toHaveBeenCalled();
356
+ });
357
+
358
+ it('should handle batch of events', async () => {
359
+ const processedEvents: UserEvent[] = [];
360
+ const handler = vi.fn(async ({ events }) => {
361
+ processedEvents.push(...events);
362
+ return { count: events.length };
363
+ });
364
+
365
+ const subscriber = new SubscriberBuilder()
366
+ .publisher(TestEventService)
367
+ .subscribe(['user.created', 'user.updated'])
368
+ .handle(handler);
369
+
370
+ const testEvents = [
371
+ {
372
+ type: 'user.created' as const,
373
+ payload: { userId: '1', email: 'user1@test.com', name: 'User 1' },
374
+ },
375
+ {
376
+ type: 'user.created' as const,
377
+ payload: { userId: '2', email: 'user2@test.com', name: 'User 2' },
378
+ },
379
+ {
380
+ type: 'user.updated' as const,
381
+ payload: { userId: '1', changes: { name: 'Updated Name' } },
382
+ },
383
+ ];
384
+
385
+ await subscriber.handler({
386
+ events: testEvents as any,
387
+ services: {} as any,
388
+ logger: mockLogger,
389
+ });
390
+
391
+ expect(handler).toHaveBeenCalled();
392
+ expect(processedEvents).toHaveLength(3);
393
+ });
394
+ });
395
+
396
+ describe('builder chaining', () => {
397
+ it('should support fluent builder pattern', () => {
398
+ const mockService: Service<'db', any> = {
399
+ serviceName: 'db' as const,
400
+ register() {
401
+ return {};
402
+ },
403
+ };
404
+
405
+ const customLogger = { ...mockLogger };
406
+
407
+ const subscriber = new SubscriberBuilder()
408
+ .timeout(45000)
409
+ .logger(customLogger)
410
+ .publisher(TestEventService)
411
+ .services([mockService])
412
+ .output(z.object({ success: z.boolean() }))
413
+ .subscribe('user.created')
414
+ .subscribe('user.updated')
415
+ .handle(async ({ events }) => {
416
+ return { success: events.length > 0 };
417
+ });
418
+
419
+ expect(subscriber.timeout).toBe(45000);
420
+ expect(subscriber.logger).toBe(customLogger);
421
+ expect(subscriber.publisherService).toBe(TestEventService);
422
+ expect(subscriber.services).toEqual([mockService]);
423
+ expect(subscriber.subscribedEvents).toEqual([
424
+ 'user.created',
425
+ 'user.updated',
426
+ ]);
427
+ expect(subscriber.outputSchema).toBeDefined();
428
+ });
429
+ });
432
430
  });