@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,7 +1,7 @@
1
1
  import type {
2
- AuditRecord,
3
- AuditStorage,
4
- AuditableAction,
2
+ AuditableAction,
3
+ AuditRecord,
4
+ AuditStorage,
5
5
  } from '@geekmidas/audit';
6
6
  import type { EventPublisher, PublishableMessage } from '@geekmidas/events';
7
7
  import { LogLevel } from '@geekmidas/logger';
@@ -10,8 +10,8 @@ import type { Service } from '@geekmidas/services';
10
10
  import { bench, describe } from 'vitest';
11
11
  import { z } from 'zod';
12
12
  import { e } from '../endpoints';
13
- import { TestEndpointAdaptor } from '../endpoints/TestEndpointAdaptor';
14
13
  import type { MappedAudit } from '../endpoints/audit';
14
+ import { TestEndpointAdaptor } from '../endpoints/TestEndpointAdaptor';
15
15
 
16
16
  // Silent logger for benchmarks - no console output
17
17
  const silentLogger = new ConsoleLogger({}, LogLevel.Silent);
@@ -23,75 +23,75 @@ const api = e.logger(silentLogger);
23
23
 
24
24
  // Simple database service
25
25
  interface MockDatabase {
26
- query: (sql: string) => Promise<any[]>;
27
- findById: (table: string, id: string) => Promise<any>;
26
+ query: (sql: string) => Promise<any[]>;
27
+ findById: (table: string, id: string) => Promise<any>;
28
28
  }
29
29
 
30
30
  const DatabaseService: Service<'database', MockDatabase> = {
31
- serviceName: 'database' as const,
32
- register: async () => ({
33
- query: async () => [],
34
- findById: async (table, id) => ({ id, table }),
35
- }),
31
+ serviceName: 'database' as const,
32
+ register: async () => ({
33
+ query: async () => [],
34
+ findById: async (table, id) => ({ id, table }),
35
+ }),
36
36
  };
37
37
 
38
38
  // Cache service
39
39
  interface MockCache {
40
- get: (key: string) => Promise<string | null>;
41
- set: (key: string, value: string) => Promise<void>;
40
+ get: (key: string) => Promise<string | null>;
41
+ set: (key: string, value: string) => Promise<void>;
42
42
  }
43
43
 
44
44
  const CacheService: Service<'cache', MockCache> = {
45
- serviceName: 'cache' as const,
46
- register: async () => ({
47
- get: async () => null,
48
- set: async () => {},
49
- }),
45
+ serviceName: 'cache' as const,
46
+ register: async () => ({
47
+ get: async () => null,
48
+ set: async () => {},
49
+ }),
50
50
  };
51
51
 
52
52
  // Auth service
53
53
  interface MockAuth {
54
- validateToken: (token: string) => Promise<boolean>;
55
- getUserId: (token: string) => Promise<string>;
54
+ validateToken: (token: string) => Promise<boolean>;
55
+ getUserId: (token: string) => Promise<string>;
56
56
  }
57
57
 
58
58
  const AuthService: Service<'auth', MockAuth> = {
59
- serviceName: 'auth' as const,
60
- register: async () => ({
61
- validateToken: async () => true,
62
- getUserId: async () => 'user-123',
63
- }),
59
+ serviceName: 'auth' as const,
60
+ register: async () => ({
61
+ validateToken: async () => true,
62
+ getUserId: async () => 'user-123',
63
+ }),
64
64
  };
65
65
 
66
66
  // Audit storage
67
67
  type TestAuditAction =
68
- | AuditableAction<'user.created', { userId: string }>
69
- | AuditableAction<'user.updated', { userId: string }>;
68
+ | AuditableAction<'user.created', { userId: string }>
69
+ | AuditableAction<'user.updated', { userId: string }>;
70
70
 
