@geekmidas/constructs 3.0.5 → 3.0.7

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 (293) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{AWSLambdaFunction-BF1gJJjG.d.mts → AWSLambdaFunction-CC8gMZhz.d.mts} +3 -3
  3. package/dist/{AWSLambdaFunction-BF1gJJjG.d.mts.map → AWSLambdaFunction-CC8gMZhz.d.mts.map} +1 -1
  4. package/dist/{AWSLambdaSubscriberAdaptor-OQvj2lKI.d.mts → AWSLambdaSubscriberAdaptor-Cmx9OQGG.d.mts} +2 -2
  5. package/dist/{AWSLambdaSubscriberAdaptor-OQvj2lKI.d.mts.map → AWSLambdaSubscriberAdaptor-Cmx9OQGG.d.mts.map} +1 -1
  6. package/dist/{AmazonApiGatewayEndpointAdaptor-D7mhDtSL.cjs → AmazonApiGatewayEndpointAdaptor-BIltcbAc.cjs} +2 -1
  7. package/dist/AmazonApiGatewayEndpointAdaptor-BIltcbAc.cjs.map +1 -0
  8. package/dist/{AmazonApiGatewayEndpointAdaptor-Cmm9d_Po.mjs → AmazonApiGatewayEndpointAdaptor-BpYtYCeW.mjs} +2 -1
  9. package/dist/AmazonApiGatewayEndpointAdaptor-BpYtYCeW.mjs.map +1 -0
  10. package/dist/{AmazonApiGatewayEndpointAdaptor-CS-m4WZy.d.mts → AmazonApiGatewayEndpointAdaptor-DA0rS_1Y.d.mts} +4 -4
  11. package/dist/{AmazonApiGatewayEndpointAdaptor-CS-m4WZy.d.mts.map → AmazonApiGatewayEndpointAdaptor-DA0rS_1Y.d.mts.map} +1 -1
  12. package/dist/{AmazonApiGatewayEndpointAdaptor-DisDeEF0.d.cts → AmazonApiGatewayEndpointAdaptor-DqNcQGMf.d.cts} +2 -2
  13. package/dist/{AmazonApiGatewayEndpointAdaptor-DisDeEF0.d.cts.map → AmazonApiGatewayEndpointAdaptor-DqNcQGMf.d.cts.map} +1 -1
  14. package/dist/{AmazonApiGatewayV1EndpointAdaptor-DSMe7dZ4.d.mts → AmazonApiGatewayV1EndpointAdaptor-C7rJzNvG.d.mts} +4 -4
  15. package/dist/{AmazonApiGatewayV1EndpointAdaptor-DSMe7dZ4.d.mts.map → AmazonApiGatewayV1EndpointAdaptor-C7rJzNvG.d.mts.map} +1 -1
  16. package/dist/{AmazonApiGatewayV1EndpointAdaptor-zrlehWUG.mjs → AmazonApiGatewayV1EndpointAdaptor-CRwyWT6t.mjs} +2 -2
  17. package/dist/{AmazonApiGatewayV1EndpointAdaptor-zrlehWUG.mjs.map → AmazonApiGatewayV1EndpointAdaptor-CRwyWT6t.mjs.map} +1 -1
  18. package/dist/{AmazonApiGatewayV1EndpointAdaptor-DstIoQBv.cjs → AmazonApiGatewayV1EndpointAdaptor-DEETT6Wj.cjs} +2 -2
  19. package/dist/{AmazonApiGatewayV1EndpointAdaptor-DstIoQBv.cjs.map → AmazonApiGatewayV1EndpointAdaptor-DEETT6Wj.cjs.map} +1 -1
  20. package/dist/{AmazonApiGatewayV1EndpointAdaptor-D6wNqjth.d.cts → AmazonApiGatewayV1EndpointAdaptor-DcN2fYsv.d.cts} +3 -3
  21. package/dist/{AmazonApiGatewayV1EndpointAdaptor-D6wNqjth.d.cts.map → AmazonApiGatewayV1EndpointAdaptor-DcN2fYsv.d.cts.map} +1 -1
  22. package/dist/{AmazonApiGatewayV2EndpointAdaptor-DaAHSnqs.cjs → AmazonApiGatewayV2EndpointAdaptor-C2qO8FN6.cjs} +2 -2
  23. package/dist/{AmazonApiGatewayV2EndpointAdaptor-DaAHSnqs.cjs.map → AmazonApiGatewayV2EndpointAdaptor-C2qO8FN6.cjs.map} +1 -1
  24. package/dist/{AmazonApiGatewayV2EndpointAdaptor-PcMFUEF9.d.cts → AmazonApiGatewayV2EndpointAdaptor-Cn9UoRgB.d.cts} +3 -3
  25. package/dist/{AmazonApiGatewayV2EndpointAdaptor-PcMFUEF9.d.cts.map → AmazonApiGatewayV2EndpointAdaptor-Cn9UoRgB.d.cts.map} +1 -1
  26. package/dist/{AmazonApiGatewayV2EndpointAdaptor-ByljgCnY.d.mts → AmazonApiGatewayV2EndpointAdaptor-d7NP-bZX.d.mts} +4 -4
  27. package/dist/{AmazonApiGatewayV2EndpointAdaptor-ByljgCnY.d.mts.map → AmazonApiGatewayV2EndpointAdaptor-d7NP-bZX.d.mts.map} +1 -1
  28. package/dist/{AmazonApiGatewayV2EndpointAdaptor-Dj5v-I6S.mjs → AmazonApiGatewayV2EndpointAdaptor-m9YKI294.mjs} +2 -2
  29. package/dist/{AmazonApiGatewayV2EndpointAdaptor-Dj5v-I6S.mjs.map → AmazonApiGatewayV2EndpointAdaptor-m9YKI294.mjs.map} +1 -1
  30. package/dist/{Authorizer-Dx57psuM.cjs → Authorizer-BZ1LcZFt.cjs} +1 -1
  31. package/dist/{Authorizer-Dx57psuM.cjs.map → Authorizer-BZ1LcZFt.cjs.map} +1 -1
  32. package/dist/{Authorizer-DBsrDTuf.d.mts → Authorizer-C5_FC_Rq.d.mts} +1 -1
  33. package/dist/{Authorizer-DBsrDTuf.d.mts.map → Authorizer-C5_FC_Rq.d.mts.map} +1 -1
  34. package/dist/{Authorizer-4unKN3Xn.mjs → Authorizer-CZpg1Jqk.mjs} +1 -1
  35. package/dist/{Authorizer-4unKN3Xn.mjs.map → Authorizer-CZpg1Jqk.mjs.map} +1 -1
  36. package/dist/{BaseFunctionBuilder-CsvFjzA8.d.mts → BaseFunctionBuilder-Q5qIlF-F.d.mts} +2 -2
  37. package/dist/{BaseFunctionBuilder-CsvFjzA8.d.mts.map → BaseFunctionBuilder-Q5qIlF-F.d.mts.map} +1 -1
  38. package/dist/{Construct-C2SyofdS.d.mts → Construct-BjpXFNxy.d.mts} +1 -1
  39. package/dist/{Construct-C2SyofdS.d.mts.map → Construct-BjpXFNxy.d.mts.map} +1 -1
  40. package/dist/Construct.d.mts +1 -1
  41. package/dist/{Cron-CWxjO2Fg.d.mts → Cron-BljK1gsV.d.mts} +2 -2
  42. package/dist/{Cron-BDxW6fYg.d.cts.map → Cron-BljK1gsV.d.mts.map} +1 -1
  43. package/dist/{Cron-DEKZg5j4.cjs → Cron-C1vyfJ8B.cjs} +1 -1
  44. package/dist/{Cron-DEKZg5j4.cjs.map → Cron-C1vyfJ8B.cjs.map} +1 -1
  45. package/dist/{Cron-B3vrGuaD.mjs → Cron-CjWQEad0.mjs} +1 -1
  46. package/dist/{Cron-B3vrGuaD.mjs.map → Cron-CjWQEad0.mjs.map} +1 -1
  47. package/dist/{Cron-BDxW6fYg.d.cts → Cron-CllHkk3z.d.cts} +1 -1
  48. package/dist/{Cron-CWxjO2Fg.d.mts.map → Cron-CllHkk3z.d.cts.map} +1 -1
  49. package/dist/{CronBuilder-VXpyNfp2.mjs → CronBuilder-CAJFtnmZ.mjs} +2 -2
  50. package/dist/{CronBuilder-VXpyNfp2.mjs.map → CronBuilder-CAJFtnmZ.mjs.map} +1 -1
  51. package/dist/{CronBuilder-DJnXbDGK.d.mts → CronBuilder-CG54f9LM.d.mts} +4 -4
  52. package/dist/{CronBuilder-CginrW3H.d.cts.map → CronBuilder-CG54f9LM.d.mts.map} +1 -1
  53. package/dist/{CronBuilder-BHpY6w3b.cjs → CronBuilder-CSMd02lu.cjs} +2 -2
  54. package/dist/{CronBuilder-BHpY6w3b.cjs.map → CronBuilder-CSMd02lu.cjs.map} +1 -1
  55. package/dist/{CronBuilder-CginrW3H.d.cts → CronBuilder-i23l40xs.d.cts} +2 -2
  56. package/dist/{CronBuilder-DJnXbDGK.d.mts.map → CronBuilder-i23l40xs.d.cts.map} +1 -1
  57. package/dist/{Endpoint-BIvS-rKH.d.mts → Endpoint-BET0JSZK.d.mts} +9 -9
  58. package/dist/Endpoint-BET0JSZK.d.mts.map +1 -0
  59. package/dist/Endpoint-BcxvF4F3.cjs.map +1 -1
  60. package/dist/{Endpoint-BPh52sXZ.d.cts → Endpoint-CGdCGJkC.d.cts} +6 -6
  61. package/dist/Endpoint-CGdCGJkC.d.cts.map +1 -0
  62. package/dist/Endpoint-DvY3aqAy.mjs.map +1 -1
  63. package/dist/{EndpointBuilder-3xH8Gllw.d.mts → EndpointBuilder-6kdrQyIh.d.mts} +7 -7
  64. package/dist/EndpointBuilder-6kdrQyIh.d.mts.map +1 -0
  65. package/dist/{EndpointBuilder-BmVTFp1A.d.cts → EndpointBuilder-CSwIguiR.d.cts} +4 -4
  66. package/dist/EndpointBuilder-CSwIguiR.d.cts.map +1 -0
  67. package/dist/{EndpointBuilder-QdDf3x87.cjs → EndpointBuilder-EptJojG9.cjs} +3 -3
  68. package/dist/EndpointBuilder-EptJojG9.cjs.map +1 -0
  69. package/dist/{EndpointBuilder-CMzbGG2c.mjs → EndpointBuilder-iDpnACRb.mjs} +3 -3
  70. package/dist/EndpointBuilder-iDpnACRb.mjs.map +1 -0
  71. package/dist/{EndpointFactory-DKHnUYl8.d.mts → EndpointFactory-CBagQW5j.d.mts} +6 -6
  72. package/dist/EndpointFactory-CBagQW5j.d.mts.map +1 -0
  73. package/dist/{EndpointFactory-AsfUsn-v.cjs → EndpointFactory-D2QxeaAh.cjs} +3 -3
  74. package/dist/EndpointFactory-D2QxeaAh.cjs.map +1 -0
  75. package/dist/{EndpointFactory-DaDXPRAg.d.cts → EndpointFactory-DQYSH8XK.d.cts} +5 -5
  76. package/dist/EndpointFactory-DQYSH8XK.d.cts.map +1 -0
  77. package/dist/{EndpointFactory-CkPaFZA0.mjs → EndpointFactory-wgcqWod-.mjs} +3 -3
  78. package/dist/EndpointFactory-wgcqWod-.mjs.map +1 -0
  79. package/dist/{Function-CZw1DRQ6.d.mts → Function-D74HrBnX.d.mts} +2 -2
  80. package/dist/{Function-CZw1DRQ6.d.mts.map → Function-D74HrBnX.d.mts.map} +1 -1
  81. package/dist/{FunctionBuilder-m5BNA2Ap.d.mts → FunctionBuilder-C_qPxC8g.d.mts} +4 -4
  82. package/dist/{FunctionBuilder-m5BNA2Ap.d.mts.map → FunctionBuilder-C_qPxC8g.d.mts.map} +1 -1
  83. package/dist/{FunctionExecutionWrapper-C7yYXIq-.d.mts → FunctionExecutionWrapper-xbTmBARx.d.mts} +2 -2
  84. package/dist/{FunctionExecutionWrapper-C7yYXIq-.d.mts.map → FunctionExecutionWrapper-xbTmBARx.d.mts.map} +1 -1
  85. package/dist/{HonoEndpointAdaptor-Jbptyuxv.cjs → HonoEndpointAdaptor-B5fKdLi7.cjs} +2 -1
  86. package/dist/HonoEndpointAdaptor-B5fKdLi7.cjs.map +1 -0
  87. package/dist/{HonoEndpointAdaptor-Cb45sqM9.d.mts → HonoEndpointAdaptor-C2deTEwW.d.mts} +5 -5
  88. package/dist/{HonoEndpointAdaptor-Cb45sqM9.d.mts.map → HonoEndpointAdaptor-C2deTEwW.d.mts.map} +1 -1
  89. package/dist/{HonoEndpointAdaptor-VStaYQHr.d.cts → HonoEndpointAdaptor-D3IgM-0B.d.cts} +2 -2
  90. package/dist/{HonoEndpointAdaptor-VStaYQHr.d.cts.map → HonoEndpointAdaptor-D3IgM-0B.d.cts.map} +1 -1
  91. package/dist/{HonoEndpointAdaptor-D7N5oiO0.mjs → HonoEndpointAdaptor-DOUODM7n.mjs} +2 -1
  92. package/dist/HonoEndpointAdaptor-DOUODM7n.mjs.map +1 -0
  93. package/dist/MswEndpointAdaptor-B41INCc7.mjs +108 -0
  94. package/dist/MswEndpointAdaptor-B41INCc7.mjs.map +1 -0
  95. package/dist/MswEndpointAdaptor-CA_fu6Wx.cjs +120 -0
  96. package/dist/MswEndpointAdaptor-CA_fu6Wx.cjs.map +1 -0
  97. package/dist/MswEndpointAdaptor-CXgYbOxw.d.mts +101 -0
  98. package/dist/MswEndpointAdaptor-CXgYbOxw.d.mts.map +1 -0
  99. package/dist/MswEndpointAdaptor-CsYvrQeB.d.cts +101 -0
  100. package/dist/MswEndpointAdaptor-CsYvrQeB.d.cts.map +1 -0
  101. package/dist/{Subscriber-BgB3RRxb.d.mts → Subscriber-9ObcUdcC.d.mts} +2 -2
  102. package/dist/{Subscriber-BgB3RRxb.d.mts.map → Subscriber-9ObcUdcC.d.mts.map} +1 -1
  103. package/dist/{Subscriber-BEhOdNQi.mjs → Subscriber-BH76wgkL.mjs} +1 -1
  104. package/dist/{Subscriber-BEhOdNQi.mjs.map → Subscriber-BH76wgkL.mjs.map} +1 -1
  105. package/dist/{Subscriber-Scz7hrV6.cjs → Subscriber-BgspJeS4.cjs} +1 -1
  106. package/dist/{Subscriber-Scz7hrV6.cjs.map → Subscriber-BgspJeS4.cjs.map} +1 -1
  107. package/dist/{SubscriberBuilder-DlUaG0Ej.mjs → SubscriberBuilder-B4md5wzs.mjs} +2 -2
  108. package/dist/{SubscriberBuilder-DlUaG0Ej.mjs.map → SubscriberBuilder-B4md5wzs.mjs.map} +1 -1
  109. package/dist/{SubscriberBuilder-B9uva8fZ.d.cts → SubscriberBuilder-Be7WBbCL.d.cts} +1 -1
  110. package/dist/{SubscriberBuilder-B9uva8fZ.d.cts.map → SubscriberBuilder-Be7WBbCL.d.cts.map} +1 -1
  111. package/dist/{SubscriberBuilder-B82h4v-S.cjs → SubscriberBuilder-BtL22ZJ9.cjs} +2 -2
  112. package/dist/{SubscriberBuilder-B82h4v-S.cjs.map → SubscriberBuilder-BtL22ZJ9.cjs.map} +1 -1
  113. package/dist/{SubscriberBuilder-DaQkh2Nt.d.mts → SubscriberBuilder-DsfIkgTF.d.mts} +2 -2
  114. package/dist/{SubscriberBuilder-DaQkh2Nt.d.mts.map → SubscriberBuilder-DsfIkgTF.d.mts.map} +1 -1
  115. package/dist/{TestEndpointAdaptor-DHVaHmhw.mjs → TestEndpointAdaptor-BFmgf7Fn.mjs} +2 -1
  116. package/dist/TestEndpointAdaptor-BFmgf7Fn.mjs.map +1 -0
  117. package/dist/{TestEndpointAdaptor-Bt-uW6SC.d.mts → TestEndpointAdaptor-C79Z-QS4.d.mts} +3 -3
  118. package/dist/{TestEndpointAdaptor-Bt-uW6SC.d.mts.map → TestEndpointAdaptor-C79Z-QS4.d.mts.map} +1 -1
  119. package/dist/{TestEndpointAdaptor-BKoJpTGT.cjs → TestEndpointAdaptor-DYLDyAAC.cjs} +2 -1
  120. package/dist/TestEndpointAdaptor-DYLDyAAC.cjs.map +1 -0
  121. package/dist/{TestEndpointAdaptor-UKhHj1RR.d.cts → TestEndpointAdaptor-pM8yskbb.d.cts} +2 -2
  122. package/dist/{TestEndpointAdaptor-UKhHj1RR.d.cts.map → TestEndpointAdaptor-pM8yskbb.d.cts.map} +1 -1
  123. package/dist/{TestFunctionAdaptor-CH6-gO_B.cjs → TestFunctionAdaptor-B859kIeb.cjs} +1 -1
  124. package/dist/{TestFunctionAdaptor-CH6-gO_B.cjs.map → TestFunctionAdaptor-B859kIeb.cjs.map} +1 -1
  125. package/dist/{TestFunctionAdaptor-DzT8GRdR.d.mts → TestFunctionAdaptor-C0A-VqnM.d.mts} +2 -2
  126. package/dist/{TestFunctionAdaptor-BHk2bDOV.d.cts.map → TestFunctionAdaptor-C0A-VqnM.d.mts.map} +1 -1
  127. package/dist/{TestFunctionAdaptor-C5CLuR-9.mjs → TestFunctionAdaptor-CqdSlhx1.mjs} +1 -1
  128. package/dist/{TestFunctionAdaptor-C5CLuR-9.mjs.map → TestFunctionAdaptor-CqdSlhx1.mjs.map} +1 -1
  129. package/dist/{TestFunctionAdaptor-BHk2bDOV.d.cts → TestFunctionAdaptor-Dbq55dKP.d.cts} +1 -1
  130. package/dist/{TestFunctionAdaptor-DzT8GRdR.d.mts.map → TestFunctionAdaptor-Dbq55dKP.d.cts.map} +1 -1
  131. package/dist/{TestSubscriberAdaptor-CPEiqSfE.d.mts → TestSubscriberAdaptor-BEyCFP9G.d.mts} +2 -2
  132. package/dist/{TestSubscriberAdaptor-CPEiqSfE.d.mts.map → TestSubscriberAdaptor-BEyCFP9G.d.mts.map} +1 -1
  133. package/dist/{TestSubscriberAdaptor-DQk5xzb0.d.cts → TestSubscriberAdaptor-BknOLRQw.d.cts} +1 -1
  134. package/dist/{TestSubscriberAdaptor-DQk5xzb0.d.cts.map → TestSubscriberAdaptor-BknOLRQw.d.cts.map} +1 -1
  135. package/dist/{TestSubscriberAdaptor-CwP3qNJ4.mjs → TestSubscriberAdaptor-CCcviuKa.mjs} +1 -1
  136. package/dist/{TestSubscriberAdaptor-CwP3qNJ4.mjs.map → TestSubscriberAdaptor-CCcviuKa.mjs.map} +1 -1
  137. package/dist/{TestSubscriberAdaptor-Dgxr_0vL.cjs → TestSubscriberAdaptor-_69o1d0f.cjs} +1 -1
  138. package/dist/{TestSubscriberAdaptor-Dgxr_0vL.cjs.map → TestSubscriberAdaptor-_69o1d0f.cjs.map} +1 -1
  139. package/dist/adaptors/aws.cjs +3 -3
  140. package/dist/adaptors/aws.d.cts +4 -4
  141. package/dist/adaptors/aws.d.mts +16 -16
  142. package/dist/adaptors/aws.mjs +3 -3
  143. package/dist/adaptors/hono.cjs +1 -1
  144. package/dist/adaptors/hono.d.cts +2 -2
  145. package/dist/adaptors/hono.d.mts +9 -9
  146. package/dist/adaptors/hono.mjs +1 -1
  147. package/dist/adaptors/testing.cjs +10 -4
  148. package/dist/adaptors/testing.d.cts +6 -5
  149. package/dist/adaptors/testing.d.mts +14 -13
  150. package/dist/adaptors/testing.mjs +8 -4
  151. package/dist/crons/Cron.cjs +1 -1
  152. package/dist/crons/Cron.d.cts +1 -1
  153. package/dist/crons/Cron.d.mts +6 -6
  154. package/dist/crons/Cron.mjs +1 -1
  155. package/dist/crons/CronBuilder.cjs +2 -2
  156. package/dist/crons/CronBuilder.d.cts +2 -2
  157. package/dist/crons/CronBuilder.d.mts +7 -7
  158. package/dist/crons/CronBuilder.mjs +2 -2
  159. package/dist/crons/index.cjs +2 -2
  160. package/dist/crons/index.d.cts +2 -2
  161. package/dist/crons/index.d.mts +11 -11
  162. package/dist/crons/index.mjs +2 -2
  163. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.cjs +1 -1
  164. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.cts +2 -2
  165. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.d.mts +10 -10
  166. package/dist/endpoints/AmazonApiGatewayEndpointAdaptor.mjs +1 -1
  167. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.cjs +2 -2
  168. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.cts +3 -3
  169. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.d.mts +11 -11
  170. package/dist/endpoints/AmazonApiGatewayV1EndpointAdaptor.mjs +2 -2
  171. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.cjs +2 -2
  172. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.cts +3 -3
  173. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.d.mts +11 -11
  174. package/dist/endpoints/AmazonApiGatewayV2EndpointAdaptor.mjs +2 -2
  175. package/dist/endpoints/Authorizer.cjs +1 -1
  176. package/dist/endpoints/Authorizer.d.mts +1 -1
  177. package/dist/endpoints/Authorizer.mjs +1 -1
  178. package/dist/endpoints/Endpoint.d.cts +1 -1
  179. package/dist/endpoints/Endpoint.d.mts +8 -8
  180. package/dist/endpoints/EndpointBuilder.cjs +3 -3
  181. package/dist/endpoints/EndpointBuilder.d.cts +2 -2
  182. package/dist/endpoints/EndpointBuilder.d.mts +9 -9
  183. package/dist/endpoints/EndpointBuilder.mjs +3 -3
  184. package/dist/endpoints/EndpointFactory.cjs +4 -4
  185. package/dist/endpoints/EndpointFactory.d.cts +3 -3
  186. package/dist/endpoints/EndpointFactory.d.mts +10 -10
  187. package/dist/endpoints/EndpointFactory.mjs +4 -4
  188. package/dist/endpoints/HonoEndpointAdaptor.cjs +1 -1
  189. package/dist/endpoints/HonoEndpointAdaptor.d.cts +2 -2
  190. package/dist/endpoints/HonoEndpointAdaptor.d.mts +9 -9
  191. package/dist/endpoints/HonoEndpointAdaptor.mjs +1 -1
  192. package/dist/endpoints/MswEndpointAdaptor.cjs +16 -0
  193. package/dist/endpoints/MswEndpointAdaptor.d.cts +10 -0
  194. package/dist/endpoints/MswEndpointAdaptor.d.mts +10 -0
  195. package/dist/endpoints/MswEndpointAdaptor.mjs +15 -0
  196. package/dist/endpoints/TestEndpointAdaptor.cjs +1 -1
  197. package/dist/endpoints/TestEndpointAdaptor.d.cts +2 -2
  198. package/dist/endpoints/TestEndpointAdaptor.d.mts +9 -9
  199. package/dist/endpoints/TestEndpointAdaptor.mjs +1 -1
  200. package/dist/endpoints/audit.d.cts +1 -1
  201. package/dist/endpoints/audit.d.mts +8 -8
  202. package/dist/endpoints/helpers.d.cts +1 -1
  203. package/dist/endpoints/helpers.d.mts +8 -8
  204. package/dist/endpoints/index.cjs +4 -4
  205. package/dist/endpoints/index.d.cts +7 -7
  206. package/dist/endpoints/index.d.mts +14 -14
  207. package/dist/endpoints/index.mjs +4 -4
  208. package/dist/endpoints/lazyAccessors.d.cts +2 -2
  209. package/dist/endpoints/lazyAccessors.d.mts +9 -9
  210. package/dist/endpoints/processAudits.d.cts +1 -1
  211. package/dist/endpoints/processAudits.d.mts +8 -8
  212. package/dist/endpoints/rls.cjs +1 -1
  213. package/dist/endpoints/rls.d.cts +1 -1
  214. package/dist/endpoints/rls.d.mts +8 -8
  215. package/dist/endpoints/rls.mjs +1 -1
  216. package/dist/functions/AWSLambdaFunction.d.mts +4 -4
  217. package/dist/functions/BaseFunctionBuilder.d.mts +2 -2
  218. package/dist/functions/Function.d.mts +2 -2
  219. package/dist/functions/FunctionBuilder.d.mts +4 -4
  220. package/dist/functions/FunctionExecutionWrapper.d.mts +3 -3
  221. package/dist/functions/TestFunctionAdaptor.cjs +1 -1
  222. package/dist/functions/TestFunctionAdaptor.d.cts +1 -1
  223. package/dist/functions/TestFunctionAdaptor.d.mts +3 -3
  224. package/dist/functions/TestFunctionAdaptor.mjs +1 -1
  225. package/dist/functions/index.d.mts +5 -5
  226. package/dist/index-Cg2UDz1r.d.mts +12 -0
  227. package/dist/{index-CtMNRkV7.d.mts.map → index-Cg2UDz1r.d.mts.map} +1 -1
  228. package/dist/index.d.mts +3 -3
  229. package/dist/{lazyAccessors-Ba8HxeIC.d.cts → lazyAccessors-Bxy5DBp4.d.cts} +2 -2
  230. package/dist/{lazyAccessors-Ba8HxeIC.d.cts.map → lazyAccessors-Bxy5DBp4.d.cts.map} +1 -1
  231. package/dist/{lazyAccessors-D9tzUZaz.d.mts → lazyAccessors-CWFdtzSR.d.mts} +2 -2
  232. package/dist/{lazyAccessors-D9tzUZaz.d.mts.map → lazyAccessors-CWFdtzSR.d.mts.map} +1 -1
  233. package/dist/{publisher-BrzPGnm4.d.cts → publisher-BUDHcaz3.d.cts} +1 -1
  234. package/dist/{publisher-BrzPGnm4.d.cts.map → publisher-BUDHcaz3.d.cts.map} +1 -1
  235. package/dist/{publisher-CP4gpv-4.d.mts → publisher-DXglijK_.d.mts} +2 -2
  236. package/dist/{publisher-CP4gpv-4.d.mts.map → publisher-DXglijK_.d.mts.map} +1 -1
  237. package/dist/publisher.d.cts +1 -1
  238. package/dist/publisher.d.mts +2 -2
  239. package/dist/{rls-7XXX7DvY.mjs → rls-C0r4UKVm.mjs} +1 -1
  240. package/dist/{rls-7XXX7DvY.mjs.map → rls-C0r4UKVm.mjs.map} +1 -1
  241. package/dist/{rls-DxFqdIA0.cjs → rls-Cfb6w-tQ.cjs} +1 -1
  242. package/dist/{rls-DxFqdIA0.cjs.map → rls-Cfb6w-tQ.cjs.map} +1 -1
  243. package/dist/subscribers/AWSLambdaSubscriberAdaptor.d.mts +3 -3
  244. package/dist/subscribers/Subscriber.cjs +1 -1
  245. package/dist/subscribers/Subscriber.d.mts +2 -2
  246. package/dist/subscribers/Subscriber.mjs +1 -1
  247. package/dist/subscribers/SubscriberBuilder.cjs +2 -2
  248. package/dist/subscribers/SubscriberBuilder.d.cts +1 -1
  249. package/dist/subscribers/SubscriberBuilder.d.mts +3 -3
  250. package/dist/subscribers/SubscriberBuilder.mjs +2 -2
  251. package/dist/subscribers/TestSubscriberAdaptor.cjs +1 -1
  252. package/dist/subscribers/TestSubscriberAdaptor.d.cts +1 -1
  253. package/dist/subscribers/TestSubscriberAdaptor.d.mts +3 -3
  254. package/dist/subscribers/TestSubscriberAdaptor.mjs +1 -1
  255. package/dist/subscribers/index.cjs +2 -2
  256. package/dist/subscribers/index.d.cts +3 -3
  257. package/dist/subscribers/index.d.cts.map +1 -1
  258. package/dist/subscribers/index.d.mts +3 -3
  259. package/dist/subscribers/index.mjs +2 -2
  260. package/dist/{telemetry-C-kNOW3C.d.mts → telemetry-BJo1gcV1.d.mts} +1 -1
  261. package/dist/{telemetry-C-kNOW3C.d.mts.map → telemetry-BJo1gcV1.d.mts.map} +1 -1
  262. package/dist/telemetry.d.mts +1 -1
  263. package/dist/{types-aFmq5cKh.d.mts → types-BqPOdHEm.d.mts} +1 -1
  264. package/dist/{types-aFmq5cKh.d.mts.map → types-BqPOdHEm.d.mts.map} +1 -1
  265. package/dist/types.d.mts +1 -1
  266. package/package.json +12 -7
  267. package/src/adaptors/testing.ts +7 -0
  268. package/src/endpoints/AmazonApiGatewayEndpointAdaptor.ts +3 -0
  269. package/src/endpoints/Endpoint.ts +15 -5
  270. package/src/endpoints/EndpointBuilder.ts +5 -2
  271. package/src/endpoints/EndpointFactory.ts +18 -4
  272. package/src/endpoints/HonoEndpointAdaptor.ts +2 -1
  273. package/src/endpoints/MswEndpointAdaptor.ts +226 -0
  274. package/src/endpoints/TestEndpointAdaptor.ts +2 -1
  275. package/src/endpoints/__tests__/MswEndpointAdaptor.spec.ts +219 -0
  276. package/src/endpoints/__tests__/TestEndpointAdaptor.spec.ts +54 -0
  277. package/dist/AmazonApiGatewayEndpointAdaptor-Cmm9d_Po.mjs.map +0 -1
  278. package/dist/AmazonApiGatewayEndpointAdaptor-D7mhDtSL.cjs.map +0 -1
  279. package/dist/Endpoint-BIvS-rKH.d.mts.map +0 -1
  280. package/dist/Endpoint-BPh52sXZ.d.cts.map +0 -1
  281. package/dist/EndpointBuilder-3xH8Gllw.d.mts.map +0 -1
  282. package/dist/EndpointBuilder-BmVTFp1A.d.cts.map +0 -1
  283. package/dist/EndpointBuilder-CMzbGG2c.mjs.map +0 -1
  284. package/dist/EndpointBuilder-QdDf3x87.cjs.map +0 -1
  285. package/dist/EndpointFactory-AsfUsn-v.cjs.map +0 -1
  286. package/dist/EndpointFactory-CkPaFZA0.mjs.map +0 -1
  287. package/dist/EndpointFactory-DKHnUYl8.d.mts.map +0 -1
  288. package/dist/EndpointFactory-DaDXPRAg.d.cts.map +0 -1
  289. package/dist/HonoEndpointAdaptor-D7N5oiO0.mjs.map +0 -1
  290. package/dist/HonoEndpointAdaptor-Jbptyuxv.cjs.map +0 -1
  291. package/dist/TestEndpointAdaptor-BKoJpTGT.cjs.map +0 -1
  292. package/dist/TestEndpointAdaptor-DHVaHmhw.mjs.map +0 -1
  293. package/dist/index-CtMNRkV7.d.mts +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"Function-CZw1DRQ6.d.mts","names":[],"sources":["../src/functions/Function.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"Function-D74HrBnX.d.mts","names":[],"sources":["../src/functions/Function.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { ConstructType } from "./Construct-C2SyofdS.mjs";
2
- import { BaseFunctionBuilder } from "./BaseFunctionBuilder-CsvFjzA8.mjs";
3
- import { Function, FunctionHandler } from "./Function-CZw1DRQ6.mjs";
1
+ import { ConstructType } from "./Construct-BjpXFNxy.mjs";
2
+ import { BaseFunctionBuilder } from "./BaseFunctionBuilder-Q5qIlF-F.mjs";
3
+ import { Function, FunctionHandler } from "./Function-D74HrBnX.mjs";
4
4
  import { Service } from "@geekmidas/services";
5
5
  import { AuditStorage, AuditableAction } from "@geekmidas/audit";
6
6
  import { EventPublisher } from "@geekmidas/events";
@@ -37,4 +37,4 @@ declare class FunctionBuilder<TInput extends ComposableStandardSchema, OutSchema
37
37
 
38
38
  //#endregion
39
39
  export { FunctionBuilder };
40
- //# sourceMappingURL=FunctionBuilder-m5BNA2Ap.d.mts.map
40
+ //# sourceMappingURL=FunctionBuilder-C_qPxC8g.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionBuilder-m5BNA2Ap.d.mts","names":[],"sources":["../src/functions/FunctionBuilder.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"FunctionBuilder-C_qPxC8g.d.mts","names":[],"sources":["../src/functions/FunctionBuilder.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Function, FunctionHandler } from "./Function-CZw1DRQ6.mjs";
1
+ import { Function, FunctionHandler } from "./Function-D74HrBnX.mjs";
2
2
  import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
3
3
  import { AuditStorage, AuditableAction, Auditor } from "@geekmidas/audit";
4
4
  import { EnvironmentParser } from "@geekmidas/envkit";
@@ -47,4 +47,4 @@ declare abstract class FunctionExecutionWrapper<TInput extends ComposableStandar
47
47
 
48
48
  //#endregion
49
49
  export { FunctionExecutionWrapper };
50
- //# sourceMappingURL=FunctionExecutionWrapper-C7yYXIq-.d.mts.map
50
+ //# sourceMappingURL=FunctionExecutionWrapper-xbTmBARx.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionExecutionWrapper-C7yYXIq-.d.mts","names":[],"sources":["../src/functions/FunctionExecutionWrapper.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;uBAqBsB,wCACN,qEACI,4DACD,gCACF,SAAS,gCACD,uHAEF,kLAID,mCAAmC;uBAMlC;EAjBD,mBAAA,EAAA,EAkBG,QAlBqB,CAmB3C,MAnB2C,EAoB3C,SApB2C,EAqB3C,OArB2C,EAsB3C,UAtB2C,EAuB3C,eAvB2C,EAwB3C,0BAxB2C,EAyB3C,aAzB2C,EA0B3C,wBA1B2C,EA2B3C,SA3B2C,EA4B3C,oBA5B2C,EA6B3C,YA7B2C,EA8B3C,eA9B2C,CA+B1C,MA/B0C,EAgC1C,SAhC0C,EAiC1C,OAjC0C,EAkC1C,UAlC0C,EAmC1C,SAnC0C,EAoC1C,aApC0C,EAqC1C,YArC0C,CAAA,CAAA;EAAA,WAAA,CAAA,SAAA,EAiBvB,iBAjBuB,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAkBrB,QAlBqB,CAmB3C,MAnB2C,EAoB3C,SApB2C,EAqB3C,OArB2C,EAsB3C,UAtB2C,EAuB3C,eAvB2C,EAwB3C,0BAxB2C,EAyB3C,aAzB2C,EA0B3C,wBA1B2C,EA2B3C,SA3B2C,EA4B3C,oBA5B2C,EA6B3C,YA7B2C,EA8B3C,eA9B2C,CA+B1C,MA/B0C,EAgC1C,SAhC0C,EAiC1C,OAjC0C,EAkC1C,UAlC0C,EAmC1C,SAnC0C,EAoC1C,aApC0C,EAqC1C,YArC0C,CAAA,CAAA;EAAA,UAC9B,OAAA,CAAA,EAyCK,OAzCL;EAAwB,IACpB,MAAA,CAAA,CAAA,EA0CL,OA1CK;EAAgB,IACjB,gBAAA,CAAA,CAAA,EA6CM,gBA7CN,CA6CuB,aA7CvB,CA6CqC,SA7CrC,CAAA,CAAA;EAAO,WACT,CAAA,CAAA,EAoDD,OApDC,CAoDO,aApDP,CAoDqB,SApDrB,CAAA,CAAA;EAAM,WAAG,CAAA,CAAA,EAwDJ,OAxDI,CAwDI,SAxDJ,GAAA,SAAA,CAAA;EAAM;;;;EAOwC,eAMjD,CAAA,CAAA,EA6DG,OA7DH,CA6DW,aA7DX,GAAA,SAAA,CAAA;EAAiB;;;;EAK3B,aACV,CAAA,CAAA,EAyEqB,OAzErB,CAyE6B,OAzE7B,CAyEqC,YAzErC,CAAA,GAAA,SAAA,CAAA;EAAe;;;;;;;;EASL,gBACT,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,GAAA,EAAA;IACA,OAAA,CAAA,EAuFS,OAvFT,CAuFiB,YAvFjB,CAAA;IACA,EAAA,CAAA,EAuFI,SAvFJ;EAAS,CAAA,EACT,GAuFI,OAvFJ,CAuFY,CAvFZ,CAAA,CAAA,EAwFA,OAxFA,CAwFQ,CAxFR,CAAA;EAAa,gBACb,CAAA,MAAA,CAAA,CAAA,KAAA,EAmIK,MAnIL,CAAA,EAoIA,OApIA,CAoIQ,6BApIR,CAoIsC,MApItC,CAAA,CAAA;EAAY,aAPb,CAAA,QAAA,EAoJ4B,mBApJ5B,CAoJgD,UApJhD,CAAA,CAAA,EAoJ2D,OApJ3D,CAAA,IAAA,CAAA;EAAe,6BAZO,CAAA,UA0KsB,wBA1KtB,CAAA,CAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EA4Kf,CA5Ke,CAAA,EA6KrB,OA7KqB,CA6Kb,6BA7Ka,CA6KiB,CA7KjB,CAAA,CAAA"}
1
+ {"version":3,"file":"FunctionExecutionWrapper-xbTmBARx.d.mts","names":[],"sources":["../src/functions/FunctionExecutionWrapper.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;uBAqBsB,wCACN,qEACI,4DACD,gCACF,SAAS,gCACD,uHAEF,kLAID,mCAAmC;uBAMlC;EAjBD,mBAAA,EAAA,EAkBG,QAlBqB,CAmB3C,MAnB2C,EAoB3C,SApB2C,EAqB3C,OArB2C,EAsB3C,UAtB2C,EAuB3C,eAvB2C,EAwB3C,0BAxB2C,EAyB3C,aAzB2C,EA0B3C,wBA1B2C,EA2B3C,SA3B2C,EA4B3C,oBA5B2C,EA6B3C,YA7B2C,EA8B3C,eA9B2C,CA+B1C,MA/B0C,EAgC1C,SAhC0C,EAiC1C,OAjC0C,EAkC1C,UAlC0C,EAmC1C,SAnC0C,EAoC1C,aApC0C,EAqC1C,YArC0C,CAAA,CAAA;EAAA,WAAA,CAAA,SAAA,EAiBvB,iBAjBuB,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAkBrB,QAlBqB,CAmB3C,MAnB2C,EAoB3C,SApB2C,EAqB3C,OArB2C,EAsB3C,UAtB2C,EAuB3C,eAvB2C,EAwB3C,0BAxB2C,EAyB3C,aAzB2C,EA0B3C,wBA1B2C,EA2B3C,SA3B2C,EA4B3C,oBA5B2C,EA6B3C,YA7B2C,EA8B3C,eA9B2C,CA+B1C,MA/B0C,EAgC1C,SAhC0C,EAiC1C,OAjC0C,EAkC1C,UAlC0C,EAmC1C,SAnC0C,EAoC1C,aApC0C,EAqC1C,YArC0C,CAAA,CAAA;EAAA,UAC9B,OAAA,CAAA,EAyCK,OAzCL;EAAwB,IACpB,MAAA,CAAA,CAAA,EA0CL,OA1CK;EAAgB,IACjB,gBAAA,CAAA,CAAA,EA6CM,gBA7CN,CA6CuB,aA7CvB,CA6CqC,SA7CrC,CAAA,CAAA;EAAO,WACT,CAAA,CAAA,EAoDD,OApDC,CAoDO,aApDP,CAoDqB,SApDrB,CAAA,CAAA;EAAM,WAAG,CAAA,CAAA,EAwDJ,OAxDI,CAwDI,SAxDJ,GAAA,SAAA,CAAA;EAAM;;;;EAOwC,eAMjD,CAAA,CAAA,EA6DG,OA7DH,CA6DW,aA7DX,GAAA,SAAA,CAAA;EAAiB;;;;EAK3B,aACV,CAAA,CAAA,EAyEqB,OAzErB,CAyE6B,OAzE7B,CAyEqC,YAzErC,CAAA,GAAA,SAAA,CAAA;EAAe;;;;;;;;EASL,gBACT,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,GAAA,EAAA;IACA,OAAA,CAAA,EAuFS,OAvFT,CAuFiB,YAvFjB,CAAA;IACA,EAAA,CAAA,EAuFI,SAvFJ;EAAS,CAAA,EACT,GAuFI,OAvFJ,CAuFY,CAvFZ,CAAA,CAAA,EAwFA,OAxFA,CAwFQ,CAxFR,CAAA;EAAa,gBACb,CAAA,MAAA,CAAA,CAAA,KAAA,EAmIK,MAnIL,CAAA,EAoIA,OApIA,CAoIQ,6BApIR,CAoIsC,MApItC,CAAA,CAAA;EAAY,aAPb,CAAA,QAAA,EAoJ4B,mBApJ5B,CAoJgD,UApJhD,CAAA,CAAA,EAoJ2D,OApJ3D,CAAA,IAAA,CAAA;EAAe,6BAZO,CAAA,UA0KsB,wBA1KtB,CAAA,CAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EA4Kf,CA5Ke,CAAA,EA6KrB,OA7KqB,CA6Kb,6BA7Ka,CA6KiB,CA7KjB,CAAA,CAAA"}
@@ -125,6 +125,7 @@ var HonoEndpoint = class HonoEndpoint {
125
125
  services,
126
126
  logger,
127
127
  session,
128
+ ...rawDb !== void 0 && { db: rawDb },
128
129
  body: features.hasBodyValidation ? c.req.valid("json") : void 0,
129
130
  query: features.hasQueryValidation ? c.req.valid("query") : void 0,
130
131
  params: features.hasParamValidation ? c.req.valid("param") : void 0
@@ -257,4 +258,4 @@ Object.defineProperty(exports, 'HonoEndpoint', {
257
258
  return HonoEndpoint;
258
259
  }
259
260
  });
260
- //# sourceMappingURL=HonoEndpointAdaptor-Jbptyuxv.cjs.map
261
+ //# sourceMappingURL=HonoEndpointAdaptor-B5fKdLi7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HonoEndpointAdaptor-B5fKdLi7.cjs","names":["endpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany\n\t>","endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>","c: Context<any, string, {}>","data: unknown","schema?: T","serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>","app: Hono","_app: Hono","_serviceDiscovery: ServiceDiscovery<any>","routes: string[]","envParser: EnvironmentParser<{}>","Hono","_logger: TLogger","options?: HonoEndpointOptions","endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[]","validators: any[]","c: Context","db: TDatabase | undefined","ResponseBuilder","metadata","output","result","validationError: any","e: any","docsPath: string","openApiOptions?: HonoEndpointOptions['openApiOptions']"],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":["import type { AuditableAction, AuditStorage } from '@geekmidas/audit';\nimport { withRlsContext } from '@geekmidas/db/rls';\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport { wrapError } from '@geekmidas/errors';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { checkRateLimit, getRateLimitHeaders } from '@geekmidas/rate-limit';\nimport {\n\trunWithRequestContext,\n\ttype Service,\n\tServiceDiscovery,\n\ttype ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type Context, Hono } from 'hono';\nimport { setCookie } from 'hono/cookie';\nimport { logger as honoLogger } from 'hono/logger';\nimport { timing } from 'hono/timing';\nimport type { ContentfulStatusCode } from 'hono/utils/http-status';\nimport { validator } from 'hono/validator';\nimport { publishConstructEvents } from '../publisher';\nimport type { HttpMethod, LowerHttpMethod } from '../types';\nimport type { MappedAudit } from './audit';\nimport {\n\tEndpoint,\n\ttype EndpointContext,\n\ttype EndpointSchemas,\n\tResponseBuilder,\n} from './Endpoint';\nimport { getEndpointsFromRoutes } from './helpers';\nimport { createHonoCookies, createHonoHeaders } from './lazyAccessors';\nimport { parseHonoQuery } from './parseHonoQuery';\nimport {\n\tcreateAuditContext,\n\texecuteWithAuditTransaction,\n} from './processAudits';\n\nexport interface HonoEndpointOptions {\n\t/**\n\t * Path where OpenAPI documentation will be served.\n\t * Set to false to disable docs route.\n\t * @default '/docs'\n\t */\n\tdocsPath?: string | false;\n\t/**\n\t * OpenAPI schema options\n\t */\n\topenApiOptions?: {\n\t\ttitle?: string;\n\t\tversion?: string;\n\t\tdescription?: string;\n\t};\n}\n\n/**\n * Feature flags for an endpoint, analyzed once at route registration time.\n * This avoids per-request feature detection overhead.\n */\ninterface EndpointFeatures {\n\thasServices: boolean;\n\thasDatabase: boolean;\n\thasBodyValidation: boolean;\n\thasQueryValidation: boolean;\n\thasParamValidation: boolean;\n\thasAudits: boolean;\n\thasEvents: boolean;\n\thasRateLimit: boolean;\n\thasRls: boolean;\n}\n\n/**\n * Analyze endpoint features at registration time (not per-request)\n */\nfunction analyzeEndpointFeatures(\n\tendpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany\n\t>,\n): EndpointFeatures {\n\treturn {\n\t\thasServices: endpoint.services.length > 0,\n\t\thasDatabase: !!endpoint.databaseService,\n\t\thasBodyValidation: !!endpoint.input?.body,\n\t\thasQueryValidation: !!endpoint.input?.query,\n\t\thasParamValidation: !!endpoint.input?.params,\n\t\t// Audit context needed if declarative audits OR auditor storage service configured (for manual audits)\n\t\thasAudits:\n\t\t\t(endpoint.audits?.length ?? 0) > 0 || !!endpoint.auditorStorageService,\n\t\thasEvents: (endpoint.events?.length ?? 0) > 0,\n\t\thasRateLimit: !!endpoint.rateLimit,\n\t\thasRls: !!endpoint.rlsConfig && !endpoint.rlsBypass,\n\t};\n}\n\nexport class HonoEndpoint<\n\tTRoute extends string,\n\tTMethod extends HttpMethod,\n\tTInput extends EndpointSchemas = {},\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> {\n\tconstructor(\n\t\tprivate readonly endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>,\n\t) {}\n\n\tstatic isDev = process.env.NODE_ENV === 'development';\n\n\tstatic async validate<T extends StandardSchemaV1>(\n\t\tc: Context<any, string, {}>,\n\t\tdata: unknown,\n\t\tschema?: T,\n\t) {\n\t\tif (!schema) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst parsed = await Endpoint.validate(schema, data);\n\n\t\tif (parsed.issues) {\n\t\t\treturn c.json(parsed.issues, 422);\n\t\t}\n\n\t\treturn parsed.value;\n\t}\n\taddRoute(\n\t\tserviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>,\n\t\tapp: Hono,\n\t): void {\n\t\tHonoEndpoint.addRoute(this.endpoint, serviceDiscovery, app);\n\t}\n\n\t/**\n\t * @deprecated Global event middleware is no longer used.\n\t * Events are now published per-route only for endpoints that have events configured.\n\t * This method is kept for backward compatibility but does nothing.\n\t */\n\tstatic applyEventMiddleware(\n\t\t_app: Hono,\n\t\t_serviceDiscovery: ServiceDiscovery<any>,\n\t) {\n\t\t// No-op: Event publishing is now handled per-route in addRoute\n\t\t// This avoids running middleware on every request including 404s\n\t}\n\n\tstatic async fromRoutes<TLogger extends Logger, TServices extends Service[]>(\n\t\troutes: string[],\n\t\tenvParser: EnvironmentParser<{}>,\n\t\tapp = new Hono(),\n\t\t_logger: TLogger,\n\t\tcwd = process.cwd(),\n\t\toptions?: HonoEndpointOptions,\n\t): Promise<Hono> {\n\t\tconst endpoints = await getEndpointsFromRoutes<TServices>(routes, cwd);\n\t\tconst serviceDiscovery =\n\t\t\tServiceDiscovery.getInstance<ServiceRecord<TServices>>(envParser);\n\n\t\tHonoEndpoint.addRoutes(endpoints, serviceDiscovery, app, options);\n\n\t\treturn app;\n\t}\n\n\tstatic addRoutes<\n\t\tTServices extends Service[] = [],\n\t\tTLogger extends Logger = Logger,\n\t>(\n\t\tendpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n\t\tserviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>,\n\t\tapp: Hono,\n\t\toptions?: HonoEndpointOptions,\n\t): void {\n\t\t// Add timing middleware (always enabled)\n\t\tapp.use('*', timing());\n\n\t\t// Add logger middleware in development mode\n\n\t\tif (HonoEndpoint.isDev) {\n\t\t\tapp.use('*', honoLogger());\n\t\t}\n\n\t\t// Add docs route if not disabled\n\t\tconst docsPath =\n\t\t\toptions?.docsPath !== false ? options?.docsPath || '/docs' : null;\n\t\tif (docsPath) {\n\t\t\tHonoEndpoint.addDocsRoute(\n\t\t\t\tendpoints,\n\t\t\t\tapp,\n\t\t\t\tdocsPath,\n\t\t\t\toptions?.openApiOptions,\n\t\t\t);\n\t\t}\n\n\t\t// Sort endpoints to ensure static routes come before dynamic ones\n\t\tconst sortedEndpoints = endpoints.sort((a, b) => {\n\t\t\tconst aSegments = a.route.split('/');\n\t\t\tconst bSegments = b.route.split('/');\n\n\t\t\t// Compare each segment\n\t\t\tfor (let i = 0; i < Math.max(aSegments.length, bSegments.length); i++) {\n\t\t\t\tconst aSegment = aSegments[i] || '';\n\t\t\t\tconst bSegment = bSegments[i] || '';\n\n\t\t\t\t// If one is dynamic and the other is not, static comes first\n\t\t\t\tconst aIsDynamic = aSegment.startsWith(':');\n\t\t\t\tconst bIsDynamic = bSegment.startsWith(':');\n\n\t\t\t\tif (!aIsDynamic && bIsDynamic) return -1;\n\t\t\t\tif (aIsDynamic && !bIsDynamic) return 1;\n\n\t\t\t\t// If both are the same type, compare alphabetically\n\t\t\t\tif (aSegment !== bSegment) {\n\t\t\t\t\treturn aSegment.localeCompare(bSegment);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t});\n\n\t\t// Note: Global event middleware removed for performance\n\t\t// Events are now published per-route only for endpoints with events configured\n\t\tfor (const endpoint of sortedEndpoints) {\n\t\t\tHonoEndpoint.addRoute(endpoint, serviceDiscovery, app);\n\t\t}\n\t}\n\n\tstatic addRoute<\n\t\tTRoute extends string,\n\t\tTMethod extends HttpMethod,\n\t\tTInput extends EndpointSchemas = {},\n\t\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\t\tTServices extends Service[] = [],\n\t\tTLogger extends Logger = Logger,\n\t\tTSession = unknown,\n\t\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\t\tTEventPublisherServiceName extends string = string,\n\t\tTAuditStorage extends AuditStorage | undefined = undefined,\n\t\tTAuditStorageServiceName extends string = string,\n\t\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\t\tstring,\n\t\t\tunknown\n\t\t>,\n\t\tTDatabase = undefined,\n\t\tTDatabaseServiceName extends string = string,\n\t>(\n\t\tendpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>,\n\t\tserviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>,\n\t\tapp: Hono,\n\t): void {\n\t\tconst { route } = endpoint;\n\t\tconst method = endpoint.method.toLowerCase() as LowerHttpMethod<TMethod>;\n\n\t\t// Analyze endpoint features once at registration time (not per-request)\n\t\tconst features = analyzeEndpointFeatures(endpoint);\n\n\t\t// Build validators array - only add validators for schemas that exist\n\t\tconst validators: any[] = [];\n\n\t\tif (features.hasBodyValidation) {\n\t\t\tvalidators.push(\n\t\t\t\tvalidator('json', (value, c) =>\n\t\t\t\t\tHonoEndpoint.validate(c, value, endpoint.input?.body),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\tif (features.hasQueryValidation) {\n\t\t\tvalidators.push(\n\t\t\t\tvalidator('query', (_, c) => {\n\t\t\t\t\tconst parsedQuery = parseHonoQuery(c);\n\t\t\t\t\treturn HonoEndpoint.validate(c, parsedQuery, endpoint.input?.query);\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tif (features.hasParamValidation) {\n\t\t\tvalidators.push(\n\t\t\t\tvalidator('param', (params, c) =>\n\t\t\t\t\tHonoEndpoint.validate(c, params, endpoint.input?.params),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\t// Main handler\n\t\tconst handler = async (c: Context) => {\n\t\t\t// Request context setup\n\t\t\tconst startTime = Date.now();\n\t\t\tconst requestId = c.req.header('X-Request-ID') ?? crypto.randomUUID();\n\n\t\t\tconst logger = endpoint.logger.child({\n\t\t\t\trequestId,\n\t\t\t\tendpoint: endpoint.fullPath,\n\t\t\t\troute: endpoint.route,\n\t\t\t\thost: c.req.header('host'),\n\t\t\t\tmethod: endpoint.method,\n\t\t\t\tpath: c.req.path,\n\t\t\t}) as TLogger;\n\n\t\t\t// Set response header\n\t\t\tc.header('X-Request-ID', requestId);\n\n\t\t\t// Wrap entire handler in request context for services to access\n\t\t\treturn runWithRequestContext(\n\t\t\t\t{ logger, requestId, startTime },\n\t\t\t\tasync () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Lazy accessors - no upfront parsing, use native Hono methods\n\t\t\t\t\t\tconst header = createHonoHeaders(c);\n\t\t\t\t\t\tconst cookie = createHonoCookies(c);\n\n\t\t\t\t\t\t// Only register services if endpoint has any\n\t\t\t\t\t\tconst services = features.hasServices\n\t\t\t\t\t\t\t? await serviceDiscovery.register(endpoint.services)\n\t\t\t\t\t\t\t: ({} as ServiceRecord<TServices>);\n\n\t\t\t\t\t\t// Resolve database service only if configured\n\t\t\t\t\t\tconst rawDb = features.hasDatabase\n\t\t\t\t\t\t\t? await serviceDiscovery\n\t\t\t\t\t\t\t\t\t.register([endpoint.databaseService!])\n\t\t\t\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\t\t\t\t(s) =>\n\t\t\t\t\t\t\t\t\t\t\ts[\n\t\t\t\t\t\t\t\t\t\t\t\tendpoint.databaseService?.serviceName as keyof typeof s\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t// Extract session (defaults to empty object)\n\t\t\t\t\t\tconst session = await endpoint.getSession({\n\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t...(rawDb !== undefined && { db: rawDb }),\n\t\t\t\t\t\t} as any);\n\n\t\t\t\t\t\t// Check authorization (defaults to true)\n\t\t\t\t\t\tconst isAuthorized = await endpoint.authorize({\n\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t...(rawDb !== undefined && { db: rawDb }),\n\t\t\t\t\t\t\tbody: features.hasBodyValidation\n\t\t\t\t\t\t\t\t? (c.req.valid as any)('json')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tquery: features.hasQueryValidation\n\t\t\t\t\t\t\t\t? (c.req.valid as any)('query')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tparams: features.hasParamValidation\n\t\t\t\t\t\t\t\t? (c.req.valid as any)('param')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t} as any);\n\n\t\t\t\t\t\tif (!isAuthorized) {\n\t\t\t\t\t\t\tlogger.warn('Unauthorized access attempt');\n\t\t\t\t\t\t\treturn c.json({ error: 'Unauthorized' }, 401);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check rate limit only if configured\n\t\t\t\t\t\tif (features.hasRateLimit) {\n\t\t\t\t\t\t\tconst rateLimitInfo = await checkRateLimit(endpoint.rateLimit!, {\n\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\tpath: c.req.path,\n\t\t\t\t\t\t\t\tmethod: endpoint.method,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst rateLimitHeaders = getRateLimitHeaders(\n\t\t\t\t\t\t\t\trateLimitInfo,\n\t\t\t\t\t\t\t\tendpoint.rateLimit!,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tfor (const [key, value] of Object.entries(rateLimitHeaders)) {\n\t\t\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\t\t\tc.header(key, value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Create audit context only if audits are configured\n\t\t\t\t\t\tconst auditContext = features.hasAudits\n\t\t\t\t\t\t\t? await createAuditContext(\n\t\t\t\t\t\t\t\t\tendpoint as any,\n\t\t\t\t\t\t\t\t\tserviceDiscovery,\n\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\tservices: services as Record<string, unknown>,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst audits = features.hasAudits\n\t\t\t\t\t\t\t? (endpoint.audits as MappedAudit<TAuditAction, TOutSchema>[])\n\t\t\t\t\t\t\t: [];\n\n\t\t\t\t\t\t// Warn if declarative audits are configured but no audit storage\n\t\t\t\t\t\tif (features.hasAudits && !auditContext) {\n\t\t\t\t\t\t\tlogger.warn('No auditor storage service available');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Extract RLS context only if configured and not bypassed\n\t\t\t\t\t\tconst rlsContext =\n\t\t\t\t\t\t\tfeatures.hasRls && rawDb !== undefined\n\t\t\t\t\t\t\t\t? await endpoint.rlsConfig?.extractor({\n\t\t\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\t\t\tsession: session as TSession,\n\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t// Execute handler with automatic audit transaction support\n\t\t\t\t\t\tconst result = await executeWithAuditTransaction(\n\t\t\t\t\t\t\tauditContext,\n\t\t\t\t\t\t\tasync (auditor) => {\n\t\t\t\t\t\t\t\tconst sameDatabase =\n\t\t\t\t\t\t\t\t\tauditContext?.storage?.databaseServiceName &&\n\t\t\t\t\t\t\t\t\tauditContext.storage.databaseServiceName ===\n\t\t\t\t\t\t\t\t\t\tendpoint.databaseService?.serviceName;\n\t\t\t\t\t\t\t\tconst baseDb = sameDatabase\n\t\t\t\t\t\t\t\t\t? (auditor?.getTransaction?.() ?? rawDb)\n\t\t\t\t\t\t\t\t\t: rawDb;\n\n\t\t\t\t\t\t\t\tconst executeHandler = async (db: TDatabase | undefined) => {\n\t\t\t\t\t\t\t\t\tconst responseBuilder = new ResponseBuilder();\n\t\t\t\t\t\t\t\t\tconst response = await endpoint.handler(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t\t\t\tbody: features.hasBodyValidation\n\t\t\t\t\t\t\t\t\t\t\t\t? (c.req.valid as any)('json')\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tquery: features.hasQueryValidation\n\t\t\t\t\t\t\t\t\t\t\t\t? (c.req.valid as any)('query')\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tparams: features.hasParamValidation\n\t\t\t\t\t\t\t\t\t\t\t\t? (c.req.valid as any)('param')\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\t\tauditor,\n\t\t\t\t\t\t\t\t\t\t\tdb,\n\t\t\t\t\t\t\t\t\t\t} as unknown as EndpointContext<\n\t\t\t\t\t\t\t\t\t\t\tTInput,\n\t\t\t\t\t\t\t\t\t\t\tTServices,\n\t\t\t\t\t\t\t\t\t\t\tTLogger,\n\t\t\t\t\t\t\t\t\t\t\tTSession,\n\t\t\t\t\t\t\t\t\t\t\tTAuditAction,\n\t\t\t\t\t\t\t\t\t\t\tTDatabase,\n\t\t\t\t\t\t\t\t\t\t\tTAuditStorage\n\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\tresponseBuilder,\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\tlet data = response;\n\t\t\t\t\t\t\t\t\tlet metadata = responseBuilder.getMetadata();\n\n\t\t\t\t\t\t\t\t\tif (Endpoint.hasMetadata(response)) {\n\t\t\t\t\t\t\t\t\t\tdata = response.data;\n\t\t\t\t\t\t\t\t\t\tmetadata = response.metadata;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst output = endpoint.outputSchema\n\t\t\t\t\t\t\t\t\t\t? await endpoint.parseOutput(data)\n\t\t\t\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t\t\t\treturn { output, metadata, responseBuilder };\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tif (features.hasRls && rlsContext && baseDb) {\n\t\t\t\t\t\t\t\t\treturn withRlsContext(\n\t\t\t\t\t\t\t\t\t\tbaseDb as any,\n\t\t\t\t\t\t\t\t\t\trlsContext,\n\t\t\t\t\t\t\t\t\t\tasync (trx) => executeHandler(trx as TDatabase),\n\t\t\t\t\t\t\t\t\t\t{ prefix: endpoint.rlsConfig?.prefix },\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn executeHandler(baseDb as TDatabase | undefined);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tasync (result, auditor) => {\n\t\t\t\t\t\t\t\tif (!audits?.length) return;\n\n\t\t\t\t\t\t\t\tfor (const audit of audits) {\n\t\t\t\t\t\t\t\t\tif (audit.when && !audit.when(result.output as any)) {\n\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst payload = audit.payload(result.output as any);\n\t\t\t\t\t\t\t\t\tconst entityId = audit.entityId?.(result.output as any);\n\t\t\t\t\t\t\t\t\tauditor.audit(audit.type as any, payload as any, {\n\t\t\t\t\t\t\t\t\t\ttable: audit.table,\n\t\t\t\t\t\t\t\t\t\tentityId,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ db: rawDb },\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst { output, metadata } = result;\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet status = endpoint.status as ContentfulStatusCode;\n\n\t\t\t\t\t\t\tif (metadata.status) {\n\t\t\t\t\t\t\t\tstatus = metadata.status as ContentfulStatusCode;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (metadata.headers) {\n\t\t\t\t\t\t\t\tfor (const [key, value] of Object.entries(metadata.headers)) {\n\t\t\t\t\t\t\t\t\tc.header(key, value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (metadata.cookies) {\n\t\t\t\t\t\t\t\tfor (const [name, { value, options }] of metadata.cookies) {\n\t\t\t\t\t\t\t\t\tsetCookie(c, name, value, options);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Only publish events if configured (no global middleware overhead)\n\t\t\t\t\t\t\tif (features.hasEvents && Endpoint.isSuccessStatus(status)) {\n\t\t\t\t\t\t\t\tawait publishConstructEvents<any, any>(\n\t\t\t\t\t\t\t\t\tendpoint as any,\n\t\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\t\tserviceDiscovery,\n\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (HonoEndpoint.isDev) {\n\t\t\t\t\t\t\t\tlogger.info({ status, body: output }, 'Outgoing response');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\treturn c.json(output, status);\n\t\t\t\t\t\t} catch (validationError: any) {\n\t\t\t\t\t\t\tlogger.error(validationError, 'Output validation failed');\n\t\t\t\t\t\t\tconst error = wrapError(\n\t\t\t\t\t\t\t\tvalidationError,\n\t\t\t\t\t\t\t\t422,\n\t\t\t\t\t\t\t\t'Response validation failed',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (HonoEndpoint.isDev) {\n\t\t\t\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\t\t\t{ status: error.statusCode, body: error },\n\t\t\t\t\t\t\t\t\t'Outgoing response',\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn c.json(error, error.statusCode as ContentfulStatusCode);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e: any) {\n\t\t\t\t\t\tlogger.error(e, 'Error processing endpoint request');\n\t\t\t\t\t\tconst error = wrapError(e, 500, 'Internal Server Error');\n\t\t\t\t\t\tif (HonoEndpoint.isDev) {\n\t\t\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\t\t{ status: error.statusCode, body: error },\n\t\t\t\t\t\t\t\t'Outgoing response',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn c.json(error, error.statusCode as ContentfulStatusCode);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t};\n\n\t\t// Register route with conditional validators\n\t\tapp[method](route, ...validators, handler);\n\t}\n\n\tstatic addDocsRoute<\n\t\tTServices extends Service[] = [],\n\t\tTLogger extends Logger = Logger,\n\t>(\n\t\tendpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n\t\tapp: Hono,\n\t\tdocsPath: string,\n\t\topenApiOptions?: HonoEndpointOptions['openApiOptions'],\n\t): void {\n\t\tapp.get(docsPath, async (c) => {\n\t\t\ttry {\n\t\t\t\tconst openApiSchema = await Endpoint.buildOpenApiSchema(\n\t\t\t\t\tendpoints,\n\t\t\t\t\topenApiOptions,\n\t\t\t\t);\n\n\t\t\t\treturn c.json(openApiSchema);\n\t\t\t} catch {\n\t\t\t\treturn c.json(\n\t\t\t\t\t{ error: 'Failed to generate OpenAPI documentation' },\n\t\t\t\t\t500,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAyEA,SAAS,wBACRA,UAgBmB;AACnB,QAAO;EACN,aAAa,SAAS,SAAS,SAAS;EACxC,eAAe,SAAS;EACxB,qBAAqB,SAAS,OAAO;EACrC,sBAAsB,SAAS,OAAO;EACtC,sBAAsB,SAAS,OAAO;EAEtC,YACE,SAAS,QAAQ,UAAU,KAAK,OAAO,SAAS;EAClD,YAAY,SAAS,QAAQ,UAAU,KAAK;EAC5C,gBAAgB,SAAS;EACzB,UAAU,SAAS,cAAc,SAAS;CAC1C;AACD;AAED,IAAa,eAAb,MAAa,aAkBX;CACD,YACkBC,UAgBhB;EAhBgB;CAgBd;CAEJ,OAAO,QAAQ,QAAQ,IAAI,aAAa;CAExC,aAAa,SACZC,GACAC,MACAC,QACC;AACD,OAAK,OACJ;EAGD,MAAM,SAAS,MAAM,0BAAS,SAAS,QAAQ,KAAK;AAEpD,MAAI,OAAO,OACV,QAAO,EAAE,KAAK,OAAO,QAAQ,IAAI;AAGlC,SAAO,OAAO;CACd;CACD,SACCC,kBACAC,KACO;AACP,eAAa,SAAS,KAAK,UAAU,kBAAkB,IAAI;CAC3D;;;;;;CAOD,OAAO,qBACNC,MACAC,mBACC,CAGD;CAED,aAAa,WACZC,QACAC,WACA,MAAM,IAAIC,aACVC,SACA,MAAM,QAAQ,KAAK,EACnBC,SACgB;EAChB,MAAM,YAAY,MAAM,uCAAkC,QAAQ,IAAI;EACtE,MAAM,mBACL,sCAAiB,YAAsC,UAAU;AAElE,eAAa,UAAU,WAAW,kBAAkB,KAAK,QAAQ;AAEjE,SAAO;CACP;CAED,OAAO,UAINC,WACAT,kBACAC,KACAO,SACO;AAEP,MAAI,IAAI,KAAK,yBAAQ,CAAC;AAItB,MAAI,aAAa,MAChB,KAAI,IAAI,KAAK,yBAAY,CAAC;EAI3B,MAAM,WACL,SAAS,aAAa,QAAQ,SAAS,YAAY,UAAU;AAC9D,MAAI,SACH,cAAa,aACZ,WACA,KACA,UACA,SAAS,eACT;EAIF,MAAM,kBAAkB,UAAU,KAAK,CAAC,GAAG,MAAM;GAChD,MAAM,YAAY,EAAE,MAAM,MAAM,IAAI;GACpC,MAAM,YAAY,EAAE,MAAM,MAAM,IAAI;AAGpC,QAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,UAAU,QAAQ,UAAU,OAAO,EAAE,KAAK;IACtE,MAAM,WAAW,UAAU,MAAM;IACjC,MAAM,WAAW,UAAU,MAAM;IAGjC,MAAM,aAAa,SAAS,WAAW,IAAI;IAC3C,MAAM,aAAa,SAAS,WAAW,IAAI;AAE3C,SAAK,cAAc,WAAY,QAAO;AACtC,QAAI,eAAe,WAAY,QAAO;AAGtC,QAAI,aAAa,SAChB,QAAO,SAAS,cAAc,SAAS;GAExC;AAED,UAAO;EACP,EAAC;AAIF,OAAK,MAAM,YAAY,gBACtB,cAAa,SAAS,UAAU,kBAAkB,IAAI;CAEvD;CAED,OAAO,SAmBNZ,UAgBAI,kBACAC,KACO;EACP,MAAM,EAAE,OAAO,GAAG;EAClB,MAAM,SAAS,SAAS,OAAO,aAAa;EAG5C,MAAM,WAAW,wBAAwB,SAAS;EAGlD,MAAMS,aAAoB,CAAE;AAE5B,MAAI,SAAS,kBACZ,YAAW,KACV,8BAAU,QAAQ,CAAC,OAAO,MACzB,aAAa,SAAS,GAAG,OAAO,SAAS,OAAO,KAAK,CACrD,CACD;AAGF,MAAI,SAAS,mBACZ,YAAW,KACV,8BAAU,SAAS,CAAC,GAAG,MAAM;GAC5B,MAAM,cAAc,sCAAe,EAAE;AACrC,UAAO,aAAa,SAAS,GAAG,aAAa,SAAS,OAAO,MAAM;EACnE,EAAC,CACF;AAGF,MAAI,SAAS,mBACZ,YAAW,KACV,8BAAU,SAAS,CAAC,QAAQ,MAC3B,aAAa,SAAS,GAAG,QAAQ,SAAS,OAAO,OAAO,CACxD,CACD;EAIF,MAAM,UAAU,OAAOC,MAAe;GAErC,MAAM,YAAY,KAAK,KAAK;GAC5B,MAAM,YAAY,EAAE,IAAI,OAAO,eAAe,IAAI,OAAO,YAAY;GAErE,MAAM,SAAS,SAAS,OAAO,MAAM;IACpC;IACA,UAAU,SAAS;IACnB,OAAO,SAAS;IAChB,MAAM,EAAE,IAAI,OAAO,OAAO;IAC1B,QAAQ,SAAS;IACjB,MAAM,EAAE,IAAI;GACZ,EAAC;AAGF,KAAE,OAAO,gBAAgB,UAAU;AAGnC,UAAO,gDACN;IAAE;IAAQ;IAAW;GAAW,GAChC,YAAY;AACX,QAAI;KAEH,MAAM,SAAS,wCAAkB,EAAE;KACnC,MAAM,SAAS,wCAAkB,EAAE;KAGnC,MAAM,WAAW,SAAS,cACvB,MAAM,iBAAiB,SAAS,SAAS,SAAS,GACjD,CAAE;KAGN,MAAM,QAAQ,SAAS,cACpB,MAAM,iBACL,SAAS,CAAC,SAAS,eAAiB,EAAC,CACrC,KACA,CAAC,MACA,EACC,SAAS,iBAAiB,aAE5B;KAIJ,MAAM,UAAU,MAAM,SAAS,WAAW;MACzC;MACA;MACA;MACA;MACA,GAAI,oBAAuB,EAAE,IAAI,MAAO;KACxC,EAAQ;KAGT,MAAM,eAAe,MAAM,SAAS,UAAU;MAC7C;MACA;MACA;MACA;MACA;MACA,GAAI,oBAAuB,EAAE,IAAI,MAAO;MACxC,MAAM,SAAS,oBACZ,AAAC,EAAE,IAAI,MAAc,OAAO;MAE/B,OAAO,SAAS,qBACb,AAAC,EAAE,IAAI,MAAc,QAAQ;MAEhC,QAAQ,SAAS,qBACd,AAAC,EAAE,IAAI,MAAc,QAAQ;KAEhC,EAAQ;AAET,UAAK,cAAc;AAClB,aAAO,KAAK,8BAA8B;AAC1C,aAAO,EAAE,KAAK,EAAE,OAAO,eAAgB,GAAE,IAAI;KAC7C;AAGD,SAAI,SAAS,cAAc;MAC1B,MAAM,gBAAgB,MAAM,2CAAe,SAAS,WAAY;OAC/D;OACA;OACA;OACA;OACA,MAAM,EAAE,IAAI;OACZ,QAAQ,SAAS;MACjB,EAAC;MAEF,MAAM,mBAAmB,gDACxB,eACA,SAAS,UACT;AACD,WAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,iBAAiB,CAC1D,KAAI,MACH,GAAE,OAAO,KAAK,MAAM;KAGtB;KAGD,MAAM,eAAe,SAAS,YAC3B,MAAM,yCACN,UACA,kBACA,QACA;MACC;MACA;MACA;MACU;KACV,EACD;KAGH,MAAM,SAAS,SAAS,YACpB,SAAS,SACV,CAAE;AAGL,SAAI,SAAS,cAAc,aAC1B,QAAO,KAAK,uCAAuC;KAIpD,MAAM,aACL,SAAS,UAAU,mBAChB,MAAM,SAAS,WAAW,UAAU;MACpC;MACS;MACT;MACA;MACA;KACA,EAAC;KAIL,MAAM,SAAS,MAAM,kDACpB,cACA,OAAO,YAAY;MAClB,MAAM,eACL,cAAc,SAAS,uBACvB,aAAa,QAAQ,wBACpB,SAAS,iBAAiB;MAC5B,MAAM,SAAS,eACX,SAAS,kBAAkB,IAAI,QAChC;MAEH,MAAM,iBAAiB,OAAOC,OAA8B;OAC3D,MAAM,kBAAkB,IAAIC;OAC5B,MAAM,WAAW,MAAM,SAAS,QAC/B;QACC;QACA;QACA,MAAM,SAAS,oBACZ,AAAC,EAAE,IAAI,MAAc,OAAO;QAE/B,OAAO,SAAS,qBACb,AAAC,EAAE,IAAI,MAAc,QAAQ;QAEhC,QAAQ,SAAS,qBACd,AAAC,EAAE,IAAI,MAAc,QAAQ;QAEhC;QACA;QACA;QACA;QACA;OACA,GASD,gBACA;OAED,IAAI,OAAO;OACX,IAAIC,aAAW,gBAAgB,aAAa;AAE5C,WAAI,0BAAS,YAAY,SAAS,EAAE;AACnC,eAAO,SAAS;AAChB,qBAAW,SAAS;OACpB;OAED,MAAMC,WAAS,SAAS,eACrB,MAAM,SAAS,YAAY,KAAK;AAGnC,cAAO;QAAE;QAAQ;QAAU;OAAiB;MAC5C;AAED,UAAI,SAAS,UAAU,cAAc,OACpC,QAAO,uCACN,QACA,YACA,OAAO,QAAQ,eAAe,IAAiB,EAC/C,EAAE,QAAQ,SAAS,WAAW,OAAQ,EACtC;AAGF,aAAO,eAAe,OAAgC;KACtD,GACD,OAAOC,UAAQ,YAAY;AAC1B,WAAK,QAAQ,OAAQ;AAErB,WAAK,MAAM,SAAS,QAAQ;AAC3B,WAAI,MAAM,SAAS,MAAM,KAAKA,SAAO,OAAc,CAClD;OAED,MAAM,UAAU,MAAM,QAAQA,SAAO,OAAc;OACnD,MAAM,WAAW,MAAM,WAAWA,SAAO,OAAc;AACvD,eAAQ,MAAM,MAAM,MAAa,SAAgB;QAChD,OAAO,MAAM;QACb;OACA,EAAC;MACF;KACD,GACD,EAAE,IAAI,MAAO,EACb;KAED,MAAM,EAAE,QAAQ,UAAU,GAAG;AAE7B,SAAI;MACH,IAAI,SAAS,SAAS;AAEtB,UAAI,SAAS,OACZ,UAAS,SAAS;AAGnB,UAAI,SAAS,QACZ,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,SAAS,QAAQ,CAC1D,GAAE,OAAO,KAAK,MAAM;AAItB,UAAI,SAAS,QACZ,MAAK,MAAM,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,IAAI,SAAS,QACjD,4BAAU,GAAG,MAAM,OAAO,QAAQ;AAKpC,UAAI,SAAS,aAAa,0BAAS,gBAAgB,OAAO,CACzD,OAAM,yCACL,UACA,QACA,kBACA,OACA;AAGF,UAAI,aAAa,MAChB,QAAO,KAAK;OAAE;OAAQ,MAAM;MAAQ,GAAE,oBAAoB;AAI3D,aAAO,EAAE,KAAK,QAAQ,OAAO;KAC7B,SAAQC,iBAAsB;AAC9B,aAAO,MAAM,iBAAiB,2BAA2B;MACzD,MAAM,QAAQ,kCACb,iBACA,KACA,6BACA;AACD,UAAI,aAAa,MAChB,QAAO,KACN;OAAE,QAAQ,MAAM;OAAY,MAAM;MAAO,GACzC,oBACA;AAEF,aAAO,EAAE,KAAK,OAAO,MAAM,WAAmC;KAC9D;IACD,SAAQC,GAAQ;AAChB,YAAO,MAAM,GAAG,oCAAoC;KACpD,MAAM,QAAQ,kCAAU,GAAG,KAAK,wBAAwB;AACxD,SAAI,aAAa,MAChB,QAAO,KACN;MAAE,QAAQ,MAAM;MAAY,MAAM;KAAO,GACzC,oBACA;AAEF,YAAO,EAAE,KAAK,OAAO,MAAM,WAAmC;IAC9D;GACD,EACD;EACD;AAGD,MAAI,QAAQ,OAAO,GAAG,YAAY,QAAQ;CAC1C;CAED,OAAO,aAINT,WACAR,KACAkB,UACAC,gBACO;AACP,MAAI,IAAI,UAAU,OAAO,MAAM;AAC9B,OAAI;IACH,MAAM,gBAAgB,MAAM,0BAAS,mBACpC,WACA,eACA;AAED,WAAO,EAAE,KAAK,cAAc;GAC5B,QAAO;AACP,WAAO,EAAE,KACR,EAAE,OAAO,2CAA4C,GACrD,IACA;GACD;EACD,EAAC;CACF;AACD"}
@@ -1,5 +1,5 @@
1
- import { HttpMethod } from "./types-aFmq5cKh.mjs";
2
- import { Endpoint, EndpointSchemas } from "./Endpoint-BIvS-rKH.mjs";
1
+ import { HttpMethod } from "./types-BqPOdHEm.mjs";
2
+ import { Endpoint, EndpointSchemas } from "./Endpoint-BET0JSZK.mjs";
3
3
  import { Service, ServiceDiscovery, ServiceRecord } from "@geekmidas/services";
4
4
  import { AuditStorage, AuditableAction } from "@geekmidas/audit";
5
5
  import { Context, Hono } from "hono";
@@ -7,7 +7,7 @@ import { EnvironmentParser } from "@geekmidas/envkit";
7
7
  import { EventPublisher } from "@geekmidas/events";
8
8
  import { Logger } from "@geekmidas/logger";
9
9
  import { StandardSchemaV1 } from "@standard-schema/spec";
10
- import * as hono_types3 from "hono/types";
10
+ import * as hono_types8 from "hono/types";
11
11
 
12
12
  //#region src/endpoints/HonoEndpointAdaptor.d.ts
13
13
  interface HonoEndpointOptions {
@@ -38,7 +38,7 @@ declare class HonoEndpoint<TRoute extends string, TMethod extends HttpMethod, TI
38
38
  * This method is kept for backward compatibility but does nothing.
39
39
  */
40
40
  static applyEventMiddleware(_app: Hono, _serviceDiscovery: ServiceDiscovery<any>): void;
41
- static fromRoutes<TLogger extends Logger, TServices extends Service[]>(routes: string[], envParser: EnvironmentParser<{}>, app: Hono<hono_types3.BlankEnv, hono_types3.BlankSchema, "/"> | undefined, _logger: TLogger, cwd?: string, options?: HonoEndpointOptions): Promise<Hono>;
41
+ static fromRoutes<TLogger extends Logger, TServices extends Service[]>(routes: string[], envParser: EnvironmentParser<{}>, app: Hono<hono_types8.BlankEnv, hono_types8.BlankSchema, "/"> | undefined, _logger: TLogger, cwd?: string, options?: HonoEndpointOptions): Promise<Hono>;
42
42
  static addRoutes<TServices extends Service[] = [], TLogger extends Logger = Logger>(endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[], serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>, app: Hono, options?: HonoEndpointOptions): void;
43
43
  static addRoute<TRoute extends string, TMethod extends HttpMethod, TInput extends EndpointSchemas = {}, TOutSchema extends StandardSchemaV1 | undefined = undefined, TServices extends Service[] = [], TLogger extends Logger = Logger, TSession = unknown, TEventPublisher extends EventPublisher<any> | undefined = undefined, TEventPublisherServiceName extends string = string, TAuditStorage extends AuditStorage | undefined = undefined, TAuditStorageServiceName extends string = string, TAuditAction extends AuditableAction<string, unknown> = AuditableAction<string, unknown>, TDatabase = undefined, TDatabaseServiceName extends string = string>(endpoint: Endpoint<TRoute, TMethod, TInput, TOutSchema, TServices, TLogger, TSession, TEventPublisher, TEventPublisherServiceName, TAuditStorage, TAuditStorageServiceName, TAuditAction, TDatabase, TDatabaseServiceName>, serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>, app: Hono): void;
44
44
  static addDocsRoute<TServices extends Service[] = [], TLogger extends Logger = Logger>(endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[], app: Hono, docsPath: string, openApiOptions?: HonoEndpointOptions['openApiOptions']): void;
@@ -47,4 +47,4 @@ declare class HonoEndpoint<TRoute extends string, TMethod extends HttpMethod, TI
47
47
 
48
48
  //#endregion
49
49
  export { HonoEndpoint, HonoEndpointOptions };
50
- //# sourceMappingURL=HonoEndpointAdaptor-Cb45sqM9.d.mts.map
50
+ //# sourceMappingURL=HonoEndpointAdaptor-C2deTEwW.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HonoEndpointAdaptor-Cb45sqM9.d.mts","names":[],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"HonoEndpointAdaptor-C2deTEwW.d.mts","names":[],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { HttpMethod } from "./types-B5H3piDg.cjs";
2
- import { Endpoint, EndpointSchemas } from "./Endpoint-BPh52sXZ.cjs";
2
+ import { Endpoint, EndpointSchemas } from "./Endpoint-CGdCGJkC.cjs";
3
3
  import { AuditStorage, AuditableAction } from "@geekmidas/audit";
4
4
  import { EventPublisher } from "@geekmidas/events";
5
5
  import { Logger } from "@geekmidas/logger";
@@ -47,4 +47,4 @@ declare class HonoEndpoint<TRoute extends string, TMethod extends HttpMethod, TI
47
47
 
48
48
  //#endregion
49
49
  export { HonoEndpoint, HonoEndpointOptions };
50
- //# sourceMappingURL=HonoEndpointAdaptor-VStaYQHr.d.cts.map
50
+ //# sourceMappingURL=HonoEndpointAdaptor-D3IgM-0B.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HonoEndpointAdaptor-VStaYQHr.d.cts","names":[],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"HonoEndpointAdaptor-D3IgM-0B.d.cts","names":[],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;UAqCiB,mBAAA;;;AAAjB;AAqEA;;EAAyB,QAER,CAAA,EAAA,MAAA,GAAA,KAAA;EAAU;;;EAGD,cACT,CAAA,EAAA;IAAS,KAAA,CAAA,EAAA,MAAA;IAED,OAAA,CAAA,EAAA,MAAA;IAEF,WAAA,CAAA,EAAA,MAAA;EAAY,CAAA;;AAWhC,cArBU,YAqBV,CAAA,eAAA,MAAA,EAAA,gBAnBc,UAmBd,EAAA,eAlBa,eAkBb,GAAA,CAAA,CAAA,EAAA,mBAjBiB,gBAiBjB,GAAA,SAAA,GAAA,SAAA,EAAA,kBAhBgB,OAgBhB,EAAA,GAAA,EAAA,EAAA,gBAfc,MAed,GAfuB,MAevB,EAAA,WAAA,OAAA,EAAA,wBAbsB,cAatB,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,mCAAA,MAAA,GAAA,MAAA,EAAA,sBAXoB,YAWpB,GAAA,SAAA,GAAA,SAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,qBATmB,eASnB,CAAA,MAAA,EAAA,OAAA,CAAA,GATsD,eAStD,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,YAAA,SAAA,EAAA,6BAAA,MAAA,GAAA,MAAA,CAAA,CAAA;EAAM,iBACN,QAAA;EAAO,WACP,CAAA,QAAA,EAH0B,QAG1B,CAFA,MAEA,EADA,OACA,EAAA,MAAA,EACA,UADA,EAEA,SAFA,EAGA,OAHA,EAIA,QAJA,EAKA,eALA,EAMA,0BANA,EAOA,aAPA,EAQA,wBARA,EASA,YATA,EAUA,SAVA,EAWA,oBAXA,CAAA;EAAM,OACN,KAAA,EAAA,OAAA;EAAU,OACV,QAAA,CAAA,UAe8B,gBAf9B,CAAA,CAAA,CAAA,EAgBE,OAhBF,CAAA,GAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAkBQ,CAlBR,CAAA,EAkBS,OAlBT,CAAA,OAAA,CAAA;EAAS,QACT,CAAA,gBAAA,EAgCiB,gBAhCjB,CAgCkC,aAhClC,CAgCgD,SAhChD,CAAA,CAAA,EAAA,GAAA,EAiCI,IAjCJ,CAAA,EAAA,IAAA;EAAO;;;;;EAKiB,OACxB,oBAAA,CAAA,IAAA,EAsCK,IAtCL,EAAA,iBAAA,EAuCkB,gBAvClB,CAAA,GAAA,CAAA,CAAA,EAAA,IAAA;EAAY,OACZ,UAAA,CAAA,gBA4CsC,MA5CtC,EAAA,kBA4CgE,OA5ChE,EAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EA8CU,iBA9CV,CAAA,CAAA,CAAA,CAAA,EAAA,GAAA,EA+CE,IA/CF,CA8C2B,WAAA,CACzB,QAAA,EAAA,WAAA,CAAA,WAAA,EA/CF,GAAA,CAAA,GAAA,SAAA,EAAA,OAAA,EAgDQ,OAhDR,EAAA,GAAA,CAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAkDS,mBAlDT,CAAA,EAmDC,OAnDD,CAmDS,IAnDT,CAAA;EAAS,OACT,SAAA,CAAA,kBA6DiB,OA7DjB,EAAA,GAAA,EAAA,EAAA,gBA8De,MA9Df,GA8DwB,MA9DxB,CAAA,CAAA,SAAA,EAgEU,QAhEV,CAAA,MAAA,EAgE2B,UAhE3B,EAAA,GAAA,EAAA,GAAA,EAgEiD,SAhEjD,EAgE4D,OAhE5D,CAAA,EAAA,EAAA,gBAAA,EAiEiB,gBAjEjB,CAiEkC,aAjElC,CAiEgD,SAjEhD,CAAA,CAAA,EAAA,GAAA,EAkEI,IAlEJ,EAAA,OAAA,CAAA,EAmES,mBAnET,CAAA,EAAA,IAAA;EAAoB,OAdM,QAAA,CAAA,eAAA,MAAA,EAAA,gBA2IX,UA3IW,EAAA,eA4IZ,eA5IY,GAAA,CAAA,CAAA,EAAA,mBA6IR,gBA7IQ,GAAA,SAAA,GAAA,SAAA,EAAA,kBA8IT,OA9IS,EAAA,GAAA,EAAA,EAAA,gBA+IX,MA/IW,GA+IF,MA/IE,EAAA,WAAA,OAAA,EAAA,wBAiJH,cAjJG,CAAA,GAAA,CAAA,GAAA,SAAA,GAAA,SAAA,EAAA,mCAAA,MAAA,GAAA,MAAA,EAAA,sBAmJL,YAnJK,GAAA,SAAA,GAAA,SAAA,EAAA,iCAAA,MAAA,GAAA,MAAA,EAAA,qBAqJN,eArJM,CAAA,MAAA,EAAA,OAAA,CAAA,GAqJ6B,eArJ7B,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,YAAA,SAAA,EAAA,6BAAA,MAAA,GAAA,MAAA,CAAA,CAAA,QAAA,EA4JjB,QA5JiB,CA6J1B,MA7J0B,EA8J1B,OA9J0B,EA+J1B,MA/J0B,EAgK1B,UAhK0B,EAiK1B,SAjK0B,EAkK1B,OAlK0B,EAmK1B,QAnK0B,EAoK1B,eApK0B,EAqK1B,0BArK0B,EAsK1B,aAtK0B,EAuK1B,wBAvK0B,EAwK1B,YAxK0B,EAyK1B,SAzK0B,EA0K1B,oBA1K0B,CAAA,EAAA,gBAAA,EA4KT,gBA5KS,CA4KQ,aA5KR,CA4KsB,SA5KtB,CAAA,CAAA,EAAA,GAAA,EA6KtB,IA7KsB,CAAA,EAAA,IAAA;EAAQ,OAoBJ,YAAA,CAAA,kBAoeb,OApea,EAAA,GAAA,EAAA,EAAA,gBAqef,MAree,GAqeN,MAreM,CAAA,CAAA,SAAA,EAuepB,QAveoB,CAAA,MAAA,EAueH,UAveG,EAAA,GAAA,EAAA,GAAA,EAuemB,SAvenB,EAue8B,OAve9B,CAAA,EAAA,EAAA,GAAA,EAwe1B,IAxe0B,EAAA,QAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EA0ed,mBA1ec,CAAA,gBAAA,CAAA,CAAA,EAAA,IAAA"}
@@ -124,6 +124,7 @@ var HonoEndpoint = class HonoEndpoint {
124
124
  services,
125
125
  logger: logger$1,
126
126
  session,
127
+ ...rawDb !== void 0 && { db: rawDb },
127
128
  body: features.hasBodyValidation ? c.req.valid("json") : void 0,
128
129
  query: features.hasQueryValidation ? c.req.valid("query") : void 0,
129
130
  params: features.hasParamValidation ? c.req.valid("param") : void 0
@@ -251,4 +252,4 @@ var HonoEndpoint = class HonoEndpoint {
251
252
 
252
253
  //#endregion
253
254
  export { HonoEndpoint };
254
- //# sourceMappingURL=HonoEndpointAdaptor-D7N5oiO0.mjs.map
255
+ //# sourceMappingURL=HonoEndpointAdaptor-DOUODM7n.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HonoEndpointAdaptor-DOUODM7n.mjs","names":["endpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany\n\t>","endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>","c: Context<any, string, {}>","data: unknown","schema?: T","serviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>","app: Hono","_app: Hono","_serviceDiscovery: ServiceDiscovery<any>","routes: string[]","envParser: EnvironmentParser<{}>","_logger: TLogger","options?: HonoEndpointOptions","endpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[]","validators: any[]","c: Context","logger","db: TDatabase | undefined","metadata","output","result","validationError: any","e: any","docsPath: string","openApiOptions?: HonoEndpointOptions['openApiOptions']"],"sources":["../src/endpoints/HonoEndpointAdaptor.ts"],"sourcesContent":["import type { AuditableAction, AuditStorage } from '@geekmidas/audit';\nimport { withRlsContext } from '@geekmidas/db/rls';\nimport type { EnvironmentParser } from '@geekmidas/envkit';\nimport { wrapError } from '@geekmidas/errors';\nimport type { EventPublisher } from '@geekmidas/events';\nimport type { Logger } from '@geekmidas/logger';\nimport { checkRateLimit, getRateLimitHeaders } from '@geekmidas/rate-limit';\nimport {\n\trunWithRequestContext,\n\ttype Service,\n\tServiceDiscovery,\n\ttype ServiceRecord,\n} from '@geekmidas/services';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { type Context, Hono } from 'hono';\nimport { setCookie } from 'hono/cookie';\nimport { logger as honoLogger } from 'hono/logger';\nimport { timing } from 'hono/timing';\nimport type { ContentfulStatusCode } from 'hono/utils/http-status';\nimport { validator } from 'hono/validator';\nimport { publishConstructEvents } from '../publisher';\nimport type { HttpMethod, LowerHttpMethod } from '../types';\nimport type { MappedAudit } from './audit';\nimport {\n\tEndpoint,\n\ttype EndpointContext,\n\ttype EndpointSchemas,\n\tResponseBuilder,\n} from './Endpoint';\nimport { getEndpointsFromRoutes } from './helpers';\nimport { createHonoCookies, createHonoHeaders } from './lazyAccessors';\nimport { parseHonoQuery } from './parseHonoQuery';\nimport {\n\tcreateAuditContext,\n\texecuteWithAuditTransaction,\n} from './processAudits';\n\nexport interface HonoEndpointOptions {\n\t/**\n\t * Path where OpenAPI documentation will be served.\n\t * Set to false to disable docs route.\n\t * @default '/docs'\n\t */\n\tdocsPath?: string | false;\n\t/**\n\t * OpenAPI schema options\n\t */\n\topenApiOptions?: {\n\t\ttitle?: string;\n\t\tversion?: string;\n\t\tdescription?: string;\n\t};\n}\n\n/**\n * Feature flags for an endpoint, analyzed once at route registration time.\n * This avoids per-request feature detection overhead.\n */\ninterface EndpointFeatures {\n\thasServices: boolean;\n\thasDatabase: boolean;\n\thasBodyValidation: boolean;\n\thasQueryValidation: boolean;\n\thasParamValidation: boolean;\n\thasAudits: boolean;\n\thasEvents: boolean;\n\thasRateLimit: boolean;\n\thasRls: boolean;\n}\n\n/**\n * Analyze endpoint features at registration time (not per-request)\n */\nfunction analyzeEndpointFeatures(\n\tendpoint: Endpoint<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany\n\t>,\n): EndpointFeatures {\n\treturn {\n\t\thasServices: endpoint.services.length > 0,\n\t\thasDatabase: !!endpoint.databaseService,\n\t\thasBodyValidation: !!endpoint.input?.body,\n\t\thasQueryValidation: !!endpoint.input?.query,\n\t\thasParamValidation: !!endpoint.input?.params,\n\t\t// Audit context needed if declarative audits OR auditor storage service configured (for manual audits)\n\t\thasAudits:\n\t\t\t(endpoint.audits?.length ?? 0) > 0 || !!endpoint.auditorStorageService,\n\t\thasEvents: (endpoint.events?.length ?? 0) > 0,\n\t\thasRateLimit: !!endpoint.rateLimit,\n\t\thasRls: !!endpoint.rlsConfig && !endpoint.rlsBypass,\n\t};\n}\n\nexport class HonoEndpoint<\n\tTRoute extends string,\n\tTMethod extends HttpMethod,\n\tTInput extends EndpointSchemas = {},\n\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\tTServices extends Service[] = [],\n\tTLogger extends Logger = Logger,\n\tTSession = unknown,\n\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\tTEventPublisherServiceName extends string = string,\n\tTAuditStorage extends AuditStorage | undefined = undefined,\n\tTAuditStorageServiceName extends string = string,\n\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\tstring,\n\t\tunknown\n\t>,\n\tTDatabase = undefined,\n\tTDatabaseServiceName extends string = string,\n> {\n\tconstructor(\n\t\tprivate readonly endpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>,\n\t) {}\n\n\tstatic isDev = process.env.NODE_ENV === 'development';\n\n\tstatic async validate<T extends StandardSchemaV1>(\n\t\tc: Context<any, string, {}>,\n\t\tdata: unknown,\n\t\tschema?: T,\n\t) {\n\t\tif (!schema) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst parsed = await Endpoint.validate(schema, data);\n\n\t\tif (parsed.issues) {\n\t\t\treturn c.json(parsed.issues, 422);\n\t\t}\n\n\t\treturn parsed.value;\n\t}\n\taddRoute(\n\t\tserviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>,\n\t\tapp: Hono,\n\t): void {\n\t\tHonoEndpoint.addRoute(this.endpoint, serviceDiscovery, app);\n\t}\n\n\t/**\n\t * @deprecated Global event middleware is no longer used.\n\t * Events are now published per-route only for endpoints that have events configured.\n\t * This method is kept for backward compatibility but does nothing.\n\t */\n\tstatic applyEventMiddleware(\n\t\t_app: Hono,\n\t\t_serviceDiscovery: ServiceDiscovery<any>,\n\t) {\n\t\t// No-op: Event publishing is now handled per-route in addRoute\n\t\t// This avoids running middleware on every request including 404s\n\t}\n\n\tstatic async fromRoutes<TLogger extends Logger, TServices extends Service[]>(\n\t\troutes: string[],\n\t\tenvParser: EnvironmentParser<{}>,\n\t\tapp = new Hono(),\n\t\t_logger: TLogger,\n\t\tcwd = process.cwd(),\n\t\toptions?: HonoEndpointOptions,\n\t): Promise<Hono> {\n\t\tconst endpoints = await getEndpointsFromRoutes<TServices>(routes, cwd);\n\t\tconst serviceDiscovery =\n\t\t\tServiceDiscovery.getInstance<ServiceRecord<TServices>>(envParser);\n\n\t\tHonoEndpoint.addRoutes(endpoints, serviceDiscovery, app, options);\n\n\t\treturn app;\n\t}\n\n\tstatic addRoutes<\n\t\tTServices extends Service[] = [],\n\t\tTLogger extends Logger = Logger,\n\t>(\n\t\tendpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n\t\tserviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>,\n\t\tapp: Hono,\n\t\toptions?: HonoEndpointOptions,\n\t): void {\n\t\t// Add timing middleware (always enabled)\n\t\tapp.use('*', timing());\n\n\t\t// Add logger middleware in development mode\n\n\t\tif (HonoEndpoint.isDev) {\n\t\t\tapp.use('*', honoLogger());\n\t\t}\n\n\t\t// Add docs route if not disabled\n\t\tconst docsPath =\n\t\t\toptions?.docsPath !== false ? options?.docsPath || '/docs' : null;\n\t\tif (docsPath) {\n\t\t\tHonoEndpoint.addDocsRoute(\n\t\t\t\tendpoints,\n\t\t\t\tapp,\n\t\t\t\tdocsPath,\n\t\t\t\toptions?.openApiOptions,\n\t\t\t);\n\t\t}\n\n\t\t// Sort endpoints to ensure static routes come before dynamic ones\n\t\tconst sortedEndpoints = endpoints.sort((a, b) => {\n\t\t\tconst aSegments = a.route.split('/');\n\t\t\tconst bSegments = b.route.split('/');\n\n\t\t\t// Compare each segment\n\t\t\tfor (let i = 0; i < Math.max(aSegments.length, bSegments.length); i++) {\n\t\t\t\tconst aSegment = aSegments[i] || '';\n\t\t\t\tconst bSegment = bSegments[i] || '';\n\n\t\t\t\t// If one is dynamic and the other is not, static comes first\n\t\t\t\tconst aIsDynamic = aSegment.startsWith(':');\n\t\t\t\tconst bIsDynamic = bSegment.startsWith(':');\n\n\t\t\t\tif (!aIsDynamic && bIsDynamic) return -1;\n\t\t\t\tif (aIsDynamic && !bIsDynamic) return 1;\n\n\t\t\t\t// If both are the same type, compare alphabetically\n\t\t\t\tif (aSegment !== bSegment) {\n\t\t\t\t\treturn aSegment.localeCompare(bSegment);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t});\n\n\t\t// Note: Global event middleware removed for performance\n\t\t// Events are now published per-route only for endpoints with events configured\n\t\tfor (const endpoint of sortedEndpoints) {\n\t\t\tHonoEndpoint.addRoute(endpoint, serviceDiscovery, app);\n\t\t}\n\t}\n\n\tstatic addRoute<\n\t\tTRoute extends string,\n\t\tTMethod extends HttpMethod,\n\t\tTInput extends EndpointSchemas = {},\n\t\tTOutSchema extends StandardSchemaV1 | undefined = undefined,\n\t\tTServices extends Service[] = [],\n\t\tTLogger extends Logger = Logger,\n\t\tTSession = unknown,\n\t\tTEventPublisher extends EventPublisher<any> | undefined = undefined,\n\t\tTEventPublisherServiceName extends string = string,\n\t\tTAuditStorage extends AuditStorage | undefined = undefined,\n\t\tTAuditStorageServiceName extends string = string,\n\t\tTAuditAction extends AuditableAction<string, unknown> = AuditableAction<\n\t\t\tstring,\n\t\t\tunknown\n\t\t>,\n\t\tTDatabase = undefined,\n\t\tTDatabaseServiceName extends string = string,\n\t>(\n\t\tendpoint: Endpoint<\n\t\t\tTRoute,\n\t\t\tTMethod,\n\t\t\tTInput,\n\t\t\tTOutSchema,\n\t\t\tTServices,\n\t\t\tTLogger,\n\t\t\tTSession,\n\t\t\tTEventPublisher,\n\t\t\tTEventPublisherServiceName,\n\t\t\tTAuditStorage,\n\t\t\tTAuditStorageServiceName,\n\t\t\tTAuditAction,\n\t\t\tTDatabase,\n\t\t\tTDatabaseServiceName\n\t\t>,\n\t\tserviceDiscovery: ServiceDiscovery<ServiceRecord<TServices>>,\n\t\tapp: Hono,\n\t): void {\n\t\tconst { route } = endpoint;\n\t\tconst method = endpoint.method.toLowerCase() as LowerHttpMethod<TMethod>;\n\n\t\t// Analyze endpoint features once at registration time (not per-request)\n\t\tconst features = analyzeEndpointFeatures(endpoint);\n\n\t\t// Build validators array - only add validators for schemas that exist\n\t\tconst validators: any[] = [];\n\n\t\tif (features.hasBodyValidation) {\n\t\t\tvalidators.push(\n\t\t\t\tvalidator('json', (value, c) =>\n\t\t\t\t\tHonoEndpoint.validate(c, value, endpoint.input?.body),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\tif (features.hasQueryValidation) {\n\t\t\tvalidators.push(\n\t\t\t\tvalidator('query', (_, c) => {\n\t\t\t\t\tconst parsedQuery = parseHonoQuery(c);\n\t\t\t\t\treturn HonoEndpoint.validate(c, parsedQuery, endpoint.input?.query);\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tif (features.hasParamValidation) {\n\t\t\tvalidators.push(\n\t\t\t\tvalidator('param', (params, c) =>\n\t\t\t\t\tHonoEndpoint.validate(c, params, endpoint.input?.params),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\t// Main handler\n\t\tconst handler = async (c: Context) => {\n\t\t\t// Request context setup\n\t\t\tconst startTime = Date.now();\n\t\t\tconst requestId = c.req.header('X-Request-ID') ?? crypto.randomUUID();\n\n\t\t\tconst logger = endpoint.logger.child({\n\t\t\t\trequestId,\n\t\t\t\tendpoint: endpoint.fullPath,\n\t\t\t\troute: endpoint.route,\n\t\t\t\thost: c.req.header('host'),\n\t\t\t\tmethod: endpoint.method,\n\t\t\t\tpath: c.req.path,\n\t\t\t}) as TLogger;\n\n\t\t\t// Set response header\n\t\t\tc.header('X-Request-ID', requestId);\n\n\t\t\t// Wrap entire handler in request context for services to access\n\t\t\treturn runWithRequestContext(\n\t\t\t\t{ logger, requestId, startTime },\n\t\t\t\tasync () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Lazy accessors - no upfront parsing, use native Hono methods\n\t\t\t\t\t\tconst header = createHonoHeaders(c);\n\t\t\t\t\t\tconst cookie = createHonoCookies(c);\n\n\t\t\t\t\t\t// Only register services if endpoint has any\n\t\t\t\t\t\tconst services = features.hasServices\n\t\t\t\t\t\t\t? await serviceDiscovery.register(endpoint.services)\n\t\t\t\t\t\t\t: ({} as ServiceRecord<TServices>);\n\n\t\t\t\t\t\t// Resolve database service only if configured\n\t\t\t\t\t\tconst rawDb = features.hasDatabase\n\t\t\t\t\t\t\t? await serviceDiscovery\n\t\t\t\t\t\t\t\t\t.register([endpoint.databaseService!])\n\t\t\t\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\t\t\t\t(s) =>\n\t\t\t\t\t\t\t\t\t\t\ts[\n\t\t\t\t\t\t\t\t\t\t\t\tendpoint.databaseService?.serviceName as keyof typeof s\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t// Extract session (defaults to empty object)\n\t\t\t\t\t\tconst session = await endpoint.getSession({\n\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t...(rawDb !== undefined && { db: rawDb }),\n\t\t\t\t\t\t} as any);\n\n\t\t\t\t\t\t// Check authorization (defaults to true)\n\t\t\t\t\t\tconst isAuthorized = await endpoint.authorize({\n\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t...(rawDb !== undefined && { db: rawDb }),\n\t\t\t\t\t\t\tbody: features.hasBodyValidation\n\t\t\t\t\t\t\t\t? (c.req.valid as any)('json')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tquery: features.hasQueryValidation\n\t\t\t\t\t\t\t\t? (c.req.valid as any)('query')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tparams: features.hasParamValidation\n\t\t\t\t\t\t\t\t? (c.req.valid as any)('param')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t} as any);\n\n\t\t\t\t\t\tif (!isAuthorized) {\n\t\t\t\t\t\t\tlogger.warn('Unauthorized access attempt');\n\t\t\t\t\t\t\treturn c.json({ error: 'Unauthorized' }, 401);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check rate limit only if configured\n\t\t\t\t\t\tif (features.hasRateLimit) {\n\t\t\t\t\t\t\tconst rateLimitInfo = await checkRateLimit(endpoint.rateLimit!, {\n\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\tpath: c.req.path,\n\t\t\t\t\t\t\t\tmethod: endpoint.method,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tconst rateLimitHeaders = getRateLimitHeaders(\n\t\t\t\t\t\t\t\trateLimitInfo,\n\t\t\t\t\t\t\t\tendpoint.rateLimit!,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tfor (const [key, value] of Object.entries(rateLimitHeaders)) {\n\t\t\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\t\t\tc.header(key, value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Create audit context only if audits are configured\n\t\t\t\t\t\tconst auditContext = features.hasAudits\n\t\t\t\t\t\t\t? await createAuditContext(\n\t\t\t\t\t\t\t\t\tendpoint as any,\n\t\t\t\t\t\t\t\t\tserviceDiscovery,\n\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\tservices: services as Record<string, unknown>,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst audits = features.hasAudits\n\t\t\t\t\t\t\t? (endpoint.audits as MappedAudit<TAuditAction, TOutSchema>[])\n\t\t\t\t\t\t\t: [];\n\n\t\t\t\t\t\t// Warn if declarative audits are configured but no audit storage\n\t\t\t\t\t\tif (features.hasAudits && !auditContext) {\n\t\t\t\t\t\t\tlogger.warn('No auditor storage service available');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Extract RLS context only if configured and not bypassed\n\t\t\t\t\t\tconst rlsContext =\n\t\t\t\t\t\t\tfeatures.hasRls && rawDb !== undefined\n\t\t\t\t\t\t\t\t? await endpoint.rlsConfig?.extractor({\n\t\t\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\t\t\tsession: session as TSession,\n\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t// Execute handler with automatic audit transaction support\n\t\t\t\t\t\tconst result = await executeWithAuditTransaction(\n\t\t\t\t\t\t\tauditContext,\n\t\t\t\t\t\t\tasync (auditor) => {\n\t\t\t\t\t\t\t\tconst sameDatabase =\n\t\t\t\t\t\t\t\t\tauditContext?.storage?.databaseServiceName &&\n\t\t\t\t\t\t\t\t\tauditContext.storage.databaseServiceName ===\n\t\t\t\t\t\t\t\t\t\tendpoint.databaseService?.serviceName;\n\t\t\t\t\t\t\t\tconst baseDb = sameDatabase\n\t\t\t\t\t\t\t\t\t? (auditor?.getTransaction?.() ?? rawDb)\n\t\t\t\t\t\t\t\t\t: rawDb;\n\n\t\t\t\t\t\t\t\tconst executeHandler = async (db: TDatabase | undefined) => {\n\t\t\t\t\t\t\t\t\tconst responseBuilder = new ResponseBuilder();\n\t\t\t\t\t\t\t\t\tconst response = await endpoint.handler(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t\t\t\tbody: features.hasBodyValidation\n\t\t\t\t\t\t\t\t\t\t\t\t? (c.req.valid as any)('json')\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tquery: features.hasQueryValidation\n\t\t\t\t\t\t\t\t\t\t\t\t? (c.req.valid as any)('query')\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tparams: features.hasParamValidation\n\t\t\t\t\t\t\t\t\t\t\t\t? (c.req.valid as any)('param')\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\t\t\t\theader,\n\t\t\t\t\t\t\t\t\t\t\tcookie,\n\t\t\t\t\t\t\t\t\t\t\tauditor,\n\t\t\t\t\t\t\t\t\t\t\tdb,\n\t\t\t\t\t\t\t\t\t\t} as unknown as EndpointContext<\n\t\t\t\t\t\t\t\t\t\t\tTInput,\n\t\t\t\t\t\t\t\t\t\t\tTServices,\n\t\t\t\t\t\t\t\t\t\t\tTLogger,\n\t\t\t\t\t\t\t\t\t\t\tTSession,\n\t\t\t\t\t\t\t\t\t\t\tTAuditAction,\n\t\t\t\t\t\t\t\t\t\t\tTDatabase,\n\t\t\t\t\t\t\t\t\t\t\tTAuditStorage\n\t\t\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\t\t\tresponseBuilder,\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\tlet data = response;\n\t\t\t\t\t\t\t\t\tlet metadata = responseBuilder.getMetadata();\n\n\t\t\t\t\t\t\t\t\tif (Endpoint.hasMetadata(response)) {\n\t\t\t\t\t\t\t\t\t\tdata = response.data;\n\t\t\t\t\t\t\t\t\t\tmetadata = response.metadata;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst output = endpoint.outputSchema\n\t\t\t\t\t\t\t\t\t\t? await endpoint.parseOutput(data)\n\t\t\t\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\t\t\t\treturn { output, metadata, responseBuilder };\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tif (features.hasRls && rlsContext && baseDb) {\n\t\t\t\t\t\t\t\t\treturn withRlsContext(\n\t\t\t\t\t\t\t\t\t\tbaseDb as any,\n\t\t\t\t\t\t\t\t\t\trlsContext,\n\t\t\t\t\t\t\t\t\t\tasync (trx) => executeHandler(trx as TDatabase),\n\t\t\t\t\t\t\t\t\t\t{ prefix: endpoint.rlsConfig?.prefix },\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn executeHandler(baseDb as TDatabase | undefined);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tasync (result, auditor) => {\n\t\t\t\t\t\t\t\tif (!audits?.length) return;\n\n\t\t\t\t\t\t\t\tfor (const audit of audits) {\n\t\t\t\t\t\t\t\t\tif (audit.when && !audit.when(result.output as any)) {\n\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst payload = audit.payload(result.output as any);\n\t\t\t\t\t\t\t\t\tconst entityId = audit.entityId?.(result.output as any);\n\t\t\t\t\t\t\t\t\tauditor.audit(audit.type as any, payload as any, {\n\t\t\t\t\t\t\t\t\t\ttable: audit.table,\n\t\t\t\t\t\t\t\t\t\tentityId,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ db: rawDb },\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst { output, metadata } = result;\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet status = endpoint.status as ContentfulStatusCode;\n\n\t\t\t\t\t\t\tif (metadata.status) {\n\t\t\t\t\t\t\t\tstatus = metadata.status as ContentfulStatusCode;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (metadata.headers) {\n\t\t\t\t\t\t\t\tfor (const [key, value] of Object.entries(metadata.headers)) {\n\t\t\t\t\t\t\t\t\tc.header(key, value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (metadata.cookies) {\n\t\t\t\t\t\t\t\tfor (const [name, { value, options }] of metadata.cookies) {\n\t\t\t\t\t\t\t\t\tsetCookie(c, name, value, options);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Only publish events if configured (no global middleware overhead)\n\t\t\t\t\t\t\tif (features.hasEvents && Endpoint.isSuccessStatus(status)) {\n\t\t\t\t\t\t\t\tawait publishConstructEvents<any, any>(\n\t\t\t\t\t\t\t\t\tendpoint as any,\n\t\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\t\tserviceDiscovery,\n\t\t\t\t\t\t\t\t\tlogger,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (HonoEndpoint.isDev) {\n\t\t\t\t\t\t\t\tlogger.info({ status, body: output }, 'Outgoing response');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\treturn c.json(output, status);\n\t\t\t\t\t\t} catch (validationError: any) {\n\t\t\t\t\t\t\tlogger.error(validationError, 'Output validation failed');\n\t\t\t\t\t\t\tconst error = wrapError(\n\t\t\t\t\t\t\t\tvalidationError,\n\t\t\t\t\t\t\t\t422,\n\t\t\t\t\t\t\t\t'Response validation failed',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (HonoEndpoint.isDev) {\n\t\t\t\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\t\t\t{ status: error.statusCode, body: error },\n\t\t\t\t\t\t\t\t\t'Outgoing response',\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn c.json(error, error.statusCode as ContentfulStatusCode);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e: any) {\n\t\t\t\t\t\tlogger.error(e, 'Error processing endpoint request');\n\t\t\t\t\t\tconst error = wrapError(e, 500, 'Internal Server Error');\n\t\t\t\t\t\tif (HonoEndpoint.isDev) {\n\t\t\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\t\t{ status: error.statusCode, body: error },\n\t\t\t\t\t\t\t\t'Outgoing response',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn c.json(error, error.statusCode as ContentfulStatusCode);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t};\n\n\t\t// Register route with conditional validators\n\t\tapp[method](route, ...validators, handler);\n\t}\n\n\tstatic addDocsRoute<\n\t\tTServices extends Service[] = [],\n\t\tTLogger extends Logger = Logger,\n\t>(\n\t\tendpoints: Endpoint<string, HttpMethod, any, any, TServices, TLogger>[],\n\t\tapp: Hono,\n\t\tdocsPath: string,\n\t\topenApiOptions?: HonoEndpointOptions['openApiOptions'],\n\t): void {\n\t\tapp.get(docsPath, async (c) => {\n\t\t\ttry {\n\t\t\t\tconst openApiSchema = await Endpoint.buildOpenApiSchema(\n\t\t\t\t\tendpoints,\n\t\t\t\t\topenApiOptions,\n\t\t\t\t);\n\n\t\t\t\treturn c.json(openApiSchema);\n\t\t\t} catch {\n\t\t\t\treturn c.json(\n\t\t\t\t\t{ error: 'Failed to generate OpenAPI documentation' },\n\t\t\t\t\t500,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n}\n"],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import { HonoEndpoint } from "./HonoEndpointAdaptor-DOUODM7n.mjs";
2
+ import { ServiceDiscovery } from "@geekmidas/services";
3
+ import { Hono } from "hono";
4
+ import { EnvironmentParser } from "@geekmidas/envkit";
5
+ import { http } from "msw";
6
+
7
+ //#region src/endpoints/MswEndpointAdaptor.ts
8
+ /**
9
+ * Header used to identify which test context a request belongs to.
10
+ * Each concurrent test registers its own context (services, db transaction, etc.)
11
+ * and the MSW handler looks it up by this header value.
12
+ */
13
+ const TEST_CONTEXT_HEADER = "x-test-context-id";
14
+ const MSW_HTTP_METHODS = [
15
+ "get",
16
+ "post",
17
+ "put",
18
+ "patch",
19
+ "delete",
20
+ "options"
21
+ ];
22
+ /**
23
+ * Creates MSW HTTP handlers from endpoint constructs.
24
+ *
25
+ * Mounts endpoints on a Hono app and creates MSW handlers that intercept
26
+ * fetch requests and route them through `app.request()` — giving frontend
27
+ * tests full endpoint behavior (validation, auth, sessions) without HTTP.
28
+ *
29
+ * Each test registers its own isolated context via `registerContext()`,
30
+ * which is resolved per-request using the `x-test-context-id` header.
31
+ * This allows concurrent tests with their own transactions and services.
32
+ *
33
+ * @param endpoints - Array of endpoint constructs to create handlers for
34
+ * @param options - Configuration including baseURL
35
+ * @returns MSW handlers, the Hono app, and context management functions
36
+ */
37
+ function createMswHandlers(endpoints, options) {
38
+ const { baseURL } = options;
39
+ const contexts = /* @__PURE__ */ new Map();
40
+ /**
41
+ * Register an isolated context for a test.
42
+ * Creates a fresh ServiceDiscovery and pre-registers all provided services.
43
+ */
44
+ function registerContext(id, ctxOptions) {
45
+ const envParser = new EnvironmentParser({});
46
+ const serviceDiscovery = new ServiceDiscovery(envParser);
47
+ const serviceDefs = [];
48
+ if (ctxOptions.services) for (const [name, instance] of Object.entries(ctxOptions.services)) serviceDefs.push({
49
+ serviceName: name,
50
+ register: () => instance
51
+ });
52
+ if (ctxOptions.database !== void 0) {
53
+ for (const endpoint of endpoints) if (endpoint.databaseService) {
54
+ serviceDefs.push({
55
+ serviceName: endpoint.databaseService.serviceName,
56
+ register: () => ctxOptions.database
57
+ });
58
+ break;
59
+ }
60
+ }
61
+ if (ctxOptions.publisher) serviceDefs.push(ctxOptions.publisher);
62
+ if (ctxOptions.auditorStorage !== void 0) {
63
+ for (const endpoint of endpoints) if (endpoint.auditorStorageService) {
64
+ serviceDefs.push({
65
+ serviceName: endpoint.auditorStorageService.serviceName,
66
+ register: () => ctxOptions.auditorStorage
67
+ });
68
+ break;
69
+ }
70
+ }
71
+ if (serviceDefs.length > 0) serviceDiscovery.register(serviceDefs);
72
+ contexts.set(id, { serviceDiscovery });
73
+ }
74
+ const handlers = [];
75
+ for (const endpoint of endpoints) {
76
+ const method = endpoint.method.toLowerCase();
77
+ if (!MSW_HTTP_METHODS.includes(method)) continue;
78
+ const mswUrl = `${baseURL}${endpoint.route}`;
79
+ const mswMethod = http[method];
80
+ handlers.push(mswMethod(mswUrl, async ({ request }) => {
81
+ const contextId = request.headers.get(TEST_CONTEXT_HEADER);
82
+ const ctx = contextId ? contexts.get(contextId) : void 0;
83
+ if (!ctx) return new Response(JSON.stringify({
84
+ error: "Missing or unknown test context ID",
85
+ hint: `Set the '${TEST_CONTEXT_HEADER}' header to a registered context ID`
86
+ }), {
87
+ status: 500,
88
+ headers: { "content-type": "application/json" }
89
+ });
90
+ const app = new Hono();
91
+ HonoEndpoint.addRoute(endpoint, ctx.serviceDiscovery, app);
92
+ const response = await app.request(request);
93
+ return new Response(response.body, {
94
+ status: response.status,
95
+ statusText: response.statusText,
96
+ headers: response.headers
97
+ });
98
+ }));
99
+ }
100
+ return {
101
+ handlers,
102
+ registerContext
103
+ };
104
+ }
105
+
106
+ //#endregion
107
+ export { TEST_CONTEXT_HEADER, createMswHandlers };
108
+ //# sourceMappingURL=MswEndpointAdaptor-B41INCc7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MswEndpointAdaptor-B41INCc7.mjs","names":["endpoints: Endpoint<any, any, any, any, any, any>[]","options: CreateMswHandlersOptions","id: string","ctxOptions: RegisterContextOptions","serviceDefs: Service[]","handlers: HttpHandler[]"],"sources":["../src/endpoints/MswEndpointAdaptor.ts"],"sourcesContent":["import { EnvironmentParser } from '@geekmidas/envkit';\nimport type { Service } from '@geekmidas/services';\nimport { ServiceDiscovery } from '@geekmidas/services';\nimport { Hono } from 'hono';\nimport { type HttpHandler, http } from 'msw';\nimport type { Endpoint } from './Endpoint';\nimport { HonoEndpoint } from './HonoEndpointAdaptor';\n\n/**\n * Header used to identify which test context a request belongs to.\n * Each concurrent test registers its own context (services, db transaction, etc.)\n * and the MSW handler looks it up by this header value.\n */\nexport const TEST_CONTEXT_HEADER = 'x-test-context-id';\n\n/**\n * Per-test context containing an isolated ServiceDiscovery instance.\n * Registered in the context map and looked up per-request via the context ID header.\n */\nexport interface MswTestContext {\n\tserviceDiscovery: ServiceDiscovery<any>;\n}\n\n/**\n * Options for creating MSW handlers from endpoint constructs.\n *\n * @example\n * ```typescript\n * import { createMswHandlers, registerTestContext } from '@geekmidas/constructs/testing';\n * import { setupServer } from 'msw/node';\n *\n * // Create handlers once (global)\n * const { handlers, registerContext, removeContext } = createMswHandlers(\n * [getUsers, createUser],\n * { baseURL: 'http://localhost:3000' },\n * );\n * const server = setupServer(...handlers);\n *\n * // Per test: register an isolated context with its own services/transaction\n * it('should list users', async ({ db }) => {\n * const contextId = crypto.randomUUID();\n * registerContext(contextId, {\n * services: { database: db, auth: mockAuth },\n * });\n *\n * const api = createApi({\n * baseURL: 'http://localhost:3000',\n * headers: { [TEST_CONTEXT_HEADER]: contextId },\n * });\n *\n * const result = await api('GET /users');\n * expect(result).toBeDefined();\n *\n * removeContext(contextId);\n * });\n * ```\n */\nexport interface CreateMswHandlersOptions {\n\t/** Base URL the client fetches from (e.g., 'http://localhost:3000') */\n\tbaseURL: string;\n}\n\n/**\n * Options for registering a per-test context.\n * Follows the same pattern as TestRequestAdaptor — services, database,\n * publisher, and auditorStorage are provided explicitly.\n */\nexport interface RegisterContextOptions {\n\t/** Service instances keyed by serviceName */\n\tservices?: Record<string, unknown>;\n\t/** Database instance — required when endpoints use .database() */\n\tdatabase?: unknown;\n\t/** Event publisher service definition */\n\tpublisher?: Service;\n\t/** Audit storage instance — required when endpoints use .auditor() */\n\tauditorStorage?: unknown;\n}\n\nconst MSW_HTTP_METHODS = [\n\t'get',\n\t'post',\n\t'put',\n\t'patch',\n\t'delete',\n\t'options',\n] as const;\n\ntype MswHttpMethod = (typeof MSW_HTTP_METHODS)[number];\n\n/**\n * Result of creating MSW handlers from endpoint constructs.\n */\nexport interface CreateMswHandlersResult {\n\t/** MSW handlers to pass to setupServer() */\n\thandlers: HttpHandler[];\n\t/** Register an isolated context for a test */\n\tregisterContext: (id: string, options: RegisterContextOptions) => void;\n}\n\n/**\n * Creates MSW HTTP handlers from endpoint constructs.\n *\n * Mounts endpoints on a Hono app and creates MSW handlers that intercept\n * fetch requests and route them through `app.request()` — giving frontend\n * tests full endpoint behavior (validation, auth, sessions) without HTTP.\n *\n * Each test registers its own isolated context via `registerContext()`,\n * which is resolved per-request using the `x-test-context-id` header.\n * This allows concurrent tests with their own transactions and services.\n *\n * @param endpoints - Array of endpoint constructs to create handlers for\n * @param options - Configuration including baseURL\n * @returns MSW handlers, the Hono app, and context management functions\n */\nexport function createMswHandlers(\n\tendpoints: Endpoint<any, any, any, any, any, any>[],\n\toptions: CreateMswHandlersOptions,\n): CreateMswHandlersResult {\n\tconst { baseURL } = options;\n\tconst contexts = new Map<string, MswTestContext>();\n\n\t/**\n\t * Register an isolated context for a test.\n\t * Creates a fresh ServiceDiscovery and pre-registers all provided services.\n\t */\n\tfunction registerContext(id: string, ctxOptions: RegisterContextOptions) {\n\t\tconst envParser = new EnvironmentParser({});\n\t\tconst serviceDiscovery = new ServiceDiscovery(envParser);\n\n\t\tconst serviceDefs: Service[] = [];\n\n\t\t// Register explicit services\n\t\tif (ctxOptions.services) {\n\t\t\tfor (const [name, instance] of Object.entries(ctxOptions.services)) {\n\t\t\t\tserviceDefs.push({\n\t\t\t\t\tserviceName: name,\n\t\t\t\t\tregister: () => instance,\n\t\t\t\t} as Service);\n\t\t\t}\n\t\t}\n\n\t\t// Register database service from endpoint metadata\n\t\tif (ctxOptions.database !== undefined) {\n\t\t\tfor (const endpoint of endpoints) {\n\t\t\t\tif (endpoint.databaseService) {\n\t\t\t\t\tserviceDefs.push({\n\t\t\t\t\t\tserviceName: endpoint.databaseService.serviceName,\n\t\t\t\t\t\tregister: () => ctxOptions.database,\n\t\t\t\t\t} as Service);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Register publisher service\n\t\tif (ctxOptions.publisher) {\n\t\t\tserviceDefs.push(ctxOptions.publisher);\n\t\t}\n\n\t\t// Register auditor storage service from endpoint metadata\n\t\tif (ctxOptions.auditorStorage !== undefined) {\n\t\t\tfor (const endpoint of endpoints) {\n\t\t\t\tif (endpoint.auditorStorageService) {\n\t\t\t\t\tserviceDefs.push({\n\t\t\t\t\t\tserviceName: endpoint.auditorStorageService.serviceName,\n\t\t\t\t\t\tregister: () => ctxOptions.auditorStorage,\n\t\t\t\t\t} as Service);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (serviceDefs.length > 0) {\n\t\t\tserviceDiscovery.register(serviceDefs);\n\t\t}\n\n\t\tcontexts.set(id, { serviceDiscovery });\n\t}\n\n\t// Create a Hono app per-request that uses the correct ServiceDiscovery.\n\t// We use a wrapper app that resolves the context from the header,\n\t// then delegates to a context-specific Hono app.\n\tconst handlers: HttpHandler[] = [];\n\n\tfor (const endpoint of endpoints) {\n\t\tconst method = endpoint.method.toLowerCase() as MswHttpMethod;\n\t\tif (!MSW_HTTP_METHODS.includes(method)) continue;\n\n\t\tconst mswUrl = `${baseURL}${endpoint.route}`;\n\t\tconst mswMethod = http[method];\n\n\t\thandlers.push(\n\t\t\tmswMethod(mswUrl, async ({ request }) => {\n\t\t\t\tconst contextId = request.headers.get(TEST_CONTEXT_HEADER);\n\t\t\t\tconst ctx = contextId ? contexts.get(contextId) : undefined;\n\n\t\t\t\tif (!ctx) {\n\t\t\t\t\treturn new Response(\n\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\terror: 'Missing or unknown test context ID',\n\t\t\t\t\t\t\thint: `Set the '${TEST_CONTEXT_HEADER}' header to a registered context ID`,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{ status: 500, headers: { 'content-type': 'application/json' } },\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Build a fresh Hono app with this context's ServiceDiscovery\n\t\t\t\tconst app = new Hono();\n\t\t\t\tHonoEndpoint.addRoute(endpoint, ctx.serviceDiscovery as any, app);\n\n\t\t\t\tconst response = await app.request(request);\n\n\t\t\t\treturn new Response(response.body, {\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\theaders: response.headers,\n\t\t\t\t});\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn {\n\t\thandlers,\n\t\tregisterContext,\n\t};\n}\n"],"mappings":";;;;;;;;;;;;AAaA,MAAa,sBAAsB;AAiEnC,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;;;;;;;;;;;AA6BD,SAAgB,kBACfA,WACAC,SAC0B;CAC1B,MAAM,EAAE,SAAS,GAAG;CACpB,MAAM,2BAAW,IAAI;;;;;CAMrB,SAAS,gBAAgBC,IAAYC,YAAoC;EACxE,MAAM,YAAY,IAAI,kBAAkB,CAAE;EAC1C,MAAM,mBAAmB,IAAI,iBAAiB;EAE9C,MAAMC,cAAyB,CAAE;AAGjC,MAAI,WAAW,SACd,MAAK,MAAM,CAAC,MAAM,SAAS,IAAI,OAAO,QAAQ,WAAW,SAAS,CACjE,aAAY,KAAK;GAChB,aAAa;GACb,UAAU,MAAM;EAChB,EAAY;AAKf,MAAI,WAAW,qBACd;QAAK,MAAM,YAAY,UACtB,KAAI,SAAS,iBAAiB;AAC7B,gBAAY,KAAK;KAChB,aAAa,SAAS,gBAAgB;KACtC,UAAU,MAAM,WAAW;IAC3B,EAAY;AACb;GACA;EACD;AAIF,MAAI,WAAW,UACd,aAAY,KAAK,WAAW,UAAU;AAIvC,MAAI,WAAW,2BACd;QAAK,MAAM,YAAY,UACtB,KAAI,SAAS,uBAAuB;AACnC,gBAAY,KAAK;KAChB,aAAa,SAAS,sBAAsB;KAC5C,UAAU,MAAM,WAAW;IAC3B,EAAY;AACb;GACA;EACD;AAGF,MAAI,YAAY,SAAS,EACxB,kBAAiB,SAAS,YAAY;AAGvC,WAAS,IAAI,IAAI,EAAE,iBAAkB,EAAC;CACtC;CAKD,MAAMC,WAA0B,CAAE;AAElC,MAAK,MAAM,YAAY,WAAW;EACjC,MAAM,SAAS,SAAS,OAAO,aAAa;AAC5C,OAAK,iBAAiB,SAAS,OAAO,CAAE;EAExC,MAAM,UAAU,EAAE,QAAQ,EAAE,SAAS,MAAM;EAC3C,MAAM,YAAY,KAAK;AAEvB,WAAS,KACR,UAAU,QAAQ,OAAO,EAAE,SAAS,KAAK;GACxC,MAAM,YAAY,QAAQ,QAAQ,IAAI,oBAAoB;GAC1D,MAAM,MAAM,YAAY,SAAS,IAAI,UAAU;AAE/C,QAAK,IACJ,QAAO,IAAI,SACV,KAAK,UAAU;IACd,OAAO;IACP,OAAO,WAAW,oBAAoB;GACtC,EAAC,EACF;IAAE,QAAQ;IAAK,SAAS,EAAE,gBAAgB,mBAAoB;GAAE;GAKlE,MAAM,MAAM,IAAI;AAChB,gBAAa,SAAS,UAAU,IAAI,kBAAyB,IAAI;GAEjE,MAAM,WAAW,MAAM,IAAI,QAAQ,QAAQ;AAE3C,UAAO,IAAI,SAAS,SAAS,MAAM;IAClC,QAAQ,SAAS;IACjB,YAAY,SAAS;IACrB,SAAS,SAAS;GAClB;EACD,EAAC,CACF;CACD;AAED,QAAO;EACN;EACA;CACA;AACD"}
@@ -0,0 +1,120 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_HonoEndpointAdaptor = require('./HonoEndpointAdaptor-B5fKdLi7.cjs');
3
+ const __geekmidas_services = require_chunk.__toESM(require("@geekmidas/services"));
4
+ const hono = require_chunk.__toESM(require("hono"));
5
+ const __geekmidas_envkit = require_chunk.__toESM(require("@geekmidas/envkit"));
6
+ const msw = require_chunk.__toESM(require("msw"));
7
+
8
+ //#region src/endpoints/MswEndpointAdaptor.ts
9
+ /**
10
+ * Header used to identify which test context a request belongs to.
11
+ * Each concurrent test registers its own context (services, db transaction, etc.)
12
+ * and the MSW handler looks it up by this header value.
13
+ */
14
+ const TEST_CONTEXT_HEADER = "x-test-context-id";
15
+ const MSW_HTTP_METHODS = [
16
+ "get",
17
+ "post",
18
+ "put",
19
+ "patch",
20
+ "delete",
21
+ "options"
22
+ ];
23
+ /**
24
+ * Creates MSW HTTP handlers from endpoint constructs.
25
+ *
26
+ * Mounts endpoints on a Hono app and creates MSW handlers that intercept
27
+ * fetch requests and route them through `app.request()` — giving frontend
28
+ * tests full endpoint behavior (validation, auth, sessions) without HTTP.
29
+ *
30
+ * Each test registers its own isolated context via `registerContext()`,
31
+ * which is resolved per-request using the `x-test-context-id` header.
32
+ * This allows concurrent tests with their own transactions and services.
33
+ *
34
+ * @param endpoints - Array of endpoint constructs to create handlers for
35
+ * @param options - Configuration including baseURL
36
+ * @returns MSW handlers, the Hono app, and context management functions
37
+ */
38
+ function createMswHandlers(endpoints, options) {
39
+ const { baseURL } = options;
40
+ const contexts = /* @__PURE__ */ new Map();
41
+ /**
42
+ * Register an isolated context for a test.
43
+ * Creates a fresh ServiceDiscovery and pre-registers all provided services.
44
+ */
45
+ function registerContext(id, ctxOptions) {
46
+ const envParser = new __geekmidas_envkit.EnvironmentParser({});
47
+ const serviceDiscovery = new __geekmidas_services.ServiceDiscovery(envParser);
48
+ const serviceDefs = [];
49
+ if (ctxOptions.services) for (const [name, instance] of Object.entries(ctxOptions.services)) serviceDefs.push({
50
+ serviceName: name,
51
+ register: () => instance
52
+ });
53
+ if (ctxOptions.database !== void 0) {
54
+ for (const endpoint of endpoints) if (endpoint.databaseService) {
55
+ serviceDefs.push({
56
+ serviceName: endpoint.databaseService.serviceName,
57
+ register: () => ctxOptions.database
58
+ });
59
+ break;
60
+ }
61
+ }
62
+ if (ctxOptions.publisher) serviceDefs.push(ctxOptions.publisher);
63
+ if (ctxOptions.auditorStorage !== void 0) {
64
+ for (const endpoint of endpoints) if (endpoint.auditorStorageService) {
65
+ serviceDefs.push({
66
+ serviceName: endpoint.auditorStorageService.serviceName,
67
+ register: () => ctxOptions.auditorStorage
68
+ });
69
+ break;
70
+ }
71
+ }
72
+ if (serviceDefs.length > 0) serviceDiscovery.register(serviceDefs);
73
+ contexts.set(id, { serviceDiscovery });
74
+ }
75
+ const handlers = [];
76
+ for (const endpoint of endpoints) {
77
+ const method = endpoint.method.toLowerCase();
78
+ if (!MSW_HTTP_METHODS.includes(method)) continue;
79
+ const mswUrl = `${baseURL}${endpoint.route}`;
80
+ const mswMethod = msw.http[method];
81
+ handlers.push(mswMethod(mswUrl, async ({ request }) => {
82
+ const contextId = request.headers.get(TEST_CONTEXT_HEADER);
83
+ const ctx = contextId ? contexts.get(contextId) : void 0;
84
+ if (!ctx) return new Response(JSON.stringify({
85
+ error: "Missing or unknown test context ID",
86
+ hint: `Set the '${TEST_CONTEXT_HEADER}' header to a registered context ID`
87
+ }), {
88
+ status: 500,
89
+ headers: { "content-type": "application/json" }
90
+ });
91
+ const app = new hono.Hono();
92
+ require_HonoEndpointAdaptor.HonoEndpoint.addRoute(endpoint, ctx.serviceDiscovery, app);
93
+ const response = await app.request(request);
94
+ return new Response(response.body, {
95
+ status: response.status,
96
+ statusText: response.statusText,
97
+ headers: response.headers
98
+ });
99
+ }));
100
+ }
101
+ return {
102
+ handlers,
103
+ registerContext
104
+ };
105
+ }
106
+
107
+ //#endregion
108
+ Object.defineProperty(exports, 'TEST_CONTEXT_HEADER', {
109
+ enumerable: true,
110
+ get: function () {
111
+ return TEST_CONTEXT_HEADER;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, 'createMswHandlers', {
115
+ enumerable: true,
116
+ get: function () {
117
+ return createMswHandlers;
118
+ }
119
+ });
120
+ //# sourceMappingURL=MswEndpointAdaptor-CA_fu6Wx.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MswEndpointAdaptor-CA_fu6Wx.cjs","names":["endpoints: Endpoint<any, any, any, any, any, any>[]","options: CreateMswHandlersOptions","id: string","ctxOptions: RegisterContextOptions","EnvironmentParser","ServiceDiscovery","serviceDefs: Service[]","handlers: HttpHandler[]","http","Hono"],"sources":["../src/endpoints/MswEndpointAdaptor.ts"],"sourcesContent":["import { EnvironmentParser } from '@geekmidas/envkit';\nimport type { Service } from '@geekmidas/services';\nimport { ServiceDiscovery } from '@geekmidas/services';\nimport { Hono } from 'hono';\nimport { type HttpHandler, http } from 'msw';\nimport type { Endpoint } from './Endpoint';\nimport { HonoEndpoint } from './HonoEndpointAdaptor';\n\n/**\n * Header used to identify which test context a request belongs to.\n * Each concurrent test registers its own context (services, db transaction, etc.)\n * and the MSW handler looks it up by this header value.\n */\nexport const TEST_CONTEXT_HEADER = 'x-test-context-id';\n\n/**\n * Per-test context containing an isolated ServiceDiscovery instance.\n * Registered in the context map and looked up per-request via the context ID header.\n */\nexport interface MswTestContext {\n\tserviceDiscovery: ServiceDiscovery<any>;\n}\n\n/**\n * Options for creating MSW handlers from endpoint constructs.\n *\n * @example\n * ```typescript\n * import { createMswHandlers, registerTestContext } from '@geekmidas/constructs/testing';\n * import { setupServer } from 'msw/node';\n *\n * // Create handlers once (global)\n * const { handlers, registerContext, removeContext } = createMswHandlers(\n * [getUsers, createUser],\n * { baseURL: 'http://localhost:3000' },\n * );\n * const server = setupServer(...handlers);\n *\n * // Per test: register an isolated context with its own services/transaction\n * it('should list users', async ({ db }) => {\n * const contextId = crypto.randomUUID();\n * registerContext(contextId, {\n * services: { database: db, auth: mockAuth },\n * });\n *\n * const api = createApi({\n * baseURL: 'http://localhost:3000',\n * headers: { [TEST_CONTEXT_HEADER]: contextId },\n * });\n *\n * const result = await api('GET /users');\n * expect(result).toBeDefined();\n *\n * removeContext(contextId);\n * });\n * ```\n */\nexport interface CreateMswHandlersOptions {\n\t/** Base URL the client fetches from (e.g., 'http://localhost:3000') */\n\tbaseURL: string;\n}\n\n/**\n * Options for registering a per-test context.\n * Follows the same pattern as TestRequestAdaptor — services, database,\n * publisher, and auditorStorage are provided explicitly.\n */\nexport interface RegisterContextOptions {\n\t/** Service instances keyed by serviceName */\n\tservices?: Record<string, unknown>;\n\t/** Database instance — required when endpoints use .database() */\n\tdatabase?: unknown;\n\t/** Event publisher service definition */\n\tpublisher?: Service;\n\t/** Audit storage instance — required when endpoints use .auditor() */\n\tauditorStorage?: unknown;\n}\n\nconst MSW_HTTP_METHODS = [\n\t'get',\n\t'post',\n\t'put',\n\t'patch',\n\t'delete',\n\t'options',\n] as const;\n\ntype MswHttpMethod = (typeof MSW_HTTP_METHODS)[number];\n\n/**\n * Result of creating MSW handlers from endpoint constructs.\n */\nexport interface CreateMswHandlersResult {\n\t/** MSW handlers to pass to setupServer() */\n\thandlers: HttpHandler[];\n\t/** Register an isolated context for a test */\n\tregisterContext: (id: string, options: RegisterContextOptions) => void;\n}\n\n/**\n * Creates MSW HTTP handlers from endpoint constructs.\n *\n * Mounts endpoints on a Hono app and creates MSW handlers that intercept\n * fetch requests and route them through `app.request()` — giving frontend\n * tests full endpoint behavior (validation, auth, sessions) without HTTP.\n *\n * Each test registers its own isolated context via `registerContext()`,\n * which is resolved per-request using the `x-test-context-id` header.\n * This allows concurrent tests with their own transactions and services.\n *\n * @param endpoints - Array of endpoint constructs to create handlers for\n * @param options - Configuration including baseURL\n * @returns MSW handlers, the Hono app, and context management functions\n */\nexport function createMswHandlers(\n\tendpoints: Endpoint<any, any, any, any, any, any>[],\n\toptions: CreateMswHandlersOptions,\n): CreateMswHandlersResult {\n\tconst { baseURL } = options;\n\tconst contexts = new Map<string, MswTestContext>();\n\n\t/**\n\t * Register an isolated context for a test.\n\t * Creates a fresh ServiceDiscovery and pre-registers all provided services.\n\t */\n\tfunction registerContext(id: string, ctxOptions: RegisterContextOptions) {\n\t\tconst envParser = new EnvironmentParser({});\n\t\tconst serviceDiscovery = new ServiceDiscovery(envParser);\n\n\t\tconst serviceDefs: Service[] = [];\n\n\t\t// Register explicit services\n\t\tif (ctxOptions.services) {\n\t\t\tfor (const [name, instance] of Object.entries(ctxOptions.services)) {\n\t\t\t\tserviceDefs.push({\n\t\t\t\t\tserviceName: name,\n\t\t\t\t\tregister: () => instance,\n\t\t\t\t} as Service);\n\t\t\t}\n\t\t}\n\n\t\t// Register database service from endpoint metadata\n\t\tif (ctxOptions.database !== undefined) {\n\t\t\tfor (const endpoint of endpoints) {\n\t\t\t\tif (endpoint.databaseService) {\n\t\t\t\t\tserviceDefs.push({\n\t\t\t\t\t\tserviceName: endpoint.databaseService.serviceName,\n\t\t\t\t\t\tregister: () => ctxOptions.database,\n\t\t\t\t\t} as Service);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Register publisher service\n\t\tif (ctxOptions.publisher) {\n\t\t\tserviceDefs.push(ctxOptions.publisher);\n\t\t}\n\n\t\t// Register auditor storage service from endpoint metadata\n\t\tif (ctxOptions.auditorStorage !== undefined) {\n\t\t\tfor (const endpoint of endpoints) {\n\t\t\t\tif (endpoint.auditorStorageService) {\n\t\t\t\t\tserviceDefs.push({\n\t\t\t\t\t\tserviceName: endpoint.auditorStorageService.serviceName,\n\t\t\t\t\t\tregister: () => ctxOptions.auditorStorage,\n\t\t\t\t\t} as Service);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (serviceDefs.length > 0) {\n\t\t\tserviceDiscovery.register(serviceDefs);\n\t\t}\n\n\t\tcontexts.set(id, { serviceDiscovery });\n\t}\n\n\t// Create a Hono app per-request that uses the correct ServiceDiscovery.\n\t// We use a wrapper app that resolves the context from the header,\n\t// then delegates to a context-specific Hono app.\n\tconst handlers: HttpHandler[] = [];\n\n\tfor (const endpoint of endpoints) {\n\t\tconst method = endpoint.method.toLowerCase() as MswHttpMethod;\n\t\tif (!MSW_HTTP_METHODS.includes(method)) continue;\n\n\t\tconst mswUrl = `${baseURL}${endpoint.route}`;\n\t\tconst mswMethod = http[method];\n\n\t\thandlers.push(\n\t\t\tmswMethod(mswUrl, async ({ request }) => {\n\t\t\t\tconst contextId = request.headers.get(TEST_CONTEXT_HEADER);\n\t\t\t\tconst ctx = contextId ? contexts.get(contextId) : undefined;\n\n\t\t\t\tif (!ctx) {\n\t\t\t\t\treturn new Response(\n\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\terror: 'Missing or unknown test context ID',\n\t\t\t\t\t\t\thint: `Set the '${TEST_CONTEXT_HEADER}' header to a registered context ID`,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{ status: 500, headers: { 'content-type': 'application/json' } },\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Build a fresh Hono app with this context's ServiceDiscovery\n\t\t\t\tconst app = new Hono();\n\t\t\t\tHonoEndpoint.addRoute(endpoint, ctx.serviceDiscovery as any, app);\n\n\t\t\t\tconst response = await app.request(request);\n\n\t\t\t\treturn new Response(response.body, {\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\theaders: response.headers,\n\t\t\t\t});\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn {\n\t\thandlers,\n\t\tregisterContext,\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;AAaA,MAAa,sBAAsB;AAiEnC,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;;;;;;;;;;;AA6BD,SAAgB,kBACfA,WACAC,SAC0B;CAC1B,MAAM,EAAE,SAAS,GAAG;CACpB,MAAM,2BAAW,IAAI;;;;;CAMrB,SAAS,gBAAgBC,IAAYC,YAAoC;EACxE,MAAM,YAAY,IAAIC,qCAAkB,CAAE;EAC1C,MAAM,mBAAmB,IAAIC,sCAAiB;EAE9C,MAAMC,cAAyB,CAAE;AAGjC,MAAI,WAAW,SACd,MAAK,MAAM,CAAC,MAAM,SAAS,IAAI,OAAO,QAAQ,WAAW,SAAS,CACjE,aAAY,KAAK;GAChB,aAAa;GACb,UAAU,MAAM;EAChB,EAAY;AAKf,MAAI,WAAW,qBACd;QAAK,MAAM,YAAY,UACtB,KAAI,SAAS,iBAAiB;AAC7B,gBAAY,KAAK;KAChB,aAAa,SAAS,gBAAgB;KACtC,UAAU,MAAM,WAAW;IAC3B,EAAY;AACb;GACA;EACD;AAIF,MAAI,WAAW,UACd,aAAY,KAAK,WAAW,UAAU;AAIvC,MAAI,WAAW,2BACd;QAAK,MAAM,YAAY,UACtB,KAAI,SAAS,uBAAuB;AACnC,gBAAY,KAAK;KAChB,aAAa,SAAS,sBAAsB;KAC5C,UAAU,MAAM,WAAW;IAC3B,EAAY;AACb;GACA;EACD;AAGF,MAAI,YAAY,SAAS,EACxB,kBAAiB,SAAS,YAAY;AAGvC,WAAS,IAAI,IAAI,EAAE,iBAAkB,EAAC;CACtC;CAKD,MAAMC,WAA0B,CAAE;AAElC,MAAK,MAAM,YAAY,WAAW;EACjC,MAAM,SAAS,SAAS,OAAO,aAAa;AAC5C,OAAK,iBAAiB,SAAS,OAAO,CAAE;EAExC,MAAM,UAAU,EAAE,QAAQ,EAAE,SAAS,MAAM;EAC3C,MAAM,YAAYC,SAAK;AAEvB,WAAS,KACR,UAAU,QAAQ,OAAO,EAAE,SAAS,KAAK;GACxC,MAAM,YAAY,QAAQ,QAAQ,IAAI,oBAAoB;GAC1D,MAAM,MAAM,YAAY,SAAS,IAAI,UAAU;AAE/C,QAAK,IACJ,QAAO,IAAI,SACV,KAAK,UAAU;IACd,OAAO;IACP,OAAO,WAAW,oBAAoB;GACtC,EAAC,EACF;IAAE,QAAQ;IAAK,SAAS,EAAE,gBAAgB,mBAAoB;GAAE;GAKlE,MAAM,MAAM,IAAIC;AAChB,4CAAa,SAAS,UAAU,IAAI,kBAAyB,IAAI;GAEjE,MAAM,WAAW,MAAM,IAAI,QAAQ,QAAQ;AAE3C,UAAO,IAAI,SAAS,SAAS,MAAM;IAClC,QAAQ,SAAS;IACjB,YAAY,SAAS;IACrB,SAAS,SAAS;GAClB;EACD,EAAC,CACF;CACD;AAED,QAAO;EACN;EACA;CACA;AACD"}