@geekmidas/constructs 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/dist/{AWSLambdaFunction-EPGY4s7i.cjs → AWSLambdaFunction-Ba1DcsW2.cjs} +6 -6
  2. package/dist/AWSLambdaFunction-Ba1DcsW2.cjs.map +1 -0
  3. package/dist/{AWSLambdaFunction-BdebRMUh.d.mts → AWSLambdaFunction-CKe73Qr0.d.cts} +6 -6
  4. package/dist/AWSLambdaFunction-CKe73Qr0.d.cts.map +1 -0
  5. package/dist/{AWSLambdaFunction-D0tEOTXQ.d.cts → AWSLambdaFunction-CuG3HNZx.d.mts} +6 -6
  6. package/dist/AWSLambdaFunction-CuG3HNZx.d.mts.map +1 -0
  7. package/dist/{AWSLambdaFunction-C54a1doJ.mjs → AWSLambdaFunction-DnMm4xvz.mjs} +6 -6
  8. package/dist/AWSLambdaFunction-DnMm4xvz.mjs.map +1 -0
  9. package/dist/{AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts → AWSLambdaSubscriberAdaptor-B4HH-WuQ.d.mts} +4 -4
  10. package/dist/AWSLambdaSubscriberAdaptor-B4HH-WuQ.d.mts.map +1 -0
  11. package/dist/{AWSLambdaSubscriberAdaptor-BLfO612H.mjs → AWSLambdaSubscriberAdaptor-BD3FwGUb.mjs} +3 -3
  12. package/dist/AWSLambdaSubscriberAdaptor-BD3FwGUb.mjs.map +1 -0
  13. package/dist/{AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts → AWSLambdaSubscriberAdaptor-BEqQ96VJ.d.cts} +4 -4
  14. package/dist/AWSLambdaSubscriberAdaptor-BEqQ96VJ.d.cts.map +1 -0
  15. package/dist/{AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs → AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs} +3 -3
  16. package/dist/AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs.map +1 -0
  17. package/dist/{AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs → AmazonApiGatewayEndpointAdaptor-Bvy-Hgjf.mjs} +56 -14
  18. package/dist/AmazonApiGatewayEndpointAdaptor-Bvy-Hgjf.mjs.map +1 -0
  19. package/dist/{AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs → AmazonApiGatewayEndpointAdaptor-Cpxluhfg.cjs} +55 -13
  20. package/dist/AmazonApiGatewayEndpointAdaptor-Cpxluhfg.cjs.map +1 -0
  21. package/dist/{AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts → AmazonApiGatewayEndpointAdaptor-DTgdZ8I1.d.mts} +52 -6
  22. package/dist/AmazonApiGatewayEndpointAdaptor-DTgdZ8I1.d.mts.map +1 -0
  23. package/dist/{AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts → AmazonApiGatewayEndpointAdaptor-DsWnO6x9.d.cts} +51 -5
  24. package/dist/AmazonApiGatewayEndpointAdaptor-DsWnO6x9.d.cts.map +1 -0
  25. package/dist/{AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts → AmazonApiGatewayV1EndpointAdaptor-7ELXUBFK.d.cts} +4 -4
  26. package/dist/AmazonApiGatewayV1EndpointAdaptor-7ELXUBFK.d.cts.map +1 -0
  27. package/dist/{AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs → AmazonApiGatewayV1EndpointAdaptor-B8vIYYNh.cjs} +4 -4
  28. package/dist/AmazonApiGatewayV1EndpointAdaptor-B8vIYYNh.cjs.map +1 -0
  29. package/dist/{AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs → AmazonApiGatewayV1EndpointAdaptor-ByXGIju8.mjs} +4 -4
  30. package/dist/AmazonApiGatewayV1EndpointAdaptor-ByXGIju8.mjs.map +1 -0
  31. package/dist/{AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts → AmazonApiGatewayV1EndpointAdaptor-RWRmFPrN.d.mts} +5 -5
  32. package/dist/AmazonApiGatewayV1EndpointAdaptor-RWRmFPrN.d.mts.map +1 -0
  33. package/dist/{AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs → AmazonApiGatewayV2EndpointAdaptor-DIetspUm.cjs} +4 -4
  34. package/dist/AmazonApiGatewayV2EndpointAdaptor-DIetspUm.cjs.map +1 -0
  35. package/dist/{AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs → AmazonApiGatewayV2EndpointAdaptor-DWemCZvl.mjs} +4 -4
  36. package/dist/AmazonApiGatewayV2EndpointAdaptor-DWemCZvl.mjs.map +1 -0
  37. package/dist/{AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts → AmazonApiGatewayV2EndpointAdaptor-D_uMTmuJ.d.cts} +4 -6
  38. package/dist/AmazonApiGatewayV2EndpointAdaptor-D_uMTmuJ.d.cts.map +1 -0
  39. package/dist/{AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts → AmazonApiGatewayV2EndpointAdaptor-wnOMDv6o.d.mts} +5 -7
  40. package/dist/AmazonApiGatewayV2EndpointAdaptor-wnOMDv6o.d.mts.map +1 -0
  41. package/dist/{Authorizer-C0ge_tc8.cjs → Authorizer-BXxBee2P.cjs} +1 -1
  42. package/dist/Authorizer-BXxBee2P.cjs.map +1 -0
  43. package/dist/{Authorizer-r9U3y_ms.mjs → Authorizer-BgjU8-z6.mjs} +1 -1
  44. package/dist/Authorizer-BgjU8-z6.mjs.map +1 -0
  45. package/dist/{Authorizer-gWxYsGEp.d.mts → Authorizer-DCcYOx3h.d.mts} +1 -1
  46. package/dist/Authorizer-DCcYOx3h.d.mts.map +1 -0
  47. package/dist/{Authorizer-B-btowNd.d.cts → Authorizer-DWtwC8we.d.cts} +1 -1
  48. package/dist/Authorizer-DWtwC8we.d.cts.map +1 -0
  49. package/dist/{BaseFunctionBuilder-Czi1Jwza.mjs → BaseFunctionBuilder-0qlenb9z.mjs} +2 -2
  50. package/dist/BaseFunctionBuilder-0qlenb9z.mjs.map +1 -0
  51. package/dist/BaseFunctionBuilder-BAtutR6q.d.cts.map +1 -1
  52. package/dist/{BaseFunctionBuilder-DRY419e7.d.mts → BaseFunctionBuilder-CDfDWWAQ.d.mts} +2 -2
  53. package/dist/BaseFunctionBuilder-CDfDWWAQ.d.mts.map +1 -0
  54. package/dist/{BaseFunctionBuilder-MYG3C9ug.cjs → BaseFunctionBuilder-D7o93EGv.cjs} +2 -2
  55. package/dist/BaseFunctionBuilder-D7o93EGv.cjs.map +1 -0
  56. package/dist/{Construct-Ba5cMxib.cjs → Construct-BlnyYtJC.cjs} +31 -2
  57. package/dist/Construct-BlnyYtJC.cjs.map +1 -0
  58. package/dist/Construct-C4rPE67v.d.cts.map +1 -1
  59. package/dist/{Construct-DdyGHuag.mjs → Construct-D5dCvxZ3.mjs} +31 -2
  60. package/dist/Construct-D5dCvxZ3.mjs.map +1 -0
  61. package/dist/{Construct-XrijZFFh.d.mts → Construct-dZiwVo0q.d.mts} +1 -1
  62. package/dist/Construct-dZiwVo0q.d.mts.map +1 -0
  63. package/dist/Construct.cjs +1 -1
  64. package/dist/Construct.d.mts +1 -1
  65. package/dist/Construct.mjs +1 -1
  66. package/dist/{Cron-bDLcTvV5.d.cts → Cron-B6FnTu7k.d.cts} +2 -2
  67. package/dist/Cron-B6FnTu7k.d.cts.map +1 -0
  68. package/dist/{Cron-CGF4YAfM.cjs → Cron-BAPQetlC.cjs} +3 -3
  69. package/dist/Cron-BAPQetlC.cjs.map +1 -0
  70. package/dist/{Cron-BxhGs5up.mjs → Cron-CAk_ddH8.mjs} +3 -3
  71. package/dist/Cron-CAk_ddH8.mjs.map +1 -0
  72. package/dist/{Cron-cdjlSKNp.d.mts → Cron-D3bEljxQ.d.mts} +2 -2
  73. package/dist/Cron-D3bEljxQ.d.mts.map +1 -0
  74. package/dist/{CronBuilder-DKVXyE0Q.d.cts → CronBuilder-CA8euP0z.d.cts} +4 -4
  75. package/dist/CronBuilder-CA8euP0z.d.cts.map +1 -0
  76. package/dist/{CronBuilder-BC4m5-p1.d.mts → CronBuilder-DvdiKzhq.d.mts} +4 -4
  77. package/dist/CronBuilder-DvdiKzhq.d.mts.map +1 -0
  78. package/dist/{CronBuilder-CcxKRtVP.cjs → CronBuilder-DxXA5ymv.cjs} +4 -4
  79. package/dist/CronBuilder-DxXA5ymv.cjs.map +1 -0
  80. package/dist/{CronBuilder-d2jh-IB2.mjs → CronBuilder-e8TaHPYm.mjs} +4 -4
  81. package/dist/CronBuilder-e8TaHPYm.mjs.map +1 -0
  82. package/dist/{Endpoint-BPv9_-m_.d.cts → Endpoint-BOlbY5iq.d.cts} +3 -3
  83. package/dist/Endpoint-BOlbY5iq.d.cts.map +1 -0
  84. package/dist/{Endpoint-CuOEswxJ.mjs → Endpoint-BbdNmtlM.mjs} +6 -6
  85. package/dist/Endpoint-BbdNmtlM.mjs.map +1 -0
  86. package/dist/{Endpoint-BdwG75G_.d.mts → Endpoint-Dlv7nxgj.d.mts} +4 -4
  87. package/dist/Endpoint-Dlv7nxgj.d.mts.map +1 -0
  88. package/dist/{Endpoint-BVGZXFyV.cjs → Endpoint-DxvnlfXg.cjs} +6 -6
  89. package/dist/Endpoint-DxvnlfXg.cjs.map +1 -0
  90. package/dist/{EndpointBuilder-Cgj1P_ra.cjs → EndpointBuilder-40Iz5CjY.cjs} +6 -6
  91. package/dist/EndpointBuilder-40Iz5CjY.cjs.map +1 -0
  92. package/dist/{EndpointBuilder-DnCB1h1j.mjs → EndpointBuilder-BaVvhW9m.mjs} +6 -6
  93. package/dist/EndpointBuilder-BaVvhW9m.mjs.map +1 -0
  94. package/dist/{EndpointBuilder-DIy_m1bu.d.cts → EndpointBuilder-CFfWWjUa.d.cts} +3 -3
  95. package/dist/EndpointBuilder-CFfWWjUa.d.cts.map +1 -0
  96. package/dist/{EndpointBuilder-B3az942t.d.mts → EndpointBuilder-T_K2NLWw.d.mts} +5 -5
  97. package/dist/EndpointBuilder-T_K2NLWw.d.mts.map +1 -0
  98. package/dist/{EndpointFactory-CyPbm3AD.d.cts → EndpointFactory-ChzBVEM9.d.cts} +4 -4
  99. package/dist/EndpointFactory-ChzBVEM9.d.cts.map +1 -0
  100. package/dist/{EndpointFactory-CbdxPCIH.mjs → EndpointFactory-DfNjSgVG.mjs} +7 -7
  101. package/dist/EndpointFactory-DfNjSgVG.mjs.map +1 -0
  102. package/dist/{EndpointFactory-C-0nE6Jg.d.mts → EndpointFactory-GAL_tuPf.d.mts} +4 -4
  103. package/dist/EndpointFactory-GAL_tuPf.d.mts.map +1 -0
  104. package/dist/{EndpointFactory-CYj6BYok.cjs → EndpointFactory-r6jxPvQ8.cjs} +7 -7
  105. package/dist/EndpointFactory-r6jxPvQ8.cjs.map +1 -0
  106. package/dist/{Function-BVHqIDp9.mjs → Function-D8tBamM3.mjs} +3 -3
  107. package/dist/Function-D8tBamM3.mjs.map +1 -0
  108. package/dist/{Function-DN2G6OT5.d.mts → Function-DBmU3uGI.d.mts} +3 -3
  109. package/dist/Function-DBmU3uGI.d.mts.map +1 -0
  110. package/dist/{Function-Cf7f_kCz.d.cts → Function-PNW4HdNE.d.cts} +2 -2
  111. package/dist/Function-PNW4HdNE.d.cts.map +1 -0
  112. package/dist/{Function-DDZb1525.cjs → Function-iLKrUXuw.cjs} +3 -3
  113. package/dist/Function-iLKrUXuw.cjs.map +1 -0
  114. package/dist/{FunctionBuilder-DswJ-9sD.cjs → FunctionBuilder-BEpPgeho.cjs} +4 -4
  115. package/dist/FunctionBuilder-BEpPgeho.cjs.map +1 -0
  116. package/dist/{FunctionBuilder-Cxx8D2na.d.mts → FunctionBuilder-Bv4H2I1a.d.mts} +4 -4
  117. package/dist/FunctionBuilder-Bv4H2I1a.d.mts.map +1 -0
  118. package/dist/{FunctionBuilder-CrDYgfiI.mjs → FunctionBuilder-BwNF99AB.mjs} +4 -4
  119. package/dist/FunctionBuilder-BwNF99AB.mjs.map +1 -0
  120. package/dist/{FunctionBuilder-CJBzzXL3.d.cts → FunctionBuilder-DCqXIHaq.d.cts} +2 -2
  121. package/dist/FunctionBuilder-DCqXIHaq.d.cts.map +1 -0
  122. package/dist/{FunctionExecutionWrapper-CLDh7Z2_.mjs → FunctionExecutionWrapper-B__HE_B-.mjs} +3 -3
  123. package/dist/FunctionExecutionWrapper-B__HE_B-.mjs.map +1 -0
  124. package/dist/{FunctionExecutionWrapper-DF260Aaj.d.mts → FunctionExecutionWrapper-BclgIztn.d.cts} +5 -5
  125. package/dist/FunctionExecutionWrapper-BclgIztn.d.cts.map +1 -0
  126. package/dist/{FunctionExecutionWrapper-BYI2bGTL.cjs → FunctionExecutionWrapper-BjF6t9Hb.cjs} +3 -3
  127. package/dist/FunctionExecutionWrapper-BjF6t9Hb.cjs.map +1 -0
  128. package/dist/{FunctionExecutionWrapper-Qy8bmgFR.d.cts → FunctionExecutionWrapper-Dq21c6vt.d.mts} +5 -5
  129. package/dist/FunctionExecutionWrapper-Dq21c6vt.d.mts.map +1 -0
  130. package/dist/HonoEndpointAdaptor-C_ym_Sbr.mjs +251 -0
  131. package/dist/HonoEndpointAdaptor-C_ym_Sbr.mjs.map +1 -0
  132. package/dist/HonoEndpointAdaptor-DiQH0eTb.cjs +257 -0
  133. package/dist/HonoEndpointAdaptor-DiQH0eTb.cjs.map +1 -0
  134. package/dist/{HonoEndpointAdaptor-YcRHYALH.d.cts → HonoEndpointAdaptor-Dkkemmbo.d.cts} +10 -5
  135. package/dist/HonoEndpointAdaptor-Dkkemmbo.d.cts.map +1 -0
  136. package/dist/{HonoEndpointAdaptor-BaPlUhz0.d.mts → HonoEndpointAdaptor-HukjdF6M.d.mts} +11 -6
  137. package/dist/HonoEndpointAdaptor-HukjdF6M.d.mts.map +1 -0
  138. package/dist/{Subscriber-COYMSevD.d.cts → Subscriber--zUjZDR6.d.cts} +1 -1
  139. package/dist/Subscriber--zUjZDR6.d.cts.map +1 -0
  140. package/dist/{Subscriber-ikctpU3I.d.mts → Subscriber-0Ac7cXID.d.mts} +2 -2
  141. package/dist/Subscriber-0Ac7cXID.d.mts.map +1 -0
  142. package/dist/{Subscriber-BmPf9GFb.mjs → Subscriber-BgZ8T-O2.mjs} +2 -2
  143. package/dist/Subscriber-BgZ8T-O2.mjs.map +1 -0
  144. package/dist/{Subscriber-BiHjVXtM.cjs → Subscriber-CoFmHMIM.cjs} +2 -2
  145. package/dist/Subscriber-CoFmHMIM.cjs.map +1 -0
  146. package/dist/{SubscriberBuilder-D_9zzllj.d.mts → SubscriberBuilder-D8cmUHee.d.mts} +2 -2
  147. package/dist/SubscriberBuilder-D8cmUHee.d.mts.map +1 -0
  148. package/dist/{SubscriberBuilder-DJPEeYDJ.mjs → SubscriberBuilder-DWXWZBPo.mjs} +2 -2
  149. package/dist/SubscriberBuilder-DWXWZBPo.mjs.map +1 -0
  150. package/dist/{SubscriberBuilder-ivHAGIVi.d.cts → SubscriberBuilder-DciTqb-7.d.cts} +2 -2
  151. package/dist/SubscriberBuilder-DciTqb-7.d.cts.map +1 -0
  152. package/dist/{SubscriberBuilder-Cp1C-xtT.cjs → SubscriberBuilder-JlxhyqGp.cjs} +2 -2
  153. package/dist/SubscriberBuilder-JlxhyqGp.cjs.map +1 -0
  154. package/dist/{TestEndpointAdaptor-DB7bREhS.d.mts → TestEndpointAdaptor-Boijwbmz.d.mts} +4 -4
  155. package/dist/TestEndpointAdaptor-Boijwbmz.d.mts.map +1 -0
  156. package/dist/{TestEndpointAdaptor-C10xBI--.d.cts → TestEndpointAdaptor-DdwpRyNh.d.cts} +3 -3
  157. package/dist/TestEndpointAdaptor-DdwpRyNh.d.cts.map +1 -0
  158. package/dist/TestEndpointAdaptor-Dk75ExxE.cjs +176 -0
  159. package/dist/TestEndpointAdaptor-Dk75ExxE.cjs.map +1 -0
  160. package/dist/TestEndpointAdaptor-OiA2JLDp.mjs +170 -0
  161. package/dist/TestEndpointAdaptor-OiA2JLDp.mjs.map +1 -0
  162. package/dist/adaptors/aws.cjs +12 -12
  163. package/dist/adaptors/aws.d.cts +13 -12
  164. package/dist/adaptors/aws.d.mts +16 -15
  165. package/dist/adaptors/aws.mjs +12 -12
  166. package/dist/adaptors/hono.cjs +10 -9
  167. package/dist/adaptors/hono.d.cts +6 -6
  168. package/dist/adaptors/hono.d.mts +9 -9
  169. package/dist/adaptors/hono.mjs +10 -9
  170. package/dist/adaptors/testing.cjs +8 -7
  171. package/dist/adaptors/testing.d.cts +6 -6
  172. package/dist/adaptors/testing.d.mts +9 -9
  173. package/dist/adaptors/testing.mjs +8 -7
  174. package/dist/crons/Cron.cjs +6 -6
  175. package/dist/crons/Cron.d.cts +4 -4
  176. package/dist/crons/Cron.d.mts +6 -6
  177. package/dist/crons/Cron.mjs +6 -6
  178. package/dist/crons/CronBuilder.cjs +7 -7
  179. package/dist/crons/CronBuilder.d.cts +5 -5
  180. package/dist/crons/CronBuilder.d.mts +7 -7
  181. package/dist/crons/CronBuilder.mjs +7 -7
  182. package/dist/crons/index.cjs +7 -7
  183. package/dist/crons/index.cjs.map +1 -1
  184. package/dist/crons/index.d.cts +9 -9
  185. package/dist/crons/index.d.mts +7 -7
  186. package/dist/crons/index.mjs +7 -7
  187. package/dist/crons/index.mjs.map +1 -1
  188. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +7 -7
  189. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +8 -7
  190. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +11 -10
  191. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +7 -7
  192. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +8 -8
  193. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +8 -7
  194. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +11 -10
  195. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +8 -8
  196. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +8 -8
  197. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +9 -8
  198. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +12 -11
  199. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +8 -8
  200. package/dist/endpoints/Authorizer.cjs +1 -1
  201. package/dist/endpoints/Authorizer.d.cts +1 -1
  202. package/dist/endpoints/Authorizer.d.mts +1 -1
  203. package/dist/endpoints/Authorizer.mjs +1 -1
  204. package/dist/endpoints/Endpoint.cjs +6 -6
  205. package/dist/endpoints/Endpoint.d.cts +5 -5
  206. package/dist/endpoints/Endpoint.d.mts +8 -8
  207. package/dist/endpoints/Endpoint.mjs +6 -6
  208. package/dist/endpoints/EndpointBuilder.cjs +9 -9
  209. package/dist/endpoints/EndpointBuilder.d.cts +6 -6
  210. package/dist/endpoints/EndpointBuilder.d.mts +9 -9
  211. package/dist/endpoints/EndpointBuilder.mjs +9 -9
  212. package/dist/endpoints/EndpointFactory.cjs +10 -10
  213. package/dist/endpoints/EndpointFactory.d.cts +7 -7
  214. package/dist/endpoints/EndpointFactory.d.mts +10 -10
  215. package/dist/endpoints/EndpointFactory.mjs +10 -10
  216. package/dist/endpoints/HonoEndpointAdaptor.cjs +10 -9
  217. package/dist/endpoints/HonoEndpointAdaptor.d.cts +6 -6
  218. package/dist/endpoints/HonoEndpointAdaptor.d.mts +9 -9
  219. package/dist/endpoints/HonoEndpointAdaptor.mjs +10 -9
  220. package/dist/endpoints/TestEndpointAdaptor.cjs +8 -7
  221. package/dist/endpoints/TestEndpointAdaptor.d.cts +6 -6
  222. package/dist/endpoints/TestEndpointAdaptor.d.mts +9 -9
  223. package/dist/endpoints/TestEndpointAdaptor.mjs +8 -7
  224. package/dist/endpoints/audit.d.cts +5 -5
  225. package/dist/endpoints/audit.d.mts +8 -8
  226. package/dist/endpoints/helpers.cjs +7 -7
  227. package/dist/endpoints/helpers.d.cts +5 -5
  228. package/dist/endpoints/helpers.d.cts.map +1 -1
  229. package/dist/endpoints/helpers.d.mts +8 -8
  230. package/dist/endpoints/helpers.d.mts.map +1 -1
  231. package/dist/endpoints/helpers.mjs +7 -7
  232. package/dist/endpoints/index.cjs +20 -10
  233. package/dist/endpoints/index.cjs.map +1 -1
  234. package/dist/endpoints/index.d.cts +12 -10
  235. package/dist/endpoints/index.d.cts.map +1 -1
  236. package/dist/endpoints/index.d.mts +15 -13
  237. package/dist/endpoints/index.d.mts.map +1 -1
  238. package/dist/endpoints/index.mjs +13 -11
  239. package/dist/endpoints/index.mjs.map +1 -1
  240. package/dist/endpoints/lazyAccessors.cjs +10 -0
  241. package/dist/endpoints/lazyAccessors.d.cts +10 -0
  242. package/dist/endpoints/lazyAccessors.d.mts +10 -0
  243. package/dist/endpoints/lazyAccessors.mjs +3 -0
  244. package/dist/endpoints/parseHonoQuery.cjs +1 -1
  245. package/dist/endpoints/parseHonoQuery.mjs +1 -1
  246. package/dist/endpoints/parseQueryParams.d.cts.map +1 -1
  247. package/dist/endpoints/parseQueryParams.d.mts.map +1 -1
  248. package/dist/endpoints/processAudits.d.cts +5 -5
  249. package/dist/endpoints/processAudits.d.cts.map +1 -1
  250. package/dist/endpoints/processAudits.d.mts +8 -8
  251. package/dist/endpoints/processAudits.d.mts.map +1 -1
  252. package/dist/endpoints/rls.cjs +1 -1
  253. package/dist/endpoints/rls.d.cts +5 -5
  254. package/dist/endpoints/rls.d.mts +8 -8
  255. package/dist/endpoints/rls.mjs +1 -1
  256. package/dist/functions/AWSLambdaFunction.cjs +6 -6
  257. package/dist/functions/AWSLambdaFunction.d.cts +3 -3
  258. package/dist/functions/AWSLambdaFunction.d.mts +4 -4
  259. package/dist/functions/AWSLambdaFunction.mjs +6 -6
  260. package/dist/functions/BaseFunctionBuilder.cjs +2 -2
  261. package/dist/functions/BaseFunctionBuilder.d.mts +2 -2
  262. package/dist/functions/BaseFunctionBuilder.mjs +2 -2
  263. package/dist/functions/Function.cjs +2 -2
  264. package/dist/functions/Function.d.cts +1 -1
  265. package/dist/functions/Function.d.mts +2 -2
  266. package/dist/functions/Function.mjs +2 -2
  267. package/dist/functions/FunctionBuilder.cjs +4 -4
  268. package/dist/functions/FunctionBuilder.d.cts +2 -2
  269. package/dist/functions/FunctionBuilder.d.mts +4 -4
  270. package/dist/functions/FunctionBuilder.mjs +4 -4
  271. package/dist/functions/FunctionExecutionWrapper.cjs +5 -5
  272. package/dist/functions/FunctionExecutionWrapper.d.cts +2 -2
  273. package/dist/functions/FunctionExecutionWrapper.d.mts +3 -3
  274. package/dist/functions/FunctionExecutionWrapper.mjs +5 -5
  275. package/dist/functions/TestFunctionAdaptor.cjs +7 -7
  276. package/dist/functions/TestFunctionAdaptor.cjs.map +1 -1
  277. package/dist/functions/TestFunctionAdaptor.d.cts +2 -2
  278. package/dist/functions/TestFunctionAdaptor.d.cts.map +1 -1
  279. package/dist/functions/TestFunctionAdaptor.d.mts +3 -3
  280. package/dist/functions/TestFunctionAdaptor.d.mts.map +1 -1
  281. package/dist/functions/TestFunctionAdaptor.mjs +7 -7
  282. package/dist/functions/TestFunctionAdaptor.mjs.map +1 -1
  283. package/dist/functions/index.cjs +5 -5
  284. package/dist/functions/index.d.cts +3 -3
  285. package/dist/functions/index.d.mts +5 -5
  286. package/dist/functions/index.mjs +5 -5
  287. package/dist/{functions-fTid0RMK.cjs → functions-BkKXVeHm.cjs} +2 -2
  288. package/dist/functions-BkKXVeHm.cjs.map +1 -0
  289. package/dist/functions-C3A1vMRW.mjs +8 -0
  290. package/dist/functions-C3A1vMRW.mjs.map +1 -0
  291. package/dist/{helpers-BcP1tXAi.cjs → helpers-BelEzV4U.cjs} +2 -2
  292. package/dist/helpers-BelEzV4U.cjs.map +1 -0
  293. package/dist/{helpers-ByRTDO_m.mjs → helpers-DgsMFMUV.mjs} +2 -2
  294. package/dist/helpers-DgsMFMUV.mjs.map +1 -0
  295. package/dist/{index-BWzGIj06.d.mts → index-CgAQHr3f.d.mts} +2 -2
  296. package/dist/index-CgAQHr3f.d.mts.map +1 -0
  297. package/dist/index-D0fp_IK1.d.cts +12 -0
  298. package/dist/index-D0fp_IK1.d.cts.map +1 -0
  299. package/dist/index.cjs +1 -1
  300. package/dist/index.d.cts +2 -1
  301. package/dist/index.d.mts +4 -3
  302. package/dist/index.mjs +1 -1
  303. package/dist/lazyAccessors-B-Jgkg2o.mjs +175 -0
  304. package/dist/lazyAccessors-B-Jgkg2o.mjs.map +1 -0
  305. package/dist/lazyAccessors-B2ILzU-j.d.mts +49 -0
  306. package/dist/lazyAccessors-B2ILzU-j.d.mts.map +1 -0
  307. package/dist/lazyAccessors-B8Hhras9.cjs +223 -0
  308. package/dist/lazyAccessors-B8Hhras9.cjs.map +1 -0
  309. package/dist/lazyAccessors-Bcpi06ed.d.cts +49 -0
  310. package/dist/lazyAccessors-Bcpi06ed.d.cts.map +1 -0
  311. package/dist/{parseHonoQuery-CZC5_97v.cjs → parseHonoQuery-D4MhxTRc.cjs} +1 -1
  312. package/dist/parseHonoQuery-D4MhxTRc.cjs.map +1 -0
  313. package/dist/{parseHonoQuery-DDgIkTO4.mjs → parseHonoQuery-DpK3sGPc.mjs} +1 -1
  314. package/dist/parseHonoQuery-DpK3sGPc.mjs.map +1 -0
  315. package/dist/parseQueryParams-BSNkjmZ9.cjs.map +1 -1
  316. package/dist/parseQueryParams-UMTRnRrW.mjs.map +1 -1
  317. package/dist/processAudits-CzHkPokQ.cjs.map +1 -1
  318. package/dist/processAudits-Dj8UGqcW.mjs.map +1 -1
  319. package/dist/publisher-Bw4770Hi.mjs.map +1 -1
  320. package/dist/publisher-C4BhHB5I.d.cts +16 -0
  321. package/dist/publisher-C4BhHB5I.d.cts.map +1 -0
  322. package/dist/publisher-NE-GnXL8.d.mts +16 -0
  323. package/dist/publisher-NE-GnXL8.d.mts.map +1 -0
  324. package/dist/publisher-lFQleddL.cjs.map +1 -1
  325. package/dist/publisher.d.cts +3 -16
  326. package/dist/publisher.d.mts +3 -16
  327. package/dist/{rls-CmJ7bRsz.cjs → rls-BrywnrQb.cjs} +1 -1
  328. package/dist/{rls-CmJ7bRsz.cjs.map → rls-BrywnrQb.cjs.map} +1 -1
  329. package/dist/{rls-Bf3FRwto.mjs → rls-C0cWOnk4.mjs} +1 -1
  330. package/dist/{rls-Bf3FRwto.mjs.map → rls-C0cWOnk4.mjs.map} +1 -1
  331. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
  332. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.cts +2 -2
  333. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +3 -3
  334. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
  335. package/dist/subscribers/Subscriber.cjs +2 -2
  336. package/dist/subscribers/Subscriber.d.cts +1 -1
  337. package/dist/subscribers/Subscriber.d.mts +2 -2
  338. package/dist/subscribers/Subscriber.mjs +2 -2
  339. package/dist/subscribers/SubscriberBuilder.cjs +3 -3
  340. package/dist/subscribers/SubscriberBuilder.d.cts +2 -2
  341. package/dist/subscribers/SubscriberBuilder.d.mts +3 -3
  342. package/dist/subscribers/SubscriberBuilder.mjs +3 -3
  343. package/dist/subscribers/index.cjs +3 -3
  344. package/dist/subscribers/index.cjs.map +1 -1
  345. package/dist/subscribers/index.d.cts +4 -4
  346. package/dist/subscribers/index.d.cts.map +1 -1
  347. package/dist/subscribers/index.d.mts +3 -3
  348. package/dist/subscribers/index.d.mts.map +1 -1
  349. package/dist/subscribers/index.mjs +3 -3
  350. package/dist/subscribers/index.mjs.map +1 -1
  351. package/dist/telemetry-BTaiRqPo.d.cts +95 -0
  352. package/dist/telemetry-BTaiRqPo.d.cts.map +1 -0
  353. package/dist/telemetry-yAHf5yDs.d.mts +95 -0
  354. package/dist/telemetry-yAHf5yDs.d.mts.map +1 -0
  355. package/dist/telemetry.cjs +0 -0
  356. package/dist/telemetry.d.cts +2 -0
  357. package/dist/telemetry.d.mts +2 -0
  358. package/dist/telemetry.mjs +0 -0
  359. package/dist/types-B5H3piDg.d.cts.map +1 -1
  360. package/dist/{types-DdIlpxAd.d.mts → types-Dw-iLd3Y.d.mts} +1 -1
  361. package/dist/types-Dw-iLd3Y.d.mts.map +1 -0
  362. package/dist/types.d.mts +1 -1
  363. package/package.json +18 -18
  364. package/src/Construct.ts +117 -86
  365. package/src/__benchmarks__/build-time-optimization.bench.ts +274 -0
  366. package/src/__benchmarks__/endpoint.bench.ts +375 -375
  367. package/src/__benchmarks__/fixtures.ts +241 -0
  368. package/src/__benchmarks__/hono-adaptor.bench.ts +533 -0
  369. package/src/__benchmarks__/hono-server.bench.ts +206 -206
  370. package/src/__benchmarks__/response-builder.bench.ts +428 -0
  371. package/src/__benchmarks__/strategies/strategy-a-lazy-services.ts +319 -0
  372. package/src/__benchmarks__/strategies/strategy-c-middleware.ts +530 -0
  373. package/src/__benchmarks__/strategies/strategy-d-opt-in-events.ts +567 -0
  374. package/src/__tests__/Construct.environment.spec.ts +349 -350
  375. package/src/__tests__/publisher.setting.spec.ts +496 -499
  376. package/src/__tests__/publisher.spec.ts +440 -442
  377. package/src/crons/Cron.ts +117 -117
  378. package/src/crons/CronBuilder.ts +237 -238
  379. package/src/crons/__tests__/Cron.spec.ts +448 -448
  380. package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +214 -214
  381. package/src/crons/index.ts +4 -4
  382. package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +571 -463
  383. package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +86 -86
  384. package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +85 -81
  385. package/src/endpoints/Authorizer.ts +100 -100
  386. package/src/endpoints/Endpoint.ts +921 -937
  387. package/src/endpoints/EndpointBuilder.ts +703 -703
  388. package/src/endpoints/EndpointFactory.ts +1054 -1056
  389. package/src/endpoints/HonoEndpointAdaptor.ts +621 -548
  390. package/src/endpoints/TestEndpointAdaptor.ts +372 -353
  391. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.audits.spec.ts +499 -0
  392. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +541 -542
  393. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +1172 -1174
  394. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +599 -599
  395. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +710 -710
  396. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +280 -280
  397. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +924 -730
  398. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.rls.spec.ts +307 -0
  399. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +408 -408
  400. package/src/endpoints/__tests__/Authorizer.spec.ts +286 -0
  401. package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +162 -162
  402. package/src/endpoints/__tests__/Endpoint.headers.spec.ts +182 -182
  403. package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +158 -159
  404. package/src/endpoints/__tests__/Endpoint.spec.ts +819 -822
  405. package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +427 -427
  406. package/src/endpoints/__tests__/EndpointBuilder.spec.ts +478 -478
  407. package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +426 -426
  408. package/src/endpoints/__tests__/EndpointFactory.database-auditor.spec.ts +501 -501
  409. package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +177 -177
  410. package/src/endpoints/__tests__/EndpointFactory.spec.ts +471 -471
  411. package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +143 -143
  412. package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +663 -663
  413. package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +608 -608
  414. package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +561 -561
  415. package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +1036 -1036
  416. package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +278 -278
  417. package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +1093 -1093
  418. package/src/endpoints/__tests__/ResponseBuilder.spec.ts +230 -230
  419. package/src/endpoints/__tests__/TestEndpointAdaptor.audits.spec.ts +569 -569
  420. package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +841 -841
  421. package/src/endpoints/__tests__/endpoint-types.test.ts +68 -68
  422. package/src/endpoints/__tests__/helpers.spec.ts +37 -0
  423. package/src/endpoints/__tests__/lazyAccessors.spec.ts +330 -0
  424. package/src/endpoints/__tests__/processAudits.spec.ts +631 -0
  425. package/src/endpoints/audit.ts +51 -51
  426. package/src/endpoints/helpers.ts +34 -35
  427. package/src/endpoints/index.ts +33 -23
  428. package/src/endpoints/lazyAccessors.ts +241 -0
  429. package/src/endpoints/parseHonoQuery.ts +41 -41
  430. package/src/endpoints/parseQueryParams.ts +36 -36
  431. package/src/endpoints/processAudits.ts +269 -269
  432. package/src/endpoints/rls.ts +16 -16
  433. package/src/functions/AWSLambdaFunction.ts +294 -295
  434. package/src/functions/BaseFunctionBuilder.ts +185 -185
  435. package/src/functions/Function.ts +190 -190
  436. package/src/functions/FunctionBuilder.ts +353 -353
  437. package/src/functions/FunctionExecutionWrapper.ts +199 -200
  438. package/src/functions/TestFunctionAdaptor.ts +191 -191
  439. package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +424 -424
  440. package/src/functions/__tests__/Function.audits.spec.ts +364 -364
  441. package/src/functions/__tests__/Function.spec.ts +453 -454
  442. package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +179 -179
  443. package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +369 -369
  444. package/src/functions/index.ts +6 -4
  445. package/src/index.ts +13 -9
  446. package/src/publisher.ts +71 -72
  447. package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +244 -248
  448. package/src/subscribers/Subscriber.ts +82 -84
  449. package/src/subscribers/SubscriberBuilder.ts +129 -129
  450. package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +589 -589
  451. package/src/subscribers/__tests__/Subscriber.spec.ts +402 -404
  452. package/src/subscribers/index.ts +1 -0
  453. package/src/telemetry.ts +103 -0
  454. package/src/types.ts +7 -7
  455. package/test.ts +58 -59
  456. package/dist/AWSLambdaFunction-BdebRMUh.d.mts.map +0 -1
  457. package/dist/AWSLambdaFunction-C54a1doJ.mjs.map +0 -1
  458. package/dist/AWSLambdaFunction-D0tEOTXQ.d.cts.map +0 -1
  459. package/dist/AWSLambdaFunction-EPGY4s7i.cjs.map +0 -1
  460. package/dist/AWSLambdaSubscriberAdaptor-BLfO612H.mjs.map +0 -1
  461. package/dist/AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs.map +0 -1
  462. package/dist/AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts.map +0 -1
  463. package/dist/AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts.map +0 -1
  464. package/dist/AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs.map +0 -1
  465. package/dist/AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts.map +0 -1
  466. package/dist/AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs.map +0 -1
  467. package/dist/AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts.map +0 -1
  468. package/dist/AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs.map +0 -1
  469. package/dist/AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs.map +0 -1
  470. package/dist/AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts.map +0 -1
  471. package/dist/AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts.map +0 -1
  472. package/dist/AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs.map +0 -1
  473. package/dist/AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts.map +0 -1
  474. package/dist/AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts.map +0 -1
  475. package/dist/AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs.map +0 -1
  476. package/dist/Authorizer-B-btowNd.d.cts.map +0 -1
  477. package/dist/Authorizer-C0ge_tc8.cjs.map +0 -1
  478. package/dist/Authorizer-gWxYsGEp.d.mts.map +0 -1
  479. package/dist/Authorizer-r9U3y_ms.mjs.map +0 -1
  480. package/dist/BaseFunctionBuilder-Czi1Jwza.mjs.map +0 -1
  481. package/dist/BaseFunctionBuilder-DRY419e7.d.mts.map +0 -1
  482. package/dist/BaseFunctionBuilder-MYG3C9ug.cjs.map +0 -1
  483. package/dist/Construct-Ba5cMxib.cjs.map +0 -1
  484. package/dist/Construct-DdyGHuag.mjs.map +0 -1
  485. package/dist/Construct-XrijZFFh.d.mts.map +0 -1
  486. package/dist/Cron-BxhGs5up.mjs.map +0 -1
  487. package/dist/Cron-CGF4YAfM.cjs.map +0 -1
  488. package/dist/Cron-bDLcTvV5.d.cts.map +0 -1
  489. package/dist/Cron-cdjlSKNp.d.mts.map +0 -1
  490. package/dist/CronBuilder-BC4m5-p1.d.mts.map +0 -1
  491. package/dist/CronBuilder-CcxKRtVP.cjs.map +0 -1
  492. package/dist/CronBuilder-DKVXyE0Q.d.cts.map +0 -1
  493. package/dist/CronBuilder-d2jh-IB2.mjs.map +0 -1
  494. package/dist/Endpoint-BPv9_-m_.d.cts.map +0 -1
  495. package/dist/Endpoint-BVGZXFyV.cjs.map +0 -1
  496. package/dist/Endpoint-BdwG75G_.d.mts.map +0 -1
  497. package/dist/Endpoint-CuOEswxJ.mjs.map +0 -1
  498. package/dist/EndpointBuilder-B3az942t.d.mts.map +0 -1
  499. package/dist/EndpointBuilder-Cgj1P_ra.cjs.map +0 -1
  500. package/dist/EndpointBuilder-DIy_m1bu.d.cts.map +0 -1
  501. package/dist/EndpointBuilder-DnCB1h1j.mjs.map +0 -1
  502. package/dist/EndpointFactory-C-0nE6Jg.d.mts.map +0 -1
  503. package/dist/EndpointFactory-CYj6BYok.cjs.map +0 -1
  504. package/dist/EndpointFactory-CbdxPCIH.mjs.map +0 -1
  505. package/dist/EndpointFactory-CyPbm3AD.d.cts.map +0 -1
  506. package/dist/Function-BVHqIDp9.mjs.map +0 -1
  507. package/dist/Function-Cf7f_kCz.d.cts.map +0 -1
  508. package/dist/Function-DDZb1525.cjs.map +0 -1
  509. package/dist/Function-DN2G6OT5.d.mts.map +0 -1
  510. package/dist/FunctionBuilder-CJBzzXL3.d.cts.map +0 -1
  511. package/dist/FunctionBuilder-CrDYgfiI.mjs.map +0 -1
  512. package/dist/FunctionBuilder-Cxx8D2na.d.mts.map +0 -1
  513. package/dist/FunctionBuilder-DswJ-9sD.cjs.map +0 -1
  514. package/dist/FunctionExecutionWrapper-BYI2bGTL.cjs.map +0 -1
  515. package/dist/FunctionExecutionWrapper-CLDh7Z2_.mjs.map +0 -1
  516. package/dist/FunctionExecutionWrapper-DF260Aaj.d.mts.map +0 -1
  517. package/dist/FunctionExecutionWrapper-Qy8bmgFR.d.cts.map +0 -1
  518. package/dist/HonoEndpointAdaptor-BaPlUhz0.d.mts.map +0 -1
  519. package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs +0 -234
  520. package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs.map +0 -1
  521. package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs +0 -228
  522. package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs.map +0 -1
  523. package/dist/HonoEndpointAdaptor-YcRHYALH.d.cts.map +0 -1
  524. package/dist/Subscriber-BiHjVXtM.cjs.map +0 -1
  525. package/dist/Subscriber-BmPf9GFb.mjs.map +0 -1
  526. package/dist/Subscriber-COYMSevD.d.cts.map +0 -1
  527. package/dist/Subscriber-ikctpU3I.d.mts.map +0 -1
  528. package/dist/SubscriberBuilder-Cp1C-xtT.cjs.map +0 -1
  529. package/dist/SubscriberBuilder-DJPEeYDJ.mjs.map +0 -1
  530. package/dist/SubscriberBuilder-D_9zzllj.d.mts.map +0 -1
  531. package/dist/SubscriberBuilder-ivHAGIVi.d.cts.map +0 -1
  532. package/dist/TestEndpointAdaptor-C10xBI--.d.cts.map +0 -1
  533. package/dist/TestEndpointAdaptor-DB7bREhS.d.mts.map +0 -1
  534. package/dist/TestEndpointAdaptor-DJgik2Wj.mjs +0 -160
  535. package/dist/TestEndpointAdaptor-DJgik2Wj.mjs.map +0 -1
  536. package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs +0 -166
  537. package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs.map +0 -1
  538. package/dist/functions-C6EK1xL6.mjs +0 -8
  539. package/dist/functions-C6EK1xL6.mjs.map +0 -1
  540. package/dist/functions-fTid0RMK.cjs.map +0 -1
  541. package/dist/helpers-BcP1tXAi.cjs.map +0 -1
  542. package/dist/helpers-ByRTDO_m.mjs.map +0 -1
  543. package/dist/index-BWzGIj06.d.mts.map +0 -1
  544. package/dist/index-DmFozqLd.d.cts +0 -12
  545. package/dist/index-DmFozqLd.d.cts.map +0 -1
  546. package/dist/parseHonoQuery-CZC5_97v.cjs.map +0 -1
  547. package/dist/parseHonoQuery-DDgIkTO4.mjs.map +0 -1
  548. package/dist/publisher.d.cts.map +0 -1
  549. package/dist/publisher.d.mts.map +0 -1
  550. package/dist/types-DdIlpxAd.d.mts.map +0 -1