71
71
  class MockAuditStorage implements AuditStorage<TestAuditAction> {
72
- declare readonly __auditActionType?: TestAuditAction;
73
- async write(_records: AuditRecord[]): Promise<void> {}
74
- async query(): Promise<AuditRecord[]> {
75
- return [];
76
- }
72
+ declare readonly __auditActionType?: TestAuditAction;
73
+ async write(_records: AuditRecord[]): Promise<void> {}
74
+ async query(): Promise<AuditRecord[]> {
75
+ return [];
76
+ }
77
77
  }
78
78
 
79
79
  const AuditStorageService: Service<'auditStorage', MockAuditStorage> = {
80
- serviceName: 'auditStorage' as const,
81
- register: async () => new MockAuditStorage(),
80
+ serviceName: 'auditStorage' as const,
81
+ register: async () => new MockAuditStorage(),
82
82
  };
83
83
 
84
84
  // Event publisher
85
85
  type TestEvent = PublishableMessage<'user.created', { userId: string }>;
86
86
 
87
87
  class MockPublisher implements EventPublisher<TestEvent> {
88
- async publish(_messages: TestEvent[]): Promise<void> {}
89
- async close(): Promise<void> {}
88
+ async publish(_messages: TestEvent[]): Promise<void> {}
89
+ async close(): Promise<void> {}
90
90
  }
91
91
 
92
92
  const PublisherService: Service<'publisher', MockPublisher> = {
93
- serviceName: 'publisher' as const,
94
- register: async () => new MockPublisher(),
93
+ serviceName: 'publisher' as const,
94
+ register: async () => new MockPublisher(),
95
95
  };
96
96
 
97
97
  // Pre-registered services for benchmarks
@@ -101,120 +101,120 @@ const registeredAuth = await AuthService.register({} as any);
101
101
  const auditStorage = new MockAuditStorage();
102
102
 
103
103
  describe('Endpoint Handling - Simple', () => {
104
- const simpleEndpoint = api
105
- .get('/health')
106
- .handle(async () => ({ status: 'ok' }));
107
- const adaptor = new TestEndpointAdaptor(simpleEndpoint);
108
-
109
- bench('simple GET endpoint', async () => {
110
- await adaptor.request({
111
- services: {},
112
- headers: {},
113
- });
114
- });
104
+ const simpleEndpoint = api
105
+ .get('/health')
106
+ .handle(async () => ({ status: 'ok' }));
107
+ const adaptor = new TestEndpointAdaptor(simpleEndpoint);
108
+
109
+ bench('simple GET endpoint', async () => {
110
+ await adaptor.request({
111
+ services: {},
112
+ headers: {},
113
+ });
114
+ });
115
115
  });
116
116
 
