@geekmidas/constructs 0.3.1 → 0.5.0

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