@@ -7,482 +7,482 @@ import { Endpoint } from '../Endpoint';
7
7
  import { EndpointBuilder } from '../EndpointBuilder';
8
8
 
9
9
  describe('EndpointBuilder', () => {
10
- describe('constructor', () => {
11
- it('should create builder with route and method', () => {
12
- const builder = new EndpointBuilder('/users', 'GET');
13
-
14
- expect(builder.route).toBe('/users');
15
- expect(builder.method).toBe('GET');
16
- });
17
-
18
- it('should initialize with FunctionType.Endpoint', () => {
19
- const builder = new EndpointBuilder('/users', 'POST');
20
-
21
- // Access protected member through inheritance
22
- expect((builder as any).type).toBe(ConstructType.Endpoint);
23
- });
24
- });
25
-
26
- describe('description', () => {
27
- it('should set endpoint description', () => {
28
- const builder = new EndpointBuilder('/users', 'GET');
29
- const result = builder.description('Get all users');
30
-
31
- expect(result).toBe(builder); // Should return this for chaining
32
- expect((builder as any)._description).toBe('Get all users');
33
- });
34
-
35
- it('should pass description to endpoint', () => {
36
- const endpoint = new EndpointBuilder('/users', 'GET')
37
- .description('Get all users')
38
- .handle(async () => []);
39
-
40
- expect(endpoint.description).toBe('Get all users');
41
- });
42
- });
43
-
44
- describe('status', () => {
45
- it('should set success status code', () => {
46
- const builder = new EndpointBuilder('/users', 'POST');
47
- const result = builder.status(201);
48
-
49
- expect(result).toBe(builder); // Should return this for chaining
50
- expect((builder as any)._status).toBe(201);
51
- });
52
-
53
- it('should pass status to endpoint', () => {
54
- const endpoint = new EndpointBuilder('/users', 'POST')
55
- .status(201)
56
- .handle(async () => ({ id: '123' }));
57
-
58
- expect(endpoint.status).toBe(201);
59
- });
60
-
61
- it('should accept different success status codes', () => {
62
- const statuses = [200, 201, 202, 204] as const;
63
-
64
- statuses.forEach((status) => {
65
- const endpoint = new EndpointBuilder('/test', 'POST')
66
- .status(status)
67
- .handle(async () => ({}));
68
-
69
- expect(endpoint.status).toBe(status);
70
- });
71
- });
72
- });
73
-
74
- describe('services', () => {
75
- const TestService = {
76
- serviceName: 'TestService' as const,
77
- async register() {
78
- return { getData: () => 'test data' };
79
- },
80
- };
81
-
82
- const AnotherService = {
83
- serviceName: 'AnotherService' as const,
84
- async register() {
85
- return { process: (input: string) => input.toUpperCase() };
86
- },
87
- };
88
-
89
- it('should add services to builder', () => {
90
- const builder = new EndpointBuilder('/users', 'GET').services([
91
- TestService,
92
- AnotherService,
93
- ]);
94
-
95
- expect((builder as any)._services).toEqual([TestService, AnotherService]);
96
- });
97
-
98
- it('should allow chaining multiple service calls', () => {
99
- const builder = new EndpointBuilder('/users', 'GET')
100
- .services([TestService])
101
- .services([AnotherService]);
102
-
103
- expect((builder as any)._services).toEqual([TestService, AnotherService]);
104
- });
105
-
106
- it('should pass services to endpoint', () => {
107
- const endpoint = new EndpointBuilder('/users', 'GET')
108
- .services([TestService, AnotherService])
109
- .handle(async ({ services }) => ({
110
- test: await services.TestService.getData(),
111
- another: await services.AnotherService.process('hello'),
112
- }));
113
-
114
- expect(endpoint.services).toEqual([TestService, AnotherService]);
115
- });
116
-
117
- it('should maintain type safety with services', () => {
118
- const builder = new EndpointBuilder('/test', 'POST').services([
119
- TestService,
120
- ]);
121
-
122
- // This should compile and provide type-safe access
123
- const endpoint = builder.handle(async ({ services }) => ({
124
- result: await services.TestService.getData(),
125
- }));
126
-
127
- expect(endpoint.services).toEqual([TestService]);
128
- });
129
- });
130
-
131
- describe('output', () => {
132
- it('should set output schema', () => {
133
- const schema = z.object({ id: z.string(), name: z.string() });
134
- const builder = new EndpointBuilder('/users', 'GET').output(schema);
135
-
136
- expect((builder as any).outputSchema).toBe(schema);
137
- });
138
-
139
- it('should pass output schema to endpoint', () => {
140
- const schema = z.object({ success: z.boolean() });
141
- const endpoint = new EndpointBuilder('/test', 'POST')
142
- .output(schema)
143
- .handle(async () => ({ success: true }));
144
-
145
- expect(endpoint.outputSchema).toBe(schema);
146
- });
147
-
148
- it('should work with different schema libraries', () => {
149
- // Mock a different schema library
150
- const customSchema = {
151
- '~standard': {
152
- vendor: 'custom',
153
- version: 1,
154
- },
155
- '~vendor': {
156
- validate: vi.fn(),
157
- },
158
- };
159
-
160
- const endpoint = new EndpointBuilder('/test', 'GET')
161
- .output(customSchema as any)
162
- .handle(async () => ({}));
163
-
164
- expect(endpoint.outputSchema).toBe(customSchema);
165
- });
166
- });
167
-
168
- describe('body', () => {
169
- it('should set body schema', () => {
170
- const schema = z.object({ username: z.string(), password: z.string() });
171
- const builder = new EndpointBuilder('/login', 'POST').body(schema);
172
-
173
- expect((builder as any).schemas.body).toBe(schema);
174
- });
175
-
176
- it('should pass body schema to endpoint', () => {
177
- const schema = z.object({ data: z.string() });
178
- const endpoint = new EndpointBuilder('/test', 'POST')
179
- .body(schema)
180
- .handle(async ({ body }) => ({ received: body.data }));
181
-
182
- expect(endpoint.input?.body).toBe(schema);
183
- });
184
-
185
- it('should allow chaining with other methods', () => {
186
- const bodySchema = z.object({ name: z.string() });
187
- const outputSchema = z.object({ id: z.string() });
188
-
189
- const endpoint = new EndpointBuilder('/users', 'POST')
190
- .body(bodySchema)
191
- .output(outputSchema)
192
- .status(201)
193
- .handle(async () => ({ id: '123' }));
194
-
195
- expect(endpoint.input?.body).toBe(bodySchema);
196
- expect(endpoint.outputSchema).toBe(outputSchema);
197
- expect(endpoint.status).toBe(201);
198
- });
199
- });
200
-
201
- describe('search/query', () => {
202
- it('should set query schema using search method', () => {
203
- const schema = z.object({ page: z.number(), limit: z.number() });
204
- const builder = new EndpointBuilder('/users', 'GET').search(schema);
205
-
206
- expect((builder as any).schemas.query).toBe(schema);
207
- });
208
-
209
- it('should set query schema using query method', () => {
210
- const schema = z.object({ filter: z.string() });
211
- const builder = new EndpointBuilder('/users', 'GET').query(schema);
212
-
213
- expect((builder as any).schemas.query).toBe(schema);
214
- });
215
-
216
- it('query should call search internally', () => {
217
- const schema = z.object({ sort: z.string() });
218
- const searchSpy = vi.spyOn(EndpointBuilder.prototype, 'search');
219
-
220
- new EndpointBuilder('/users', 'GET').query(schema);
221
-
222
- expect(searchSpy).toHaveBeenCalledWith(schema);
223
- searchSpy.mockRestore();
224
- });
225
-
226
- it('should pass query schema to endpoint', () => {
227
- const schema = z.object({ search: z.string().optional() });
228
- const endpoint = new EndpointBuilder('/search', 'GET')
229
- .query(schema)
230
- .handle(async ({ query }) => ({
231
- results: query.search ? ['result1'] : [],
232
- }));
233
-
234
- expect(endpoint.input?.query).toBe(schema);
235
- });
236
- });
237
-
238
- describe('params', () => {
239
- it('should set params schema', () => {
240
- const schema = z.object({ id: z.string(), subId: z.string() });
241
- const builder = new EndpointBuilder(
242
- '/users/:id/items/:subId',
243
- 'GET',
244
- ).params(schema);
245
-
246
- expect((builder as any).schemas.params).toBe(schema);
247
- });
248
-
249
- it('should pass params schema to endpoint', () => {
250
- const schema = z.object({ userId: z.string() });
251
- const endpoint = new EndpointBuilder('/users/:userId', 'GET')
252
- .params(schema)
253
- .handle(async ({ params }) => ({ userId: params.userId }));
254
-
255
- expect(endpoint.input?.params).toBe(schema);
256
- });
257
-
258
- it('should work with complex route patterns', () => {
259
- const schema = z.object({
260
- orgId: z.string(),
261
- projectId: z.string(),
262
- taskId: z.string(),
263
- });
264
-
265
- const endpoint = new EndpointBuilder(
266
- '/orgs/:orgId/projects/:projectId/tasks/:taskId',
267
- 'PUT',
268
- )
269
- .params(schema)
270
- .handle(async ({ params }) => ({ ...params }));
271
-
272
- expect(endpoint.input?.params).toBe(schema);
273
- });
274
- });
275
-
276
- describe('handle', () => {
277
- it('should create an Endpoint instance', () => {
278
- const endpoint = new EndpointBuilder('/test', 'GET').handle(
279
- async () => ({}),
280
- );
281
-
282
- expect(endpoint).toBeInstanceOf(Endpoint);
283
- });
284
-
285
- it('should pass all configurations to endpoint', () => {
286
- const bodySchema = z.object({ data: z.string() });
287
- const querySchema = z.object({ filter: z.string() });
288
- const paramsSchema = z.object({ id: z.string() });
289
- const outputSchema = z.object({ result: z.string() });
290
-
291
- const Service = {
292
- serviceName: 'Service' as const,
293
- async register() {
294
- return {};
295
- },
296
- };
297
-
298
- const logger: Logger = new ConsoleLogger();
299
- const authFn = async () => true;
300
- const sessionFn = async () => ({ userId: '123' });
301
- const handler = async () => ({ result: 'success' });
302
-
303
- const builder = new EndpointBuilder('/items/:id', 'POST')
304
- .body(bodySchema)
305
- .query(querySchema)
306
- .params(paramsSchema)
307
- .output(outputSchema)
308
- .services([Service])
309
- .status(201)
310
- .description('Test endpoint');
311
-
312
- // Set protected properties
313
- (builder as any)._logger = logger;
314
- (builder as any)._authorize = authFn;
315
- (builder as any)._getSession = sessionFn;
316
- (builder as any)._timeout = 5000;
317
-
318
- const endpoint = builder.handle(handler);
319
-
320
- // Verify all properties are passed correctly
321
- expect(endpoint.route).toBe('/items/:id');
322
- expect(endpoint.method).toBe('POST');
323
- expect(endpoint.description).toBe('Test endpoint');
324
- expect(endpoint.input?.body).toBe(bodySchema);
325
- expect(endpoint.input?.query).toBe(querySchema);
326
- expect(endpoint.input?.params).toBe(paramsSchema);
327
- expect(endpoint.outputSchema).toBe(outputSchema);
328
- expect(endpoint.services).toEqual([Service]);
329
- expect(endpoint.logger).toBe(logger);
330
- expect(endpoint.status).toBe(201);
331
- expect(endpoint.authorize).toBe(authFn);
332
- expect(endpoint.getSession).toBe(sessionFn);
333
- expect(endpoint.timeout).toBe(5000);
334
- });
335
-
336
- it('should handle async handlers', async () => {
337
- const endpoint = new EndpointBuilder('/async', 'GET').handle(async () => {
338
- await new Promise((resolve) => setTimeout(resolve, 10));
339
- return { delayed: true };
340
- });
341
-
342
- expect(endpoint).toBeInstanceOf(Endpoint);
343
- });
344
-
345
- it('should maintain type safety through the chain', () => {
346
- const endpoint = new EndpointBuilder('/typed', 'POST')
347
- .body(z.object({ input: z.number() }))
348
- .output(z.object({ doubled: z.number() }))
349
- .handle(async ({ body }) => ({
350
- doubled: body.input * 2,
351
- }));
352
-
353
- expect(endpoint.route).toBe('/typed');
354
- expect(endpoint.method).toBe('POST');
355
- });
356
- });
357
-
358
- describe('inherited authorization and session', () => {
359
- it('should have default authorization that returns true', () => {
360
- const builder = new EndpointBuilder('/test', 'GET');
361
- const defaultAuth = (builder as any)._authorize;
362
-
363
- expect(defaultAuth()).toBe(true);
364
- });
365
-
366
- it('should have default session that returns empty object', () => {
367
- const builder = new EndpointBuilder('/test', 'GET');
368
- const defaultSession = (builder as any)._getSession;
369
-
370
- expect(defaultSession()).toEqual({});
371
- });
372
-
373
- it('should allow setting custom authorization', () => {
374
- const customAuth = async () => false;
375
- const builder = new EndpointBuilder('/test', 'GET');
376
- (builder as any)._authorize = customAuth;
377
-
378
- const endpoint = builder.handle(async () => ({}));
379
- expect(endpoint.authorize).toBe(customAuth);
380
- });
381
-
382
- it('should allow setting custom session extractor', () => {
383
- const customSession = async () => ({ userId: '123', role: 'admin' });
384
- const builder = new EndpointBuilder('/test', 'GET');
385
- (builder as any)._getSession = customSession;
386
-
387
- const endpoint = builder.handle(async () => ({}));
388
- expect(endpoint.getSession).toBe(customSession);
389
- });
390
- });
391
-
392
- describe('method chaining', () => {
393
- it('should support fluent interface pattern', () => {
394
- const endpoint = new EndpointBuilder('/users', 'POST')
395
- .description('Create a new user')
396
- .status(201)
397
- .body(z.object({ name: z.string(), email: z.string().email() }))
398
- .output(z.object({ id: z.string(), created: z.boolean() }))
399
- .handle(async () => ({
400
- id: '123',
401
- created: true,
402
- }));
403
-
404
- expect(endpoint.description).toBe('Create a new user');
405
- expect(endpoint.status).toBe(201);
406
- expect(endpoint.input?.body).toBeDefined();
407
- expect(endpoint.outputSchema).toBeDefined();
408
- });
409
-
410
- it('should maintain builder type through chains', () => {
411
- const builder1 = new EndpointBuilder('/test', 'GET');
412
- const builder2 = builder1.description('Test');
413
- const builder3 = builder2.status(200);
414
-
415
- expect(builder1).toBe(builder2);
416
- expect(builder2).toBe(builder3);
417
- });
418
- });
419
-
420
- describe('edge cases', () => {
421
- it('should handle empty route', () => {
422
- const endpoint = new EndpointBuilder('', 'GET').handle(async () => ({}));
423
- expect(endpoint.route).toBe('');
424
- });
425
-
426
- it('should handle root route', () => {
427
- const endpoint = new EndpointBuilder('/', 'GET').handle(async () => ({}));
428
- expect(endpoint.route).toBe('/');
429
- });
430
-
431
- it('should handle routes with special characters', () => {
432
- const endpoint = new EndpointBuilder(
433
- '/users/:id/items/:item-id',
434
- 'GET',
435
- ).handle(async () => ({}));
436
- expect(endpoint.route).toBe('/users/:id/items/:item-id');
437
- });
438
-
439
- it('should handle all HTTP methods', () => {
440
- const methods = [
441
- 'GET',
442
- 'POST',
443
- 'PUT',
444
- 'DELETE',
445
- 'PATCH',
446
- 'OPTIONS',
447
- ] as const;
448
-
449
- methods.forEach((method) => {
450
- const endpoint = new EndpointBuilder('/test', method).handle(
451
- async () => ({}),
452
- );
453
- expect(endpoint.method).toBe(method);
454
- });
455
- });
456
-
457
- it('should handle undefined schemas', () => {
458
- const endpoint = new EndpointBuilder('/test', 'GET').handle(
459
- async () => ({}),
460
- );
461
-
462
- expect(endpoint.input || {}).toEqual({});
463
- expect(endpoint.outputSchema).toBeUndefined();
464
- });
465
-
466
- it('should handle complex nested schemas', () => {
467
- const complexSchema = z.object({
468
- user: z.object({
469
- profile: z.object({
470
- name: z.string(),
471
- settings: z.array(
472
- z.object({
473
- key: z.string(),
474
- value: z.unknown(),
475
- }),
476
- ),
477
- }),
478
- }),
479
- });
480
-
481
- const endpoint = new EndpointBuilder('/complex', 'POST')
482
- .body(complexSchema)
483
- .handle(async ({ body }) => ({ received: body }));
484
-
485
- expect(endpoint.input?.body).toBe(complexSchema);
486
- });
487
- });
10
+ describe('constructor', () => {
11
+ it('should create builder with route and method', () => {
12
+ const builder = new EndpointBuilder('/users', 'GET');
13
+
14
+ expect(builder.route).toBe('/users');
15
+ expect(builder.method).toBe('GET');
16
+ });
17
+
18
+ it('should initialize with FunctionType.Endpoint', () => {
19
+ const builder = new EndpointBuilder('/users', 'POST');
20
+
21
+ // Access protected member through inheritance
22
+ expect((builder as any).type).toBe(ConstructType.Endpoint);
23
+ });
24
+ });
25
+
26
+ describe('description', () => {
27
+ it('should set endpoint description', () => {
28
+ const builder = new EndpointBuilder('/users', 'GET');
29
+ const result = builder.description('Get all users');
30
+
31
+ expect(result).toBe(builder); // Should return this for chaining
32
+ expect((builder as any)._description).toBe('Get all users');
33
+ });
34
+
35
+ it('should pass description to endpoint', () => {
36
+ const endpoint = new EndpointBuilder('/users', 'GET')
37
+ .description('Get all users')
38
+ .handle(async () => []);
39
+
40
+ expect(endpoint.description).toBe('Get all users');
41
+ });
42
+ });
43
+
44
+ describe('status', () => {
45
+ it('should set success status code', () => {
46
+ const builder = new EndpointBuilder('/users', 'POST');
47
+ const result = builder.status(201);
48
+
49
+ expect(result).toBe(builder); // Should return this for chaining
50
+ expect((builder as any)._status).toBe(201);
51
+ });
52
+
53
+ it('should pass status to endpoint', () => {
54
+ const endpoint = new EndpointBuilder('/users', 'POST')
55
+ .status(201)
56
+ .handle(async () => ({ id: '123' }));
57
+
58
+ expect(endpoint.status).toBe(201);
59
+ });
60
+
61
+ it('should accept different success status codes', () => {
62
+ const statuses = [200, 201, 202, 204] as const;
63
+
64
+ statuses.forEach((status) => {
65
+ const endpoint = new EndpointBuilder('/test', 'POST')
66
+ .status(status)
67
+ .handle(async () => ({}));
68
+
69
+ expect(endpoint.status).toBe(status);
70
+ });
71
+ });
72
+ });
73
+
74
+ describe('services', () => {
75
+ const TestService = {
76
+ serviceName: 'TestService' as const,
77
+ async register() {
78
+ return { getData: () => 'test data' };
79
+ },
80
+ };
81
+
82
+ const AnotherService = {
83
+ serviceName: 'AnotherService' as const,
84
+ async register() {
85
+ return { process: (input: string) => input.toUpperCase() };
86
+ },
87
+ };
88
+
89
+ it('should add services to builder', () => {
90
+ const builder = new EndpointBuilder('/users', 'GET').services([
91
+ TestService,
92
+ AnotherService,
93
+ ]);
94
+
95
+ expect((builder as any)._services).toEqual([TestService, AnotherService]);
96
+ });
97
+
98
+ it('should allow chaining multiple service calls', () => {
99
+ const builder = new EndpointBuilder('/users', 'GET')
100
+ .services([TestService])
101
+ .services([AnotherService]);
102
+
103
+ expect((builder as any)._services).toEqual([TestService, AnotherService]);
104
+ });
105
+
106
+ it('should pass services to endpoint', () => {
107
+ const endpoint = new EndpointBuilder('/users', 'GET')
108
+ .services([TestService, AnotherService])
109
+ .handle(async ({ services }) => ({
110
+ test: await services.TestService.getData(),
111
+ another: await services.AnotherService.process('hello'),
112
+ }));
113
+
114
+ expect(endpoint.services).toEqual([TestService, AnotherService]);
115
+ });
116
+
117
+ it('should maintain type safety with services', () => {
118
+ const builder = new EndpointBuilder('/test', 'POST').services([
119
+ TestService,
120
+ ]);
121
+
122
+ // This should compile and provide type-safe access
123
+ const endpoint = builder.handle(async ({ services }) => ({
124
+ result: await services.TestService.getData(),
125
+ }));
126
+
127
+ expect(endpoint.services).toEqual([TestService]);
128
+ });
129
+ });
130
+
131
+ describe('output', () => {
132
+ it('should set output schema', () => {
133
+ const schema = z.object({ id: z.string(), name: z.string() });
134
+ const builder = new EndpointBuilder('/users', 'GET').output(schema);
135
+
136
+ expect((builder as any).outputSchema).toBe(schema);
137
+ });
138
+
139
+ it('should pass output schema to endpoint', () => {
140
+ const schema = z.object({ success: z.boolean() });
141
+ const endpoint = new EndpointBuilder('/test', 'POST')
142
+ .output(schema)
143
+ .handle(async () => ({ success: true }));
144
+
145
+ expect(endpoint.outputSchema).toBe(schema);
146
+ });
147
+
148
+ it('should work with different schema libraries', () => {
149
+ // Mock a different schema library
150
+ const customSchema = {
151
+ '~standard': {
152
+ vendor: 'custom',
153
+ version: 1,
154
+ },
155
+ '~vendor': {
156
+ validate: vi.fn(),
157
+ },
158
+ };
159
+
160
+ const endpoint = new EndpointBuilder('/test', 'GET')
161
+ .output(customSchema as any)
162
+ .handle(async () => ({}));
163
+
164
+ expect(endpoint.outputSchema).toBe(customSchema);
165
+ });
166
+ });
167
+
168
+ describe('body', () => {
169
+ it('should set body schema', () => {
170
+ const schema = z.object({ username: z.string(), password: z.string() });
171
+ const builder = new EndpointBuilder('/login', 'POST').body(schema);
172
+
173
+ expect((builder as any).schemas.body).toBe(schema);
174
+ });
175
+
176
+ it('should pass body schema to endpoint', () => {
177
+ const schema = z.object({ data: z.string() });
178
+ const endpoint = new EndpointBuilder('/test', 'POST')
179
+ .body(schema)
180
+ .handle(async ({ body }) => ({ received: body.data }));
181
+
182
+ expect(endpoint.input?.body).toBe(schema);
183
+ });
184
+
185
+ it('should allow chaining with other methods', () => {
186
+ const bodySchema = z.object({ name: z.string() });
187
+ const outputSchema = z.object({ id: z.string() });
188
+
189
+ const endpoint = new EndpointBuilder('/users', 'POST')
190
+ .body(bodySchema)
191
+ .output(outputSchema)
192
+ .status(201)
193
+ .handle(async () => ({ id: '123' }));
194
+
195
+ expect(endpoint.input?.body).toBe(bodySchema);
196
+ expect(endpoint.outputSchema).toBe(outputSchema);
197
+ expect(endpoint.status).toBe(201);
198
+ });
199
+ });
200
+
201
+ describe('search/query', () => {
202
+ it('should set query schema using search method', () => {
203
+ const schema = z.object({ page: z.number(), limit: z.number() });
204
+ const builder = new EndpointBuilder('/users', 'GET').search(schema);
205
+
206
+ expect((builder as any).schemas.query).toBe(schema);
207
+ });
208
+
209
+ it('should set query schema using query method', () => {
210
+ const schema = z.object({ filter: z.string() });
211
+ const builder = new EndpointBuilder('/users', 'GET').query(schema);
212
+
213
+ expect((builder as any).schemas.query).toBe(schema);
214
+ });
215
+
216
+ it('query should call search internally', () => {
217
+ const schema = z.object({ sort: z.string() });
218
+ const searchSpy = vi.spyOn(EndpointBuilder.prototype, 'search');
219
+
220
+ new EndpointBuilder('/users', 'GET').query(schema);
221
+
222
+ expect(searchSpy).toHaveBeenCalledWith(schema);
223
+ searchSpy.mockRestore();
224
+ });
225
+
226
+ it('should pass query schema to endpoint', () => {
227
+ const schema = z.object({ search: z.string().optional() });
228
+ const endpoint = new EndpointBuilder('/search', 'GET')
229
+ .query(schema)
230
+ .handle(async ({ query }) => ({
231
+ results: query.search ? ['result1'] : [],
232
+ }));
233
+
234
+ expect(endpoint.input?.query).toBe(schema);
235
+ });
236
+ });
237
+
238
+ describe('params', () => {
239
+ it('should set params schema', () => {
240
+ const schema = z.object({ id: z.string(), subId: z.string() });
241
+ const builder = new EndpointBuilder(
242
+ '/users/:id/items/:subId',
243
+ 'GET',
244
+ ).params(schema);
245
+
246
+ expect((builder as any).schemas.params).toBe(schema);
247
+ });
248
+
249
+ it('should pass params schema to endpoint', () => {
250
+ const schema = z.object({ userId: z.string() });
251
+ const endpoint = new EndpointBuilder('/users/:userId', 'GET')
252
+ .params(schema)
253
+ .handle(async ({ params }) => ({ userId: params.userId }));
254
+
255
+ expect(endpoint.input?.params).toBe(schema);
256
+ });
257
+
258
+ it('should work with complex route patterns', () => {
259
+ const schema = z.object({
260
+ orgId: z.string(),
261
+ projectId: z.string(),
262
+ taskId: z.string(),
263
+ });
264
+
265
+ const endpoint = new EndpointBuilder(
266
+ '/orgs/:orgId/projects/:projectId/tasks/:taskId',
267
+ 'PUT',
268
+ )
269
+ .params(schema)
270
+ .handle(async ({ params }) => ({ ...params }));
271
+
272
+ expect(endpoint.input?.params).toBe(schema);
273
+ });
274
+ });
275
+
276
+ describe('handle', () => {
277
+ it('should create an Endpoint instance', () => {
278
+ const endpoint = new EndpointBuilder('/test', 'GET').handle(
279
+ async () => ({}),
280
+ );
281
+
282
+ expect(endpoint).toBeInstanceOf(Endpoint);
283
+ });
284
+
285
+ it('should pass all configurations to endpoint', () => {
286
+ const bodySchema = z.object({ data: z.string() });
287
+ const querySchema = z.object({ filter: z.string() });
288
+ const paramsSchema = z.object({ id: z.string() });
289
+ const outputSchema = z.object({ result: z.string() });
290
+
291
+ const Service = {
292
+ serviceName: 'Service' as const,
293
+ async register() {
294
+ return {};
295
+ },
296
+ };
297
+
298
+ const logger: Logger = new ConsoleLogger();
299
+ const authFn = async () => true;
300
+ const sessionFn = async () => ({ userId: '123' });
301
+ const handler = async () => ({ result: 'success' });
302
+
303
+ const builder = new EndpointBuilder('/items/:id', 'POST')
304
+ .body(bodySchema)
305
+ .query(querySchema)
306
+ .params(paramsSchema)
307
+ .output(outputSchema)
308
+ .services([Service])
309
+ .status(201)
310
+ .description('Test endpoint');
311
+
312
+ // Set protected properties
313
+ (builder as any)._logger = logger;
314
+ (builder as any)._authorize = authFn;
315
+ (builder as any)._getSession = sessionFn;
316
+ (builder as any)._timeout = 5000;
317
+
318
+ const endpoint = builder.handle(handler);
319
+
320
+ // Verify all properties are passed correctly
321
+ expect(endpoint.route).toBe('/items/:id');
322
+ expect(endpoint.method).toBe('POST');
323
+ expect(endpoint.description).toBe('Test endpoint');
324
+ expect(endpoint.input?.body).toBe(bodySchema);
325
+ expect(endpoint.input?.query).toBe(querySchema);
326
+ expect(endpoint.input?.params).toBe(paramsSchema);
327
+ expect(endpoint.outputSchema).toBe(outputSchema);
328
+ expect(endpoint.services).toEqual([Service]);
329
+ expect(endpoint.logger).toBe(logger);
330
+ expect(endpoint.status).toBe(201);
331
+ expect(endpoint.authorize).toBe(authFn);
332
+ expect(endpoint.getSession).toBe(sessionFn);
333
+ expect(endpoint.timeout).toBe(5000);
334
+ });
335
+
336
+ it('should handle async handlers', async () => {
337
+ const endpoint = new EndpointBuilder('/async', 'GET').handle(async () => {
338
+ await new Promise((resolve) => setTimeout(resolve, 10));
339
+ return { delayed: true };
340
+ });
341
+
342
+ expect(endpoint).toBeInstanceOf(Endpoint);
343
+ });
344
+
345
+ it('should maintain type safety through the chain', () => {
346
+ const endpoint = new EndpointBuilder('/typed', 'POST')
347
+ .body(z.object({ input: z.number() }))
348
+ .output(z.object({ doubled: z.number() }))
349
+ .handle(async ({ body }) => ({
350
+ doubled: body.input * 2,
351
+ }));
352
+
353
+ expect(endpoint.route).toBe('/typed');
354
+ expect(endpoint.method).toBe('POST');
355
+ });
356
+ });
357
+
358
+ describe('inherited authorization and session', () => {
359
+ it('should have default authorization that returns true', () => {
360
+ const builder = new EndpointBuilder('/test', 'GET');
361
+ const defaultAuth = (builder as any)._authorize;
362
+
363
+ expect(defaultAuth()).toBe(true);
364
+ });
365
+
366
+ it('should have default session that returns empty object', () => {
367
+ const builder = new EndpointBuilder('/test', 'GET');
368
+ const defaultSession = (builder as any)._getSession;
369
+
370
+ expect(defaultSession()).toEqual({});
371
+ });
372
+
373
+ it('should allow setting custom authorization', () => {
374
+ const customAuth = async () => false;
375
+ const builder = new EndpointBuilder('/test', 'GET');
376
+ (builder as any)._authorize = customAuth;
377
+
378
+ const endpoint = builder.handle(async () => ({}));
379
+ expect(endpoint.authorize).toBe(customAuth);
380
+ });
381
+
382
+ it('should allow setting custom session extractor', () => {
383
+ const customSession = async () => ({ userId: '123', role: 'admin' });
384
+ const builder = new EndpointBuilder('/test', 'GET');
385
+ (builder as any)._getSession = customSession;
386
+
387
+ const endpoint = builder.handle(async () => ({}));
388
+ expect(endpoint.getSession).toBe(customSession);
389
+ });
390
+ });
391
+
392
+ describe('method chaining', () => {
393
+ it('should support fluent interface pattern', () => {
394
+ const endpoint = new EndpointBuilder('/users', 'POST')
395
+ .description('Create a new user')
396
+ .status(201)
397
+ .body(z.object({ name: z.string(), email: z.string().email() }))
398
+ .output(z.object({ id: z.string(), created: z.boolean() }))
399
+ .handle(async () => ({
400
+ id: '123',
401
+ created: true,
402
+ }));
403
+
404
+ expect(endpoint.description).toBe('Create a new user');
405
+ expect(endpoint.status).toBe(201);
406
+ expect(endpoint.input?.body).toBeDefined();
407
+ expect(endpoint.outputSchema).toBeDefined();
408
+ });
409
+
410
+ it('should maintain builder type through chains', () => {
411
+ const builder1 = new EndpointBuilder('/test', 'GET');
412
+ const builder2 = builder1.description('Test');
413
+ const builder3 = builder2.status(200);
414
+
415
+ expect(builder1).toBe(builder2);
416
+ expect(builder2).toBe(builder3);
417
+ });
418
+ });
419
+
420
+ describe('edge cases', () => {
421
+ it('should handle empty route', () => {
422
+ const endpoint = new EndpointBuilder('', 'GET').handle(async () => ({}));
423
+ expect(endpoint.route).toBe('');
424
+ });
425
+
426
+ it('should handle root route', () => {
427
+ const endpoint = new EndpointBuilder('/', 'GET').handle(async () => ({}));
428
+ expect(endpoint.route).toBe('/');
429
+ });
430
+
431
+ it('should handle routes with special characters', () => {
432
+ const endpoint = new EndpointBuilder(
433
+ '/users/:id/items/:item-id',
434
+ 'GET',
435
+ ).handle(async () => ({}));
436
+ expect(endpoint.route).toBe('/users/:id/items/:item-id');
437
+ });
438
+
439
+ it('should handle all HTTP methods', () => {
440
+ const methods = [
441
+ 'GET',
442
+ 'POST',
443
+ 'PUT',
444
+ 'DELETE',
445
+ 'PATCH',
446
+ 'OPTIONS',
447
+ ] as const;
448
+
449
+ methods.forEach((method) => {
450
+ const endpoint = new EndpointBuilder('/test', method).handle(
451
+ async () => ({}),
452
+ );
453
+ expect(endpoint.method).toBe(method);
454
+ });
455
+ });
456
+
457
+ it('should handle undefined schemas', () => {
458
+ const endpoint = new EndpointBuilder('/test', 'GET').handle(
459
+ async () => ({}),
460
+ );
461
+
462
+ expect(endpoint.input || {}).toEqual({});
463
+ expect(endpoint.outputSchema).toBeUndefined();
464
+ });
465
+
466
+ it('should handle complex nested schemas', () => {
467
+ const complexSchema = z.object({
468
+ user: z.object({
469
+ profile: z.object({
470
+ name: z.string(),
471
+ settings: z.array(
472
+ z.object({
473
+ key: z.string(),
474
+ value: z.unknown(),
475
+ }),
476
+ ),
477
+ }),
478
+ }),
479
+ });
480
+
481
+ const endpoint = new EndpointBuilder('/complex', 'POST')
482
+ .body(complexSchema)
483
+ .handle(async ({ body }) => ({ received: body }));
484
+
485
+ expect(endpoint.input?.body).toBe(complexSchema);
486
+ });
487
+ });
488
488
  });