117
117
  describe('Endpoint Handling - With Validation', () => {
118
- const validatedEndpoint = api
119
- .post('/users')
120
- .body(z.object({ name: z.string(), email: z.string().email() }))
121
- .output(z.object({ id: z.string() }))
122
- .handle(async () => ({ id: '123' }));
123
-
124
- const adaptor = new TestEndpointAdaptor(validatedEndpoint);
125
-
126
- bench('POST with body validation', async () => {
127
- await adaptor.request({
128
- services: {},
129
- headers: { 'content-type': 'application/json' },
130
- body: { name: 'Test User', email: 'test@example.com' },
131
- });
132
- });
133
-
134
- const complexBodyEndpoint = api
135
- .post('/complex')
136
- .body(
137
- z.object({
138
- user: z.object({
139
- name: z.string(),
140
- email: z.string().email(),
141
- profile: z.object({
142
- bio: z.string().optional(),
143
- avatar: z.string().url().optional(),
144
- }),
145
- }),
146
- items: z.array(
147
- z.object({
148
- id: z.string(),
149
- quantity: z.number().int().positive(),
150
- }),
151
- ),
152
- }),
153
- )
154
- .output(z.object({ success: z.boolean() }))
155
- .handle(async () => ({ success: true }));
156
-
157
- const complexAdaptor = new TestEndpointAdaptor(complexBodyEndpoint);
158
-
159
- bench('POST with complex body validation', async () => {
160
- await complexAdaptor.request({
161
- services: {},
162
- headers: { 'content-type': 'application/json' },
163
- body: {
164
- user: {
165
- name: 'Test',
166
- email: 'test@example.com',
167
- profile: { bio: 'Hello', avatar: 'https://example.com/avatar.jpg' },
168
- },
169
- items: [
170
- { id: '1', quantity: 2 },
171
- { id: '2', quantity: 5 },
172
- ],
173
- },
174
- });
175
- });
118
+ const validatedEndpoint = api
119
+ .post('/users')
120
+ .body(z.object({ name: z.string(), email: z.string().email() }))
121
+ .output(z.object({ id: z.string() }))
122
+ .handle(async () => ({ id: '123' }));
123
+
124
+ const adaptor = new TestEndpointAdaptor(validatedEndpoint);
125
+
126
+ bench('POST with body validation', async () => {
127
+ await adaptor.request({
128
+ services: {},
129
+ headers: { 'content-type': 'application/json' },
130
+ body: { name: 'Test User', email: 'test@example.com' },
131
+ });
132
+ });
133
+
134
+ const complexBodyEndpoint = api
135
+ .post('/complex')
136
+ .body(
137
+ z.object({
138
+ user: z.object({
139
+ name: z.string(),
140
+ email: z.string().email(),
141
+ profile: z.object({
142
+ bio: z.string().optional(),
143
+ avatar: z.string().url().optional(),
144
+ }),
145
+ }),
146
+ items: z.array(
147
+ z.object({
148
+ id: z.string(),
149
+ quantity: z.number().int().positive(),
150
+ }),
151
+ ),
152
+ }),
153
+ )
154
+ .output(z.object({ success: z.boolean() }))
155
+ .handle(async () => ({ success: true }));
156
+
157
+ const complexAdaptor = new TestEndpointAdaptor(complexBodyEndpoint);
158
+
159
+ bench('POST with complex body validation', async () => {
160
+ await complexAdaptor.request({
161
+ services: {},
162
+ headers: { 'content-type': 'application/json' },
163
+ body: {
164
+ user: {
165
+ name: 'Test',
166
+ email: 'test@example.com',
167
+ profile: { bio: 'Hello', avatar: 'https://example.com/avatar.jpg' },
168
+ },
169
+ items: [
170
+ { id: '1', quantity: 2 },
171
+ { id: '2', quantity: 5 },
172
+ ],
173
+ },
174
+ });
175
+ });
176
176
  });
177
177
 
178
178
  describe('Endpoint Handling - Path Params', () => {
179
- const paramsEndpoint = api
180
- .get('/users/:id')
181
- .params(z.object({ id: z.string() }))
182
- .output(z.object({ id: z.string(), name: z.string() }))
183
- .handle(async ({ params }) => ({ id: params.id, name: 'User' }));
184
-
185
- const adaptor = new TestEndpointAdaptor(paramsEndpoint);
186
-
187
- bench('GET with path params', async () => {
188
- await adaptor.request({
189
- services: {},
190
- headers: {},
191
- params: { id: '123' },
192
- });
193
- });
179
+ const paramsEndpoint = api
180
+ .get('/users/:id')
181
+ .params(z.object({ id: z.string() }))
182
+ .output(z.object({ id: z.string(), name: z.string() }))
183
+ .handle(async ({ params }) => ({ id: params.id, name: 'User' }));
184
+
185
+ const adaptor = new TestEndpointAdaptor(paramsEndpoint);
186
+
187
+ bench('GET with path params', async () => {
188
+ await adaptor.request({
189
+ services: {},
190
+ headers: {},
191
+ params: { id: '123' },
192
+ });
193
+ });
194
194
  });
195
195
 
