@geekmidas/constructs 0.3.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. package/dist/{AWSLambdaFunction-C54a1doJ.mjs → AWSLambdaFunction-BMTaCrG9.mjs} +6 -6
  2. package/dist/AWSLambdaFunction-BMTaCrG9.mjs.map +1 -0
  3. package/dist/{AWSLambdaFunction-BdebRMUh.d.mts → AWSLambdaFunction-BfLF5vNa.d.cts} +6 -6
  4. package/dist/AWSLambdaFunction-BfLF5vNa.d.cts.map +1 -0
  5. package/dist/{AWSLambdaFunction-EPGY4s7i.cjs → AWSLambdaFunction-C1gRqLO7.cjs} +6 -6
  6. package/dist/AWSLambdaFunction-C1gRqLO7.cjs.map +1 -0
  7. package/dist/{AWSLambdaFunction-D0tEOTXQ.d.cts → AWSLambdaFunction-K94K8JU2.d.mts} +6 -6
  8. package/dist/AWSLambdaFunction-K94K8JU2.d.mts.map +1 -0
  9. package/dist/{AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts → AWSLambdaSubscriberAdaptor-B2Gk3fgx.d.cts} +2 -2
  10. package/dist/AWSLambdaSubscriberAdaptor-B2Gk3fgx.d.cts.map +1 -0
  11. package/dist/{AWSLambdaSubscriberAdaptor-BLfO612H.mjs → AWSLambdaSubscriberAdaptor-BD3FwGUb.mjs} +3 -3
  12. package/dist/AWSLambdaSubscriberAdaptor-BD3FwGUb.mjs.map +1 -0
  13. package/dist/{AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs → AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs} +3 -3
  14. package/dist/AWSLambdaSubscriberAdaptor-DQDnt1Xk.cjs.map +1 -0
  15. package/dist/{AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts → AWSLambdaSubscriberAdaptor-QuMFwltJ.d.mts} +2 -2
  16. package/dist/AWSLambdaSubscriberAdaptor-QuMFwltJ.d.mts.map +1 -0
  17. package/dist/{AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs → AmazonApiGatewayEndpointAdaptor-B4gLJ2dx.mjs} +56 -14
  18. package/dist/AmazonApiGatewayEndpointAdaptor-B4gLJ2dx.mjs.map +1 -0
  19. package/dist/{AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts → AmazonApiGatewayEndpointAdaptor-C987ZCsM.d.cts} +51 -5
  20. package/dist/AmazonApiGatewayEndpointAdaptor-C987ZCsM.d.cts.map +1 -0
  21. package/dist/{AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs → AmazonApiGatewayEndpointAdaptor-CwRKMRr_.cjs} +55 -13
  22. package/dist/AmazonApiGatewayEndpointAdaptor-CwRKMRr_.cjs.map +1 -0
  23. package/dist/{AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts → AmazonApiGatewayEndpointAdaptor-DpPfO6Vj.d.mts} +52 -6
  24. package/dist/AmazonApiGatewayEndpointAdaptor-DpPfO6Vj.d.mts.map +1 -0
  25. package/dist/{AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs → AmazonApiGatewayV1EndpointAdaptor-BeZMu5DZ.cjs} +4 -4
  26. package/dist/AmazonApiGatewayV1EndpointAdaptor-BeZMu5DZ.cjs.map +1 -0
  27. package/dist/{AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts → AmazonApiGatewayV1EndpointAdaptor-DI_5kdqw.d.mts} +5 -5
  28. package/dist/AmazonApiGatewayV1EndpointAdaptor-DI_5kdqw.d.mts.map +1 -0
  29. package/dist/{AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts → AmazonApiGatewayV1EndpointAdaptor-DkGMOpoB.d.cts} +4 -4
  30. package/dist/AmazonApiGatewayV1EndpointAdaptor-DkGMOpoB.d.cts.map +1 -0
  31. package/dist/{AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs → AmazonApiGatewayV1EndpointAdaptor-VccB6FKp.mjs} +4 -4
  32. package/dist/AmazonApiGatewayV1EndpointAdaptor-VccB6FKp.mjs.map +1 -0
  33. package/dist/{AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts → AmazonApiGatewayV2EndpointAdaptor-BtBnMJS_.d.cts} +4 -6
  34. package/dist/AmazonApiGatewayV2EndpointAdaptor-BtBnMJS_.d.cts.map +1 -0
  35. package/dist/{AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs → AmazonApiGatewayV2EndpointAdaptor-BwsL9Gia.cjs} +4 -4
  36. package/dist/AmazonApiGatewayV2EndpointAdaptor-BwsL9Gia.cjs.map +1 -0
  37. package/dist/{AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs → AmazonApiGatewayV2EndpointAdaptor-CljxmUfz.mjs} +4 -4
  38. package/dist/AmazonApiGatewayV2EndpointAdaptor-CljxmUfz.mjs.map +1 -0
  39. package/dist/{AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts → AmazonApiGatewayV2EndpointAdaptor-DnCoqlvw.d.mts} +5 -7
  40. package/dist/AmazonApiGatewayV2EndpointAdaptor-DnCoqlvw.d.mts.map +1 -0
  41. package/dist/{Authorizer-C0ge_tc8.cjs → Authorizer-BXxBee2P.cjs} +1 -1
  42. package/dist/Authorizer-BXxBee2P.cjs.map +1 -0
  43. package/dist/{Authorizer-r9U3y_ms.mjs → Authorizer-BgjU8-z6.mjs} +1 -1
  44. package/dist/Authorizer-BgjU8-z6.mjs.map +1 -0
  45. package/dist/{Authorizer-gWxYsGEp.d.mts → Authorizer-DCcYOx3h.d.mts} +1 -1
  46. package/dist/Authorizer-DCcYOx3h.d.mts.map +1 -0
  47. package/dist/{Authorizer-B-btowNd.d.cts → Authorizer-DWtwC8we.d.cts} +1 -1
  48. package/dist/Authorizer-DWtwC8we.d.cts.map +1 -0
  49. package/dist/{BaseFunctionBuilder-BAtutR6q.d.cts → BaseFunctionBuilder-BqZCqIeU.d.mts} +3 -3
  50. package/dist/BaseFunctionBuilder-BqZCqIeU.d.mts.map +1 -0
  51. package/dist/{BaseFunctionBuilder-DRY419e7.d.mts → BaseFunctionBuilder-CcK691ni.d.cts} +3 -3
  52. package/dist/BaseFunctionBuilder-CcK691ni.d.cts.map +1 -0
  53. package/dist/{BaseFunctionBuilder-Czi1Jwza.mjs → BaseFunctionBuilder-Dsqe6pnn.mjs} +2 -2
  54. package/dist/BaseFunctionBuilder-Dsqe6pnn.mjs.map +1 -0
  55. package/dist/{BaseFunctionBuilder-MYG3C9ug.cjs → BaseFunctionBuilder-Z0XwrKB5.cjs} +2 -2
  56. package/dist/BaseFunctionBuilder-Z0XwrKB5.cjs.map +1 -0
  57. package/dist/Construct-BNDLJJfD.mjs +150 -0
  58. package/dist/Construct-BNDLJJfD.mjs.map +1 -0
  59. package/dist/{Construct-Ba5cMxib.cjs → Construct-CPrCF8NK.cjs} +93 -9
  60. package/dist/Construct-CPrCF8NK.cjs.map +1 -0
  61. package/dist/{Construct-C4rPE67v.d.cts → Construct-Dl0l2d8d.d.cts} +30 -4
  62. package/dist/Construct-Dl0l2d8d.d.cts.map +1 -0
  63. package/dist/{Construct-XrijZFFh.d.mts → Construct-E8QPyHh4.d.mts} +30 -4
  64. package/dist/Construct-E8QPyHh4.d.mts.map +1 -0
  65. package/dist/Construct.cjs +4 -2
  66. package/dist/Construct.d.cts +2 -2
  67. package/dist/Construct.d.mts +2 -2
  68. package/dist/Construct.mjs +2 -2
  69. package/dist/{Cron-CGF4YAfM.cjs → Cron-BmPNTLla.cjs} +3 -3
  70. package/dist/Cron-BmPNTLla.cjs.map +1 -0
  71. package/dist/{Cron-BxhGs5up.mjs → Cron-BpJONaFv.mjs} +3 -3
  72. package/dist/Cron-BpJONaFv.mjs.map +1 -0
  73. package/dist/{Cron-bDLcTvV5.d.cts → Cron-CnmLLh3E.d.mts} +3 -3
  74. package/dist/Cron-CnmLLh3E.d.mts.map +1 -0
  75. package/dist/{Cron-cdjlSKNp.d.mts → Cron-DufAeHry.d.cts} +3 -3
  76. package/dist/Cron-DufAeHry.d.cts.map +1 -0
  77. package/dist/{CronBuilder-d2jh-IB2.mjs → CronBuilder-02HSIHJr.mjs} +4 -4
  78. package/dist/CronBuilder-02HSIHJr.mjs.map +1 -0
  79. package/dist/{CronBuilder-CcxKRtVP.cjs → CronBuilder-DC2zUS8a.cjs} +4 -4
  80. package/dist/CronBuilder-DC2zUS8a.cjs.map +1 -0
  81. package/dist/{CronBuilder-BC4m5-p1.d.mts → CronBuilder-anUSbMxb.d.mts} +4 -4
  82. package/dist/CronBuilder-anUSbMxb.d.mts.map +1 -0
  83. package/dist/{CronBuilder-DKVXyE0Q.d.cts → CronBuilder-fyqf_X8n.d.cts} +4 -4
  84. package/dist/CronBuilder-fyqf_X8n.d.cts.map +1 -0
  85. package/dist/{Endpoint-BVGZXFyV.cjs → Endpoint-BCWVbi8l.cjs} +6 -6
  86. package/dist/Endpoint-BCWVbi8l.cjs.map +1 -0
  87. package/dist/{Endpoint-BPv9_-m_.d.cts → Endpoint-BlcHiGNx.d.cts} +3 -3
  88. package/dist/Endpoint-BlcHiGNx.d.cts.map +1 -0
  89. package/dist/{Endpoint-BdwG75G_.d.mts → Endpoint-DEHuy46S.d.mts} +4 -4
  90. package/dist/Endpoint-DEHuy46S.d.mts.map +1 -0
  91. package/dist/{Endpoint-CuOEswxJ.mjs → Endpoint-ygxv2Ia6.mjs} +6 -6
  92. package/dist/Endpoint-ygxv2Ia6.mjs.map +1 -0
  93. package/dist/{EndpointBuilder-DIy_m1bu.d.cts → EndpointBuilder-DPLAUHqg.d.cts} +4 -4
  94. package/dist/EndpointBuilder-DPLAUHqg.d.cts.map +1 -0
  95. package/dist/{EndpointBuilder-B3az942t.d.mts → EndpointBuilder-DaeCeneF.d.mts} +5 -5
  96. package/dist/EndpointBuilder-DaeCeneF.d.mts.map +1 -0
  97. package/dist/{EndpointBuilder-Cgj1P_ra.cjs → EndpointBuilder-J5D67Y6a.cjs} +6 -6
  98. package/dist/EndpointBuilder-J5D67Y6a.cjs.map +1 -0
  99. package/dist/{EndpointBuilder-DnCB1h1j.mjs → EndpointBuilder-tn4zqoyw.mjs} +6 -6
  100. package/dist/EndpointBuilder-tn4zqoyw.mjs.map +1 -0
  101. package/dist/{EndpointFactory-CbdxPCIH.mjs → EndpointFactory-CIUZTTAF.mjs} +7 -7
  102. package/dist/EndpointFactory-CIUZTTAF.mjs.map +1 -0
  103. package/dist/{EndpointFactory-CyPbm3AD.d.cts → EndpointFactory-CiKcb5PX.d.cts} +4 -4
  104. package/dist/EndpointFactory-CiKcb5PX.d.cts.map +1 -0
  105. package/dist/{EndpointFactory-C-0nE6Jg.d.mts → EndpointFactory-DufM0t2z.d.mts} +4 -4
  106. package/dist/EndpointFactory-DufM0t2z.d.mts.map +1 -0
  107. package/dist/{EndpointFactory-CYj6BYok.cjs → EndpointFactory-d5uwWFkK.cjs} +7 -7
  108. package/dist/EndpointFactory-d5uwWFkK.cjs.map +1 -0
  109. package/dist/{Function-DDZb1525.cjs → Function-2qWSZqYB.cjs} +3 -3
  110. package/dist/Function-2qWSZqYB.cjs.map +1 -0
  111. package/dist/{Function-Cf7f_kCz.d.cts → Function-CbEohg13.d.cts} +3 -3
  112. package/dist/Function-CbEohg13.d.cts.map +1 -0
  113. package/dist/{Function-BVHqIDp9.mjs → Function-CdF1HmFu.mjs} +3 -3
  114. package/dist/Function-CdF1HmFu.mjs.map +1 -0
  115. package/dist/{Function-DN2G6OT5.d.mts → Function-EjIOLxlh.d.mts} +3 -3
  116. package/dist/Function-EjIOLxlh.d.mts.map +1 -0
  117. package/dist/{FunctionBuilder-DswJ-9sD.cjs → FunctionBuilder-B-pbgm09.cjs} +4 -4
  118. package/dist/FunctionBuilder-B-pbgm09.cjs.map +1 -0
  119. package/dist/{FunctionBuilder-CJBzzXL3.d.cts → FunctionBuilder-CX3ooNdq.d.cts} +4 -4
  120. package/dist/FunctionBuilder-CX3ooNdq.d.cts.map +1 -0
  121. package/dist/{FunctionBuilder-Cxx8D2na.d.mts → FunctionBuilder-D11ytDyy.d.mts} +4 -4
  122. package/dist/FunctionBuilder-D11ytDyy.d.mts.map +1 -0
  123. package/dist/{FunctionBuilder-CrDYgfiI.mjs → FunctionBuilder-DaWVthAJ.mjs} +4 -4
  124. package/dist/FunctionBuilder-DaWVthAJ.mjs.map +1 -0
  125. package/dist/{FunctionExecutionWrapper-DF260Aaj.d.mts → FunctionExecutionWrapper-BJcRjH9Z.d.cts} +5 -5
  126. package/dist/FunctionExecutionWrapper-BJcRjH9Z.d.cts.map +1 -0
  127. package/dist/{FunctionExecutionWrapper-BYI2bGTL.cjs → FunctionExecutionWrapper-C6ChBNHs.cjs} +3 -3
  128. package/dist/FunctionExecutionWrapper-C6ChBNHs.cjs.map +1 -0
  129. package/dist/{FunctionExecutionWrapper-Qy8bmgFR.d.cts → FunctionExecutionWrapper-D3RNjGIR.d.mts} +5 -5
  130. package/dist/FunctionExecutionWrapper-D3RNjGIR.d.mts.map +1 -0
  131. package/dist/{FunctionExecutionWrapper-CLDh7Z2_.mjs → FunctionExecutionWrapper-Dj3pmXaN.mjs} +3 -3
  132. package/dist/FunctionExecutionWrapper-Dj3pmXaN.mjs.map +1 -0
  133. package/dist/{HonoEndpointAdaptor-BaPlUhz0.d.mts → HonoEndpointAdaptor-CKP6nrG2.d.mts} +11 -6
  134. package/dist/HonoEndpointAdaptor-CKP6nrG2.d.mts.map +1 -0
  135. package/dist/HonoEndpointAdaptor-Cc8Rnp9G.mjs +251 -0
  136. package/dist/HonoEndpointAdaptor-Cc8Rnp9G.mjs.map +1 -0
  137. package/dist/{HonoEndpointAdaptor-YcRHYALH.d.cts → HonoEndpointAdaptor-hrrvyfw9.d.cts} +10 -5
  138. package/dist/HonoEndpointAdaptor-hrrvyfw9.d.cts.map +1 -0
  139. package/dist/HonoEndpointAdaptor-xGnDZa3a.cjs +257 -0
  140. package/dist/HonoEndpointAdaptor-xGnDZa3a.cjs.map +1 -0
  141. package/dist/{Subscriber-COYMSevD.d.cts → Subscriber-BBcIOkhW.d.cts} +2 -2
  142. package/dist/Subscriber-BBcIOkhW.d.cts.map +1 -0
  143. package/dist/{Subscriber-ikctpU3I.d.mts → Subscriber-BpTAXvbM.d.mts} +2 -2
  144. package/dist/Subscriber-BpTAXvbM.d.mts.map +1 -0
  145. package/dist/{Subscriber-BiHjVXtM.cjs → Subscriber-CL4iYm01.cjs} +2 -2
  146. package/dist/Subscriber-CL4iYm01.cjs.map +1 -0
  147. package/dist/{Subscriber-BmPf9GFb.mjs → Subscriber-CZ8Smwd2.mjs} +2 -2
  148. package/dist/Subscriber-CZ8Smwd2.mjs.map +1 -0
  149. package/dist/{SubscriberBuilder-DJPEeYDJ.mjs → SubscriberBuilder-CxQg3TTm.mjs} +2 -2
  150. package/dist/SubscriberBuilder-CxQg3TTm.mjs.map +1 -0
  151. package/dist/{SubscriberBuilder-Cp1C-xtT.cjs → SubscriberBuilder-D0OS3hd7.cjs} +2 -2
  152. package/dist/SubscriberBuilder-D0OS3hd7.cjs.map +1 -0
  153. package/dist/{SubscriberBuilder-D_9zzllj.d.mts → SubscriberBuilder-D7IgufwB.d.cts} +3 -3
  154. package/dist/SubscriberBuilder-D7IgufwB.d.cts.map +1 -0
  155. package/dist/{SubscriberBuilder-ivHAGIVi.d.cts → SubscriberBuilder-DOFBbWLt.d.mts} +3 -3
  156. package/dist/SubscriberBuilder-DOFBbWLt.d.mts.map +1 -0
  157. package/dist/{TestEndpointAdaptor-DB7bREhS.d.mts → TestEndpointAdaptor-BnJusjf7.d.mts} +4 -4
  158. package/dist/TestEndpointAdaptor-BnJusjf7.d.mts.map +1 -0
  159. package/dist/TestEndpointAdaptor-CPL8ru6q.mjs +170 -0
  160. package/dist/TestEndpointAdaptor-CPL8ru6q.mjs.map +1 -0
  161. package/dist/TestEndpointAdaptor-Ca4K26_d.cjs +176 -0
  162. package/dist/TestEndpointAdaptor-Ca4K26_d.cjs.map +1 -0
  163. package/dist/{TestEndpointAdaptor-C10xBI--.d.cts → TestEndpointAdaptor-EPPTjntv.d.cts} +3 -3
  164. package/dist/TestEndpointAdaptor-EPPTjntv.d.cts.map +1 -0
  165. package/dist/adaptors/aws.cjs +12 -12
  166. package/dist/adaptors/aws.d.cts +15 -14
  167. package/dist/adaptors/aws.d.mts +16 -15
  168. package/dist/adaptors/aws.mjs +12 -12
  169. package/dist/adaptors/hono.cjs +10 -9
  170. package/dist/adaptors/hono.d.cts +8 -8
  171. package/dist/adaptors/hono.d.mts +9 -9
  172. package/dist/adaptors/hono.mjs +10 -9
  173. package/dist/adaptors/testing.cjs +8 -7
  174. package/dist/adaptors/testing.d.cts +8 -8
  175. package/dist/adaptors/testing.d.mts +9 -9
  176. package/dist/adaptors/testing.mjs +8 -7
  177. package/dist/crons/Cron.cjs +6 -6
  178. package/dist/crons/Cron.d.cts +6 -6
  179. package/dist/crons/Cron.d.mts +6 -6
  180. package/dist/crons/Cron.mjs +6 -6
  181. package/dist/crons/CronBuilder.cjs +7 -7
  182. package/dist/crons/CronBuilder.d.cts +7 -7
  183. package/dist/crons/CronBuilder.d.mts +7 -7
  184. package/dist/crons/CronBuilder.mjs +7 -7
  185. package/dist/crons/index.cjs +7 -7
  186. package/dist/crons/index.cjs.map +1 -1
  187. package/dist/crons/index.d.cts +11 -11
  188. package/dist/crons/index.d.mts +7 -7
  189. package/dist/crons/index.mjs +7 -7
  190. package/dist/crons/index.mjs.map +1 -1
  191. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +7 -7
  192. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +10 -9
  193. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +11 -10
  194. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +7 -7
  195. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +8 -8
  196. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +10 -9
  197. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +11 -10
  198. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +8 -8
  199. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +8 -8
  200. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +11 -10
  201. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +12 -11
  202. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +8 -8
  203. package/dist/endpoints/Authorizer.cjs +1 -1
  204. package/dist/endpoints/Authorizer.d.cts +1 -1
  205. package/dist/endpoints/Authorizer.d.mts +1 -1
  206. package/dist/endpoints/Authorizer.mjs +1 -1
  207. package/dist/endpoints/Endpoint.cjs +6 -6
  208. package/dist/endpoints/Endpoint.d.cts +7 -7
  209. package/dist/endpoints/Endpoint.d.mts +8 -8
  210. package/dist/endpoints/Endpoint.mjs +6 -6
  211. package/dist/endpoints/EndpointBuilder.cjs +9 -9
  212. package/dist/endpoints/EndpointBuilder.d.cts +8 -8
  213. package/dist/endpoints/EndpointBuilder.d.mts +9 -9
  214. package/dist/endpoints/EndpointBuilder.mjs +9 -9
  215. package/dist/endpoints/EndpointFactory.cjs +10 -10
  216. package/dist/endpoints/EndpointFactory.d.cts +9 -9
  217. package/dist/endpoints/EndpointFactory.d.mts +10 -10
  218. package/dist/endpoints/EndpointFactory.mjs +10 -10
  219. package/dist/endpoints/HonoEndpointAdaptor.cjs +10 -9
  220. package/dist/endpoints/HonoEndpointAdaptor.d.cts +8 -8
  221. package/dist/endpoints/HonoEndpointAdaptor.d.mts +9 -9
  222. package/dist/endpoints/HonoEndpointAdaptor.mjs +10 -9
  223. package/dist/endpoints/TestEndpointAdaptor.cjs +8 -7
  224. package/dist/endpoints/TestEndpointAdaptor.d.cts +8 -8
  225. package/dist/endpoints/TestEndpointAdaptor.d.mts +9 -9
  226. package/dist/endpoints/TestEndpointAdaptor.mjs +8 -7
  227. package/dist/endpoints/audit.d.cts +7 -7
  228. package/dist/endpoints/audit.d.mts +8 -8
  229. package/dist/endpoints/helpers.cjs +7 -7
  230. package/dist/endpoints/helpers.d.cts +7 -7
  231. package/dist/endpoints/helpers.d.cts.map +1 -1
  232. package/dist/endpoints/helpers.d.mts +8 -8
  233. package/dist/endpoints/helpers.d.mts.map +1 -1
  234. package/dist/endpoints/helpers.mjs +7 -7
  235. package/dist/endpoints/index.cjs +20 -10
  236. package/dist/endpoints/index.cjs.map +1 -1
  237. package/dist/endpoints/index.d.cts +14 -12
  238. package/dist/endpoints/index.d.cts.map +1 -1
  239. package/dist/endpoints/index.d.mts +15 -13
  240. package/dist/endpoints/index.d.mts.map +1 -1
  241. package/dist/endpoints/index.mjs +13 -11
  242. package/dist/endpoints/index.mjs.map +1 -1
  243. package/dist/endpoints/lazyAccessors.cjs +10 -0
  244. package/dist/endpoints/lazyAccessors.d.cts +10 -0
  245. package/dist/endpoints/lazyAccessors.d.mts +10 -0
  246. package/dist/endpoints/lazyAccessors.mjs +3 -0
  247. package/dist/endpoints/parseHonoQuery.cjs +1 -1
  248. package/dist/endpoints/parseHonoQuery.mjs +1 -1
  249. package/dist/endpoints/parseQueryParams.d.cts.map +1 -1
  250. package/dist/endpoints/parseQueryParams.d.mts.map +1 -1
  251. package/dist/endpoints/processAudits.d.cts +7 -7
  252. package/dist/endpoints/processAudits.d.cts.map +1 -1
  253. package/dist/endpoints/processAudits.d.mts +8 -8
  254. package/dist/endpoints/processAudits.d.mts.map +1 -1
  255. package/dist/endpoints/rls.cjs +1 -1
  256. package/dist/endpoints/rls.d.cts +7 -7
  257. package/dist/endpoints/rls.d.mts +8 -8
  258. package/dist/endpoints/rls.mjs +1 -1
  259. package/dist/functions/AWSLambdaFunction.cjs +6 -6
  260. package/dist/functions/AWSLambdaFunction.d.cts +4 -4
  261. package/dist/functions/AWSLambdaFunction.d.mts +4 -4
  262. package/dist/functions/AWSLambdaFunction.mjs +6 -6
  263. package/dist/functions/BaseFunctionBuilder.cjs +2 -2
  264. package/dist/functions/BaseFunctionBuilder.d.cts +2 -2
  265. package/dist/functions/BaseFunctionBuilder.d.mts +2 -2
  266. package/dist/functions/BaseFunctionBuilder.mjs +2 -2
  267. package/dist/functions/Function.cjs +2 -2
  268. package/dist/functions/Function.d.cts +2 -2
  269. package/dist/functions/Function.d.mts +2 -2
  270. package/dist/functions/Function.mjs +2 -2
  271. package/dist/functions/FunctionBuilder.cjs +4 -4
  272. package/dist/functions/FunctionBuilder.d.cts +4 -4
  273. package/dist/functions/FunctionBuilder.d.mts +4 -4
  274. package/dist/functions/FunctionBuilder.mjs +4 -4
  275. package/dist/functions/FunctionExecutionWrapper.cjs +5 -5
  276. package/dist/functions/FunctionExecutionWrapper.d.cts +3 -3
  277. package/dist/functions/FunctionExecutionWrapper.d.mts +3 -3
  278. package/dist/functions/FunctionExecutionWrapper.mjs +5 -5
  279. package/dist/functions/TestFunctionAdaptor.cjs +7 -7
  280. package/dist/functions/TestFunctionAdaptor.cjs.map +1 -1
  281. package/dist/functions/TestFunctionAdaptor.d.cts +3 -3
  282. package/dist/functions/TestFunctionAdaptor.d.cts.map +1 -1
  283. package/dist/functions/TestFunctionAdaptor.d.mts +3 -3
  284. package/dist/functions/TestFunctionAdaptor.d.mts.map +1 -1
  285. package/dist/functions/TestFunctionAdaptor.mjs +7 -7
  286. package/dist/functions/TestFunctionAdaptor.mjs.map +1 -1
  287. package/dist/functions/index.cjs +5 -5
  288. package/dist/functions/index.d.cts +5 -5
  289. package/dist/functions/index.d.mts +5 -5
  290. package/dist/functions/index.mjs +5 -5
  291. package/dist/{functions-fTid0RMK.cjs → functions-CUEv5NC3.cjs} +2 -2
  292. package/dist/functions-CUEv5NC3.cjs.map +1 -0
  293. package/dist/functions-DOYBrb7n.mjs +8 -0
  294. package/dist/functions-DOYBrb7n.mjs.map +1 -0
  295. package/dist/{helpers-ByRTDO_m.mjs → helpers-Dl1eszfi.mjs} +2 -2
  296. package/dist/helpers-Dl1eszfi.mjs.map +1 -0
  297. package/dist/{helpers-BcP1tXAi.cjs → helpers-QMdfdnvU.cjs} +2 -2
  298. package/dist/helpers-QMdfdnvU.cjs.map +1 -0
  299. package/dist/{index-BWzGIj06.d.mts → index-BrGtMlpJ.d.cts} +2 -2
  300. package/dist/index-BrGtMlpJ.d.cts.map +1 -0
  301. package/dist/index-Dn4py3Db.d.mts +12 -0
  302. package/dist/index-Dn4py3Db.d.mts.map +1 -0
  303. package/dist/index.cjs +4 -2
  304. package/dist/index.d.cts +3 -2
  305. package/dist/index.d.mts +4 -3
  306. package/dist/index.mjs +2 -2
  307. package/dist/lazyAccessors-B-Jgkg2o.mjs +175 -0
  308. package/dist/lazyAccessors-B-Jgkg2o.mjs.map +1 -0
  309. package/dist/lazyAccessors-B8Hhras9.cjs +223 -0
  310. package/dist/lazyAccessors-B8Hhras9.cjs.map +1 -0
  311. package/dist/lazyAccessors-BFAj2-S4.d.mts +49 -0
  312. package/dist/lazyAccessors-BFAj2-S4.d.mts.map +1 -0
  313. package/dist/lazyAccessors-knaNZuTN.d.cts +49 -0
  314. package/dist/lazyAccessors-knaNZuTN.d.cts.map +1 -0
  315. package/dist/{parseHonoQuery-CZC5_97v.cjs → parseHonoQuery-D4MhxTRc.cjs} +1 -1
  316. package/dist/parseHonoQuery-D4MhxTRc.cjs.map +1 -0
  317. package/dist/{parseHonoQuery-DDgIkTO4.mjs → parseHonoQuery-DpK3sGPc.mjs} +1 -1
  318. package/dist/parseHonoQuery-DpK3sGPc.mjs.map +1 -0
  319. package/dist/parseQueryParams-BSNkjmZ9.cjs.map +1 -1
  320. package/dist/parseQueryParams-UMTRnRrW.mjs.map +1 -1
  321. package/dist/processAudits-CzHkPokQ.cjs.map +1 -1
  322. package/dist/processAudits-Dj8UGqcW.mjs.map +1 -1
  323. package/dist/publisher-BXG9YiRi.d.mts +16 -0
  324. package/dist/publisher-BXG9YiRi.d.mts.map +1 -0
  325. package/dist/publisher-Bw4770Hi.mjs.map +1 -1
  326. package/dist/publisher-D9ngDXg3.d.cts +16 -0
  327. package/dist/publisher-D9ngDXg3.d.cts.map +1 -0
  328. package/dist/publisher-lFQleddL.cjs.map +1 -1
  329. package/dist/publisher.d.cts +3 -16
  330. package/dist/publisher.d.mts +3 -16
  331. package/dist/{rls-CmJ7bRsz.cjs → rls-BrywnrQb.cjs} +1 -1
  332. package/dist/{rls-CmJ7bRsz.cjs.map → rls-BrywnrQb.cjs.map} +1 -1
  333. package/dist/{rls-Bf3FRwto.mjs → rls-C0cWOnk4.mjs} +1 -1
  334. package/dist/{rls-Bf3FRwto.mjs.map → rls-C0cWOnk4.mjs.map} +1 -1
  335. package/dist/subscribers/AWSLambdaSubscriberAdaptor.cjs +1 -1
  336. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.cts +3 -3
  337. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +3 -3
  338. package/dist/subscribers/AWSLambdaSubscriberAdaptor.mjs +1 -1
  339. package/dist/subscribers/Subscriber.cjs +2 -2
  340. package/dist/subscribers/Subscriber.d.cts +2 -2
  341. package/dist/subscribers/Subscriber.d.mts +2 -2
  342. package/dist/subscribers/Subscriber.mjs +2 -2
  343. package/dist/subscribers/SubscriberBuilder.cjs +3 -3
  344. package/dist/subscribers/SubscriberBuilder.d.cts +3 -3
  345. package/dist/subscribers/SubscriberBuilder.d.mts +3 -3
  346. package/dist/subscribers/SubscriberBuilder.mjs +3 -3
  347. package/dist/subscribers/index.cjs +3 -3
  348. package/dist/subscribers/index.cjs.map +1 -1
  349. package/dist/subscribers/index.d.cts +5 -5
  350. package/dist/subscribers/index.d.cts.map +1 -1
  351. package/dist/subscribers/index.d.mts +5 -5
  352. package/dist/subscribers/index.d.mts.map +1 -1
  353. package/dist/subscribers/index.mjs +3 -3
  354. package/dist/subscribers/index.mjs.map +1 -1
  355. package/dist/telemetry-BTaiRqPo.d.cts +95 -0
  356. package/dist/telemetry-BTaiRqPo.d.cts.map +1 -0
  357. package/dist/telemetry-yAHf5yDs.d.mts +95 -0
  358. package/dist/telemetry-yAHf5yDs.d.mts.map +1 -0
  359. package/dist/telemetry.cjs +0 -0
  360. package/dist/telemetry.d.cts +2 -0
  361. package/dist/telemetry.d.mts +2 -0
  362. package/dist/telemetry.mjs +0 -0
  363. package/dist/types-B5H3piDg.d.cts.map +1 -1
  364. package/dist/{types-DdIlpxAd.d.mts → types-Dw-iLd3Y.d.mts} +1 -1
  365. package/dist/types-Dw-iLd3Y.d.mts.map +1 -0
  366. package/dist/types.d.mts +1 -1
  367. package/package.json +19 -18
  368. package/src/Construct.ts +189 -94
  369. package/src/__benchmarks__/build-time-optimization.bench.ts +274 -0
  370. package/src/__benchmarks__/endpoint.bench.ts +375 -375
  371. package/src/__benchmarks__/fixtures.ts +241 -0
  372. package/src/__benchmarks__/hono-adaptor.bench.ts +533 -0
  373. package/src/__benchmarks__/hono-server.bench.ts +206 -206
  374. package/src/__benchmarks__/response-builder.bench.ts +428 -0
  375. package/src/__benchmarks__/strategies/strategy-a-lazy-services.ts +319 -0
  376. package/src/__benchmarks__/strategies/strategy-c-middleware.ts +530 -0
  377. package/src/__benchmarks__/strategies/strategy-d-opt-in-events.ts +567 -0
  378. package/src/__tests__/Construct.environment.spec.ts +572 -351
  379. package/src/__tests__/publisher.setting.spec.ts +496 -499
  380. package/src/__tests__/publisher.spec.ts +440 -442
  381. package/src/crons/Cron.ts +117 -117
  382. package/src/crons/CronBuilder.ts +237 -238
  383. package/src/crons/__tests__/Cron.spec.ts +448 -448
  384. package/src/crons/__tests__/CronBuilder.state-isolation.spec.ts +214 -214
  385. package/src/crons/index.ts +4 -4
  386. package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +571 -463
  387. package/src/endpoints/AmazonApiGatewayV1EndpointAdaptor.ts +86 -86
  388. package/src/endpoints/AmazonApiGatewayV2EndpointAdaptor.ts +85 -81
  389. package/src/endpoints/Authorizer.ts +100 -100
  390. package/src/endpoints/Endpoint.ts +921 -937
  391. package/src/endpoints/EndpointBuilder.ts +703 -703
  392. package/src/endpoints/EndpointFactory.ts +1054 -1056
  393. package/src/endpoints/HonoEndpointAdaptor.ts +621 -548
  394. package/src/endpoints/TestEndpointAdaptor.ts +372 -353
  395. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.audits.spec.ts +499 -0
  396. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.events.spec.ts +541 -542
  397. package/src/endpoints/__tests__/AmazonApiGatewayV1EndpointAdaptor.spec.ts +1172 -1174
  398. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.audits.spec.ts +599 -599
  399. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.events.spec.ts +710 -710
  400. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.factory-publisher.spec.ts +280 -280
  401. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.kysely-audit.integration.spec.ts +924 -730
  402. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.rls.spec.ts +307 -0
  403. package/src/endpoints/__tests__/AmazonApiGatewayV2EndpointAdaptor.spec.ts +408 -408
  404. package/src/endpoints/__tests__/Authorizer.spec.ts +286 -0
  405. package/src/endpoints/__tests__/Endpoint.cookies.spec.ts +162 -162
  406. package/src/endpoints/__tests__/Endpoint.headers.spec.ts +182 -182
  407. package/src/endpoints/__tests__/Endpoint.manifest.spec.ts +158 -159
  408. package/src/endpoints/__tests__/Endpoint.spec.ts +819 -822
  409. package/src/endpoints/__tests__/EndpointBuilder.audit.spec.ts +427 -427
  410. package/src/endpoints/__tests__/EndpointBuilder.spec.ts +478 -478
  411. package/src/endpoints/__tests__/EndpointFactory.authorizers.spec.ts +426 -426
  412. package/src/endpoints/__tests__/EndpointFactory.database-auditor.spec.ts +501 -501
  413. package/src/endpoints/__tests__/EndpointFactory.reference-audit.spec.ts +177 -177
  414. package/src/endpoints/__tests__/EndpointFactory.spec.ts +471 -471
  415. package/src/endpoints/__tests__/EndpointFactory.state-isolation.spec.ts +143 -143
  416. package/src/endpoints/__tests__/HonoEndpointAdaptor.audit-transactions.spec.ts +663 -663
  417. package/src/endpoints/__tests__/HonoEndpointAdaptor.audits.spec.ts +608 -608
  418. package/src/endpoints/__tests__/HonoEndpointAdaptor.events.spec.ts +561 -561
  419. package/src/endpoints/__tests__/HonoEndpointAdaptor.kysely-audit.integration.spec.ts +1036 -1036
  420. package/src/endpoints/__tests__/HonoEndpointAdaptor.openapi.spec.ts +278 -278
  421. package/src/endpoints/__tests__/HonoEndpointAdaptor.spec.ts +1093 -1093
  422. package/src/endpoints/__tests__/ResponseBuilder.spec.ts +230 -230
  423. package/src/endpoints/__tests__/TestEndpointAdaptor.audits.spec.ts +569 -569
  424. package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +841 -841
  425. package/src/endpoints/__tests__/endpoint-types.test.ts +68 -68
  426. package/src/endpoints/__tests__/helpers.spec.ts +37 -0
  427. package/src/endpoints/__tests__/lazyAccessors.spec.ts +330 -0
  428. package/src/endpoints/__tests__/processAudits.spec.ts +631 -0
  429. package/src/endpoints/audit.ts +51 -51
  430. package/src/endpoints/helpers.ts +34 -35
  431. package/src/endpoints/index.ts +33 -23
  432. package/src/endpoints/lazyAccessors.ts +241 -0
  433. package/src/endpoints/parseHonoQuery.ts +41 -41
  434. package/src/endpoints/parseQueryParams.ts +36 -36
  435. package/src/endpoints/processAudits.ts +269 -269
  436. package/src/endpoints/rls.ts +16 -16
  437. package/src/functions/AWSLambdaFunction.ts +294 -295
  438. package/src/functions/BaseFunctionBuilder.ts +185 -185
  439. package/src/functions/Function.ts +190 -190
  440. package/src/functions/FunctionBuilder.ts +353 -353
  441. package/src/functions/FunctionExecutionWrapper.ts +199 -200
  442. package/src/functions/TestFunctionAdaptor.ts +191 -191
  443. package/src/functions/__tests__/AWSLambdaFunctionAdaptor.spec.ts +424 -424
  444. package/src/functions/__tests__/Function.audits.spec.ts +364 -364
  445. package/src/functions/__tests__/Function.spec.ts +453 -454
  446. package/src/functions/__tests__/FunctionBuilder.state-isolation.spec.ts +179 -179
  447. package/src/functions/__tests__/TestFunctionAdaptor.spec.ts +369 -369
  448. package/src/functions/index.ts +6 -4
  449. package/src/index.ts +18 -9
  450. package/src/publisher.ts +71 -72
  451. package/src/subscribers/AWSLambdaSubscriberAdaptor.ts +244 -248
  452. package/src/subscribers/Subscriber.ts +82 -84
  453. package/src/subscribers/SubscriberBuilder.ts +129 -129
  454. package/src/subscribers/__tests__/AWSLambdaSubscriberAdaptor.spec.ts +589 -589
  455. package/src/subscribers/__tests__/Subscriber.spec.ts +402 -404
  456. package/src/subscribers/index.ts +1 -0
  457. package/src/telemetry.ts +103 -0
  458. package/src/types.ts +7 -7
  459. package/test.ts +58 -59
  460. package/dist/AWSLambdaFunction-BdebRMUh.d.mts.map +0 -1
  461. package/dist/AWSLambdaFunction-C54a1doJ.mjs.map +0 -1
  462. package/dist/AWSLambdaFunction-D0tEOTXQ.d.cts.map +0 -1
  463. package/dist/AWSLambdaFunction-EPGY4s7i.cjs.map +0 -1
  464. package/dist/AWSLambdaSubscriberAdaptor-BLfO612H.mjs.map +0 -1
  465. package/dist/AWSLambdaSubscriberAdaptor-BNcYYZ-P.cjs.map +0 -1
  466. package/dist/AWSLambdaSubscriberAdaptor-DrFAvHOp.d.mts.map +0 -1
  467. package/dist/AWSLambdaSubscriberAdaptor-Dx-Ks1Jp.d.cts.map +0 -1
  468. package/dist/AmazonApiGatewayEndpointAdaptor-BT9JXihC.mjs.map +0 -1
  469. package/dist/AmazonApiGatewayEndpointAdaptor-DLqnYQ4E.d.cts.map +0 -1
  470. package/dist/AmazonApiGatewayEndpointAdaptor-DNFvvdmW.cjs.map +0 -1
  471. package/dist/AmazonApiGatewayEndpointAdaptor-qlKXuZxy.d.mts.map +0 -1
  472. package/dist/AmazonApiGatewayV1EndpointAdaptor-CShQI8Gk.mjs.map +0 -1
  473. package/dist/AmazonApiGatewayV1EndpointAdaptor-Ccl8B8kG.cjs.map +0 -1
  474. package/dist/AmazonApiGatewayV1EndpointAdaptor-DyUaJIhB.d.cts.map +0 -1
  475. package/dist/AmazonApiGatewayV1EndpointAdaptor-MRUxs3Xi.d.mts.map +0 -1
  476. package/dist/AmazonApiGatewayV2EndpointAdaptor-D8-0Aab4.cjs.map +0 -1
  477. package/dist/AmazonApiGatewayV2EndpointAdaptor-M1-w0U5R.d.cts.map +0 -1
  478. package/dist/AmazonApiGatewayV2EndpointAdaptor-fuLM6M9k.d.mts.map +0 -1
  479. package/dist/AmazonApiGatewayV2EndpointAdaptor-lCRzGE4q.mjs.map +0 -1
  480. package/dist/Authorizer-B-btowNd.d.cts.map +0 -1
  481. package/dist/Authorizer-C0ge_tc8.cjs.map +0 -1
  482. package/dist/Authorizer-gWxYsGEp.d.mts.map +0 -1
  483. package/dist/Authorizer-r9U3y_ms.mjs.map +0 -1
  484. package/dist/BaseFunctionBuilder-BAtutR6q.d.cts.map +0 -1
  485. package/dist/BaseFunctionBuilder-Czi1Jwza.mjs.map +0 -1
  486. package/dist/BaseFunctionBuilder-DRY419e7.d.mts.map +0 -1
  487. package/dist/BaseFunctionBuilder-MYG3C9ug.cjs.map +0 -1
  488. package/dist/Construct-Ba5cMxib.cjs.map +0 -1
  489. package/dist/Construct-C4rPE67v.d.cts.map +0 -1
  490. package/dist/Construct-DdyGHuag.mjs +0 -78
  491. package/dist/Construct-DdyGHuag.mjs.map +0 -1
  492. package/dist/Construct-XrijZFFh.d.mts.map +0 -1
  493. package/dist/Cron-BxhGs5up.mjs.map +0 -1
  494. package/dist/Cron-CGF4YAfM.cjs.map +0 -1
  495. package/dist/Cron-bDLcTvV5.d.cts.map +0 -1
  496. package/dist/Cron-cdjlSKNp.d.mts.map +0 -1
  497. package/dist/CronBuilder-BC4m5-p1.d.mts.map +0 -1
  498. package/dist/CronBuilder-CcxKRtVP.cjs.map +0 -1
  499. package/dist/CronBuilder-DKVXyE0Q.d.cts.map +0 -1
  500. package/dist/CronBuilder-d2jh-IB2.mjs.map +0 -1
  501. package/dist/Endpoint-BPv9_-m_.d.cts.map +0 -1
  502. package/dist/Endpoint-BVGZXFyV.cjs.map +0 -1
  503. package/dist/Endpoint-BdwG75G_.d.mts.map +0 -1
  504. package/dist/Endpoint-CuOEswxJ.mjs.map +0 -1
  505. package/dist/EndpointBuilder-B3az942t.d.mts.map +0 -1
  506. package/dist/EndpointBuilder-Cgj1P_ra.cjs.map +0 -1
  507. package/dist/EndpointBuilder-DIy_m1bu.d.cts.map +0 -1
  508. package/dist/EndpointBuilder-DnCB1h1j.mjs.map +0 -1
  509. package/dist/EndpointFactory-C-0nE6Jg.d.mts.map +0 -1
  510. package/dist/EndpointFactory-CYj6BYok.cjs.map +0 -1
  511. package/dist/EndpointFactory-CbdxPCIH.mjs.map +0 -1
  512. package/dist/EndpointFactory-CyPbm3AD.d.cts.map +0 -1
  513. package/dist/Function-BVHqIDp9.mjs.map +0 -1
  514. package/dist/Function-Cf7f_kCz.d.cts.map +0 -1
  515. package/dist/Function-DDZb1525.cjs.map +0 -1
  516. package/dist/Function-DN2G6OT5.d.mts.map +0 -1
  517. package/dist/FunctionBuilder-CJBzzXL3.d.cts.map +0 -1
  518. package/dist/FunctionBuilder-CrDYgfiI.mjs.map +0 -1
  519. package/dist/FunctionBuilder-Cxx8D2na.d.mts.map +0 -1
  520. package/dist/FunctionBuilder-DswJ-9sD.cjs.map +0 -1
  521. package/dist/FunctionExecutionWrapper-BYI2bGTL.cjs.map +0 -1
  522. package/dist/FunctionExecutionWrapper-CLDh7Z2_.mjs.map +0 -1
  523. package/dist/FunctionExecutionWrapper-DF260Aaj.d.mts.map +0 -1
  524. package/dist/FunctionExecutionWrapper-Qy8bmgFR.d.cts.map +0 -1
  525. package/dist/HonoEndpointAdaptor-BaPlUhz0.d.mts.map +0 -1
  526. package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs +0 -234
  527. package/dist/HonoEndpointAdaptor-CQe2FqMR.cjs.map +0 -1
  528. package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs +0 -228
  529. package/dist/HonoEndpointAdaptor-Ce-2HBxn.mjs.map +0 -1
  530. package/dist/HonoEndpointAdaptor-YcRHYALH.d.cts.map +0 -1
  531. package/dist/Subscriber-BiHjVXtM.cjs.map +0 -1
  532. package/dist/Subscriber-BmPf9GFb.mjs.map +0 -1
  533. package/dist/Subscriber-COYMSevD.d.cts.map +0 -1
  534. package/dist/Subscriber-ikctpU3I.d.mts.map +0 -1
  535. package/dist/SubscriberBuilder-Cp1C-xtT.cjs.map +0 -1
  536. package/dist/SubscriberBuilder-DJPEeYDJ.mjs.map +0 -1
  537. package/dist/SubscriberBuilder-D_9zzllj.d.mts.map +0 -1
  538. package/dist/SubscriberBuilder-ivHAGIVi.d.cts.map +0 -1
  539. package/dist/TestEndpointAdaptor-C10xBI--.d.cts.map +0 -1
  540. package/dist/TestEndpointAdaptor-DB7bREhS.d.mts.map +0 -1
  541. package/dist/TestEndpointAdaptor-DJgik2Wj.mjs +0 -160
  542. package/dist/TestEndpointAdaptor-DJgik2Wj.mjs.map +0 -1
  543. package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs +0 -166
  544. package/dist/TestEndpointAdaptor-ZbtQiuHE.cjs.map +0 -1
  545. package/dist/functions-C6EK1xL6.mjs +0 -8
  546. package/dist/functions-C6EK1xL6.mjs.map +0 -1
  547. package/dist/functions-fTid0RMK.cjs.map +0 -1
  548. package/dist/helpers-BcP1tXAi.cjs.map +0 -1
  549. package/dist/helpers-ByRTDO_m.mjs.map +0 -1
  550. package/dist/index-BWzGIj06.d.mts.map +0 -1
  551. package/dist/index-DmFozqLd.d.cts +0 -12
  552. package/dist/index-DmFozqLd.d.cts.map +0 -1
  553. package/dist/parseHonoQuery-CZC5_97v.cjs.map +0 -1
  554. package/dist/parseHonoQuery-DDgIkTO4.mjs.map +0 -1
  555. package/dist/publisher.d.cts.map +0 -1
  556. package/dist/publisher.d.mts.map +0 -1
  557. package/dist/types-DdIlpxAd.d.mts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import type {
2
- AuditStorage,
3
- AuditableAction,
4
- ExtractStorageAuditAction,
2
+ AuditableAction,
3
+ AuditStorage,
4
+ ExtractStorageAuditAction,
5
5
  } from '@geekmidas/audit';