196
196
  describe('Endpoint Handling - Query Params', () => {
197
- const queryEndpoint = api
198
- .get('/search')
199
- .query(
200
- z.object({
201
- q: z.string(),
202
- page: z.coerce.number().default(1),
203
- limit: z.coerce.number().default(10),
204
- }),
205
- )
206
- .output(z.object({ results: z.array(z.unknown()) }))
207
- .handle(async () => ({ results: [] }));
208
-
209
- const adaptor = new TestEndpointAdaptor(queryEndpoint);
210
-
211
- bench('GET with query params', async () => {
212
- await adaptor.request({
213
- services: {},
214
- headers: {},
215
- query: { q: 'test', page: 2, limit: 20 },
216
- });
217
- });
197
+ const queryEndpoint = api
198
+ .get('/search')
199
+ .query(
200
+ z.object({
201
+ q: z.string(),
202
+ page: z.coerce.number().default(1),
203
+ limit: z.coerce.number().default(10),
204
+ }),
205
+ )
206
+ .output(z.object({ results: z.array(z.unknown()) }))
207
+ .handle(async () => ({ results: [] }));
208
+
209
+ const adaptor = new TestEndpointAdaptor(queryEndpoint);
210
+
211
+ bench('GET with query params', async () => {
212
+ await adaptor.request({
213
+ services: {},
214
+ headers: {},
215
+ query: { q: 'test', page: 2, limit: 20 },
216
+ });
217
+ });
218
218
  });
219
219
 
220
220
  // ============================================================================
@@ -222,60 +222,60 @@ describe('Endpoint Handling - Query Params', () => {
222
222
  // ============================================================================
223
223
 
224
224
  describe('Endpoint Handling - Single Service', () => {
225
- const singleServiceEndpoint = api
226
- .get('/users/:id')
227
- .services([DatabaseService])
228
- .params(z.object({ id: z.string() }))
229
- .output(z.object({ id: z.string(), name: z.string() }))
230
- .handle(async ({ params, services }) => {
231
- const user = await services.database.findById('users', params.id);
232
- return { id: user.id, name: 'User' };
233
- });
234
-
235
- const adaptor = new TestEndpointAdaptor(singleServiceEndpoint);
236
-
237
- bench('GET with single service', async () => {
238
- await adaptor.request({
239
- services: { database: registeredDatabase },
240
- headers: {},
241
- params: { id: '123' },
242
- });
243
- });
225
+ const singleServiceEndpoint = api
226
+ .get('/users/:id')
227
+ .services([DatabaseService])
228
+ .params(z.object({ id: z.string() }))
229
+ .output(z.object({ id: z.string(), name: z.string() }))
230
+ .handle(async ({ params, services }) => {
231
+ const user = await services.database.findById('users', params.id);
232
+ return { id: user.id, name: 'User' };
233
+ });
234
+
235
+ const adaptor = new TestEndpointAdaptor(singleServiceEndpoint);
236
+
237
+ bench('GET with single service', async () => {
238
+ await adaptor.request({
239
+ services: { database: registeredDatabase },
240
+ headers: {},
241
+ params: { id: '123' },
242
+ });
243
+ });
244
244
  });
245
245
 
246
246
  describe('Endpoint Handling - Multiple Services', () => {
247
- const multiServiceEndpoint = api
248
- .get('/users/:id')
249
- .services([DatabaseService, CacheService, AuthService])
250
- .params(z.object({ id: z.string() }))
251
- .output(z.object({ id: z.string(), name: z.string(), cached: z.boolean() }))
252
- .handle(async ({ params, services }) => {
253
- // Check cache first
254
- const cached = await services.cache.get(`user:${params.id}`);
255
- if (cached) {
256
- return { id: params.id, name: cached, cached: true };
257
- }
258
- // Validate auth
259
- await services.auth.validateToken('token');
260
- // Query database
261
- const user = await services.database.findById('users', params.id);
262
- await services.cache.set(`user:${params.id}`, 'User');
263
- return { id: user.id, name: 'User', cached: false };
264
- });
265
-
266
- const adaptor = new TestEndpointAdaptor(multiServiceEndpoint);
267
-
268
- bench('GET with multiple services (3)', async () => {
269
- await adaptor.request({
270
- services: {
271
- database: registeredDatabase,
272
- cache: registeredCache,
273
- auth: registeredAuth,
274
- },
275
- headers: {},
276
- params: { id: '123' },
277
- });
278
- });
247
+ const multiServiceEndpoint = api
248
+ .get('/users/:id')
249
+ .services([DatabaseService, CacheService, AuthService])
250
+ .params(z.object({ id: z.string() }))
251
+ .output(z.object({ id: z.string(), name: z.string(), cached: z.boolean() }))
252
+ .handle(async ({ params, services }) => {
253
+ // Check cache first
254
+ const cached = await services.cache.get(`user:${params.id}`);
255
+ if (cached) {
256
+ return { id: params.id, name: cached, cached: true };
257
+ }
258
+ // Validate auth
259
+ await services.auth.validateToken('token');
260
+ // Query database
261
+ const user = await services.database.findById('users', params.id);
262
+ await services.cache.set(`user:${params.id}`, 'User');
263
+ return { id: user.id, name: 'User', cached: false };
264
+ });
265
+
266
+ const adaptor = new TestEndpointAdaptor(multiServiceEndpoint);
267
+
268
+ bench('GET with multiple services (3)', async () => {
269
+ await adaptor.request({
270
+ services: {
271
+ database: registeredDatabase,
272
+ cache: registeredCache,
273
+ auth: registeredAuth,
274
+ },
275
+ headers: {},
276
+ params: { id: '123' },
277
+ });
278
+ });
279
279
  });
280
280
 
281
281
  // ============================================================================
@@ -283,58 +283,58 @@ describe('Endpoint Handling - Multiple Services', () => {
283
283
  // ============================================================================
284
284
 
285
285
  describe('Endpoint Handling - Session Extraction', () => {
286
- type UserSession = { userId: string; role: string };
287
-
288
- // Session is configured at factory level
289
- const sessionApi = api.session<UserSession>(async ({ header }) => {
290
- const token = header('authorization')?.replace('Bearer ', '');
291
- if (!token) return { userId: 'anonymous', role: 'guest' };
292
- return { userId: 'user-123', role: 'admin' };
293
- });
294
-
295
- const sessionEndpoint = sessionApi
296
- .get('/profile')
297
- .output(z.object({ userId: z.string(), role: z.string() }))
298
- .handle(async ({ session }) => ({
299
- userId: session.userId,
300
- role: session.role,
301
- }));
302
-
303
- const adaptor = new TestEndpointAdaptor(sessionEndpoint);
304
-
305
- bench('GET with session extraction', async () => {
306
- await adaptor.request({
307
- services: {},
308
- headers: { authorization: 'Bearer test-token' },
309
- });
310
- });
286
+ type UserSession = { userId: string; role: string };
287
+
288
+ // Session is configured at factory level
289
+ const sessionApi = api.session<UserSession>(async ({ header }) => {
290
+ const token = header('authorization')?.replace('Bearer ', '');
291
+ if (!token) return { userId: 'anonymous', role: 'guest' };
292
+ return { userId: 'user-123', role: 'admin' };
293
+ });
294
+
295
+ const sessionEndpoint = sessionApi
296
+ .get('/profile')
297
+ .output(z.object({ userId: z.string(), role: z.string() }))
298
+ .handle(async ({ session }) => ({
299
+ userId: session.userId,
300
+ role: session.role,
301
+ }));
302
+
303
+ const adaptor = new TestEndpointAdaptor(sessionEndpoint);
304
+
305
+ bench('GET with session extraction', async () => {
306
+ await adaptor.request({
307
+ services: {},
308
+ headers: { authorization: 'Bearer test-token' },
309
+ });
310
+ });
311
311
  });
312
312
 
313
313
  describe('Endpoint Handling - Authorization', () => {
314
- // Authorization is configured at factory level
315
- const authApi = api.authorize(async ({ header }) => {
316
- const token = header('authorization');
317
- return token === 'Bearer admin-token';
318
- });
319
-
320
- const authEndpoint = authApi
321
- .post('/admin/action')
322
- .body(z.object({ action: z.string() }))
323
- .output(z.object({ success: z.boolean() }))
324
- .handle(async () => ({ success: true }));
325
-
326
- const adaptor = new TestEndpointAdaptor(authEndpoint);
327
-
328
- bench('POST with authorization check', async () => {
329
- await adaptor.request({
330
- services: {},
331
- headers: {
332
- authorization: 'Bearer admin-token',
333
- 'content-type': 'application/json',
334
- },
335
- body: { action: 'delete-all' },
336
- });
337
- });
314
+ // Authorization is configured at factory level
315
+ const authApi = api.authorize(async ({ header }) => {
316
+ const token = header('authorization');
317
+ return token === 'Bearer admin-token';
318
+ });
319
+
320
+ const authEndpoint = authApi
321
+ .post('/admin/action')
322
+ .body(z.object({ action: z.string() }))
323
+ .output(z.object({ success: z.boolean() }))
324
+ .handle(async () => ({ success: true }));
325
+
326
+ const adaptor = new TestEndpointAdaptor(authEndpoint);
327
+
328
+ bench('POST with authorization check', async () => {
329
+ await adaptor.request({
330
+ services: {},
331
+ headers: {
332
+ authorization: 'Bearer admin-token',
333
+ 'content-type': 'application/json',
334
+ },
335
+ body: { action: 'delete-all' },
336
+ });
337
+ });
338
338
  });
339
339
 
340
340
  // ============================================================================
@@ -342,61 +342,61 @@ describe('Endpoint Handling - Authorization', () => {
342
342
  // ============================================================================
343
343
 
344
344
  describe('Endpoint Handling - Declarative Audit', () => {
345
- const outputSchema = z.object({ id: z.string(), email: z.string() });
346
- type OutputType = z.infer<typeof outputSchema>;
347
-
348
- const audits: MappedAudit<TestAuditAction, typeof outputSchema>[] = [
349
- {
350
- type: 'user.created',
351
- payload: (response: OutputType) => ({ userId: response.id }),
352
- },
353
- ];
354
-
355
- const auditEndpoint = api
356
- .post('/users')
357
- .auditor(AuditStorageService)
358
- .body(z.object({ name: z.string(), email: z.string() }))
359
- .output(outputSchema)
360
- .audit(audits)
361
- .handle(async ({ body }) => ({
362
- id: crypto.randomUUID(),
363
- email: body.email,
364
- }));
365
-
366
- const adaptor = new TestEndpointAdaptor(auditEndpoint);
367
-
368
- bench('POST with declarative audit', async () => {
369
- await adaptor.request({
370
- services: {},
371
- headers: { 'content-type': 'application/json' },
372
- body: { name: 'Test User', email: 'test@example.com' },
373
- auditorStorage: auditStorage,
374
- });
375
- });
345
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
346
+ type OutputType = z.infer<typeof outputSchema>;
347
+
348
+ const audits: MappedAudit<TestAuditAction, typeof outputSchema>[] = [
349
+ {
350
+ type: 'user.created',
351
+ payload: (response: OutputType) => ({ userId: response.id }),
352
+ },
353
+ ];
354
+
355
+ const auditEndpoint = api
356
+ .post('/users')
357
+ .auditor(AuditStorageService)
358
+ .body(z.object({ name: z.string(), email: z.string() }))
359
+ .output(outputSchema)
360
+ .audit(audits)
361
+ .handle(async ({ body }) => ({
362
+ id: crypto.randomUUID(),
363
+ email: body.email,
364
+ }));
365
+
366
+ const adaptor = new TestEndpointAdaptor(auditEndpoint);
367
+
368
+ bench('POST with declarative audit', async () => {
369
+ await adaptor.request({
370
+ services: {},
371
+ headers: { 'content-type': 'application/json' },
372
+ body: { name: 'Test User', email: 'test@example.com' },
373
+ auditorStorage: auditStorage,
374
+ });
375
+ });
376
376
  });
377
377
 
378
378
  describe('Endpoint Handling - Manual Audit', () => {
379
- const manualAuditEndpoint = api
380
- .post('/users')
381
- .auditor(AuditStorageService)
382
- .body(z.object({ name: z.string(), email: z.string() }))
383
- .output(z.object({ id: z.string() }))
384
- .handle(async ({ body, auditor }) => {
385
- const id = crypto.randomUUID();
386
- auditor?.audit('user.created', { userId: id });
387
- return { id };
388
- });
389
-
390
- const adaptor = new TestEndpointAdaptor(manualAuditEndpoint);
391
-
392
- bench('POST with manual audit', async () => {
393
- await adaptor.request({
394
- services: {},
395
- headers: { 'content-type': 'application/json' },
396
- body: { name: 'Test User', email: 'test@example.com' },
397
- auditorStorage: auditStorage,
398
- });
399
- });
379
+ const manualAuditEndpoint = api
380
+ .post('/users')
381
+ .auditor(AuditStorageService)
382
+ .body(z.object({ name: z.string(), email: z.string() }))
383
+ .output(z.object({ id: z.string() }))
384
+ .handle(async ({ body, auditor }) => {
385
+ const id = crypto.randomUUID();
386
+ auditor?.audit('user.created', { userId: id });
387
+ return { id };
388
+ });
389
+
390
+ const adaptor = new TestEndpointAdaptor(manualAuditEndpoint);
391
+
392
+ bench('POST with manual audit', async () => {
393
+ await adaptor.request({
394
+ services: {},
395
+ headers: { 'content-type': 'application/json' },
396
+ body: { name: 'Test User', email: 'test@example.com' },
397
+ auditorStorage: auditStorage,
398
+ });
399
+ });
400
400
  });
401
401
 
402
402
  // ============================================================================
@@ -404,27 +404,27 @@ describe('Endpoint Handling - Manual Audit', () => {
404
404
  // ============================================================================
405
405
 
406
406
  describe('Endpoint Handling - Event Publishing', () => {
407
- const publisherEndpoint = api
408
- .post('/users')
409
- .publisher(PublisherService)
410
- .body(z.object({ name: z.string(), email: z.string() }))
411
- .output(z.object({ id: z.string() }))
412
- .event({
413
- type: 'user.created',
414
- payload: (response) => ({ userId: response.id }),
415
- })
416
- .handle(async () => ({ id: crypto.randomUUID() }));
417
-
418
- const adaptor = new TestEndpointAdaptor(publisherEndpoint);
419
-
420
- bench('POST with event publishing', async () => {
421
- await adaptor.request({
422
- services: {},
423
- headers: { 'content-type': 'application/json' },
424
- body: { name: 'Test User', email: 'test@example.com' },
425
- publisher: PublisherService,
426
- });
427
- });
407
+ const publisherEndpoint = api
408
+ .post('/users')
409
+ .publisher(PublisherService)
410
+ .body(z.object({ name: z.string(), email: z.string() }))
411
+ .output(z.object({ id: z.string() }))
412
+ .event({
413
+ type: 'user.created',
414
+ payload: (response) => ({ userId: response.id }),
415
+ })
416
+ .handle(async () => ({ id: crypto.randomUUID() }));
417
+
418
+ const adaptor = new TestEndpointAdaptor(publisherEndpoint);
419
+
420
+ bench('POST with event publishing', async () => {
421
+ await adaptor.request({
422
+ services: {},
423
+ headers: { 'content-type': 'application/json' },
424
+ body: { name: 'Test User', email: 'test@example.com' },
425
+ publisher: PublisherService,
426
+ });
427
+ });
428
428
  });
429
429
 
430
430
  // ============================================================================
@@ -432,63 +432,63 @@ describe('Endpoint Handling - Event Publishing', () => {
432
432
  // ============================================================================
433
433
 
434
434
  describe('Endpoint Handling - Full Stack (Services + Session + Audit)', () => {
435
- type UserSession = { userId: string; role: string };
436
- const outputSchema = z.object({ id: z.string(), email: z.string() });
437
- type OutputType = z.infer<typeof outputSchema>;
438
-
439
- const audits: MappedAudit<TestAuditAction, typeof outputSchema>[] = [
440
- {
441
- type: 'user.created',
442
- payload: (response: OutputType) => ({ userId: response.id }),
443
- },
444
- ];
445
-
446
- // Configure factory with session and authorization
447
- const fullStackApi = api
448
- .services([DatabaseService, CacheService])
449
- .session<UserSession>(async () => ({ userId: 'admin-123', role: 'admin' }))
450
- .authorize(async ({ session }) => session.role === 'admin');
451
-
452
- const fullStackEndpoint = fullStackApi
453
- .post('/users')
454
- .auditor(AuditStorageService)
455
- .body(
456
- z.object({
457
- name: z.string(),
458
- email: z.string().email(),
459
- profile: z.object({ bio: z.string().optional() }),
460
- }),
461
- )
462
- .output(outputSchema)
463
- .audit(audits)
464
- .handle(async ({ body, services }) => {
465
- // Simulate real work
466
- await services.database.query('INSERT INTO users...');
467
- await services.cache.set(`user:new`, body.name);
468
- return {
469
- id: crypto.randomUUID(),
470
- email: body.email,
471
- };
472
- });
473
-
474
- const adaptor = new TestEndpointAdaptor(fullStackEndpoint);
475
-
476
- bench('POST full stack (services + session + audit)', async () => {
477
- await adaptor.request({
478
- services: {
479
- database: registeredDatabase,
480
- cache: registeredCache,
481
- },
482
- headers: {
483
- authorization: 'Bearer admin-token',
484
- 'content-type': 'application/json',
485
- },
486
- body: {
487
- name: 'New User',
488
- email: 'new@example.com',
489
- profile: { bio: 'Hello world' },
490
- },
491
- auditorStorage: auditStorage,
492
- });
493
- });
435
+ type UserSession = { userId: string; role: string };
436
+ const outputSchema = z.object({ id: z.string(), email: z.string() });
437
+ type OutputType = z.infer<typeof outputSchema>;
438
+
439
+ const audits: MappedAudit<TestAuditAction, typeof outputSchema>[] = [
440
+ {
441
+ type: 'user.created',
442
+ payload: (response: OutputType) => ({ userId: response.id }),
443
+ },
444
+ ];
445
+
446
+ // Configure factory with session and authorization
447
+ const fullStackApi = api
448
+ .services([DatabaseService, CacheService])
449
+ .session<UserSession>(async () => ({ userId: 'admin-123', role: 'admin' }))
450
+ .authorize(async ({ session }) => session.role === 'admin');
451
+
452
+ const fullStackEndpoint = fullStackApi
453
+ .post('/users')
454
+ .auditor(AuditStorageService)
455
+ .body(
456
+ z.object({
457
+ name: z.string(),
458
+ email: z.string().email(),
459
+ profile: z.object({ bio: z.string().optional() }),
460
+ }),
461
+ )
462
+ .output(outputSchema)
463
+ .audit(audits)
464
+ .handle(async ({ body, services }) => {
465
+ // Simulate real work
466
+ await services.database.query('INSERT INTO users...');
467
+ await services.cache.set(`user:new`, body.name);
468
+ return {
469
+ id: crypto.randomUUID(),
470
+ email: body.email,
471
+ };
472
+ });
473
+
474
+ const adaptor = new TestEndpointAdaptor(fullStackEndpoint);
475
+
476
+ bench('POST full stack (services + session + audit)', async () => {
477
+ await adaptor.request({
478
+ services: {
479
+ database: registeredDatabase,
480
+ cache: registeredCache,
481
+ },
482
+ headers: {
483
+ authorization: 'Bearer admin-token',
484
+ 'content-type': 'application/json',
485
+ },
486
+ body: {
487
+ name: 'New User',
488
+ email: 'new@example.com',
489
+ profile: { bio: 'Hello world' },
490
+ },
491
+ auditorStorage: auditStorage,
492
+ });
493
+ });
494
494
  });