6
6
  import type { EventPublisher, MappedEvent } from '@geekmidas/events';
7
7
  import type { Logger } from '@geekmidas/logger';
@@ -14,712 +14,712 @@ import { BaseFunctionBuilder } from '../functions';
14
14
  import type { HttpMethod } from '../types';
15
15
  import type { Authorizer, SecurityScheme } from './Authorizer';
16
16
  import { getSecurityScheme } from './Authorizer';
17
- import { Endpoint, type EndpointSchemas } from './Endpoint';
17
+ import type { ActorExtractor, MappedAudit } from './audit';
18
18
  import type {
19
- AuthorizeFn,
20
- EndpointHandler,
21
- SessionFn,
22
- SuccessStatus,
19
+ AuthorizeFn,
20
+ EndpointHandler,
21
+ SessionFn,
22
+ SuccessStatus,
23
23
  } from './Endpoint';
24
- import type { ActorExtractor, MappedAudit } from './audit';
24
+ import { Endpoint, type EndpointSchemas } from './Endpoint';
25
25
  import type { RlsBypass, RlsConfig } from './rls';
26
26
  import { RLS_BYPASS } from './rls';
27
27
 
28
28
  export class EndpointBuilder<
29
- TRoute extends string,
30
- TMethod extends HttpMethod,
31
- TInput extends EndpointSchemas = {},
32
- TServices extends Service[] = [],
33
- TLogger extends Logger = Logger,
34
- OutSchema extends StandardSchemaV1 | undefined = undefined,
35
- TSession = unknown,
36
- TEventPublisher extends EventPublisher<any> | undefined = undefined,
37
- TEventPublisherServiceName extends string = string,
38
- TAuthorizers extends readonly string[] = readonly string[],
39
- TAuditStorage extends AuditStorage | undefined = undefined,
40
- TAuditStorageServiceName extends string = string,
41
- TAuditAction extends AuditableAction<string, unknown> = AuditableAction<
42
- string,
43
- unknown
44
- >,
45
- TDatabase = undefined,
46
- TDatabaseServiceName extends string = string,
29
+ TRoute extends string,
30
+ TMethod extends HttpMethod,
31
+ TInput extends EndpointSchemas = {},
32
+ TServices extends Service[] = [],
33
+ TLogger extends Logger = Logger,
34
+ OutSchema extends StandardSchemaV1 | undefined = undefined,
35
+ TSession = unknown,
36
+ TEventPublisher extends EventPublisher<any> | undefined = undefined,
37
+ TEventPublisherServiceName extends string = string,
38
+ TAuthorizers extends readonly string[] = readonly string[],
39
+ TAuditStorage extends AuditStorage | undefined = undefined,
40
+ TAuditStorageServiceName extends string = string,
41
+ TAuditAction extends AuditableAction<string, unknown> = AuditableAction<
42
+ string,
43
+ unknown
44
+ >,
45
+ TDatabase = undefined,
46
+ TDatabaseServiceName extends string = string,
47
47
  > extends BaseFunctionBuilder<
48
- TInput,
49
- OutSchema,
50
- TServices,
51
- TLogger,
52
- TEventPublisher,
53
- TEventPublisherServiceName,
54
- TAuditStorage,
55
- TAuditStorageServiceName,
56
- TDatabase,
57
- TDatabaseServiceName
48
+ TInput,
49
+ OutSchema,
50
+ TServices,
51
+ TLogger,
52
+ TEventPublisher,
53
+ TEventPublisherServiceName,
54
+ TAuditStorage,
55
+ TAuditStorageServiceName,
56
+ TDatabase,
57
+ TDatabaseServiceName
58
58
  > {
59
- protected schemas: TInput = {} as TInput;
60
- protected _description?: string;
61
- protected _status?: SuccessStatus;
62
- protected _tags?: string[];
63
- protected _memorySize?: number;
64
- _getSession: SessionFn<TServices, TLogger, TSession, TDatabase> = () =>
65
- ({}) as TSession;
66
- _authorize: AuthorizeFn<TServices, TLogger, TSession> = () => true;
67
- _rateLimit?: RateLimitConfig;
68
- _availableAuthorizers: Authorizer[] = [];
69
- _authorizerName?: TAuthorizers[number];
70
- _actorExtractor?: ActorExtractor<TServices, TSession, TLogger>;
71
- _audits: MappedAudit<TAuditAction, OutSchema>[] = [];
72
- _customSecuritySchemes: Record<string, SecurityScheme> = {};
73
- _rlsConfig?: RlsConfig<TServices, TSession, TLogger>;
74
- _rlsBypass?: boolean;
75
-
76
- constructor(
77
- readonly route: TRoute,
78
- readonly method: TMethod,
79
- ) {
80
- super(ConstructType.Endpoint);
81
- }
82
-
83
- // Internal setter for EndpointFactory to set default publisher
84
- _setPublisher(
85
- publisher: Service<TEventPublisherServiceName, TEventPublisher>,
86
- ) {
87
- this._publisher = publisher;
88
- }
89
-
90
- // Internal setter for EndpointFactory to set default auditor storage
91
- _setAuditorStorage(
92
- storage: Service<TAuditStorageServiceName, TAuditStorage>,
93
- ) {
94
- this._auditorStorage = storage;
95
- }
96
-
97
- // Internal setter for EndpointFactory to set default database service
98
- _setDatabaseService(service: Service<TDatabaseServiceName, TDatabase>) {
99
- this._databaseService = service;
100
- }
101
-
102
- description(description: string): this {
103
- this._description = description;
104
- return this;
105
- }
106
-
107
- status(status: SuccessStatus): this {
108
- this._status = status;
109
- return this;
110
- }
111
-
112
- override event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(
113
- event: TEvent,
114
- ): this {
115
- this._events.push(event);
116
- return this;
117
- }
118
-
119
- tags(tags: string[]): this {
120
- this._tags = tags;
121
- return this;
122
- }
123
-
124
- memorySize(memorySize: number): this {
125
- this._memorySize = memorySize;
126
- return this;
127
- }
128
-
129
- override publisher<T extends EventPublisher<any>, TName extends string>(
130
- publisher: Service<TName, T>,
131
- ): EndpointBuilder<
132
- TRoute,
133
- TMethod,
134
- TInput,
135
- TServices,
136
- TLogger,
137
- OutSchema,
138
- TSession,
139
- T,
140
- TName,
141
- TAuthorizers,
142
- TAuditStorage,
143
- TAuditStorageServiceName,
144
- TAuditAction,
145
- TDatabase,
146
- TDatabaseServiceName
147
- > {
148
- this._publisher = publisher as unknown as Service<
149
- TEventPublisherServiceName,
150
- TEventPublisher
151
- >;
152
-
153
- return this as unknown as EndpointBuilder<
154
- TRoute,
155
- TMethod,
156
- TInput,
157
- TServices,
158
- TLogger,
159
- OutSchema,
160
- TSession,
161
- T,
162
- TName,
163
- TAuthorizers,
164
- TAuditStorage,
165
- TAuditStorageServiceName,
166
- TAuditAction,
167
- TDatabase,
168
- TDatabaseServiceName
169
- >;
170
- }
171
-
172
- body<T extends StandardSchemaV1>(
173
- schema: T,
174
- ): EndpointBuilder<
175
- TRoute,
176
- TMethod,
177
- Omit<TInput, 'body'> & { body: T },
178
- TServices,
179
- TLogger,
180
- OutSchema,
181
- TSession,
182
- TEventPublisher,
183
- TEventPublisherServiceName,
184
- TAuthorizers,
185
- TAuditStorage,
186
- TAuditStorageServiceName,
187
- TAuditAction,
188
- TDatabase,
189
- TDatabaseServiceName
190
- > {
191
- this.schemas.body = schema as unknown as T;
192
- // @ts-ignore
193
- return this;
194
- }
195
-
196
- search<T extends StandardSchemaV1>(
197
- schema: T,
198
- ): EndpointBuilder<
199
- TRoute,
200
- TMethod,
201
- Omit<TInput, 'query'> & { query: T },
202
- TServices,
203
- TLogger,
204
- OutSchema,
205
- TSession,
206
- TEventPublisher,
207
- TEventPublisherServiceName,
208
- TAuthorizers,
209
- TAuditStorage,
210
- TAuditStorageServiceName,
211
- TAuditAction,
212
- TDatabase,
213
- TDatabaseServiceName
214
- > {
215
- this.schemas.query = schema as unknown as T;
216
- // @ts-ignore
217
- return this;
218
- }
219
-
220
- query<T extends StandardSchemaV1>(
221
- schema: T,
222
- ): EndpointBuilder<
223
- TRoute,
224
- TMethod,
225
- Omit<TInput, 'query'> & { query: T },
226
- TServices,
227
- TLogger,
228
- OutSchema,
229
- TSession,
230
- TEventPublisher,
231
- TEventPublisherServiceName,
232
- TAuthorizers,
233
- TAuditStorage,
234
- TAuditStorageServiceName,
235
- TAuditAction,
236
- TDatabase,
237
- TDatabaseServiceName
238
- > {
239
- return this.search(schema);
240
- }
241
-
242
- params<T extends StandardSchemaV1>(
243
- schema: T,
244
- ): EndpointBuilder<
245
- TRoute,
246
- TMethod,
247
- Omit<TInput, 'params'> & { params: T },
248
- TServices,
249
- TLogger,
250
- OutSchema,
251
- TSession,
252
- TEventPublisher,
253
- TEventPublisherServiceName,
254
- TAuthorizers,
255
- TAuditStorage,
256
- TAuditStorageServiceName,
257
- TAuditAction,
258
- TDatabase,
259
- TDatabaseServiceName
260
- > {
261
- this.schemas.params = schema as unknown as T;
262
- // @ts-ignore
263
- return this;
264
- }
265
-
266
- rateLimit(config: RateLimitConfig): this {
267
- this._rateLimit = config;
268
- return this;
269
- }
270
-
271
- authorizer(
272
- name: TAuthorizers[number] | 'none',
273
- ): EndpointBuilder<
274
- TRoute,
275
- TMethod,
276
- TInput,
277
- TServices,
278
- TLogger,
279
- OutSchema,
280
- TSession,
281
- TEventPublisher,
282
- TEventPublisherServiceName,
283
- TAuthorizers,
284
- TAuditStorage,
285
- TAuditStorageServiceName,
286
- TAuditAction,
287
- TDatabase,
288
- TDatabaseServiceName
289
- > {
290
- // Special case: 'none' explicitly marks endpoint as having no authorizer
291
- if (name === 'none') {
292
- this._authorizerName = undefined;
293
- return this;
294
- }
295
-
296
- // Validate that the authorizer exists in available authorizers
297
- const authorizerExists = this._availableAuthorizers.some(
298
- (a) => a.name === name,
299
- );
300
- if (!authorizerExists && this._availableAuthorizers.length > 0) {
301
- const available = this._availableAuthorizers
302
- .map((a) => a.name)
303
- .join(', ');
304
- throw new Error(
305
- `Authorizer "${name as string}" not found in available authorizers: ${available}`,
306
- );
307
- }
308
- this._authorizerName = name;
309
- return this;
310
- }
311
-
312
- services<T extends Service[]>(
313
- services: T,
314
- ): EndpointBuilder<
315
- TRoute,
316
- TMethod,
317
- TInput,
318
- [...TServices, ...T],
319
- TLogger,
320
- OutSchema,
321
- TSession,
322
- TEventPublisher,
323
- TEventPublisherServiceName,
324
- TAuthorizers,
325
- TAuditStorage,
326
- TAuditStorageServiceName,
327
- TAuditAction,
328
- TDatabase,
329
- TDatabaseServiceName
330
- > {
331
- this._services = uniqBy(
332
- [...this._services, ...services],
333
- (s) => s.serviceName,
334
- ) as TServices;
335
-
336
- return this as unknown as EndpointBuilder<
337
- TRoute,
338
- TMethod,
339
- TInput,
340
- [...TServices, ...T],
341
- TLogger,
342
- OutSchema,
343
- TSession,
344
- TEventPublisher,
345
- TEventPublisherServiceName,
346
- TAuthorizers,
347
- TAuditStorage,
348
- TAuditStorageServiceName,
349
- TAuditAction,
350
- TDatabase,
351
- TDatabaseServiceName
352
- >;
353
- }
354
-
355
- logger<T extends Logger>(
356
- logger: T,
357
- ): EndpointBuilder<
358
- TRoute,
359
- TMethod,
360
- TInput,
361
- TServices,
362
- T,
363
- OutSchema,
364
- TSession,
365
- TEventPublisher,
366
- TEventPublisherServiceName,
367
- TAuthorizers,
368
- TAuditStorage,
369
- TAuditStorageServiceName,
370
- TAuditAction,
371
- TDatabase,
372
- TDatabaseServiceName
373
- > {
374
- this._logger = logger as unknown as TLogger;
375
-
376
- return this as unknown as EndpointBuilder<
377
- TRoute,
378
- TMethod,
379
- TInput,
380
- TServices,
381
- T,
382
- OutSchema,
383
- TSession,
384
- TEventPublisher,
385
- TEventPublisherServiceName,
386
- TAuthorizers,
387
- TAuditStorage,
388
- TAuditStorageServiceName,
389
- TAuditAction,
390
- TDatabase,
391
- TDatabaseServiceName
392
- >;
393
- }
394
-
395
- output<T extends StandardSchemaV1>(
396
- schema: T,
397
- ): EndpointBuilder<
398
- TRoute,
399
- TMethod,
400
- TInput,
401
- TServices,
402
- TLogger,
403
- T,
404
- TSession,
405
- TEventPublisher,
406
- TEventPublisherServiceName,
407
- TAuthorizers,
408
- TAuditStorage,
409
- TAuditStorageServiceName,
410
- TAuditAction,
411
- TDatabase,
412
- TDatabaseServiceName
413
- > {
414
- this.outputSchema = schema as unknown as OutSchema;
415
-
416
- return this as unknown as EndpointBuilder<
417
- TRoute,
418
- TMethod,
419
- TInput,
420
- TServices,
421
- TLogger,
422
- T,
423
- TSession,
424
- TEventPublisher,
425
- TEventPublisherServiceName,
426
- TAuthorizers,
427
- TAuditStorage,
428
- TAuditStorageServiceName,
429
- TAuditAction,
430
- TDatabase,
431
- TDatabaseServiceName
432
- >;
433
- }
434
-
435
- /**
436
- * Set the auditor storage service for this endpoint.
437
- * This enables audit functionality and makes `auditor` available in the handler context.
438
- * The audit action type is automatically inferred from the storage's generic parameter.
439
- */
440
- override auditor<T extends AuditStorage<any>, TName extends string>(
441
- storage: Service<TName, T>,
442
- ): EndpointBuilder<
443
- TRoute,
444
- TMethod,
445
- TInput,
446
- TServices,
447
- TLogger,
448
- OutSchema,
449
- TSession,
450
- TEventPublisher,
451
- TEventPublisherServiceName,
452
- TAuthorizers,
453
- T,
454
- TName,
455
- ExtractStorageAuditAction<T>,
456
- TDatabase,
457
- TDatabaseServiceName
458
- > {
459
- this._auditorStorage = storage as unknown as Service<
460
- TAuditStorageServiceName,
461
- TAuditStorage
462
- >;
463
-
464
- return this as unknown as EndpointBuilder<
465
- TRoute,
466
- TMethod,
467
- TInput,
468
- TServices,
469
- TLogger,
470
- OutSchema,
471
- TSession,
472
- TEventPublisher,
473
- TEventPublisherServiceName,
474
- TAuthorizers,
475
- T,
476
- TName,
477
- ExtractStorageAuditAction<T>,
478
- TDatabase,
479
- TDatabaseServiceName
480
- >;
481
- }
482
-
483
- /**
484
- * Set the actor extractor function for audit records.
485
- * The actor is extracted from the request context and attached to all audits.
486
- */
487
- actor(
488
- extractor: ActorExtractor<TServices, TSession, TLogger>,
489
- ): EndpointBuilder<
490
- TRoute,
491
- TMethod,
492
- TInput,
493
- TServices,
494
- TLogger,
495
- OutSchema,
496
- TSession,
497
- TEventPublisher,
498
- TEventPublisherServiceName,
499
- TAuthorizers,
500
- TAuditStorage,
501
- TAuditStorageServiceName,
502
- TAuditAction,
503
- TDatabase,
504
- TDatabaseServiceName
505
- > {
506
- this._actorExtractor = extractor;
507
- return this;
508
- }
509
-
510
- /**
511
- * Add declarative audit definitions that are processed after the handler executes.
512
- * Similar to `.event()` for events, but for audits.
513
- *
514
- * @example
515
- * ```typescript
516
- * .audit<AppAuditAction>([
517
- * {
518
- * type: 'user.created',
519
- * payload: (response) => ({ userId: response.id, email: response.email }),
520
- * when: (response) => response.active,
521
- * entityId: (response) => response.id,
522
- * table: 'users',
523
- * },
524
- * ])
525
- * ```
526
- */
527
- audit(audits: MappedAudit<TAuditAction, OutSchema>[]): this {
528
- this._audits = audits;
529
- return this;
530
- }
531
-
532
- /**
533
- * Set the database service for this endpoint.
534
- * The database will be available in the handler context as `db`.
535
- * When audit storage is configured and uses the same database,
536
- * `db` will automatically be the transaction for ACID compliance.
537
- *
538
- * @example
539
- * ```typescript
540
- * .database(databaseService)
541
- * .handle(async ({ db }) => {
542
- * // db is the raw database or transaction (when auditor uses same db)
543
- * return await db.selectFrom('users').selectAll().execute();
544
- * })
545
- * ```
546
- */
547
- override database<T, TName extends string>(
548
- service: Service<TName, T>,
549
- ): EndpointBuilder<
550
- TRoute,
551
- TMethod,
552
- TInput,
553
- TServices,
554
- TLogger,
555
- OutSchema,
556
- TSession,
557
- TEventPublisher,
558
- TEventPublisherServiceName,
559
- TAuthorizers,
560
- TAuditStorage,
561
- TAuditStorageServiceName,
562
- TAuditAction,
563
- T,
564
- TName
565
- > {
566
- this._databaseService = service as unknown as Service<
567
- TDatabaseServiceName,
568
- TDatabase
569
- >;
570
-
571
- return this as unknown as EndpointBuilder<
572
- TRoute,
573
- TMethod,
574
- TInput,
575
- TServices,
576
- TLogger,
577
- OutSchema,
578
- TSession,
579
- TEventPublisher,
580
- TEventPublisherServiceName,
581
- TAuthorizers,
582
- TAuditStorage,
583
- TAuditStorageServiceName,
584
- TAuditAction,
585
- T,
586
- TName
587
- >;
588
- }
589
-
590
- /**
591
- * Configure RLS (Row-Level Security) context for this endpoint.
592
- * Pass `false` or `RLS_BYPASS` to explicitly bypass RLS for this endpoint.
593
- *
594
- * @example
595
- * ```typescript
596
- * // Custom RLS config for this endpoint
597
- * .rls({
598
- * extractor: ({ session }) => ({
599
- * user_id: session.userId,
600
- * tenant_id: session.tenantId,
601
- * }),
602
- * prefix: 'app',
603
- * })
604
- *
605
- * // Bypass RLS (for admin endpoints)
606
- * .rls(false)
607
- * ```
608
- */
609
- rls(
610
- config: RlsConfig<TServices, TSession, TLogger> | false | RlsBypass,
611
- ): this {
612
- if (config === false || config === RLS_BYPASS) {
613
- this._rlsBypass = true;
614
- this._rlsConfig = undefined;
615
- } else {
616
- this._rlsConfig = config;
617
- this._rlsBypass = false;
618
- }
619
- return this;
620
- }
621
-
622
- /**
623
- * Explicitly bypass RLS for this endpoint.
624
- * Useful for admin operations that need unrestricted database access.
625
- *
626
- * @example
627
- * ```typescript
628
- * .rlsBypass()
629
- * .handle(async ({ db }) => {
630
- * // Full access, no RLS filtering
631
- * return db.selectFrom('orders').selectAll().execute();
632
- * })
633
- * ```
634
- */
635
- rlsBypass(): this {
636
- this._rlsBypass = true;
637
- this._rlsConfig = undefined;
638
- return this;
639
- }
640
-
641
- // EndpointBuilder doesn't have a generic input method - it uses body, query, params instead
642
- input(_schema: any): any {
643
- throw new Error(
644
- 'EndpointBuilder does not support generic input. Use body(), query(), or params() instead.',
645
- );
646
- }
647
-
648
- handle(
649
- fn: EndpointHandler<
650
- TInput,
651
- TServices,
652
- TLogger,
653
- OutSchema,
654
- TSession,
655
- TDatabase,
656
- TAuditStorage,
657
- TAuditAction
658
- >,
659
- ): Endpoint<
660
- TRoute,
661
- TMethod,
662
- TInput,
663
- OutSchema,
664
- TServices,
665
- TLogger,
666
- TSession,
667
- TEventPublisher,
668
- TEventPublisherServiceName,
669
- TAuditStorage,
670
- TAuditStorageServiceName,
671
- TAuditAction,
672
- TDatabase,
673
- TDatabaseServiceName
674
- > {
675
- // Find authorizer metadata if name is set
676
- // If the authorizer name is set but not in availableAuthorizers, create a simple authorizer object
677
- let authorizer: Authorizer | undefined;
678
- if (this._authorizerName) {
679
- const existingAuthorizer = this._availableAuthorizers.find(
680
- (a) => a.name === this._authorizerName,
681
- );
682
-
683
- if (existingAuthorizer) {
684
- authorizer = existingAuthorizer;
685
- } else {
686
- // Create authorizer with security scheme if available (built-in or custom)
687
- const securityScheme = getSecurityScheme(
688
- this._authorizerName as string,
689
- this._customSecuritySchemes,
690
- );
691
- authorizer = {
692
- name: this._authorizerName as string,
693
- securityScheme,
694
- };
695
- }
696
- }
697
-
698
- return new Endpoint({
699
- fn,
700
- method: this.method,
701
- route: this.route,
702
- description: this._description,
703
- tags: this._tags,
704
- input: this.schemas,
705
- output: this.outputSchema,
706
- services: this._services,
707
- logger: this._logger,
708
- timeout: this._timeout,
709
- memorySize: this._memorySize,
710
- authorize: this._authorize,
711
- status: this._status,
712
- getSession: this._getSession,
713
- rateLimit: this._rateLimit,
714
- publisherService: this._publisher,
715
- events: this._events,
716
- authorizer,
717
- auditorStorageService: this._auditorStorage,
718
- actorExtractor: this._actorExtractor,
719
- audits: this._audits,
720
- databaseService: this._databaseService,
721
- rlsConfig: this._rlsConfig,
722
- rlsBypass: this._rlsBypass,
723
- });
724
- }
59
+ protected schemas: TInput = {} as TInput;
60
+ protected _description?: string;
61
+ protected _status?: SuccessStatus;
62
+ protected _tags?: string[];
63
+ protected _memorySize?: number;
64
+ _getSession: SessionFn<TServices, TLogger, TSession, TDatabase> = () =>
65
+ ({}) as TSession;
66
+ _authorize: AuthorizeFn<TServices, TLogger, TSession> = () => true;
67
+ _rateLimit?: RateLimitConfig;
68
+ _availableAuthorizers: Authorizer[] = [];
69
+ _authorizerName?: TAuthorizers[number];
70
+ _actorExtractor?: ActorExtractor<TServices, TSession, TLogger>;
71
+ _audits: MappedAudit<TAuditAction, OutSchema>[] = [];
72
+ _customSecuritySchemes: Record<string, SecurityScheme> = {};
73
+ _rlsConfig?: RlsConfig<TServices, TSession, TLogger>;
74
+ _rlsBypass?: boolean;
75
+
76
+ constructor(
77
+ readonly route: TRoute,
78
+ readonly method: TMethod,
79
+ ) {
80
+ super(ConstructType.Endpoint);
81
+ }
82
+
83
+ // Internal setter for EndpointFactory to set default publisher
84
+ _setPublisher(
85
+ publisher: Service<TEventPublisherServiceName, TEventPublisher>,
86
+ ) {
87
+ this._publisher = publisher;
88
+ }
89
+
90
+ // Internal setter for EndpointFactory to set default auditor storage
91
+ _setAuditorStorage(
92
+ storage: Service<TAuditStorageServiceName, TAuditStorage>,
93
+ ) {
94
+ this._auditorStorage = storage;
95
+ }
96
+
97
+ // Internal setter for EndpointFactory to set default database service
98
+ _setDatabaseService(service: Service<TDatabaseServiceName, TDatabase>) {
99
+ this._databaseService = service;
100
+ }
101
+
102
+ description(description: string): this {
103
+ this._description = description;
104
+ return this;
105
+ }
106
+
107
+ status(status: SuccessStatus): this {
108
+ this._status = status;
109
+ return this;
110
+ }
111
+
112
+ override event<TEvent extends MappedEvent<TEventPublisher, OutSchema>>(
113
+ event: TEvent,
114
+ ): this {
115
+ this._events.push(event);
116
+ return this;
117
+ }
118
+
119
+ tags(tags: string[]): this {
120
+ this._tags = tags;
121
+ return this;
122
+ }
123
+
124
+ memorySize(memorySize: number): this {
125
+ this._memorySize = memorySize;
126
+ return this;
127
+ }
128
+
129
+ override publisher<T extends EventPublisher<any>, TName extends string>(
130
+ publisher: Service<TName, T>,
131
+ ): EndpointBuilder<
132
+ TRoute,
133
+ TMethod,
134
+ TInput,
135
+ TServices,
136
+ TLogger,
137
+ OutSchema,
138
+ TSession,
139
+ T,
140
+ TName,
141
+ TAuthorizers,
142
+ TAuditStorage,
143
+ TAuditStorageServiceName,
144
+ TAuditAction,
145
+ TDatabase,
146
+ TDatabaseServiceName
147
+ > {
148
+ this._publisher = publisher as unknown as Service<
149
+ TEventPublisherServiceName,
150
+ TEventPublisher
151
+ >;
152
+
153
+ return this as unknown as EndpointBuilder<
154
+ TRoute,
155
+ TMethod,
156
+ TInput,
157
+ TServices,
158
+ TLogger,
159
+ OutSchema,
160
+ TSession,
161
+ T,
162
+ TName,
163
+ TAuthorizers,
164
+ TAuditStorage,
165
+ TAuditStorageServiceName,
166
+ TAuditAction,
167
+ TDatabase,
168
+ TDatabaseServiceName
169
+ >;
170
+ }
171
+
172
+ body<T extends StandardSchemaV1>(
173
+ schema: T,
174
+ ): EndpointBuilder<
175
+ TRoute,
176
+ TMethod,
177
+ Omit<TInput, 'body'> & { body: T },
178
+ TServices,
179
+ TLogger,
180
+ OutSchema,
181
+ TSession,
182
+ TEventPublisher,
183
+ TEventPublisherServiceName,
184
+ TAuthorizers,
185
+ TAuditStorage,
186
+ TAuditStorageServiceName,
187
+ TAuditAction,
188
+ TDatabase,
189
+ TDatabaseServiceName
190
+ > {
191
+ this.schemas.body = schema as unknown as T;
192
+ // @ts-expect-error
193
+ return this;
194
+ }
195
+
196
+ search<T extends StandardSchemaV1>(
197
+ schema: T,
198
+ ): EndpointBuilder<
199
+ TRoute,
200
+ TMethod,
201
+ Omit<TInput, 'query'> & { query: T },
202
+ TServices,
203
+ TLogger,
204
+ OutSchema,
205
+ TSession,
206
+ TEventPublisher,
207
+ TEventPublisherServiceName,
208
+ TAuthorizers,
209
+ TAuditStorage,
210
+ TAuditStorageServiceName,
211
+ TAuditAction,
212
+ TDatabase,
213
+ TDatabaseServiceName
214
+ > {
215
+ this.schemas.query = schema as unknown as T;
216
+ // @ts-expect-error
217
+ return this;
218
+ }
219
+
220
+ query<T extends StandardSchemaV1>(
221
+ schema: T,
222
+ ): EndpointBuilder<
223
+ TRoute,
224
+ TMethod,
225
+ Omit<TInput, 'query'> & { query: T },
226
+ TServices,
227
+ TLogger,
228
+ OutSchema,
229
+ TSession,
230
+ TEventPublisher,
231
+ TEventPublisherServiceName,
232
+ TAuthorizers,
233
+ TAuditStorage,
234
+ TAuditStorageServiceName,
235
+ TAuditAction,
236
+ TDatabase,
237
+ TDatabaseServiceName
238
+ > {
239
+ return this.search(schema);
240
+ }
241
+
242
+ params<T extends StandardSchemaV1>(
243
+ schema: T,
244
+ ): EndpointBuilder<
245
+ TRoute,
246
+ TMethod,
247
+ Omit<TInput, 'params'> & { params: T },
248
+ TServices,
249
+ TLogger,
250
+ OutSchema,
251
+ TSession,
252
+ TEventPublisher,
253
+ TEventPublisherServiceName,
254
+ TAuthorizers,
255
+ TAuditStorage,
256
+ TAuditStorageServiceName,
257
+ TAuditAction,
258
+ TDatabase,
259
+ TDatabaseServiceName
260
+ > {
261
+ this.schemas.params = schema as unknown as T;
262
+ // @ts-expect-error
263
+ return this;
264
+ }
265
+
266
+ rateLimit(config: RateLimitConfig): this {
267
+ this._rateLimit = config;
268
+ return this;
269
+ }
270
+
271
+ authorizer(
272
+ name: TAuthorizers[number] | 'none',
273
+ ): EndpointBuilder<
274
+ TRoute,
275
+ TMethod,
276
+ TInput,
277
+ TServices,
278
+ TLogger,
279
+ OutSchema,
280
+ TSession,
281
+ TEventPublisher,
282
+ TEventPublisherServiceName,
283
+ TAuthorizers,
284
+ TAuditStorage,
285
+ TAuditStorageServiceName,
286
+ TAuditAction,
287
+ TDatabase,
288
+ TDatabaseServiceName
289
+ > {
290
+ // Special case: 'none' explicitly marks endpoint as having no authorizer
291
+ if (name === 'none') {
292
+ this._authorizerName = undefined;
293
+ return this;
294
+ }
295
+
296
+ // Validate that the authorizer exists in available authorizers
297
+ const authorizerExists = this._availableAuthorizers.some(
298
+ (a) => a.name === name,
299
+ );
300
+ if (!authorizerExists && this._availableAuthorizers.length > 0) {
301
+ const available = this._availableAuthorizers
302
+ .map((a) => a.name)
303
+ .join(', ');
304
+ throw new Error(
305
+ `Authorizer "${name as string}" not found in available authorizers: ${available}`,
306
+ );
307
+ }
308
+ this._authorizerName = name;
309
+ return this;
310
+ }
311
+
312
+ services<T extends Service[]>(
313
+ services: T,
314
+ ): EndpointBuilder<
315
+ TRoute,
316
+ TMethod,
317
+ TInput,
318
+ [...TServices, ...T],
319
+ TLogger,
320
+ OutSchema,
321
+ TSession,
322
+ TEventPublisher,
323
+ TEventPublisherServiceName,
324
+ TAuthorizers,
325
+ TAuditStorage,
326
+ TAuditStorageServiceName,
327
+ TAuditAction,
328
+ TDatabase,
329
+ TDatabaseServiceName
330
+ > {
331
+ this._services = uniqBy(
332
+ [...this._services, ...services],
333
+ (s) => s.serviceName,
334
+ ) as TServices;
335
+
336
+ return this as unknown as EndpointBuilder<
337
+ TRoute,
338
+ TMethod,
339
+ TInput,
340
+ [...TServices, ...T],
341
+ TLogger,
342
+ OutSchema,
343
+ TSession,
344
+ TEventPublisher,
345
+ TEventPublisherServiceName,
346
+ TAuthorizers,
347
+ TAuditStorage,
348
+ TAuditStorageServiceName,
349
+ TAuditAction,
350
+ TDatabase,
351
+ TDatabaseServiceName
352
+ >;
353
+ }
354
+
355
+ logger<T extends Logger>(
356
+ logger: T,
357
+ ): EndpointBuilder<
358
+ TRoute,
359
+ TMethod,
360
+ TInput,
361
+ TServices,
362
+ T,
363
+ OutSchema,
364
+ TSession,
365
+ TEventPublisher,
366
+ TEventPublisherServiceName,
367
+ TAuthorizers,
368
+ TAuditStorage,
369
+ TAuditStorageServiceName,
370
+ TAuditAction,
371
+ TDatabase,
372
+ TDatabaseServiceName
373
+ > {
374
+ this._logger = logger as unknown as TLogger;
375
+
376
+ return this as unknown as EndpointBuilder<
377
+ TRoute,
378
+ TMethod,
379
+ TInput,
380
+ TServices,
381
+ T,
382
+ OutSchema,
383
+ TSession,
384
+ TEventPublisher,
385
+ TEventPublisherServiceName,
386
+ TAuthorizers,
387
+ TAuditStorage,
388
+ TAuditStorageServiceName,
389
+ TAuditAction,
390
+ TDatabase,
391
+ TDatabaseServiceName
392
+ >;
393
+ }
394
+
395
+ output<T extends StandardSchemaV1>(
396
+ schema: T,
397
+ ): EndpointBuilder<
398
+ TRoute,
399
+ TMethod,
400
+ TInput,
401
+ TServices,
402
+ TLogger,
403
+ T,
404
+ TSession,
405
+ TEventPublisher,
406
+ TEventPublisherServiceName,
407
+ TAuthorizers,
408
+ TAuditStorage,
409
+ TAuditStorageServiceName,
410
+ TAuditAction,
411
+ TDatabase,
412
+ TDatabaseServiceName
413
+ > {
414
+ this.outputSchema = schema as unknown as OutSchema;
415
+
416
+ return this as unknown as EndpointBuilder<
417
+ TRoute,
418
+ TMethod,
419
+ TInput,
420
+ TServices,
421
+ TLogger,
422
+ T,
423
+ TSession,
424
+ TEventPublisher,
425
+ TEventPublisherServiceName,
426
+ TAuthorizers,
427
+ TAuditStorage,
428
+ TAuditStorageServiceName,
429
+ TAuditAction,
430
+ TDatabase,
431
+ TDatabaseServiceName
432
+ >;
433
+ }
434
+
435
+ /**
436
+ * Set the auditor storage service for this endpoint.
437
+ * This enables audit functionality and makes `auditor` available in the handler context.
438
+ * The audit action type is automatically inferred from the storage's generic parameter.
439
+ */
440
+ override auditor<T extends AuditStorage<any>, TName extends string>(
441
+ storage: Service<TName, T>,
442
+ ): EndpointBuilder<
443
+ TRoute,
444
+ TMethod,
445
+ TInput,
446
+ TServices,
447
+ TLogger,
448
+ OutSchema,
449
+ TSession,
450
+ TEventPublisher,
451
+ TEventPublisherServiceName,
452
+ TAuthorizers,
453
+ T,
454
+ TName,
455
+ ExtractStorageAuditAction<T>,
456
+ TDatabase,
457
+ TDatabaseServiceName
458
+ > {
459
+ this._auditorStorage = storage as unknown as Service<
460
+ TAuditStorageServiceName,
461
+ TAuditStorage
462
+ >;
463
+
464
+ return this as unknown as EndpointBuilder<
465
+ TRoute,
466
+ TMethod,
467
+ TInput,
468
+ TServices,
469
+ TLogger,
470
+ OutSchema,
471
+ TSession,
472
+ TEventPublisher,
473
+ TEventPublisherServiceName,
474
+ TAuthorizers,
475
+ T,
476
+ TName,
477
+ ExtractStorageAuditAction<T>,
478
+ TDatabase,
479
+ TDatabaseServiceName
480
+ >;
481
+ }
482
+
483
+ /**
484
+ * Set the actor extractor function for audit records.
485
+ * The actor is extracted from the request context and attached to all audits.
486
+ */
487
+ actor(
488
+ extractor: ActorExtractor<TServices, TSession, TLogger>,
489
+ ): EndpointBuilder<
490
+ TRoute,
491
+ TMethod,
492
+ TInput,
493
+ TServices,
494
+ TLogger,
495
+ OutSchema,
496
+ TSession,
497
+ TEventPublisher,
498
+ TEventPublisherServiceName,
499
+ TAuthorizers,
500
+ TAuditStorage,
501
+ TAuditStorageServiceName,
502
+ TAuditAction,
503
+ TDatabase,
504
+ TDatabaseServiceName
505
+ > {
506
+ this._actorExtractor = extractor;
507
+ return this;
508
+ }
509
+
510
+ /**
511
+ * Add declarative audit definitions that are processed after the handler executes.
512
+ * Similar to `.event()` for events, but for audits.
513
+ *
514
+ * @example
515
+ * ```typescript
516
+ * .audit<AppAuditAction>([
517
+ * {
518
+ * type: 'user.created',
519
+ * payload: (response) => ({ userId: response.id, email: response.email }),
520
+ * when: (response) => response.active,
521
+ * entityId: (response) => response.id,
522
+ * table: 'users',
523
+ * },
524
+ * ])
525
+ * ```
526
+ */
527
+ audit(audits: MappedAudit<TAuditAction, OutSchema>[]): this {
528
+ this._audits = audits;
529
+ return this;
530
+ }
531
+
532
+ /**
533
+ * Set the database service for this endpoint.
534
+ * The database will be available in the handler context as `db`.
535
+ * When audit storage is configured and uses the same database,
536
+ * `db` will automatically be the transaction for ACID compliance.
537
+ *
538
+ * @example
539
+ * ```typescript
540
+ * .database(databaseService)
541
+ * .handle(async ({ db }) => {
542
+ * // db is the raw database or transaction (when auditor uses same db)
543
+ * return await db.selectFrom('users').selectAll().execute();
544
+ * })
545
+ * ```
546
+ */
547
+ override database<T, TName extends string>(
548
+ service: Service<TName, T>,
549
+ ): EndpointBuilder<
550
+ TRoute,
551
+ TMethod,
552
+ TInput,
553
+ TServices,
554
+ TLogger,
555
+ OutSchema,
556
+ TSession,
557
+ TEventPublisher,
558
+ TEventPublisherServiceName,
559
+ TAuthorizers,
560
+ TAuditStorage,
561
+ TAuditStorageServiceName,
562
+ TAuditAction,
563
+ T,
564
+ TName
565
+ > {
566
+ this._databaseService = service as unknown as Service<
567
+ TDatabaseServiceName,
568
+ TDatabase
569
+ >;
570
+
571
+ return this as unknown as EndpointBuilder<
572
+ TRoute,
573
+ TMethod,
574
+ TInput,
575
+ TServices,
576
+ TLogger,
577
+ OutSchema,
578
+ TSession,
579
+ TEventPublisher,
580
+ TEventPublisherServiceName,
581
+ TAuthorizers,
582
+ TAuditStorage,
583
+ TAuditStorageServiceName,
584
+ TAuditAction,
585
+ T,
586
+ TName
587
+ >;
588
+ }
589
+
590
+ /**
591
+ * Configure RLS (Row-Level Security) context for this endpoint.
592
+ * Pass `false` or `RLS_BYPASS` to explicitly bypass RLS for this endpoint.
593
+ *
594
+ * @example
595
+ * ```typescript
596
+ * // Custom RLS config for this endpoint
597
+ * .rls({
598
+ * extractor: ({ session }) => ({
599
+ * user_id: session.userId,
600
+ * tenant_id: session.tenantId,
601
+ * }),
602
+ * prefix: 'app',
603
+ * })
604
+ *
605
+ * // Bypass RLS (for admin endpoints)
606
+ * .rls(false)
607
+ * ```
608
+ */
609
+ rls(
610
+ config: RlsConfig<TServices, TSession, TLogger> | false | RlsBypass,
611
+ ): this {
612
+ if (config === false || config === RLS_BYPASS) {
613
+ this._rlsBypass = true;
614
+ this._rlsConfig = undefined;
615
+ } else {
616
+ this._rlsConfig = config;
617
+ this._rlsBypass = false;
618
+ }
619
+ return this;
620
+ }
621
+
622
+ /**
623
+ * Explicitly bypass RLS for this endpoint.
624
+ * Useful for admin operations that need unrestricted database access.
625
+ *
626
+ * @example
627
+ * ```typescript
628
+ * .rlsBypass()
629
+ * .handle(async ({ db }) => {
630
+ * // Full access, no RLS filtering
631
+ * return db.selectFrom('orders').selectAll().execute();
632
+ * })
633
+ * ```
634
+ */
635
+ rlsBypass(): this {
636
+ this._rlsBypass = true;
637
+ this._rlsConfig = undefined;
638
+ return this;
639
+ }
640
+
641
+ // EndpointBuilder doesn't have a generic input method - it uses body, query, params instead
642
+ input(_schema: any): any {
643
+ throw new Error(
644
+ 'EndpointBuilder does not support generic input. Use body(), query(), or params() instead.',
645
+ );
646
+ }
647
+
648
+ handle(
649
+ fn: EndpointHandler<
650
+ TInput,
651
+ TServices,
652
+ TLogger,
653
+ OutSchema,
654
+ TSession,
655
+ TDatabase,
656
+ TAuditStorage,
657
+ TAuditAction
658
+ >,
659
+ ): Endpoint<
660
+ TRoute,
661
+ TMethod,
662
+ TInput,
663
+ OutSchema,
664
+ TServices,
665
+ TLogger,
666
+ TSession,
667
+ TEventPublisher,
668
+ TEventPublisherServiceName,
669
+ TAuditStorage,
670
+ TAuditStorageServiceName,
671
+ TAuditAction,
672
+ TDatabase,
673
+ TDatabaseServiceName
674
+ > {
675
+ // Find authorizer metadata if name is set
676
+ // If the authorizer name is set but not in availableAuthorizers, create a simple authorizer object
677
+ let authorizer: Authorizer | undefined;
678
+ if (this._authorizerName) {
679
+ const existingAuthorizer = this._availableAuthorizers.find(
680
+ (a) => a.name === this._authorizerName,
681
+ );
682
+
683
+ if (existingAuthorizer) {
684
+ authorizer = existingAuthorizer;
685
+ } else {
686
+ // Create authorizer with security scheme if available (built-in or custom)
687
+ const securityScheme = getSecurityScheme(
688
+ this._authorizerName as string,
689
+ this._customSecuritySchemes,
690
+ );
691
+ authorizer = {
692
+ name: this._authorizerName as string,
693
+ securityScheme,
694
+ };
695
+ }
696
+ }
697
+
698
+ return new Endpoint({
699
+ fn,
700
+ method: this.method,
701
+ route: this.route,
702
+ description: this._description,
703
+ tags: this._tags,
704
+ input: this.schemas,
705
+ output: this.outputSchema,
706
+ services: this._services,
707
+ logger: this._logger,
708
+ timeout: this._timeout,
709
+ memorySize: this._memorySize,
710
+ authorize: this._authorize,
711
+ status: this._status,
712
+ getSession: this._getSession,
713
+ rateLimit: this._rateLimit,
714
+ publisherService: this._publisher,
715
+ events: this._events,
716
+ authorizer,
717
+ auditorStorageService: this._auditorStorage,
718
+ actorExtractor: this._actorExtractor,
719
+ audits: this._audits,
720
+ databaseService: this._databaseService,
721
+ rlsConfig: this._rlsConfig,
722
+ rlsBypass: this._rlsBypass,
723
+ });
724
+ }
725
725
  }