@mionjs/router 0.8.10 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. package/.dist/cjs/.mion/types/A0Qb_D32xQCR.cjs +16 -0
  2. package/.dist/cjs/.mion/types/A0Qb_D32xQCR.cjs.map +1 -0
  3. package/.dist/cjs/.mion/types/A0Qb_D5PMNNO.cjs +17 -0
  4. package/.dist/cjs/.mion/types/A0Qb_D5PMNNO.cjs.map +1 -0
  5. package/.dist/cjs/.mion/types/A0Qb_E1CjDEA.cjs +36 -0
  6. package/.dist/cjs/.mion/types/A0Qb_E1CjDEA.cjs.map +1 -0
  7. package/.dist/cjs/.mion/types/A0Qb_EYEglde.cjs +16 -0
  8. package/.dist/cjs/.mion/types/A0Qb_EYEglde.cjs.map +1 -0
  9. package/.dist/cjs/.mion/types/A0Qb_EyHLuYw.cjs +16 -0
  10. package/.dist/cjs/.mion/types/A0Qb_EyHLuYw.cjs.map +1 -0
  11. package/.dist/cjs/.mion/types/A0Qb_G42dZdW.cjs +16 -0
  12. package/.dist/cjs/.mion/types/A0Qb_G42dZdW.cjs.map +1 -0
  13. package/.dist/cjs/.mion/types/A0Qb_HSE8icr.cjs +16 -0
  14. package/.dist/cjs/.mion/types/A0Qb_HSE8icr.cjs.map +1 -0
  15. package/.dist/cjs/.mion/types/A0Qb_HXAy3Lx.cjs +13 -0
  16. package/.dist/cjs/.mion/types/A0Qb_HXAy3Lx.cjs.map +1 -0
  17. package/.dist/cjs/.mion/types/A0Qb_JJrCj9i.cjs +13 -0
  18. package/.dist/cjs/.mion/types/A0Qb_JJrCj9i.cjs.map +1 -0
  19. package/.dist/cjs/.mion/types/A0Qb_KDyf2Fa.cjs +16 -0
  20. package/.dist/cjs/.mion/types/A0Qb_KDyf2Fa.cjs.map +1 -0
  21. package/.dist/cjs/.mion/types/A0Qb_L3mQkaR.cjs +13 -0
  22. package/.dist/cjs/.mion/types/A0Qb_L3mQkaR.cjs.map +1 -0
  23. package/.dist/cjs/.mion/types/A0Qb_RAudOr2.cjs +13 -0
  24. package/.dist/cjs/.mion/types/A0Qb_RAudOr2.cjs.map +1 -0
  25. package/.dist/cjs/.mion/types/A0Qb_TRnIbow.cjs +17 -0
  26. package/.dist/cjs/.mion/types/A0Qb_TRnIbow.cjs.map +1 -0
  27. package/.dist/cjs/.mion/types/A0Qb_UOI3bXq.cjs +17 -0
  28. package/.dist/cjs/.mion/types/A0Qb_UOI3bXq.cjs.map +1 -0
  29. package/.dist/cjs/.mion/types/A0Qb_VsWxRKn.cjs +13 -0
  30. package/.dist/cjs/.mion/types/A0Qb_VsWxRKn.cjs.map +1 -0
  31. package/.dist/cjs/.mion/types/A0Qb_ZTKzxQG.cjs +16 -0
  32. package/.dist/cjs/.mion/types/A0Qb_ZTKzxQG.cjs.map +1 -0
  33. package/.dist/cjs/.mion/types/A0Qb_b4tYK8X.cjs +16 -0
  34. package/.dist/cjs/.mion/types/A0Qb_b4tYK8X.cjs.map +1 -0
  35. package/.dist/cjs/.mion/types/A0Qb_deFq9zY.cjs +26 -0
  36. package/.dist/cjs/.mion/types/A0Qb_deFq9zY.cjs.map +1 -0
  37. package/.dist/cjs/.mion/types/A0Qb_fMIJ1JT.cjs +14 -0
  38. package/.dist/cjs/.mion/types/A0Qb_fMIJ1JT.cjs.map +1 -0
  39. package/.dist/cjs/.mion/types/A0Qb_g17turq.cjs +13 -0
  40. package/.dist/cjs/.mion/types/A0Qb_g17turq.cjs.map +1 -0
  41. package/.dist/cjs/.mion/types/A0Qb_hqa3Nzs.cjs +14 -0
  42. package/.dist/cjs/.mion/types/A0Qb_hqa3Nzs.cjs.map +1 -0
  43. package/.dist/cjs/.mion/types/A0Qb_iKPrxW9.cjs +16 -0
  44. package/.dist/cjs/.mion/types/A0Qb_iKPrxW9.cjs.map +1 -0
  45. package/.dist/cjs/.mion/types/A0Qb_jLtJ5Kv.cjs +16 -0
  46. package/.dist/cjs/.mion/types/A0Qb_jLtJ5Kv.cjs.map +1 -0
  47. package/.dist/cjs/.mion/types/A0Qb_kibOHkN.cjs +14 -0
  48. package/.dist/cjs/.mion/types/A0Qb_kibOHkN.cjs.map +1 -0
  49. package/.dist/cjs/.mion/types/A0Qb_kz5ne4c.cjs +16 -0
  50. package/.dist/cjs/.mion/types/A0Qb_kz5ne4c.cjs.map +1 -0
  51. package/.dist/cjs/.mion/types/A0Qb_pzBRrJb.cjs +16 -0
  52. package/.dist/cjs/.mion/types/A0Qb_pzBRrJb.cjs.map +1 -0
  53. package/.dist/cjs/.mion/types/Eq2V_EYEglde.cjs +16 -0
  54. package/.dist/cjs/.mion/types/Eq2V_EYEglde.cjs.map +1 -0
  55. package/.dist/cjs/.mion/types/Eq2V_EyHLuYw.cjs +16 -0
  56. package/.dist/cjs/.mion/types/Eq2V_EyHLuYw.cjs.map +1 -0
  57. package/.dist/cjs/.mion/types/Eq2V_HSE8icr.cjs +16 -0
  58. package/.dist/cjs/.mion/types/Eq2V_HSE8icr.cjs.map +1 -0
  59. package/.dist/cjs/.mion/types/Eq2V_HXAy3Lx.cjs +13 -0
  60. package/.dist/cjs/.mion/types/Eq2V_HXAy3Lx.cjs.map +1 -0
  61. package/.dist/cjs/.mion/types/Eq2V_JJrCj9i.cjs +13 -0
  62. package/.dist/cjs/.mion/types/Eq2V_JJrCj9i.cjs.map +1 -0
  63. package/.dist/cjs/.mion/types/Eq2V_KDyf2Fa.cjs +16 -0
  64. package/.dist/cjs/.mion/types/Eq2V_KDyf2Fa.cjs.map +1 -0
  65. package/.dist/cjs/.mion/types/Eq2V_L3mQkaR.cjs +13 -0
  66. package/.dist/cjs/.mion/types/Eq2V_L3mQkaR.cjs.map +1 -0
  67. package/.dist/cjs/.mion/types/Eq2V_RAudOr2.cjs +13 -0
  68. package/.dist/cjs/.mion/types/Eq2V_RAudOr2.cjs.map +1 -0
  69. package/.dist/cjs/.mion/types/Eq2V_TRnIbow.cjs +17 -0
  70. package/.dist/cjs/.mion/types/Eq2V_TRnIbow.cjs.map +1 -0
  71. package/.dist/cjs/.mion/types/Eq2V_UOI3bXq.cjs +17 -0
  72. package/.dist/cjs/.mion/types/Eq2V_UOI3bXq.cjs.map +1 -0
  73. package/.dist/cjs/.mion/types/Eq2V_VsWxRKn.cjs +13 -0
  74. package/.dist/cjs/.mion/types/Eq2V_VsWxRKn.cjs.map +1 -0
  75. package/.dist/cjs/.mion/types/Eq2V_ZTKzxQG.cjs +16 -0
  76. package/.dist/cjs/.mion/types/Eq2V_ZTKzxQG.cjs.map +1 -0
  77. package/.dist/cjs/.mion/types/Eq2V_b4tYK8X.cjs +16 -0
  78. package/.dist/cjs/.mion/types/Eq2V_b4tYK8X.cjs.map +1 -0
  79. package/.dist/cjs/.mion/types/Eq2V_deFq9zY.cjs +26 -0
  80. package/.dist/cjs/.mion/types/Eq2V_deFq9zY.cjs.map +1 -0
  81. package/.dist/cjs/.mion/types/Eq2V_g17turq.cjs +13 -0
  82. package/.dist/cjs/.mion/types/Eq2V_g17turq.cjs.map +1 -0
  83. package/.dist/cjs/.mion/types/Eq2V_iKPrxW9.cjs +16 -0
  84. package/.dist/cjs/.mion/types/Eq2V_iKPrxW9.cjs.map +1 -0
  85. package/.dist/cjs/.mion/types/Eq2V_jLtJ5Kv.cjs +16 -0
  86. package/.dist/cjs/.mion/types/Eq2V_jLtJ5Kv.cjs.map +1 -0
  87. package/.dist/cjs/.mion/types/Eq2V_kz5ne4c.cjs +16 -0
  88. package/.dist/cjs/.mion/types/Eq2V_kz5ne4c.cjs.map +1 -0
  89. package/.dist/cjs/.mion/types/Eq2V_pzBRrJb.cjs +16 -0
  90. package/.dist/cjs/.mion/types/Eq2V_pzBRrJb.cjs.map +1 -0
  91. package/.dist/cjs/.mion/types/Ky89_D32xQCR.cjs +16 -0
  92. package/.dist/cjs/.mion/types/Ky89_D32xQCR.cjs.map +1 -0
  93. package/.dist/cjs/.mion/types/Ky89_D5PMNNO.cjs +16 -0
  94. package/.dist/cjs/.mion/types/Ky89_D5PMNNO.cjs.map +1 -0
  95. package/.dist/cjs/.mion/types/Ky89_E1CjDEA.cjs +32 -0
  96. package/.dist/cjs/.mion/types/Ky89_E1CjDEA.cjs.map +1 -0
  97. package/.dist/cjs/.mion/types/Ky89_EYEglde.cjs +16 -0
  98. package/.dist/cjs/.mion/types/Ky89_EYEglde.cjs.map +1 -0
  99. package/.dist/cjs/.mion/types/Ky89_EyHLuYw.cjs +16 -0
  100. package/.dist/cjs/.mion/types/Ky89_EyHLuYw.cjs.map +1 -0
  101. package/.dist/cjs/.mion/types/Ky89_G42dZdW.cjs +16 -0
  102. package/.dist/cjs/.mion/types/Ky89_G42dZdW.cjs.map +1 -0
  103. package/.dist/cjs/.mion/types/Ky89_HSE8icr.cjs +16 -0
  104. package/.dist/cjs/.mion/types/Ky89_HSE8icr.cjs.map +1 -0
  105. package/.dist/cjs/.mion/types/Ky89_JJrCj9i.cjs +13 -0
  106. package/.dist/cjs/.mion/types/Ky89_JJrCj9i.cjs.map +1 -0
  107. package/.dist/cjs/.mion/types/Ky89_KDyf2Fa.cjs +16 -0
  108. package/.dist/cjs/.mion/types/Ky89_KDyf2Fa.cjs.map +1 -0
  109. package/.dist/cjs/.mion/types/Ky89_L3mQkaR.cjs +13 -0
  110. package/.dist/cjs/.mion/types/Ky89_L3mQkaR.cjs.map +1 -0
  111. package/.dist/cjs/.mion/types/Ky89_RAudOr2.cjs +13 -0
  112. package/.dist/cjs/.mion/types/Ky89_RAudOr2.cjs.map +1 -0
  113. package/.dist/cjs/.mion/types/Ky89_TRnIbow.cjs +13 -0
  114. package/.dist/cjs/.mion/types/Ky89_TRnIbow.cjs.map +1 -0
  115. package/.dist/cjs/.mion/types/Ky89_UOI3bXq.cjs +17 -0
  116. package/.dist/cjs/.mion/types/Ky89_UOI3bXq.cjs.map +1 -0
  117. package/.dist/cjs/.mion/types/Ky89_ZTKzxQG.cjs +16 -0
  118. package/.dist/cjs/.mion/types/Ky89_ZTKzxQG.cjs.map +1 -0
  119. package/.dist/cjs/.mion/types/Ky89_b4tYK8X.cjs +16 -0
  120. package/.dist/cjs/.mion/types/Ky89_b4tYK8X.cjs.map +1 -0
  121. package/.dist/cjs/.mion/types/Ky89_deFq9zY.cjs +26 -0
  122. package/.dist/cjs/.mion/types/Ky89_deFq9zY.cjs.map +1 -0
  123. package/.dist/cjs/.mion/types/Ky89_fMIJ1JT.cjs +13 -0
  124. package/.dist/cjs/.mion/types/Ky89_fMIJ1JT.cjs.map +1 -0
  125. package/.dist/cjs/.mion/types/Ky89_g17turq.cjs +13 -0
  126. package/.dist/cjs/.mion/types/Ky89_g17turq.cjs.map +1 -0
  127. package/.dist/cjs/.mion/types/Ky89_hqa3Nzs.cjs +14 -0
  128. package/.dist/cjs/.mion/types/Ky89_hqa3Nzs.cjs.map +1 -0
  129. package/.dist/cjs/.mion/types/Ky89_iKPrxW9.cjs +16 -0
  130. package/.dist/cjs/.mion/types/Ky89_iKPrxW9.cjs.map +1 -0
  131. package/.dist/cjs/.mion/types/Ky89_jLtJ5Kv.cjs +16 -0
  132. package/.dist/cjs/.mion/types/Ky89_jLtJ5Kv.cjs.map +1 -0
  133. package/.dist/cjs/.mion/types/Ky89_kibOHkN.cjs +13 -0
  134. package/.dist/cjs/.mion/types/Ky89_kibOHkN.cjs.map +1 -0
  135. package/.dist/cjs/.mion/types/Ky89_kz5ne4c.cjs +16 -0
  136. package/.dist/cjs/.mion/types/Ky89_kz5ne4c.cjs.map +1 -0
  137. package/.dist/cjs/.mion/types/Ky89_pzBRrJb.cjs +16 -0
  138. package/.dist/cjs/.mion/types/Ky89_pzBRrJb.cjs.map +1 -0
  139. package/.dist/cjs/.mion/types/OBOg_D32xQCR.cjs +23 -0
  140. package/.dist/cjs/.mion/types/OBOg_D32xQCR.cjs.map +1 -0
  141. package/.dist/cjs/.mion/types/OBOg_D5PMNNO.cjs +18 -0
  142. package/.dist/cjs/.mion/types/OBOg_D5PMNNO.cjs.map +1 -0
  143. package/.dist/cjs/.mion/types/OBOg_E1CjDEA.cjs +18 -0
  144. package/.dist/cjs/.mion/types/OBOg_E1CjDEA.cjs.map +1 -0
  145. package/.dist/cjs/.mion/types/OBOg_G42dZdW.cjs +18 -0
  146. package/.dist/cjs/.mion/types/OBOg_G42dZdW.cjs.map +1 -0
  147. package/.dist/cjs/.mion/types/OBOg_LKYfhxm.cjs +18 -0
  148. package/.dist/cjs/.mion/types/OBOg_LKYfhxm.cjs.map +1 -0
  149. package/.dist/cjs/.mion/types/OBOg_fMIJ1JT.cjs +18 -0
  150. package/.dist/cjs/.mion/types/OBOg_fMIJ1JT.cjs.map +1 -0
  151. package/.dist/cjs/.mion/types/OBOg_g17turq.cjs +17 -0
  152. package/.dist/cjs/.mion/types/OBOg_g17turq.cjs.map +1 -0
  153. package/.dist/cjs/.mion/types/OBOg_hqa3Nzs.cjs +17 -0
  154. package/.dist/cjs/.mion/types/OBOg_hqa3Nzs.cjs.map +1 -0
  155. package/.dist/cjs/.mion/types/OBOg_kibOHkN.cjs +17 -0
  156. package/.dist/cjs/.mion/types/OBOg_kibOHkN.cjs.map +1 -0
  157. package/.dist/cjs/.mion/types/Xhuv_D32xQCR.cjs +16 -0
  158. package/.dist/cjs/.mion/types/Xhuv_D32xQCR.cjs.map +1 -0
  159. package/.dist/cjs/.mion/types/Xhuv_D5PMNNO.cjs +16 -0
  160. package/.dist/cjs/.mion/types/Xhuv_D5PMNNO.cjs.map +1 -0
  161. package/.dist/cjs/.mion/types/Xhuv_E1CjDEA.cjs +29 -0
  162. package/.dist/cjs/.mion/types/Xhuv_E1CjDEA.cjs.map +1 -0
  163. package/.dist/cjs/.mion/types/Xhuv_EYEglde.cjs +16 -0
  164. package/.dist/cjs/.mion/types/Xhuv_EYEglde.cjs.map +1 -0
  165. package/.dist/cjs/.mion/types/Xhuv_EyHLuYw.cjs +16 -0
  166. package/.dist/cjs/.mion/types/Xhuv_EyHLuYw.cjs.map +1 -0
  167. package/.dist/cjs/.mion/types/Xhuv_G42dZdW.cjs +16 -0
  168. package/.dist/cjs/.mion/types/Xhuv_G42dZdW.cjs.map +1 -0
  169. package/.dist/cjs/.mion/types/Xhuv_HSE8icr.cjs +16 -0
  170. package/.dist/cjs/.mion/types/Xhuv_HSE8icr.cjs.map +1 -0
  171. package/.dist/cjs/.mion/types/Xhuv_HXAy3Lx.cjs +13 -0
  172. package/.dist/cjs/.mion/types/Xhuv_HXAy3Lx.cjs.map +1 -0
  173. package/.dist/cjs/.mion/types/Xhuv_JJrCj9i.cjs +13 -0
  174. package/.dist/cjs/.mion/types/Xhuv_JJrCj9i.cjs.map +1 -0
  175. package/.dist/cjs/.mion/types/Xhuv_KDyf2Fa.cjs +16 -0
  176. package/.dist/cjs/.mion/types/Xhuv_KDyf2Fa.cjs.map +1 -0
  177. package/.dist/cjs/.mion/types/Xhuv_L3mQkaR.cjs +13 -0
  178. package/.dist/cjs/.mion/types/Xhuv_L3mQkaR.cjs.map +1 -0
  179. package/.dist/cjs/.mion/types/Xhuv_LKYfhxm.cjs +13 -0
  180. package/.dist/cjs/.mion/types/Xhuv_LKYfhxm.cjs.map +1 -0
  181. package/.dist/cjs/.mion/types/Xhuv_RAudOr2.cjs +13 -0
  182. package/.dist/cjs/.mion/types/Xhuv_RAudOr2.cjs.map +1 -0
  183. package/.dist/cjs/.mion/types/Xhuv_TRnIbow.cjs +17 -0
  184. package/.dist/cjs/.mion/types/Xhuv_TRnIbow.cjs.map +1 -0
  185. package/.dist/cjs/.mion/types/Xhuv_UOI3bXq.cjs +17 -0
  186. package/.dist/cjs/.mion/types/Xhuv_UOI3bXq.cjs.map +1 -0
  187. package/.dist/cjs/.mion/types/Xhuv_VsWxRKn.cjs +13 -0
  188. package/.dist/cjs/.mion/types/Xhuv_VsWxRKn.cjs.map +1 -0
  189. package/.dist/cjs/.mion/types/Xhuv_ZTKzxQG.cjs +16 -0
  190. package/.dist/cjs/.mion/types/Xhuv_ZTKzxQG.cjs.map +1 -0
  191. package/.dist/cjs/.mion/types/Xhuv_ZgsWs6s.cjs +13 -0
  192. package/.dist/cjs/.mion/types/Xhuv_ZgsWs6s.cjs.map +1 -0
  193. package/.dist/cjs/.mion/types/Xhuv_b4tYK8X.cjs +16 -0
  194. package/.dist/cjs/.mion/types/Xhuv_b4tYK8X.cjs.map +1 -0
  195. package/.dist/cjs/.mion/types/Xhuv_deFq9zY.cjs +26 -0
  196. package/.dist/cjs/.mion/types/Xhuv_deFq9zY.cjs.map +1 -0
  197. package/.dist/cjs/.mion/types/Xhuv_fMIJ1JT.cjs +16 -0
  198. package/.dist/cjs/.mion/types/Xhuv_fMIJ1JT.cjs.map +1 -0
  199. package/.dist/cjs/.mion/types/Xhuv_g17turq.cjs +13 -0
  200. package/.dist/cjs/.mion/types/Xhuv_g17turq.cjs.map +1 -0
  201. package/.dist/cjs/.mion/types/Xhuv_hqa3Nzs.cjs +13 -0
  202. package/.dist/cjs/.mion/types/Xhuv_hqa3Nzs.cjs.map +1 -0
  203. package/.dist/cjs/.mion/types/Xhuv_iKPrxW9.cjs +16 -0
  204. package/.dist/cjs/.mion/types/Xhuv_iKPrxW9.cjs.map +1 -0
  205. package/.dist/cjs/.mion/types/Xhuv_jLtJ5Kv.cjs +16 -0
  206. package/.dist/cjs/.mion/types/Xhuv_jLtJ5Kv.cjs.map +1 -0
  207. package/.dist/cjs/.mion/types/Xhuv_kibOHkN.cjs +13 -0
  208. package/.dist/cjs/.mion/types/Xhuv_kibOHkN.cjs.map +1 -0
  209. package/.dist/cjs/.mion/types/Xhuv_kz5ne4c.cjs +16 -0
  210. package/.dist/cjs/.mion/types/Xhuv_kz5ne4c.cjs.map +1 -0
  211. package/.dist/cjs/.mion/types/Xhuv_pzBRrJb.cjs +16 -0
  212. package/.dist/cjs/.mion/types/Xhuv_pzBRrJb.cjs.map +1 -0
  213. package/.dist/cjs/.mion/types/mzca_fMIJ1JT.cjs +14 -0
  214. package/.dist/cjs/.mion/types/mzca_fMIJ1JT.cjs.map +1 -0
  215. package/.dist/cjs/.mion/types/mzca_hqa3Nzs.cjs +14 -0
  216. package/.dist/cjs/.mion/types/mzca_hqa3Nzs.cjs.map +1 -0
  217. package/.dist/cjs/.mion/types/mzca_kibOHkN.cjs +14 -0
  218. package/.dist/cjs/.mion/types/mzca_kibOHkN.cjs.map +1 -0
  219. package/.dist/cjs/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.cjs +14 -0
  220. package/.dist/cjs/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.cjs.map +1 -0
  221. package/.dist/cjs/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.cjs +14 -0
  222. package/.dist/cjs/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.cjs.map +1 -0
  223. package/.dist/cjs/.mion/types/rt/C7ezVBCtGn.cjs +498 -0
  224. package/.dist/cjs/.mion/types/rt/C7ezVBCtGn.cjs.map +1 -0
  225. package/.dist/cjs/.mion/types/rt/VIdAjpHu1X.cjs +526 -0
  226. package/.dist/cjs/.mion/types/rt/VIdAjpHu1X.cjs.map +1 -0
  227. package/.dist/cjs/.mion/types/rt/eF4wQzU6Fd.cjs +876 -0
  228. package/.dist/cjs/.mion/types/rt/eF4wQzU6Fd.cjs.map +1 -0
  229. package/.dist/cjs/.mion/types/rt/shared/JQEexHbHMp.cjs +467 -0
  230. package/.dist/cjs/.mion/types/rt/shared/JQEexHbHMp.cjs.map +1 -0
  231. package/.dist/cjs/.mion/types/rt/shared/connsmWgsp.cjs +1475 -0
  232. package/.dist/cjs/.mion/types/rt/shared/connsmWgsp.cjs.map +1 -0
  233. package/.dist/cjs/index.cjs +115 -153
  234. package/.dist/cjs/index.d.ts +5 -4
  235. package/.dist/cjs/middlewares.cjs +5 -0
  236. package/.dist/cjs/middlewares.d.ts +3 -0
  237. package/.dist/cjs/src/batches.cjs +332 -0
  238. package/.dist/cjs/src/batches.cjs.map +1 -0
  239. package/.dist/cjs/src/batches.d.ts +22 -0
  240. package/.dist/cjs/src/callContext.cjs +72 -116
  241. package/.dist/cjs/src/callContext.cjs.map +1 -1
  242. package/.dist/cjs/src/callContext.d.ts +5 -8
  243. package/.dist/cjs/src/constants.cjs +22 -41
  244. package/.dist/cjs/src/constants.cjs.map +1 -1
  245. package/.dist/cjs/src/constants.d.ts +1 -7
  246. package/.dist/cjs/src/dispatch.cjs +227 -129
  247. package/.dist/cjs/src/dispatch.cjs.map +1 -1
  248. package/.dist/cjs/src/dispatch.d.ts +8 -2
  249. package/.dist/cjs/src/lib/bodyLimit.cjs +37 -0
  250. package/.dist/cjs/src/lib/bodyLimit.cjs.map +1 -0
  251. package/.dist/cjs/src/lib/bodyLimit.d.ts +5 -0
  252. package/.dist/cjs/src/lib/bodyReader.cjs +79 -0
  253. package/.dist/cjs/src/lib/bodyReader.cjs.map +1 -0
  254. package/.dist/cjs/src/lib/bodyReader.d.ts +10 -0
  255. package/.dist/cjs/src/lib/dispatchError.cjs +77 -34
  256. package/.dist/cjs/src/lib/dispatchError.cjs.map +1 -1
  257. package/.dist/cjs/src/lib/dispatchError.d.ts +6 -2
  258. package/.dist/cjs/src/lib/handlers.cjs +91 -44
  259. package/.dist/cjs/src/lib/handlers.cjs.map +1 -1
  260. package/.dist/cjs/src/lib/handlers.d.ts +14 -9
  261. package/.dist/cjs/src/lib/headers.cjs +172 -55
  262. package/.dist/cjs/src/lib/headers.cjs.map +1 -1
  263. package/.dist/cjs/src/lib/headers.d.ts +40 -1
  264. package/.dist/cjs/src/lib/queryBody.cjs +25 -29
  265. package/.dist/cjs/src/lib/queryBody.cjs.map +1 -1
  266. package/.dist/cjs/src/lib/queryBody.d.ts +0 -1
  267. package/.dist/cjs/src/lib/reflection.cjs +78 -371
  268. package/.dist/cjs/src/lib/reflection.cjs.map +1 -1
  269. package/.dist/cjs/src/lib/reflection.d.ts +12 -9
  270. package/.dist/cjs/src/lib/remoteMethods.cjs +104 -104
  271. package/.dist/cjs/src/lib/remoteMethods.cjs.map +1 -1
  272. package/.dist/cjs/src/lib/remoteMethods.d.ts +4 -4
  273. package/.dist/cjs/src/lib/urlQuery.cjs +24 -0
  274. package/.dist/cjs/src/lib/urlQuery.cjs.map +1 -0
  275. package/.dist/cjs/src/lib/urlQuery.d.ts +2 -0
  276. package/.dist/cjs/src/middlewares/fetchMetadata.cjs +99 -0
  277. package/.dist/cjs/src/middlewares/fetchMetadata.cjs.map +1 -0
  278. package/.dist/cjs/src/middlewares/fetchMetadata.d.ts +15 -0
  279. package/.dist/cjs/src/middlewares/syncRoutes.cjs +67 -0
  280. package/.dist/cjs/src/middlewares/syncRoutes.cjs.map +1 -0
  281. package/.dist/cjs/src/middlewares/syncRoutes.d.ts +12 -0
  282. package/.dist/cjs/src/router.cjs +506 -432
  283. package/.dist/cjs/src/router.cjs.map +1 -1
  284. package/.dist/cjs/src/router.d.ts +27 -19
  285. package/.dist/cjs/src/routes/errors.routes.cjs +81 -46
  286. package/.dist/cjs/src/routes/errors.routes.cjs.map +1 -1
  287. package/.dist/cjs/src/routes/errors.routes.d.ts +14 -3
  288. package/.dist/cjs/src/routes/serializer.routes.cjs +107 -176
  289. package/.dist/cjs/src/routes/serializer.routes.cjs.map +1 -1
  290. package/.dist/cjs/src/routes/serializer.routes.d.ts +3 -3
  291. package/.dist/cjs/src/types/context.cjs +0 -31
  292. package/.dist/cjs/src/types/context.d.ts +13 -21
  293. package/.dist/cjs/src/types/definitions.cjs +0 -15
  294. package/.dist/cjs/src/types/definitions.d.ts +32 -20
  295. package/.dist/cjs/src/types/general.cjs +0 -14
  296. package/.dist/cjs/src/types/general.d.ts +15 -15
  297. package/.dist/cjs/src/types/guards.cjs +31 -38
  298. package/.dist/cjs/src/types/guards.cjs.map +1 -1
  299. package/.dist/cjs/src/types/guards.d.ts +7 -7
  300. package/.dist/cjs/src/types/handlers.cjs +0 -13
  301. package/.dist/cjs/src/types/handlers.d.ts +8 -5
  302. package/.dist/cjs/src/types/mionRouter.cjs +0 -0
  303. package/.dist/cjs/src/types/mionRouter.d.ts +44 -0
  304. package/.dist/cjs/src/types/parser.cjs +0 -0
  305. package/.dist/cjs/src/types/parser.d.ts +43 -0
  306. package/.dist/cjs/src/types/publicMethods.cjs +0 -24
  307. package/.dist/cjs/src/types/publicMethods.d.ts +65 -25
  308. package/.dist/cjs/src/types/remoteMethods.cjs +0 -25
  309. package/.dist/cjs/src/types/remoteMethods.d.ts +49 -29
  310. package/.dist/cjs/src/types/resolvedOptions.cjs +0 -0
  311. package/.dist/cjs/src/types/resolvedOptions.d.ts +28 -0
  312. package/.dist/esm/.mion/types/A0Qb_D32xQCR.js +16 -0
  313. package/.dist/esm/.mion/types/A0Qb_D32xQCR.js.map +1 -0
  314. package/.dist/esm/.mion/types/A0Qb_D5PMNNO.js +17 -0
  315. package/.dist/esm/.mion/types/A0Qb_D5PMNNO.js.map +1 -0
  316. package/.dist/esm/.mion/types/A0Qb_E1CjDEA.js +36 -0
  317. package/.dist/esm/.mion/types/A0Qb_E1CjDEA.js.map +1 -0
  318. package/.dist/esm/.mion/types/A0Qb_EYEglde.js +16 -0
  319. package/.dist/esm/.mion/types/A0Qb_EYEglde.js.map +1 -0
  320. package/.dist/esm/.mion/types/A0Qb_EyHLuYw.js +16 -0
  321. package/.dist/esm/.mion/types/A0Qb_EyHLuYw.js.map +1 -0
  322. package/.dist/esm/.mion/types/A0Qb_G42dZdW.js +16 -0
  323. package/.dist/esm/.mion/types/A0Qb_G42dZdW.js.map +1 -0
  324. package/.dist/esm/.mion/types/A0Qb_HSE8icr.js +16 -0
  325. package/.dist/esm/.mion/types/A0Qb_HSE8icr.js.map +1 -0
  326. package/.dist/esm/.mion/types/A0Qb_HXAy3Lx.js +13 -0
  327. package/.dist/esm/.mion/types/A0Qb_HXAy3Lx.js.map +1 -0
  328. package/.dist/esm/.mion/types/A0Qb_JJrCj9i.js +13 -0
  329. package/.dist/esm/.mion/types/A0Qb_JJrCj9i.js.map +1 -0
  330. package/.dist/esm/.mion/types/A0Qb_KDyf2Fa.js +16 -0
  331. package/.dist/esm/.mion/types/A0Qb_KDyf2Fa.js.map +1 -0
  332. package/.dist/esm/.mion/types/A0Qb_L3mQkaR.js +13 -0
  333. package/.dist/esm/.mion/types/A0Qb_L3mQkaR.js.map +1 -0
  334. package/.dist/esm/.mion/types/A0Qb_RAudOr2.js +13 -0
  335. package/.dist/esm/.mion/types/A0Qb_RAudOr2.js.map +1 -0
  336. package/.dist/esm/.mion/types/A0Qb_TRnIbow.js +17 -0
  337. package/.dist/esm/.mion/types/A0Qb_TRnIbow.js.map +1 -0
  338. package/.dist/esm/.mion/types/A0Qb_UOI3bXq.js +17 -0
  339. package/.dist/esm/.mion/types/A0Qb_UOI3bXq.js.map +1 -0
  340. package/.dist/esm/.mion/types/A0Qb_VsWxRKn.js +13 -0
  341. package/.dist/esm/.mion/types/A0Qb_VsWxRKn.js.map +1 -0
  342. package/.dist/esm/.mion/types/A0Qb_ZTKzxQG.js +16 -0
  343. package/.dist/esm/.mion/types/A0Qb_ZTKzxQG.js.map +1 -0
  344. package/.dist/esm/.mion/types/A0Qb_b4tYK8X.js +16 -0
  345. package/.dist/esm/.mion/types/A0Qb_b4tYK8X.js.map +1 -0
  346. package/.dist/esm/.mion/types/A0Qb_deFq9zY.js +26 -0
  347. package/.dist/esm/.mion/types/A0Qb_deFq9zY.js.map +1 -0
  348. package/.dist/esm/.mion/types/A0Qb_fMIJ1JT.js +14 -0
  349. package/.dist/esm/.mion/types/A0Qb_fMIJ1JT.js.map +1 -0
  350. package/.dist/esm/.mion/types/A0Qb_g17turq.js +13 -0
  351. package/.dist/esm/.mion/types/A0Qb_g17turq.js.map +1 -0
  352. package/.dist/esm/.mion/types/A0Qb_hqa3Nzs.js +14 -0
  353. package/.dist/esm/.mion/types/A0Qb_hqa3Nzs.js.map +1 -0
  354. package/.dist/esm/.mion/types/A0Qb_iKPrxW9.js +16 -0
  355. package/.dist/esm/.mion/types/A0Qb_iKPrxW9.js.map +1 -0
  356. package/.dist/esm/.mion/types/A0Qb_jLtJ5Kv.js +16 -0
  357. package/.dist/esm/.mion/types/A0Qb_jLtJ5Kv.js.map +1 -0
  358. package/.dist/esm/.mion/types/A0Qb_kibOHkN.js +14 -0
  359. package/.dist/esm/.mion/types/A0Qb_kibOHkN.js.map +1 -0
  360. package/.dist/esm/.mion/types/A0Qb_kz5ne4c.js +16 -0
  361. package/.dist/esm/.mion/types/A0Qb_kz5ne4c.js.map +1 -0
  362. package/.dist/esm/.mion/types/A0Qb_pzBRrJb.js +16 -0
  363. package/.dist/esm/.mion/types/A0Qb_pzBRrJb.js.map +1 -0
  364. package/.dist/esm/.mion/types/Eq2V_EYEglde.js +16 -0
  365. package/.dist/esm/.mion/types/Eq2V_EYEglde.js.map +1 -0
  366. package/.dist/esm/.mion/types/Eq2V_EyHLuYw.js +16 -0
  367. package/.dist/esm/.mion/types/Eq2V_EyHLuYw.js.map +1 -0
  368. package/.dist/esm/.mion/types/Eq2V_HSE8icr.js +16 -0
  369. package/.dist/esm/.mion/types/Eq2V_HSE8icr.js.map +1 -0
  370. package/.dist/esm/.mion/types/Eq2V_HXAy3Lx.js +13 -0
  371. package/.dist/esm/.mion/types/Eq2V_HXAy3Lx.js.map +1 -0
  372. package/.dist/esm/.mion/types/Eq2V_JJrCj9i.js +13 -0
  373. package/.dist/esm/.mion/types/Eq2V_JJrCj9i.js.map +1 -0
  374. package/.dist/esm/.mion/types/Eq2V_KDyf2Fa.js +16 -0
  375. package/.dist/esm/.mion/types/Eq2V_KDyf2Fa.js.map +1 -0
  376. package/.dist/esm/.mion/types/Eq2V_L3mQkaR.js +13 -0
  377. package/.dist/esm/.mion/types/Eq2V_L3mQkaR.js.map +1 -0
  378. package/.dist/esm/.mion/types/Eq2V_RAudOr2.js +13 -0
  379. package/.dist/esm/.mion/types/Eq2V_RAudOr2.js.map +1 -0
  380. package/.dist/esm/.mion/types/Eq2V_TRnIbow.js +17 -0
  381. package/.dist/esm/.mion/types/Eq2V_TRnIbow.js.map +1 -0
  382. package/.dist/esm/.mion/types/Eq2V_UOI3bXq.js +17 -0
  383. package/.dist/esm/.mion/types/Eq2V_UOI3bXq.js.map +1 -0
  384. package/.dist/esm/.mion/types/Eq2V_VsWxRKn.js +13 -0
  385. package/.dist/esm/.mion/types/Eq2V_VsWxRKn.js.map +1 -0
  386. package/.dist/esm/.mion/types/Eq2V_ZTKzxQG.js +16 -0
  387. package/.dist/esm/.mion/types/Eq2V_ZTKzxQG.js.map +1 -0
  388. package/.dist/esm/.mion/types/Eq2V_b4tYK8X.js +16 -0
  389. package/.dist/esm/.mion/types/Eq2V_b4tYK8X.js.map +1 -0
  390. package/.dist/esm/.mion/types/Eq2V_deFq9zY.js +26 -0
  391. package/.dist/esm/.mion/types/Eq2V_deFq9zY.js.map +1 -0
  392. package/.dist/esm/.mion/types/Eq2V_g17turq.js +13 -0
  393. package/.dist/esm/.mion/types/Eq2V_g17turq.js.map +1 -0
  394. package/.dist/esm/.mion/types/Eq2V_iKPrxW9.js +16 -0
  395. package/.dist/esm/.mion/types/Eq2V_iKPrxW9.js.map +1 -0
  396. package/.dist/esm/.mion/types/Eq2V_jLtJ5Kv.js +16 -0
  397. package/.dist/esm/.mion/types/Eq2V_jLtJ5Kv.js.map +1 -0
  398. package/.dist/esm/.mion/types/Eq2V_kz5ne4c.js +16 -0
  399. package/.dist/esm/.mion/types/Eq2V_kz5ne4c.js.map +1 -0
  400. package/.dist/esm/.mion/types/Eq2V_pzBRrJb.js +16 -0
  401. package/.dist/esm/.mion/types/Eq2V_pzBRrJb.js.map +1 -0
  402. package/.dist/esm/.mion/types/Ky89_D32xQCR.js +16 -0
  403. package/.dist/esm/.mion/types/Ky89_D32xQCR.js.map +1 -0
  404. package/.dist/esm/.mion/types/Ky89_D5PMNNO.js +16 -0
  405. package/.dist/esm/.mion/types/Ky89_D5PMNNO.js.map +1 -0
  406. package/.dist/esm/.mion/types/Ky89_E1CjDEA.js +32 -0
  407. package/.dist/esm/.mion/types/Ky89_E1CjDEA.js.map +1 -0
  408. package/.dist/esm/.mion/types/Ky89_EYEglde.js +16 -0
  409. package/.dist/esm/.mion/types/Ky89_EYEglde.js.map +1 -0
  410. package/.dist/esm/.mion/types/Ky89_EyHLuYw.js +16 -0
  411. package/.dist/esm/.mion/types/Ky89_EyHLuYw.js.map +1 -0
  412. package/.dist/esm/.mion/types/Ky89_G42dZdW.js +16 -0
  413. package/.dist/esm/.mion/types/Ky89_G42dZdW.js.map +1 -0
  414. package/.dist/esm/.mion/types/Ky89_HSE8icr.js +16 -0
  415. package/.dist/esm/.mion/types/Ky89_HSE8icr.js.map +1 -0
  416. package/.dist/esm/.mion/types/Ky89_JJrCj9i.js +13 -0
  417. package/.dist/esm/.mion/types/Ky89_JJrCj9i.js.map +1 -0
  418. package/.dist/esm/.mion/types/Ky89_KDyf2Fa.js +16 -0
  419. package/.dist/esm/.mion/types/Ky89_KDyf2Fa.js.map +1 -0
  420. package/.dist/esm/.mion/types/Ky89_L3mQkaR.js +13 -0
  421. package/.dist/esm/.mion/types/Ky89_L3mQkaR.js.map +1 -0
  422. package/.dist/esm/.mion/types/Ky89_RAudOr2.js +13 -0
  423. package/.dist/esm/.mion/types/Ky89_RAudOr2.js.map +1 -0
  424. package/.dist/esm/.mion/types/Ky89_TRnIbow.js +13 -0
  425. package/.dist/esm/.mion/types/Ky89_TRnIbow.js.map +1 -0
  426. package/.dist/esm/.mion/types/Ky89_UOI3bXq.js +17 -0
  427. package/.dist/esm/.mion/types/Ky89_UOI3bXq.js.map +1 -0
  428. package/.dist/esm/.mion/types/Ky89_ZTKzxQG.js +16 -0
  429. package/.dist/esm/.mion/types/Ky89_ZTKzxQG.js.map +1 -0
  430. package/.dist/esm/.mion/types/Ky89_b4tYK8X.js +16 -0
  431. package/.dist/esm/.mion/types/Ky89_b4tYK8X.js.map +1 -0
  432. package/.dist/esm/.mion/types/Ky89_deFq9zY.js +26 -0
  433. package/.dist/esm/.mion/types/Ky89_deFq9zY.js.map +1 -0
  434. package/.dist/esm/.mion/types/Ky89_fMIJ1JT.js +13 -0
  435. package/.dist/esm/.mion/types/Ky89_fMIJ1JT.js.map +1 -0
  436. package/.dist/esm/.mion/types/Ky89_g17turq.js +13 -0
  437. package/.dist/esm/.mion/types/Ky89_g17turq.js.map +1 -0
  438. package/.dist/esm/.mion/types/Ky89_hqa3Nzs.js +14 -0
  439. package/.dist/esm/.mion/types/Ky89_hqa3Nzs.js.map +1 -0
  440. package/.dist/esm/.mion/types/Ky89_iKPrxW9.js +16 -0
  441. package/.dist/esm/.mion/types/Ky89_iKPrxW9.js.map +1 -0
  442. package/.dist/esm/.mion/types/Ky89_jLtJ5Kv.js +16 -0
  443. package/.dist/esm/.mion/types/Ky89_jLtJ5Kv.js.map +1 -0
  444. package/.dist/esm/.mion/types/Ky89_kibOHkN.js +13 -0
  445. package/.dist/esm/.mion/types/Ky89_kibOHkN.js.map +1 -0
  446. package/.dist/esm/.mion/types/Ky89_kz5ne4c.js +16 -0
  447. package/.dist/esm/.mion/types/Ky89_kz5ne4c.js.map +1 -0
  448. package/.dist/esm/.mion/types/Ky89_pzBRrJb.js +16 -0
  449. package/.dist/esm/.mion/types/Ky89_pzBRrJb.js.map +1 -0
  450. package/.dist/esm/.mion/types/OBOg_D32xQCR.js +23 -0
  451. package/.dist/esm/.mion/types/OBOg_D32xQCR.js.map +1 -0
  452. package/.dist/esm/.mion/types/OBOg_D5PMNNO.js +18 -0
  453. package/.dist/esm/.mion/types/OBOg_D5PMNNO.js.map +1 -0
  454. package/.dist/esm/.mion/types/OBOg_E1CjDEA.js +18 -0
  455. package/.dist/esm/.mion/types/OBOg_E1CjDEA.js.map +1 -0
  456. package/.dist/esm/.mion/types/OBOg_G42dZdW.js +18 -0
  457. package/.dist/esm/.mion/types/OBOg_G42dZdW.js.map +1 -0
  458. package/.dist/esm/.mion/types/OBOg_LKYfhxm.js +18 -0
  459. package/.dist/esm/.mion/types/OBOg_LKYfhxm.js.map +1 -0
  460. package/.dist/esm/.mion/types/OBOg_fMIJ1JT.js +18 -0
  461. package/.dist/esm/.mion/types/OBOg_fMIJ1JT.js.map +1 -0
  462. package/.dist/esm/.mion/types/OBOg_g17turq.js +17 -0
  463. package/.dist/esm/.mion/types/OBOg_g17turq.js.map +1 -0
  464. package/.dist/esm/.mion/types/OBOg_hqa3Nzs.js +17 -0
  465. package/.dist/esm/.mion/types/OBOg_hqa3Nzs.js.map +1 -0
  466. package/.dist/esm/.mion/types/OBOg_kibOHkN.js +17 -0
  467. package/.dist/esm/.mion/types/OBOg_kibOHkN.js.map +1 -0
  468. package/.dist/esm/.mion/types/Xhuv_D32xQCR.js +16 -0
  469. package/.dist/esm/.mion/types/Xhuv_D32xQCR.js.map +1 -0
  470. package/.dist/esm/.mion/types/Xhuv_D5PMNNO.js +16 -0
  471. package/.dist/esm/.mion/types/Xhuv_D5PMNNO.js.map +1 -0
  472. package/.dist/esm/.mion/types/Xhuv_E1CjDEA.js +29 -0
  473. package/.dist/esm/.mion/types/Xhuv_E1CjDEA.js.map +1 -0
  474. package/.dist/esm/.mion/types/Xhuv_EYEglde.js +16 -0
  475. package/.dist/esm/.mion/types/Xhuv_EYEglde.js.map +1 -0
  476. package/.dist/esm/.mion/types/Xhuv_EyHLuYw.js +16 -0
  477. package/.dist/esm/.mion/types/Xhuv_EyHLuYw.js.map +1 -0
  478. package/.dist/esm/.mion/types/Xhuv_G42dZdW.js +16 -0
  479. package/.dist/esm/.mion/types/Xhuv_G42dZdW.js.map +1 -0
  480. package/.dist/esm/.mion/types/Xhuv_HSE8icr.js +16 -0
  481. package/.dist/esm/.mion/types/Xhuv_HSE8icr.js.map +1 -0
  482. package/.dist/esm/.mion/types/Xhuv_HXAy3Lx.js +13 -0
  483. package/.dist/esm/.mion/types/Xhuv_HXAy3Lx.js.map +1 -0
  484. package/.dist/esm/.mion/types/Xhuv_JJrCj9i.js +13 -0
  485. package/.dist/esm/.mion/types/Xhuv_JJrCj9i.js.map +1 -0
  486. package/.dist/esm/.mion/types/Xhuv_KDyf2Fa.js +16 -0
  487. package/.dist/esm/.mion/types/Xhuv_KDyf2Fa.js.map +1 -0
  488. package/.dist/esm/.mion/types/Xhuv_L3mQkaR.js +13 -0
  489. package/.dist/esm/.mion/types/Xhuv_L3mQkaR.js.map +1 -0
  490. package/.dist/esm/.mion/types/Xhuv_LKYfhxm.js +13 -0
  491. package/.dist/esm/.mion/types/Xhuv_LKYfhxm.js.map +1 -0
  492. package/.dist/esm/.mion/types/Xhuv_RAudOr2.js +13 -0
  493. package/.dist/esm/.mion/types/Xhuv_RAudOr2.js.map +1 -0
  494. package/.dist/esm/.mion/types/Xhuv_TRnIbow.js +17 -0
  495. package/.dist/esm/.mion/types/Xhuv_TRnIbow.js.map +1 -0
  496. package/.dist/esm/.mion/types/Xhuv_UOI3bXq.js +17 -0
  497. package/.dist/esm/.mion/types/Xhuv_UOI3bXq.js.map +1 -0
  498. package/.dist/esm/.mion/types/Xhuv_VsWxRKn.js +13 -0
  499. package/.dist/esm/.mion/types/Xhuv_VsWxRKn.js.map +1 -0
  500. package/.dist/esm/.mion/types/Xhuv_ZTKzxQG.js +16 -0
  501. package/.dist/esm/.mion/types/Xhuv_ZTKzxQG.js.map +1 -0
  502. package/.dist/esm/.mion/types/Xhuv_ZgsWs6s.js +13 -0
  503. package/.dist/esm/.mion/types/Xhuv_ZgsWs6s.js.map +1 -0
  504. package/.dist/esm/.mion/types/Xhuv_b4tYK8X.js +16 -0
  505. package/.dist/esm/.mion/types/Xhuv_b4tYK8X.js.map +1 -0
  506. package/.dist/esm/.mion/types/Xhuv_deFq9zY.js +26 -0
  507. package/.dist/esm/.mion/types/Xhuv_deFq9zY.js.map +1 -0
  508. package/.dist/esm/.mion/types/Xhuv_fMIJ1JT.js +16 -0
  509. package/.dist/esm/.mion/types/Xhuv_fMIJ1JT.js.map +1 -0
  510. package/.dist/esm/.mion/types/Xhuv_g17turq.js +13 -0
  511. package/.dist/esm/.mion/types/Xhuv_g17turq.js.map +1 -0
  512. package/.dist/esm/.mion/types/Xhuv_hqa3Nzs.js +13 -0
  513. package/.dist/esm/.mion/types/Xhuv_hqa3Nzs.js.map +1 -0
  514. package/.dist/esm/.mion/types/Xhuv_iKPrxW9.js +16 -0
  515. package/.dist/esm/.mion/types/Xhuv_iKPrxW9.js.map +1 -0
  516. package/.dist/esm/.mion/types/Xhuv_jLtJ5Kv.js +16 -0
  517. package/.dist/esm/.mion/types/Xhuv_jLtJ5Kv.js.map +1 -0
  518. package/.dist/esm/.mion/types/Xhuv_kibOHkN.js +13 -0
  519. package/.dist/esm/.mion/types/Xhuv_kibOHkN.js.map +1 -0
  520. package/.dist/esm/.mion/types/Xhuv_kz5ne4c.js +16 -0
  521. package/.dist/esm/.mion/types/Xhuv_kz5ne4c.js.map +1 -0
  522. package/.dist/esm/.mion/types/Xhuv_pzBRrJb.js +16 -0
  523. package/.dist/esm/.mion/types/Xhuv_pzBRrJb.js.map +1 -0
  524. package/.dist/esm/.mion/types/mzca_fMIJ1JT.js +14 -0
  525. package/.dist/esm/.mion/types/mzca_fMIJ1JT.js.map +1 -0
  526. package/.dist/esm/.mion/types/mzca_hqa3Nzs.js +14 -0
  527. package/.dist/esm/.mion/types/mzca_hqa3Nzs.js.map +1 -0
  528. package/.dist/esm/.mion/types/mzca_kibOHkN.js +14 -0
  529. package/.dist/esm/.mion/types/mzca_kibOHkN.js.map +1 -0
  530. package/.dist/esm/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.js +14 -0
  531. package/.dist/esm/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.js.map +1 -0
  532. package/.dist/esm/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.js +14 -0
  533. package/.dist/esm/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.js.map +1 -0
  534. package/.dist/esm/.mion/types/rt/C7ezVBCtGn.js +495 -0
  535. package/.dist/esm/.mion/types/rt/C7ezVBCtGn.js.map +1 -0
  536. package/.dist/esm/.mion/types/rt/VIdAjpHu1X.js +521 -0
  537. package/.dist/esm/.mion/types/rt/VIdAjpHu1X.js.map +1 -0
  538. package/.dist/esm/.mion/types/rt/eF4wQzU6Fd.js +873 -0
  539. package/.dist/esm/.mion/types/rt/eF4wQzU6Fd.js.map +1 -0
  540. package/.dist/esm/.mion/types/rt/shared/JQEexHbHMp.js +467 -0
  541. package/.dist/esm/.mion/types/rt/shared/JQEexHbHMp.js.map +1 -0
  542. package/.dist/esm/.mion/types/rt/shared/connsmWgsp.js +1475 -0
  543. package/.dist/esm/.mion/types/rt/shared/connsmWgsp.js.map +1 -0
  544. package/.dist/esm/index.d.ts +5 -4
  545. package/.dist/esm/index.js +11 -145
  546. package/.dist/esm/middlewares.d.ts +3 -0
  547. package/.dist/esm/middlewares.js +3 -0
  548. package/.dist/esm/src/batches.d.ts +22 -0
  549. package/.dist/esm/src/batches.js +321 -0
  550. package/.dist/esm/src/batches.js.map +1 -0
  551. package/.dist/esm/src/callContext.d.ts +5 -8
  552. package/.dist/esm/src/callContext.js +70 -118
  553. package/.dist/esm/src/callContext.js.map +1 -1
  554. package/.dist/esm/src/constants.d.ts +1 -7
  555. package/.dist/esm/src/constants.js +22 -44
  556. package/.dist/esm/src/constants.js.map +1 -1
  557. package/.dist/esm/src/dispatch.d.ts +8 -2
  558. package/.dist/esm/src/dispatch.js +223 -131
  559. package/.dist/esm/src/dispatch.js.map +1 -1
  560. package/.dist/esm/src/lib/bodyLimit.d.ts +5 -0
  561. package/.dist/esm/src/lib/bodyLimit.js +35 -0
  562. package/.dist/esm/src/lib/bodyLimit.js.map +1 -0
  563. package/.dist/esm/src/lib/bodyReader.d.ts +10 -0
  564. package/.dist/esm/src/lib/bodyReader.js +76 -0
  565. package/.dist/esm/src/lib/bodyReader.js.map +1 -0
  566. package/.dist/esm/src/lib/dispatchError.d.ts +6 -2
  567. package/.dist/esm/src/lib/dispatchError.js +72 -36
  568. package/.dist/esm/src/lib/dispatchError.js.map +1 -1
  569. package/.dist/esm/src/lib/handlers.d.ts +14 -9
  570. package/.dist/esm/src/lib/handlers.js +85 -48
  571. package/.dist/esm/src/lib/handlers.js.map +1 -1
  572. package/.dist/esm/src/lib/headers.d.ts +40 -1
  573. package/.dist/esm/src/lib/headers.js +167 -57
  574. package/.dist/esm/src/lib/headers.js.map +1 -1
  575. package/.dist/esm/src/lib/queryBody.d.ts +0 -1
  576. package/.dist/esm/src/lib/queryBody.js +26 -31
  577. package/.dist/esm/src/lib/queryBody.js.map +1 -1
  578. package/.dist/esm/src/lib/reflection.d.ts +12 -9
  579. package/.dist/esm/src/lib/reflection.js +75 -351
  580. package/.dist/esm/src/lib/reflection.js.map +1 -1
  581. package/.dist/esm/src/lib/remoteMethods.d.ts +4 -4
  582. package/.dist/esm/src/lib/remoteMethods.js +105 -111
  583. package/.dist/esm/src/lib/remoteMethods.js.map +1 -1
  584. package/.dist/esm/src/lib/urlQuery.d.ts +2 -0
  585. package/.dist/esm/src/lib/urlQuery.js +23 -0
  586. package/.dist/esm/src/lib/urlQuery.js.map +1 -0
  587. package/.dist/esm/src/middlewares/fetchMetadata.d.ts +15 -0
  588. package/.dist/esm/src/middlewares/fetchMetadata.js +97 -0
  589. package/.dist/esm/src/middlewares/fetchMetadata.js.map +1 -0
  590. package/.dist/esm/src/middlewares/syncRoutes.d.ts +12 -0
  591. package/.dist/esm/src/middlewares/syncRoutes.js +66 -0
  592. package/.dist/esm/src/middlewares/syncRoutes.js.map +1 -0
  593. package/.dist/esm/src/router.d.ts +27 -19
  594. package/.dist/esm/src/router.js +477 -449
  595. package/.dist/esm/src/router.js.map +1 -1
  596. package/.dist/esm/src/routes/errors.routes.d.ts +14 -3
  597. package/.dist/esm/src/routes/errors.routes.js +80 -48
  598. package/.dist/esm/src/routes/errors.routes.js.map +1 -1
  599. package/.dist/esm/src/routes/serializer.routes.d.ts +3 -3
  600. package/.dist/esm/src/routes/serializer.routes.js +107 -179
  601. package/.dist/esm/src/routes/serializer.routes.js.map +1 -1
  602. package/.dist/esm/src/types/context.d.ts +13 -21
  603. package/.dist/esm/src/types/context.js +0 -31
  604. package/.dist/esm/src/types/definitions.d.ts +32 -20
  605. package/.dist/esm/src/types/definitions.js +0 -15
  606. package/.dist/esm/src/types/general.d.ts +15 -15
  607. package/.dist/esm/src/types/general.js +0 -14
  608. package/.dist/esm/src/types/guards.d.ts +7 -7
  609. package/.dist/esm/src/types/guards.js +27 -46
  610. package/.dist/esm/src/types/guards.js.map +1 -1
  611. package/.dist/esm/src/types/handlers.d.ts +8 -5
  612. package/.dist/esm/src/types/handlers.js +0 -13
  613. package/.dist/esm/src/types/mionRouter.d.ts +44 -0
  614. package/.dist/esm/src/types/mionRouter.js +0 -0
  615. package/.dist/esm/src/types/parser.d.ts +43 -0
  616. package/.dist/esm/src/types/parser.js +0 -0
  617. package/.dist/esm/src/types/publicMethods.d.ts +65 -25
  618. package/.dist/esm/src/types/publicMethods.js +0 -24
  619. package/.dist/esm/src/types/remoteMethods.d.ts +49 -29
  620. package/.dist/esm/src/types/remoteMethods.js +0 -25
  621. package/.dist/esm/src/types/resolvedOptions.d.ts +28 -0
  622. package/.dist/esm/src/types/resolvedOptions.js +0 -0
  623. package/LICENSE +1 -1
  624. package/README.md +6 -6
  625. package/package.json +21 -24
  626. package/.dist/cjs/index.cjs.map +0 -1
  627. package/.dist/cjs/index.d.ts.map +0 -1
  628. package/.dist/cjs/src/aot/aotCacheLoader.cjs +0 -11
  629. package/.dist/cjs/src/aot/aotCacheLoader.cjs.map +0 -1
  630. package/.dist/cjs/src/aot/aotCacheLoader.d.ts +0 -2
  631. package/.dist/cjs/src/aot/aotCacheLoader.d.ts.map +0 -1
  632. package/.dist/cjs/src/callContext.d.ts.map +0 -1
  633. package/.dist/cjs/src/constants.d.ts.map +0 -1
  634. package/.dist/cjs/src/defaultRoutes.cjs +0 -16
  635. package/.dist/cjs/src/defaultRoutes.cjs.map +0 -1
  636. package/.dist/cjs/src/defaultRoutes.d.ts +0 -4
  637. package/.dist/cjs/src/defaultRoutes.d.ts.map +0 -1
  638. package/.dist/cjs/src/dispatch.d.ts.map +0 -1
  639. package/.dist/cjs/src/lib/aotEmitter.cjs +0 -74
  640. package/.dist/cjs/src/lib/aotEmitter.cjs.map +0 -1
  641. package/.dist/cjs/src/lib/aotEmitter.d.ts +0 -24
  642. package/.dist/cjs/src/lib/aotEmitter.d.ts.map +0 -1
  643. package/.dist/cjs/src/lib/dispatchError.d.ts.map +0 -1
  644. package/.dist/cjs/src/lib/handlers.d.ts.map +0 -1
  645. package/.dist/cjs/src/lib/headers.d.ts.map +0 -1
  646. package/.dist/cjs/src/lib/methodsCache.cjs +0 -55
  647. package/.dist/cjs/src/lib/methodsCache.cjs.map +0 -1
  648. package/.dist/cjs/src/lib/methodsCache.d.ts +0 -12
  649. package/.dist/cjs/src/lib/methodsCache.d.ts.map +0 -1
  650. package/.dist/cjs/src/lib/queryBody.d.ts.map +0 -1
  651. package/.dist/cjs/src/lib/reflection.d.ts.map +0 -1
  652. package/.dist/cjs/src/lib/remoteMethods.d.ts.map +0 -1
  653. package/.dist/cjs/src/lib/test/aotEmitter-test-router.cjs +0 -24
  654. package/.dist/cjs/src/lib/test/aotEmitter-test-router.cjs.map +0 -1
  655. package/.dist/cjs/src/lib/test/aotEmitter-test-router.d.ts +0 -5
  656. package/.dist/cjs/src/lib/test/aotEmitter-test-router.d.ts.map +0 -1
  657. package/.dist/cjs/src/router.d.ts.map +0 -1
  658. package/.dist/cjs/src/routes/client.routes.cjs +0 -76
  659. package/.dist/cjs/src/routes/client.routes.cjs.map +0 -1
  660. package/.dist/cjs/src/routes/client.routes.d.ts +0 -20
  661. package/.dist/cjs/src/routes/client.routes.d.ts.map +0 -1
  662. package/.dist/cjs/src/routes/errors.routes.d.ts.map +0 -1
  663. package/.dist/cjs/src/routes/mion.routes.cjs +0 -13
  664. package/.dist/cjs/src/routes/mion.routes.cjs.map +0 -1
  665. package/.dist/cjs/src/routes/mion.routes.d.ts +0 -10
  666. package/.dist/cjs/src/routes/mion.routes.d.ts.map +0 -1
  667. package/.dist/cjs/src/routes/serializer.routes.d.ts.map +0 -1
  668. package/.dist/cjs/src/routesFlow.cjs +0 -227
  669. package/.dist/cjs/src/routesFlow.cjs.map +0 -1
  670. package/.dist/cjs/src/routesFlow.d.ts +0 -8
  671. package/.dist/cjs/src/routesFlow.d.ts.map +0 -1
  672. package/.dist/cjs/src/types/context.cjs.map +0 -1
  673. package/.dist/cjs/src/types/context.d.ts.map +0 -1
  674. package/.dist/cjs/src/types/definitions.cjs.map +0 -1
  675. package/.dist/cjs/src/types/definitions.d.ts.map +0 -1
  676. package/.dist/cjs/src/types/general.cjs.map +0 -1
  677. package/.dist/cjs/src/types/general.d.ts.map +0 -1
  678. package/.dist/cjs/src/types/guards.d.ts.map +0 -1
  679. package/.dist/cjs/src/types/handlers.cjs.map +0 -1
  680. package/.dist/cjs/src/types/handlers.d.ts.map +0 -1
  681. package/.dist/cjs/src/types/publicMethods.cjs.map +0 -1
  682. package/.dist/cjs/src/types/publicMethods.d.ts.map +0 -1
  683. package/.dist/cjs/src/types/remoteMethods.cjs.map +0 -1
  684. package/.dist/cjs/src/types/remoteMethods.d.ts.map +0 -1
  685. package/.dist/esm/index.d.ts.map +0 -1
  686. package/.dist/esm/index.js.map +0 -1
  687. package/.dist/esm/src/aot/aotCacheLoader.d.ts +0 -2
  688. package/.dist/esm/src/aot/aotCacheLoader.d.ts.map +0 -1
  689. package/.dist/esm/src/aot/aotCacheLoader.js +0 -11
  690. package/.dist/esm/src/aot/aotCacheLoader.js.map +0 -1
  691. package/.dist/esm/src/callContext.d.ts.map +0 -1
  692. package/.dist/esm/src/constants.d.ts.map +0 -1
  693. package/.dist/esm/src/defaultRoutes.d.ts +0 -4
  694. package/.dist/esm/src/defaultRoutes.d.ts.map +0 -1
  695. package/.dist/esm/src/defaultRoutes.js +0 -16
  696. package/.dist/esm/src/defaultRoutes.js.map +0 -1
  697. package/.dist/esm/src/dispatch.d.ts.map +0 -1
  698. package/.dist/esm/src/lib/aotEmitter.d.ts +0 -24
  699. package/.dist/esm/src/lib/aotEmitter.d.ts.map +0 -1
  700. package/.dist/esm/src/lib/aotEmitter.js +0 -74
  701. package/.dist/esm/src/lib/aotEmitter.js.map +0 -1
  702. package/.dist/esm/src/lib/dispatchError.d.ts.map +0 -1
  703. package/.dist/esm/src/lib/handlers.d.ts.map +0 -1
  704. package/.dist/esm/src/lib/headers.d.ts.map +0 -1
  705. package/.dist/esm/src/lib/methodsCache.d.ts +0 -12
  706. package/.dist/esm/src/lib/methodsCache.d.ts.map +0 -1
  707. package/.dist/esm/src/lib/methodsCache.js +0 -56
  708. package/.dist/esm/src/lib/methodsCache.js.map +0 -1
  709. package/.dist/esm/src/lib/queryBody.d.ts.map +0 -1
  710. package/.dist/esm/src/lib/reflection.d.ts.map +0 -1
  711. package/.dist/esm/src/lib/remoteMethods.d.ts.map +0 -1
  712. package/.dist/esm/src/lib/test/aotEmitter-test-router.d.ts +0 -5
  713. package/.dist/esm/src/lib/test/aotEmitter-test-router.d.ts.map +0 -1
  714. package/.dist/esm/src/lib/test/aotEmitter-test-router.js +0 -24
  715. package/.dist/esm/src/lib/test/aotEmitter-test-router.js.map +0 -1
  716. package/.dist/esm/src/router.d.ts.map +0 -1
  717. package/.dist/esm/src/routes/client.routes.d.ts +0 -20
  718. package/.dist/esm/src/routes/client.routes.d.ts.map +0 -1
  719. package/.dist/esm/src/routes/client.routes.js +0 -76
  720. package/.dist/esm/src/routes/client.routes.js.map +0 -1
  721. package/.dist/esm/src/routes/errors.routes.d.ts.map +0 -1
  722. package/.dist/esm/src/routes/mion.routes.d.ts +0 -10
  723. package/.dist/esm/src/routes/mion.routes.d.ts.map +0 -1
  724. package/.dist/esm/src/routes/mion.routes.js +0 -13
  725. package/.dist/esm/src/routes/mion.routes.js.map +0 -1
  726. package/.dist/esm/src/routes/serializer.routes.d.ts.map +0 -1
  727. package/.dist/esm/src/routesFlow.d.ts +0 -8
  728. package/.dist/esm/src/routesFlow.d.ts.map +0 -1
  729. package/.dist/esm/src/routesFlow.js +0 -227
  730. package/.dist/esm/src/routesFlow.js.map +0 -1
  731. package/.dist/esm/src/types/context.d.ts.map +0 -1
  732. package/.dist/esm/src/types/context.js.map +0 -1
  733. package/.dist/esm/src/types/definitions.d.ts.map +0 -1
  734. package/.dist/esm/src/types/definitions.js.map +0 -1
  735. package/.dist/esm/src/types/general.d.ts.map +0 -1
  736. package/.dist/esm/src/types/general.js.map +0 -1
  737. package/.dist/esm/src/types/guards.d.ts.map +0 -1
  738. package/.dist/esm/src/types/handlers.d.ts.map +0 -1
  739. package/.dist/esm/src/types/handlers.js.map +0 -1
  740. package/.dist/esm/src/types/publicMethods.d.ts.map +0 -1
  741. package/.dist/esm/src/types/publicMethods.js.map +0 -1
  742. package/.dist/esm/src/types/remoteMethods.d.ts.map +0 -1
  743. package/.dist/esm/src/types/remoteMethods.js.map +0 -1
  744. package/index.ts +0 -29
  745. package/src/aot/aotCacheLoader.ts +0 -15
  746. package/src/callContext.ts +0 -193
  747. package/src/constants.ts +0 -45
  748. package/src/defaultRoutes.ts +0 -37
  749. package/src/dispatch.ts +0 -204
  750. package/src/lib/aotEmitter.ts +0 -140
  751. package/src/lib/dispatchError.ts +0 -60
  752. package/src/lib/handlers.ts +0 -75
  753. package/src/lib/headers.ts +0 -102
  754. package/src/lib/methodsCache.ts +0 -72
  755. package/src/lib/queryBody.ts +0 -40
  756. package/src/lib/reflection.ts +0 -517
  757. package/src/lib/remoteMethods.ts +0 -180
  758. package/src/lib/test/aotEmitter-test-router.ts +0 -40
  759. package/src/router.ts +0 -656
  760. package/src/routes/client.routes.ts +0 -108
  761. package/src/routes/errors.routes.ts +0 -51
  762. package/src/routes/mion.routes.ts +0 -11
  763. package/src/routes/serializer.routes.ts +0 -225
  764. package/src/routesFlow.ts +0 -320
  765. package/src/types/context.ts +0 -119
  766. package/src/types/definitions.ts +0 -53
  767. package/src/types/general.ts +0 -84
  768. package/src/types/guards.ts +0 -71
  769. package/src/types/handlers.ts +0 -49
  770. package/src/types/publicMethods.ts +0 -83
  771. package/src/types/remoteMethods.ts +0 -54
@@ -1 +1 @@
1
- {"version":3,"file":"headers.js","sources":["../../../../src/lib/headers.ts"],"sourcesContent":["/* ########\n * 2022 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport type {MionHeaders} from '../types/context.ts';\n\n// ############# PUBLIC METHODS #############\n\ntype HeadersRecord = Record<string, string>;\n\n/**\n * Reusable class for managing HTTP headers with case-insensitive access\n * Similar to the fetch Headers API but optimized for performance\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers\n */\nclass MionHeadersImpl implements MionHeaders {\n constructor(private headers: HeadersRecord) {}\n\n append(name: string, value: string): void {\n const nl = name.toLowerCase();\n const existing = this.headers[nl];\n const headerValue = toSingleHeader(value);\n if (existing) {\n this.headers[nl] = `${existing}, ${headerValue}`;\n } else {\n this.headers[nl] = headerValue;\n }\n }\n\n delete(name: string): void {\n const nl = name.toLowerCase();\n delete this.headers[nl];\n }\n\n get(name: string): string | undefined | null {\n const nl = name.toLowerCase();\n return this.headers[nl];\n }\n\n set(name: string, value: string): void {\n const ln = name.toLowerCase();\n this.headers[ln] = value as string;\n }\n\n has(name: string): boolean {\n const nl = name.toLowerCase();\n return !!this.headers[nl];\n }\n\n entries(): IterableIterator<[string, string]> {\n return new Map(Object.entries(this.headers)).entries();\n }\n\n keys(): IterableIterator<string> {\n return new Map(Object.entries(this.headers)).keys();\n }\n\n values(): IterableIterator<string> {\n return new Map(Object.entries(this.headers)).values();\n }\n}\n\n/**\n * Return a Headers Like object from a Headers Record structure (Record<string, string | string[]>)\n * Returned Headers object is similar to the fetch Headers object but not exactly the same\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers\n *\n * This is optimized to avoid creating the Headers Map if it's not strictly needed.\n * ie. for incoming header that only use get method, the Headers object is never created and instead the HeadersRecord is used directly.\n *\n * This function can be used to create a Headers object from incoming request that has the headers in an object structure.\n * ie IncomingMessage.headers or ApiGatewayEvent.headers\n *\n * @param headersObj\n * @returns\n */\nexport function headersFromRecord(headersObj: Record<string, string>, skipToLower = false): MionHeaders {\n // lazy load headers map\n const headers = parseHeaders(headersObj, skipToLower);\n return new MionHeadersImpl(headers);\n}\n\nfunction toSingleHeader(value: string | number): string {\n if (Array.isArray(value)) return value.join(', ');\n return value as string;\n}\n\nfunction parseHeaders(headersObj: Record<string, string>, skipToLower = false): HeadersRecord {\n if (skipToLower) return headersObj;\n const entries = Object.entries(headersObj);\n const headers: HeadersRecord = {};\n for (let i = 0; i < entries.length; i++) {\n const [name, value] = entries[i];\n if (!value) continue;\n const ln = name.toLowerCase();\n headers[ln] = toSingleHeader(value);\n }\n return headers;\n}\n"],"names":[],"mappings":"AAkBA,MAAM,gBAAuC;AAAA,EACzC,YAAoB,SAAwB;AAAxB,SAAA,UAAA;AAAA,EAAyB;AAAA,EAE7C,OAAO,MAAc,OAAqB;AACtC,UAAM,KAAK,KAAK,YAAA;AAChB,UAAM,WAAW,KAAK,QAAQ,EAAE;AAChC,UAAM,cAAc,eAAe,KAAK;AACxC,QAAI,UAAU;AACV,WAAK,QAAQ,EAAE,IAAI,GAAG,QAAQ,KAAK,WAAW;AAAA,IAClD,OAAO;AACH,WAAK,QAAQ,EAAE,IAAI;AAAA,IACvB;AAAA,EACJ;AAAA,EAEA,OAAO,MAAoB;AACvB,UAAM,KAAK,KAAK,YAAA;AAChB,WAAO,KAAK,QAAQ,EAAE;AAAA,EAC1B;AAAA,EAEA,IAAI,MAAyC;AACzC,UAAM,KAAK,KAAK,YAAA;AAChB,WAAO,KAAK,QAAQ,EAAE;AAAA,EAC1B;AAAA,EAEA,IAAI,MAAc,OAAqB;AACnC,UAAM,KAAK,KAAK,YAAA;AAChB,SAAK,QAAQ,EAAE,IAAI;AAAA,EACvB;AAAA,EAEA,IAAI,MAAuB;AACvB,UAAM,KAAK,KAAK,YAAA;AAChB,WAAO,CAAC,CAAC,KAAK,QAAQ,EAAE;AAAA,EAC5B;AAAA,EAEA,UAA8C;AAC1C,WAAO,IAAI,IAAI,OAAO,QAAQ,KAAK,OAAO,CAAC,EAAE,QAAA;AAAA,EACjD;AAAA,EAEA,OAAiC;AAC7B,WAAO,IAAI,IAAI,OAAO,QAAQ,KAAK,OAAO,CAAC,EAAE,KAAA;AAAA,EACjD;AAAA,EAEA,SAAmC;AAC/B,WAAO,IAAI,IAAI,OAAO,QAAQ,KAAK,OAAO,CAAC,EAAE,OAAA;AAAA,EACjD;AACJ;AAgBO,SAAS,kBAAkB,YAAoC,cAAc,OAAoB;AAEpG,QAAM,UAAU,aAAa,YAAY,WAAW;AACpD,SAAO,IAAI,gBAAgB,OAAO;AACtC;AAEA,SAAS,eAAe,OAAgC;AACpD,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,KAAK,IAAI;AAChD,SAAO;AACX;AAEA,SAAS,aAAa,YAAoC,cAAc,OAAsB;AAC1F,MAAI,YAAa,QAAO;AACxB,QAAM,UAAU,OAAO,QAAQ,UAAU;AACzC,QAAM,UAAyB,CAAA;AAC/B,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,UAAM,CAAC,MAAM,KAAK,IAAI,QAAQ,CAAC;AAC/B,QAAI,CAAC,MAAO;AACZ,UAAM,KAAK,KAAK,YAAA;AAChB,YAAQ,EAAE,IAAI,eAAe,KAAK;AAAA,EACtC;AACA,SAAO;AACX;"}
1
+ {"version":3,"file":"headers.js","names":[],"sources":["../../../../src/lib/headers.ts"],"sourcesContent":["/* ########\n * 2022 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport type {MionHeaders, MionResponse, PooledHeaders, ResponseDefaults} from '../types/context.ts';\nimport {JSON_CONTENT_TYPE} from '../constants.ts';\nimport {getResponseDefaults} from '../router.ts';\n\n// ############# PUBLIC METHODS #############\n\n// an array for a name appended twice on response headers (node's request record may hold one too)\ntype HeadersRecord = Record<string, string | string[]>;\n\nconst PROTO_KEY = '__proto__';\n\n/** Case-insensitive HTTP headers, like the fetch Headers API but optimized for performance.\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers */\nclass MionHeadersImpl implements MionHeaders {\n // The record may be a plain object handed over by the platform (node's IncomingMessage.headers is one),\n // where `constructor` or `toString` would be \"found\" on the prototype chain. A prototype hit is never a\n // string, so a read checks the VALUE's type: cheaper than an own-key check per read (14 vs 23 ns).\n // `__proto__` is never written: on a plain object that assignment swaps the prototype.\n /** Read by the response headers pool only; request headers ignore it. */\n unused = true;\n\n constructor(protected headers: HeadersRecord) {}\n\n append(name: string, value: string): void {\n this.unused = false;\n const nl = name.toLowerCase();\n if (nl === PROTO_KEY) return;\n const existing = readHeader(this.headers, nl);\n const headerValue = toSingleHeader(value);\n if (existing) {\n this.headers[nl] = `${existing}, ${headerValue}`;\n } else {\n this.headers[nl] = headerValue;\n }\n }\n\n delete(name: string): void {\n this.unused = false;\n delete this.headers[name.toLowerCase()];\n }\n\n get(name: string): string | undefined | null {\n return readHeader(this.headers, name.toLowerCase());\n }\n\n set(name: string, value: string): void {\n this.unused = false;\n const ln = name.toLowerCase();\n if (ln === PROTO_KEY) return;\n this.headers[ln] = value as string;\n }\n\n has(name: string): boolean {\n return !!readHeader(this.headers, name.toLowerCase());\n }\n\n entries(): IterableIterator<[string, string]> {\n return Object.entries(this.headers)\n .map(([name, value]): [string, string] => [name, joined(value)])\n .values();\n }\n\n keys(): IterableIterator<string> {\n return new Map(Object.entries(this.headers)).keys();\n }\n\n values(): IterableIterator<string> {\n return Object.values(this.headers).map(joined).values();\n }\n}\n\n/** Response headers over a copy of the defaults, for an adapter that answers from a header record (uws, aws). */\nexport class RecordResponseHeaders extends MionHeadersImpl implements PooledHeaders {\n constructor(readonly defaults: ResponseDefaults) {\n super({...defaults});\n }\n\n /** Keeps a repeated name's values apart, never joined: the adapter writes them its own way. */\n append(name: string, value: string): void {\n this.unused = false;\n const key = name.toLowerCase();\n if (key === PROTO_KEY) return;\n const current = this.headers[key] as unknown;\n // an empty earlier value counts as absent, and so does a prototype hit such as `constructor`\n if (Array.isArray(current)) current.push(value);\n else if (typeof current === 'string' && current) this.headers[key] = [current, value];\n else this.headers[key] = value;\n }\n\n /** Walks the headers with no pair array per header; a repeated name gives its values apart. */\n forEach(visit: (name: string, value: string | string[]) => void): void {\n for (const name in this.headers) visit(name, this.headers[name]);\n }\n}\n\n/** The response headers of the fetch adapters (bun, cloudflare, vercel). */\nexport class FetchResponseHeaders implements PooledHeaders {\n /** What the reply hands to `Response`, which copies it. */\n readonly native = new Headers();\n unused = true;\n\n constructor(readonly defaults: ResponseDefaults) {\n // one set per name beats building from a record\n for (const name in defaults) this.native.set(name, defaults[name]);\n }\n\n set(name: string, value: string): void {\n this.unused = false;\n this.native.set(name, value);\n }\n append(name: string, value: string): void {\n this.unused = false;\n this.native.append(name, value);\n }\n delete(name: string): void {\n this.unused = false;\n this.native.delete(name);\n }\n get(name: string): string | null {\n return this.native.get(name);\n }\n has(name: string): boolean {\n return this.native.has(name);\n }\n entries(): IterableIterator<[string, string]> {\n return this.native.entries();\n }\n keys(): IterableIterator<string> {\n return this.native.keys();\n }\n values(): IterableIterator<string> {\n return this.native.values();\n }\n}\n\n// Pools of unwritten response headers: one serves exactly one request and comes back only if still unused.\nconst MAX_UNUSED_HEADERS = 256;\nconst unusedRecordHeaders: RecordResponseHeaders[] = [];\nconst unusedFetchHeaders: FetchResponseHeaders[] = [];\nconst newRecordHeaders = (defaults: ResponseDefaults) => new RecordResponseHeaders(defaults);\nconst newFetchHeaders = (defaults: ResponseDefaults) => new FetchResponseHeaders(defaults);\n\n/** Response headers holding the defaults and nothing else, from the pool or new. */\nexport const getDefaultHeaders = (): RecordResponseHeaders => takeUnused(unusedRecordHeaders, newRecordHeaders);\n\n/** Like `getDefaultHeaders`, over a native `Headers` for the fetch adapters. */\nexport const getDefaultFetchHeaders = (): FetchResponseHeaders => takeUnused(unusedFetchHeaders, newFetchHeaders);\n\n/** Gives headers back once the reply is sent; written ones are dropped. */\nexport const releaseHeaders = (headers: RecordResponseHeaders): void => giveBackUnused(unusedRecordHeaders, headers);\n\nfunction takeUnused<Pooled extends PooledHeaders>(pool: Pooled[], create: (defaults: ResponseDefaults) => Pooled): Pooled {\n const defaults = getResponseDefaults();\n const headers = pool.pop();\n if (headers?.defaults === defaults) return headers;\n // the router restarted: pooled headers carry the old defaults\n pool.length = 0;\n return create(defaults);\n}\n\nfunction giveBackUnused<Pooled extends PooledHeaders>(pool: Pooled[], headers: Pooled): void {\n if (headers.unused && pool.length < MAX_UNUSED_HEADERS) pool.push(headers);\n}\n\nexport function replyFetch(mionResp: MionResponse, headers: FetchResponseHeaders): Response {\n // last, so a handler never replaces it; unused headers already hold the JSON one\n if (!headers.unused || mionResp.contentType !== JSON_CONTENT_TYPE) headers.set('content-type', mionResp.contentType);\n // Response copies its headers, so unused ones serve the next request\n const response = Response.json(mionResp.body, {status: mionResp.statusCode, headers: headers.native});\n giveBackUnused(unusedFetchHeaders, headers);\n return response;\n}\n\n/** A fetch-like (not identical) Headers object over a header record, for an incoming request carrying its\n * headers as an object: IncomingMessage.headers, ApiGatewayEvent.headers.\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers */\nexport function headersFromRecord(headersObj: Record<string, string>, skipToLower = false): MionHeaders {\n const headers = parseHeaders(headersObj, skipToLower);\n return new MionHeadersImpl(headers);\n}\n\n/** A header value, or undefined for a name the record does not carry as an own string (a prototype\n * hit is a function or an object). A platform record may hold an array (node's `set-cookie`). */\nfunction readHeader(headers: HeadersRecord, lowerName: string): string | undefined {\n const value = headers[lowerName] as unknown;\n if (typeof value === 'string') return value;\n return Array.isArray(value) ? value.join(', ') : undefined;\n}\n\nfunction joined(value: string | string[]): string {\n return Array.isArray(value) ? value.join(', ') : value;\n}\n\nfunction toSingleHeader(value: string | number): string {\n if (Array.isArray(value)) return value.join(', ');\n return value as string;\n}\n\nfunction parseHeaders(headersObj: Record<string, string>, skipToLower = false): HeadersRecord {\n if (skipToLower) return headersObj;\n const entries = Object.entries(headersObj);\n // null-prototype: header names come off the wire\n const headers: HeadersRecord = Object.create(null);\n for (let i = 0; i < entries.length; i++) {\n const [name, value] = entries[i];\n if (!value) continue;\n const ln = name.toLowerCase();\n headers[ln] = toSingleHeader(value);\n }\n return headers;\n}\n"],"mappings":";;;AAgBA,IAAM,YAAY;;;AAIlB,IAAM,kBAAN,MAA6C;CAQrB;;CAFtB,SAAS;CAET,YAAY,SAAkC;EAAxB,KAAA,UAAA;CAAyB;CAE/C,OAAO,MAAc,OAAqB;EACxC,KAAK,SAAS;EACd,MAAM,KAAK,KAAK,YAAY;EAC5B,IAAI,OAAO,WAAW;EACtB,MAAM,WAAW,WAAW,KAAK,SAAS,EAAE;EAC5C,MAAM,cAAc,eAAe,KAAK;EACxC,IAAI,UACF,KAAK,QAAQ,MAAM,GAAG,SAAS,IAAI;OAEnC,KAAK,QAAQ,MAAM;CAEvB;CAEA,OAAO,MAAoB;EACzB,KAAK,SAAS;EACd,OAAO,KAAK,QAAQ,KAAK,YAAY;CACvC;CAEA,IAAI,MAAyC;EAC3C,OAAO,WAAW,KAAK,SAAS,KAAK,YAAY,CAAC;CACpD;CAEA,IAAI,MAAc,OAAqB;EACrC,KAAK,SAAS;EACd,MAAM,KAAK,KAAK,YAAY;EAC5B,IAAI,OAAO,WAAW;EACtB,KAAK,QAAQ,MAAM;CACrB;CAEA,IAAI,MAAuB;EACzB,OAAO,CAAC,CAAC,WAAW,KAAK,SAAS,KAAK,YAAY,CAAC;CACtD;CAEA,UAA8C;EAC5C,OAAO,OAAO,QAAQ,KAAK,OAAO,EAC/B,KAAK,CAAC,MAAM,WAA6B,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC,EAC9D,OAAO;CACZ;CAEA,OAAiC;EAC/B,OAAO,IAAI,IAAI,OAAO,QAAQ,KAAK,OAAO,CAAC,EAAE,KAAK;CACpD;CAEA,SAAmC;EACjC,OAAO,OAAO,OAAO,KAAK,OAAO,EAAE,IAAI,MAAM,EAAE,OAAO;CACxD;AACF;;AAGA,IAAa,wBAAb,cAA2C,gBAAyC;CAC7D;CAArB,YAAY,UAAqC;EAC/C,MAAM,EAAC,GAAG,SAAQ,CAAC;EADA,KAAA,WAAA;CAErB;;CAGA,OAAO,MAAc,OAAqB;EACxC,KAAK,SAAS;EACd,MAAM,MAAM,KAAK,YAAY;EAC7B,IAAI,QAAQ,WAAW;EACvB,MAAM,UAAU,KAAK,QAAQ;EAE7B,IAAI,MAAM,QAAQ,OAAO,GAAG,QAAQ,KAAK,KAAK;OACzC,IAAI,OAAO,YAAY,YAAY,SAAS,KAAK,QAAQ,OAAO,CAAC,SAAS,KAAK;OAC/E,KAAK,QAAQ,OAAO;CAC3B;;CAGA,QAAQ,OAA+D;EACrE,KAAK,MAAM,QAAQ,KAAK,SAAS,MAAM,MAAM,KAAK,QAAQ,KAAK;CACjE;AACF;;AAGA,IAAa,uBAAb,MAA2D;CAKpC;;CAHrB,SAAkB,IAAI,QAAQ;CAC9B,SAAS;CAET,YAAY,UAAqC;EAA5B,KAAA,WAAA;EAEnB,KAAK,MAAM,QAAQ,UAAU,KAAK,OAAO,IAAI,MAAM,SAAS,KAAK;CACnE;CAEA,IAAI,MAAc,OAAqB;EACrC,KAAK,SAAS;EACd,KAAK,OAAO,IAAI,MAAM,KAAK;CAC7B;CACA,OAAO,MAAc,OAAqB;EACxC,KAAK,SAAS;EACd,KAAK,OAAO,OAAO,MAAM,KAAK;CAChC;CACA,OAAO,MAAoB;EACzB,KAAK,SAAS;EACd,KAAK,OAAO,OAAO,IAAI;CACzB;CACA,IAAI,MAA6B;EAC/B,OAAO,KAAK,OAAO,IAAI,IAAI;CAC7B;CACA,IAAI,MAAuB;EACzB,OAAO,KAAK,OAAO,IAAI,IAAI;CAC7B;CACA,UAA8C;EAC5C,OAAO,KAAK,OAAO,QAAQ;CAC7B;CACA,OAAiC;EAC/B,OAAO,KAAK,OAAO,KAAK;CAC1B;CACA,SAAmC;EACjC,OAAO,KAAK,OAAO,OAAO;CAC5B;AACF;AAGA,IAAM,qBAAqB;AAC3B,IAAM,sBAA+C,CAAC;AACtD,IAAM,qBAA6C,CAAC;AACpD,IAAM,oBAAoB,aAA+B,IAAI,sBAAsB,QAAQ;AAC3F,IAAM,mBAAmB,aAA+B,IAAI,qBAAqB,QAAQ;;AAGzF,IAAa,0BAAiD,WAAW,qBAAqB,gBAAgB;;AAG9G,IAAa,+BAAqD,WAAW,oBAAoB,eAAe;;AAGhH,IAAa,kBAAkB,YAAyC,eAAe,qBAAqB,OAAO;AAEnH,SAAS,WAAyC,MAAgB,QAAwD;CACxH,MAAM,WAAW,oBAAoB;CACrC,MAAM,UAAU,KAAK,IAAI;CACzB,IAAI,SAAS,aAAa,UAAU,OAAO;CAE3C,KAAK,SAAS;CACd,OAAO,OAAO,QAAQ;AACxB;AAEA,SAAS,eAA6C,MAAgB,SAAuB;CAC3F,IAAI,QAAQ,UAAU,KAAK,SAAS,oBAAoB,KAAK,KAAK,OAAO;AAC3E;AAEA,SAAgB,WAAW,UAAwB,SAAyC;CAE1F,IAAI,CAAC,QAAQ,UAAU,SAAS,gBAAA,mCAAmC,QAAQ,IAAI,gBAAgB,SAAS,WAAW;CAEnH,MAAM,WAAW,SAAS,KAAK,SAAS,MAAM;EAAC,QAAQ,SAAS;EAAY,SAAS,QAAQ;CAAM,CAAC;CACpG,eAAe,oBAAoB,OAAO;CAC1C,OAAO;AACT;;;;AAKA,SAAgB,kBAAkB,YAAoC,cAAc,OAAoB;CAEtG,OAAO,IAAI,gBADK,aAAa,YAAY,WACd,CAAO;AACpC;;;AAIA,SAAS,WAAW,SAAwB,WAAuC;CACjF,MAAM,QAAQ,QAAQ;CACtB,IAAI,OAAO,UAAU,UAAU,OAAO;CACtC,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,KAAA;AACnD;AAEA,SAAS,OAAO,OAAkC;CAChD,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI;AACnD;AAEA,SAAS,eAAe,OAAgC;CACtD,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,KAAK,IAAI;CAChD,OAAO;AACT;AAEA,SAAS,aAAa,YAAoC,cAAc,OAAsB;CAC5F,IAAI,aAAa,OAAO;CACxB,MAAM,UAAU,OAAO,QAAQ,UAAU;CAEzC,MAAM,UAAyB,OAAO,OAAO,IAAI;CACjD,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;EACvC,MAAM,CAAC,MAAM,SAAS,QAAQ;EAC9B,IAAI,CAAC,OAAO;EACZ,MAAM,KAAK,KAAK,YAAY;EAC5B,QAAQ,MAAM,eAAe,KAAK;CACpC;CACA,OAAO;AACT"}
@@ -4,5 +4,4 @@ export interface QueryBodyResult {
4
4
  bodyType: SerializerCode;
5
5
  }
6
6
  export declare function decodeQueryBody(urlQuery: string | undefined, rawBody: unknown): QueryBodyResult | undefined;
7
- export declare type __ΩQueryBodyResult = any[];
8
7
  //# sourceMappingURL=queryBody.d.ts.map
@@ -1,34 +1,29 @@
1
- import { SerializerModes, fromBase64Url } from "@mionjs/core";
2
- const __ΩQueryBodyResult = ["rawBody", "SerializerCode", "bodyType", "QueryBodyResult", 'P&4!"w"4#Mw$y'];
1
+ import { findMionQueryParam } from "./urlQuery.js";
2
+ import { FatalError, SerializerModes, StatusCodes, fromBase64Url } from "@mionjs/core";
3
+ //#region src/lib/queryBody.ts
3
4
  function decodeQueryBody(urlQuery, rawBody) {
4
- if (rawBody)
5
- return void 0;
6
- if (!urlQuery)
7
- return void 0;
8
- const dataValue = extractDataParam(urlQuery);
9
- if (!dataValue)
10
- return void 0;
11
- return {
12
- rawBody: fromBase64Url(dataValue),
13
- bodyType: SerializerModes.stringifyJson
14
- };
5
+ if (rawBody) return void 0;
6
+ if (!urlQuery) return void 0;
7
+ const dataValue = findMionQueryParam(urlQuery, "data");
8
+ if (!dataValue) return void 0;
9
+ try {
10
+ return {
11
+ rawBody: fromBase64Url(dataValue),
12
+ bodyType: SerializerModes.stringifyJson
13
+ };
14
+ } catch (err) {
15
+ throw invalidQueryBody(err);
16
+ }
15
17
  }
16
- decodeQueryBody.__type = ["urlQuery", "rawBody", () => __ΩQueryBodyResult, "decodeQueryBody", 'PP&-J2!#2"Pn#-J/$'];
17
- function extractDataParam(urlQuery) {
18
- if (urlQuery.startsWith("data=")) {
19
- const ampIndex2 = urlQuery.indexOf("&", 5);
20
- return ampIndex2 === -1 ? urlQuery.slice(5) : urlQuery.slice(5, ampIndex2);
21
- }
22
- const idx = urlQuery.indexOf("&data=");
23
- if (idx === -1)
24
- return void 0;
25
- const start = idx + 6;
26
- const ampIndex = urlQuery.indexOf("&", start);
27
- return ampIndex === -1 ? urlQuery.slice(start) : urlQuery.slice(start, ampIndex);
18
+ function invalidQueryBody(originalError) {
19
+ return new FatalError({
20
+ statusCode: StatusCodes.UNEXPECTED_ERROR,
21
+ type: "invalid-query-body",
22
+ publicMessage: "Invalid query body: the data parameter is not base64url encoded.",
23
+ originalError
24
+ });
28
25
  }
29
- extractDataParam.__type = ["urlQuery", "extractDataParam", 'P&2!P&-J/"'];
30
- export {
31
- __ΩQueryBodyResult,
32
- decodeQueryBody
33
- };
34
- //# sourceMappingURL=queryBody.js.map
26
+ //#endregion
27
+ export { decodeQueryBody };
28
+
29
+ //# sourceMappingURL=queryBody.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryBody.js","sources":["../../../../src/lib/queryBody.ts"],"sourcesContent":["/* ########\n * 2025 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {fromBase64Url, SerializerModes} from '@mionjs/core';\nimport type {SerializerCode} from '@mionjs/core';\n\n/** Result of decoding a base64url query body from ?data= */\nexport interface QueryBodyResult {\n rawBody: string;\n bodyType: SerializerCode;\n}\n\n/** Detects and decodes base64url-encoded request body from ?data= query param.\n * Returns decoded body + bodyType if found, undefined otherwise. */\nexport function decodeQueryBody(urlQuery: string | undefined, rawBody: unknown): QueryBodyResult | undefined {\n if (rawBody) return undefined;\n if (!urlQuery) return undefined;\n const dataValue = extractDataParam(urlQuery);\n if (!dataValue) return undefined;\n return {\n rawBody: fromBase64Url(dataValue),\n bodyType: SerializerModes.stringifyJson,\n };\n}\n\nfunction extractDataParam(urlQuery: string): string | undefined {\n if (urlQuery.startsWith('data=')) {\n const ampIndex = urlQuery.indexOf('&', 5);\n return ampIndex === -1 ? urlQuery.slice(5) : urlQuery.slice(5, ampIndex);\n }\n const idx = urlQuery.indexOf('&data=');\n if (idx === -1) return undefined;\n const start = idx + 6;\n const ampIndex = urlQuery.indexOf('&', start);\n return ampIndex === -1 ? urlQuery.slice(start) : urlQuery.slice(start, ampIndex);\n}\n"],"names":["ampIndex"],"mappings":";;AAkBM,SAAU,gBAAgB,UAA8B,SAAgB;AAC1E,MAAI;AAAS,WAAO;AACpB,MAAI,CAAC;AAAU,WAAO;AACtB,QAAM,YAAY,iBAAiB,QAAQ;AAC3C,MAAI,CAAC;AAAW,WAAO;AACvB,SAAO;AAAA,IACH,SAAS,cAAc,SAAS;AAAA,IAChC,UAAU,gBAAgB;AAAA,EAAA;AAElC;;AAEA,SAAS,iBAAiB,UAAgB;AACtC,MAAI,SAAS,WAAW,OAAO,GAAG;AAC9B,UAAMA,YAAW,SAAS,QAAQ,KAAK,CAAC;AACxC,WAAOA,cAAa,KAAK,SAAS,MAAM,CAAC,IAAI,SAAS,MAAM,GAAGA,SAAQ;AAAA,EAC3E;AACA,QAAM,MAAM,SAAS,QAAQ,QAAQ;AACrC,MAAI,QAAQ;AAAI,WAAO;AACvB,QAAM,QAAQ,MAAM;AACpB,QAAM,WAAW,SAAS,QAAQ,KAAK,KAAK;AAC5C,SAAO,aAAa,KAAK,SAAS,MAAM,KAAK,IAAI,SAAS,MAAM,OAAO,QAAQ;AACnF;;"}
1
+ {"version":3,"file":"queryBody.js","names":[],"sources":["../../../../src/lib/queryBody.ts"],"sourcesContent":["/* ########\n * 2025 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {fromBase64Url, FatalError, RpcError, SerializerModes, StatusCodes} from '@mionjs/core';\nimport type {SerializerCode} from '@mionjs/core';\nimport {findMionQueryParam} from './urlQuery.ts';\n\n// `atob` throws a raw InvalidCharacterError on anything that is not base64, and one `GET /route?data=!`\n// used to take the node and uws processes down with an unhandled rejection. No pre-check: a regex over\n// the value doubled the cost of every query-body request (85 to 170 ns) to refuse what `atob` refuses.\n\nexport interface QueryBodyResult {\n rawBody: string;\n bodyType: SerializerCode;\n}\n\nexport function decodeQueryBody(urlQuery: string | undefined, rawBody: unknown): QueryBodyResult | undefined {\n if (rawBody) return undefined;\n if (!urlQuery) return undefined;\n const dataValue = findMionQueryParam(urlQuery, 'data');\n if (!dataValue) return undefined;\n try {\n return {rawBody: fromBase64Url(dataValue), bodyType: SerializerModes.stringifyJson};\n } catch (err) {\n throw invalidQueryBody(err);\n }\n}\n\nfunction invalidQueryBody(originalError?: unknown): RpcError<'invalid-query-body'> {\n return new FatalError({\n statusCode: StatusCodes.UNEXPECTED_ERROR,\n type: 'invalid-query-body',\n publicMessage: 'Invalid query body: the data parameter is not base64url encoded.',\n originalError: originalError as Error | undefined,\n });\n}\n"],"mappings":";;;AAoBA,SAAgB,gBAAgB,UAA8B,SAA+C;CAC3G,IAAI,SAAS,OAAO,KAAA;CACpB,IAAI,CAAC,UAAU,OAAO,KAAA;CACtB,MAAM,YAAY,mBAAmB,UAAU,MAAM;CACrD,IAAI,CAAC,WAAW,OAAO,KAAA;CACvB,IAAI;EACF,OAAO;GAAC,SAAS,cAAc,SAAS;GAAG,UAAU,gBAAgB;EAAa;CACpF,SAAS,KAAK;EACZ,MAAM,iBAAiB,GAAG;CAC5B;AACF;AAEA,SAAS,iBAAiB,eAAyD;CACjF,OAAO,IAAI,WAAW;EACpB,YAAY,YAAY;EACxB,MAAM;EACN,eAAe;EACA;CACjB,CAAC;AACH"}
@@ -1,15 +1,18 @@
1
- import { MethodWithJitFns } from '@mionjs/core';
1
+ import { MethodWithJitFns, ResolvedParser } from '@mionjs/core';
2
2
  import { Handler } from '../types/handlers.ts';
3
3
  import { RouterOptions } from '../types/general.ts';
4
- import { RouteOptions, MiddleFnOptions, HeadersMiddleFnOptions, MiddleFnMethod, HeadersMethod } from '../types/remoteMethods.ts';
4
+ import { RouteOptions, MiddlewareOptions } from '../types/remoteMethods.ts';
5
+ import { AnyHandlerDef, RawMiddlewareDef } from '../types/definitions.ts';
5
6
  type MethodReflect = Omit<MethodWithJitFns, 'id' | 'type' | 'nestLevel' | 'pointer' | 'options'>;
6
- export declare class AOTCacheError extends Error {
7
- constructor(routeId: string, type?: 'route' | 'middleFn' | 'rawMiddleFn');
7
+ export declare class MissingRtFnsError extends Error {
8
+ constructor(routeId: string, cause?: string);
8
9
  }
9
- export declare function resetRunTypesCache(): void;
10
- export declare function resetReflectionCaches(): void;
11
- export declare function getHandlerReflection(handler: Handler, routeId: string, routerOptions: RouterOptions, handlerOptions?: RouteOptions | MiddleFnOptions | HeadersMiddleFnOptions, isHeadersMiddleFn?: boolean, methodStrictTypes?: boolean): Promise<MethodReflect>;
12
- export declare function getRawMethodReflection(handler: Handler, routeId: string, routerOptions: RouterOptions): Promise<MethodReflect>;
13
- export declare function ensureBinaryJitFns(method: MiddleFnMethod | HeadersMethod): Promise<void>;
10
+ export declare class RuntimeCodeGenBlockedError extends Error {
11
+ constructor(routeId: string, cause?: string);
12
+ }
13
+ type ReflectableDef = Exclude<AnyHandlerDef, RawMiddlewareDef>;
14
+ export declare function getHandlerReflection(def: ReflectableDef, routeId: string, routerOptions: RouterOptions, handlerOptions?: RouteOptions | MiddlewareOptions, isHeadersMiddleware?: boolean): MethodReflect;
15
+ export declare function getRawMethodReflection(handler: Handler, routeId: string, routerOptions: RouterOptions): MethodReflect;
16
+ export declare function assertCompiledParser(methodId: string, parser: ResolvedParser, reflection: MethodReflect): void;
14
17
  export {};
15
18
  //# sourceMappingURL=reflection.d.ts.map
@@ -1,352 +1,76 @@
1
- import { __ΩHandler as ___Handler } from "../types/handlers.js";
2
- import { __ΩRouterOptions as ___RouterOptions } from "../types/general.js";
3
- import { HEADER_HOOK_DEFAULT_PARAMS, ROUTE_DEFAULT_PARAMS, DEFAULT_ROUTE_OPTIONS } from "../constants.js";
4
- import { HandlerType, EMPTY_HASH, getJitFunctionsFromHash, getNoopJitFns, HeadersSubset } from "@mionjs/core";
5
- import { getPersistedMethodMetadata } from "./methodsCache.js";
6
- import { __ΩRouteOptions as ___RouteOptions, __ΩMiddleFnOptions as ___MiddleFnOptions, __ΩHeadersMiddleFnOptions as ___HeadersMiddleFnOptions, __ΩMiddleFnMethod as ___MiddleFnMethod, __ΩHeadersMethod as ___HeadersMethod } from "../types/remoteMethods.js";
7
- const __ΩOmit = ["T", "K", () => __ΩPick, () => __ΩExclude, "Omit", 'b!b"e!!e!!ge!"o$#o##w%y'];
8
- const __ΩPick = ["T", "K", "Pick", 'l+e#!e"!fRb!b"Pde""N#!w#y'];
9
- const __ΩExclude = ["T", "U", "Exclude", 'l6!Re$!RPe#!e$"qk#%QRb!b"Pde"!p)w#y'];
10
- function __assignType(fn, args) {
11
- fn.__type = args;
12
- return fn;
13
- }
14
- const __ΩMethodReflect = [() => __ΩOmit, "MethodWithJitFns", "id", "type", "nestLevel", "pointer", "options", "MethodReflect", `"w"P.#.$.%.&.'Jo!#w(y`];
15
- class AOTCacheError extends Error {
16
- constructor(routeId, type = "route") {
17
- const typeLabel = type === "rawMiddleFn" ? "Raw middleFn" : type === "middleFn" ? "MiddleFn" : "Route/middleFn";
18
- super(`${typeLabel} "${routeId}" not found in AOT cache.
19
- Regenerate AOT caches using 'mion-build-aot' command.`);
20
- this.name = "AOTCacheError";
21
- }
22
- static __type = [() => Error, "routeId", "route", "middleFn", "rawMiddleFn", "type", () => "route", "constructor", "AOTCacheError", `P7!P&2"P.#.$.%J2&>'"0(5w)`];
23
- }
24
- const __ΩRunTypesModule = ["RunTypesModule", "!w!y"];
25
- const __ΩRunTypesFunctions = [() => __ΩRunTypesModule, "JitFunctions", "JitFunctions", () => __ΩRunTypesModule, "reflectFunction", "reflectFunction", () => __ΩRunTypesModule, "isUnionRunType", "isUnionRunType", () => __ΩRunTypesModule, "isClassRunType", "isClassRunType", () => __ΩRunTypesModule, "isLiteralRunType", "isLiteralRunType", () => __ΩRunTypesModule, "isNeverRunType", "isNeverRunType", "RunTypesFunctions", `Pn!."f4#n$.%f4&n'.(f4)n*.+f4,n-..f4/n0.1f42Mw3y`];
26
- let runTypesModule = null;
27
- let runTypesLoadPromise = null;
28
- async function loadRunTypesModule() {
29
- if (runTypesModule)
30
- return runTypesModule;
31
- if (runTypesLoadPromise)
32
- return runTypesLoadPromise;
33
- runTypesLoadPromise = import("@mionjs/run-types").then(__assignType((module) => {
34
- runTypesModule = {
35
- JitFunctions: module.JitFunctions,
36
- reflectFunction: module.reflectFunction,
37
- isUnionRunType: module.isUnionRunType,
38
- isClassRunType: module.isClassRunType,
39
- isLiteralRunType: module.isLiteralRunType,
40
- isNeverRunType: module.isNeverRunType
41
- };
42
- return runTypesModule;
43
- }, ["module", "", 'P"2!"/"']));
44
- return runTypesLoadPromise;
45
- }
46
- loadRunTypesModule.__type = [() => __ΩRunTypesFunctions, "loadRunTypesModule", 'Pn!`/"'];
47
- function resetRunTypesCache() {
48
- runTypesModule = null;
49
- runTypesLoadPromise = null;
50
- }
51
- resetRunTypesCache.__type = ["resetRunTypesCache", "P$/!"];
52
- function resetReflectionCaches() {
53
- rawMiddleFnReflectionCache.clear();
54
- }
55
- resetReflectionCaches.__type = ["resetReflectionCaches", "P$/!"];
56
- const rawMiddleFnReflectionCache = (Map.Ω = [["&"], [() => __ΩMethodReflect, "n!"]], /* @__PURE__ */ new Map());
57
- function createRawMiddleFnReflection(isAsync, hasReturnData = false, paramNames = []) {
58
- const cacheKey = `${isAsync}_${hasReturnData}_${paramNames.join(",")}`;
59
- const cached = rawMiddleFnReflectionCache.get(cacheKey);
60
- if (cached)
61
- return cached;
62
- const reflection = {
63
- paramNames,
64
- paramsJitFns: getNoopJitFns(),
65
- returnJitFns: getNoopJitFns(),
66
- paramsJitHash: EMPTY_HASH,
67
- returnJitHash: EMPTY_HASH,
68
- hasReturnData,
69
- isAsync
70
- };
71
- rawMiddleFnReflectionCache.set(cacheKey, reflection);
72
- return reflection;
73
- }
74
- createRawMiddleFnReflection.__type = ["isAsync", "hasReturnData", () => false, "paramNames", () => [], () => __ΩMethodReflect, "createRawMiddleFnReflection", `P)2!)2">#&F2$>%n&/'`];
75
- const __ΩCachedMethodMetadata = ["MethodMetadata", () => __ΩMethodReflect, "_cachedReflection", "CachedMethodMetadata", 'P"w!Pn"4#8MKw$y'];
76
- function extractReflectionFromCached(cached) {
77
- if (cached._cachedReflection)
78
- return cached._cachedReflection;
79
- const reflectionItems = {
80
- paramNames: cached.paramNames || [],
81
- paramsJitFns: getJitFunctionsFromHash(cached.paramsJitHash),
82
- returnJitFns: getJitFunctionsFromHash(cached.returnJitHash),
83
- paramsJitHash: cached.paramsJitHash,
84
- returnJitHash: cached.returnJitHash,
85
- hasReturnData: cached.hasReturnData,
86
- isAsync: cached.isAsync
87
- };
88
- if (cached.headersParam) {
89
- reflectionItems.headersParam = {
90
- headerNames: cached.headersParam.headerNames,
91
- jitFns: getJitFunctionsFromHash(cached.headersParam.jitHash),
92
- jitHash: cached.headersParam.jitHash
93
- };
94
- }
95
- if (cached.headersReturn) {
96
- reflectionItems.headersReturn = {
97
- headerNames: cached.headersReturn.headerNames,
98
- jitFns: getJitFunctionsFromHash(cached.headersReturn.jitHash),
99
- jitHash: cached.headersReturn.jitHash
100
- };
101
- }
102
- cached._cachedReflection = reflectionItems;
103
- return reflectionItems;
104
- }
105
- extractReflectionFromCached.__type = [() => __ΩCachedMethodMetadata, "cached", () => __ΩMethodReflect, "extractReflectionFromCached", 'Pn!2"n#/$'];
106
- async function getHandlerReflection(handler, routeId, routerOptions, handlerOptions = {}, isHeadersMiddleFn = false, methodStrictTypes) {
107
- const cached = getPersistedMethodMetadata(routeId);
108
- if (cached)
109
- return extractReflectionFromCached(cached);
110
- if (routerOptions.aot)
111
- throw new AOTCacheError(routeId, isHeadersMiddleFn ? "middleFn" : "route");
112
- const rt = await loadRunTypesModule();
113
- return generateHandlerReflection(handler, routeId, routerOptions, handlerOptions, isHeadersMiddleFn, rt, methodStrictTypes);
114
- }
115
- getHandlerReflection.__type = [() => ___Handler, "handler", "routeId", () => ___RouterOptions, "routerOptions", () => ___RouteOptions, () => ___MiddleFnOptions, () => ___HeadersMiddleFnOptions, "handlerOptions", () => ({}), "isHeadersMiddleFn", () => false, "methodStrictTypes", () => __ΩMethodReflect, "getHandlerReflection", "Pn!2\"&2#n$2%Pn&n'n(J2)>*)2+>,)2-8n.`//"];
116
- async function getRawMethodReflection(handler, routeId, routerOptions) {
117
- const cached = getPersistedMethodMetadata(routeId);
118
- if (cached)
119
- return createRawMiddleFnReflection(cached.isAsync, cached.hasReturnData, cached.paramNames || []);
120
- if (routerOptions.aot)
121
- return createRawMiddleFnReflection(true);
122
- const rt = await loadRunTypesModule();
123
- return generateRawMethodReflection(handler, routeId, rt);
124
- }
125
- getRawMethodReflection.__type = [() => ___Handler, "handler", "routeId", () => ___RouterOptions, "routerOptions", () => __ΩMethodReflect, "getRawMethodReflection", "Pn!2\"&2#n$2%n&`/'"];
126
- function generateHandlerReflection(handler, routeId, routerOptions, handlerOptions, isHeadersMiddleFn, rt, methodStrictTypes) {
127
- const reflectionItems = {};
128
- let handlerRunType;
129
- const needsBinary = (handlerOptions?.serializer ?? routerOptions.serializer) === "binary";
130
- const effectiveStrictTypes = methodStrictTypes ?? routerOptions.strictTypes;
131
- const runTypeOptions = {
132
- ...routerOptions?.runTypeOptions || DEFAULT_ROUTE_OPTIONS.runTypeOptions,
133
- ...effectiveStrictTypes !== void 0 ? { strictTypes: effectiveStrictTypes } : {}
134
- };
135
- try {
136
- handlerRunType = rt.reflectFunction(handler);
137
- } catch (error) {
138
- throw new Error(`Can not get RunType of handler for route/middleFn "${routeId}." Error: ${error?.message}`);
139
- }
140
- const paramsSlice = isHeadersMiddleFn ? { start: HEADER_HOOK_DEFAULT_PARAMS.length } : { start: ROUTE_DEFAULT_PARAMS.length };
141
- const paramsOpts = { ...runTypeOptions, paramsSlice };
142
- try {
143
- reflectionItems.paramNames = handlerRunType.getParameterNames(paramsOpts);
144
- if (reflectionItems.paramNames.length === 0) {
145
- reflectionItems.paramsJitHash = EMPTY_HASH;
146
- reflectionItems.paramsJitFns = getNoopJitFns();
147
- } else {
148
- reflectionItems.paramsJitFns = getFunctionJitFns(handler, paramsOpts, rt, false, needsBinary);
149
- reflectionItems.paramsJitHash = handlerRunType.getParameters().getJitHash(paramsOpts);
150
- }
151
- } catch (error) {
152
- throw new Error(`Can not compile Jit Functions for Parameters of route/middleFn "${routeId}." Error: ${error?.message}`);
153
- }
154
- if (isHeadersMiddleFn) {
155
- const headersRunType = getParamsHeadersRunType(handlerRunType, routeId, routerOptions, rt);
156
- const headerNames = getHeaderNames(headersRunType, routeId, rt);
157
- try {
158
- const opts = {
159
- ...runTypeOptions,
160
- paramsSlice: void 0
161
- };
162
- const jitFns = getTypeJitFunctions(headersRunType, opts, rt, false);
163
- const jitHash = headersRunType.getJitHash(opts);
164
- reflectionItems.headersParam = { headerNames, jitFns, jitHash };
165
- } catch (error) {
166
- throw new Error(`Can not compile Jit Functions for Headers of Headers MiddleFn "${routeId}." Error: ${error?.message}`);
167
- }
168
- }
169
- const returnHeadersRunType = getReturnHeadersRunType(handlerRunType, rt);
170
- if (returnHeadersRunType) {
171
- const opts = {};
172
- const headerNames = getHeaderNames(returnHeadersRunType, routeId, rt);
173
- const jitFns = getFunctionJitFns(handler, opts, rt, true, false);
174
- const jitHash = returnHeadersRunType.getJitHash(opts);
175
- reflectionItems.headersReturn = { headerNames, jitFns, jitHash };
176
- }
177
- const returnOpts = runTypeOptions;
178
- reflectionItems.hasReturnData = handlerRunType.hasReturnData();
179
- try {
180
- if (!reflectionItems.hasReturnData) {
181
- reflectionItems.returnJitFns = getNoopJitFns();
182
- reflectionItems.returnJitHash = EMPTY_HASH;
183
- } else {
184
- reflectionItems.returnJitFns = getFunctionJitFns(handler, returnOpts, rt, true, needsBinary);
185
- reflectionItems.returnJitHash = handlerRunType.getResolvedReturnType().getJitHash(returnOpts);
186
- }
187
- } catch (error) {
188
- throw new Error(`Can not get Jit Functions for Return of route/middleFn "${routeId}." Error: ${error?.message}`);
189
- }
190
- reflectionItems.isAsync = handlerRunType.isAsync();
191
- return reflectionItems;
192
- }
193
- generateHandlerReflection.__type = [() => ___Handler, "handler", "routeId", () => ___RouterOptions, "routerOptions", () => ___RouteOptions, () => ___MiddleFnOptions, () => ___HeadersMiddleFnOptions, "handlerOptions", "isHeadersMiddleFn", () => __ΩRunTypesFunctions, "rt", "methodStrictTypes", () => __ΩMethodReflect, "generateHandlerReflection", `Pn!2"&2#n$2%Pn&n'n(J2))2*n+2,)2-8n.//`];
194
- function generateRawMethodReflection(handler, routeId, rt) {
195
- let handlerRunType;
196
- try {
197
- handlerRunType = rt.reflectFunction(handler);
198
- } catch (error) {
199
- throw new Error(`Can not get RunType of handler for route/middleFn "${routeId}." Error: ${error?.message}`);
200
- }
201
- const isAsync = handlerRunType?.isAsync() || true;
202
- return createRawMiddleFnReflection(isAsync);
203
- }
204
- generateRawMethodReflection.__type = [() => ___Handler, "handler", "routeId", () => __ΩRunTypesFunctions, "rt", () => __ΩMethodReflect, "generateRawMethodReflection", `Pn!2"&2#n$2%n&/'`];
205
- function getParamsHeadersRunType(handlerRunType, routeId, routerOptions, rt) {
206
- const paramRunTypes = handlerRunType.getParameters().getParamRunTypes(getFakeCompiler(routerOptions));
207
- const headersSubset = paramRunTypes[1]?.getMemberType?.();
208
- if (!isHeaderSubSetRunType(headersSubset, rt)) {
209
- throw new Error(`Headers MiddleFn '${routeId}' second parameter must be a HeadersSubset.`);
210
- }
211
- return headersSubset;
212
- }
213
- getParamsHeadersRunType.__type = ["FunctionRunType", "handlerRunType", "routeId", () => ___RouterOptions, "routerOptions", () => __ΩRunTypesFunctions, "rt", "BaseRunType", "getParamsHeadersRunType", `P"w!2"&2#n$2%n&2'"w(/)`];
214
- function getReturnHeadersRunType(handlerRunType, rt) {
215
- const returnRunType = handlerRunType.getReturnType();
216
- if (rt.isUnionRunType(returnRunType)) {
217
- const headersSubset = returnRunType.getChildRunTypes().find(__assignType((child) => isHeaderSubSetRunType(child, rt), ["child", "", 'P"2!"/"']));
218
- if (!headersSubset)
219
- return void 0;
220
- return headersSubset;
221
- }
222
- if (!isHeaderSubSetRunType(returnRunType, rt))
223
- return void 0;
224
- return returnRunType;
225
- }
226
- getReturnHeadersRunType.__type = ["FunctionRunType", "handlerRunType", () => __ΩRunTypesFunctions, "rt", "BaseRunType", "getReturnHeadersRunType", 'P"w!2"n#2$P"w%-J/&'];
227
- function isHeaderSubSetRunType(runType, rt) {
228
- if (!runType)
229
- return false;
230
- return rt.isClassRunType(runType, HeadersSubset);
231
- }
232
- isHeaderSubSetRunType.__type = ["BaseRunType", "runType", () => __ΩRunTypesFunctions, "rt", "isHeaderSubSetRunType", 'PP"w!-J2"n#2$!/%'];
233
- function getHeaderNames(runType, routeId, rt) {
234
- const typeArguments = runType.src.typeArguments;
235
- if (!typeArguments || typeArguments.length === 0) {
236
- throw new Error(`HeadersSubset must have type arguments in route/middleFn ${routeId}`);
237
- }
238
- const headerNames = [];
239
- const requiredArg = typeArguments[0];
240
- if (requiredArg) {
241
- const requiredNames = extractLiteralStringsFromType(requiredArg._rt, rt);
242
- headerNames.push(...requiredNames);
243
- }
244
- if (typeArguments.length > 1) {
245
- const optionalArg = typeArguments[1];
246
- if (optionalArg) {
247
- const optionalNames = extractLiteralStringsFromType(optionalArg._rt, rt);
248
- headerNames.push(...optionalNames);
249
- }
250
- }
251
- if (headerNames.length === 0)
252
- throw new Error(`Header names array cannot be empty in route/middleFn ${routeId}`);
253
- return headerNames;
254
- }
255
- getHeaderNames.__type = ["BaseRunType", "runType", "routeId", () => __ΩRunTypesFunctions, "rt", "getHeaderNames", 'P"w!2"&2#n$2%&F/&'];
256
- function extractLiteralStringsFromTypeRecursive(runType, rt) {
257
- if (rt.isLiteralRunType(runType)) {
258
- const literal = runType.getLiteralValue();
259
- if (typeof literal === "string") {
260
- return [literal];
261
- }
262
- return [];
263
- }
264
- if (rt.isUnionRunType(runType)) {
265
- const children = runType.getChildRunTypes();
266
- const literals = [];
267
- for (const child of children) {
268
- const childLiterals = extractLiteralStringsFromTypeRecursive(child, rt);
269
- literals.push(...childLiterals);
270
- }
271
- return literals;
272
- }
273
- return [];
274
- }
275
- extractLiteralStringsFromTypeRecursive.__type = ["BaseRunType", "runType", () => __ΩRunTypesFunctions, "rt", "extractLiteralStringsFromTypeRecursive", 'P"w!2"n#2$&F/%'];
276
- function extractLiteralStringsFromType(runType, rt) {
277
- if (rt.isNeverRunType(runType))
278
- return [];
279
- return extractLiteralStringsFromTypeRecursive(runType, rt);
280
- }
281
- extractLiteralStringsFromType.__type = ["BaseRunType", "runType", () => __ΩRunTypesFunctions, "rt", "extractLiteralStringsFromType", 'P"w!2"n#2$&F/%'];
282
- function getFakeCompiler(routerOptions) {
283
- return { opts: routerOptions };
284
- }
285
- getFakeCompiler.__type = [() => ___RouterOptions, "routerOptions", "JitFnCompiler", "getFakeCompiler", 'Pn!2""w#/$'];
286
- function getTypeJitFunctions(runType, opts, rtModule, needsBinary = false) {
287
- const jitFns = {
288
- isType: runType.createJitCompiledFunction(rtModule.JitFunctions.isType.id, void 0, opts),
289
- typeErrors: runType.createJitCompiledFunction(rtModule.JitFunctions.typeErrors.id, void 0, opts),
290
- prepareForJson: runType.createJitCompiledFunction(rtModule.JitFunctions.prepareForJson.id, void 0, opts),
291
- restoreFromJson: runType.createJitCompiledFunction(rtModule.JitFunctions.restoreFromJson.id, void 0, opts),
292
- stringifyJson: runType.createJitCompiledFunction(rtModule.JitFunctions.stringifyJson.id, void 0, opts),
293
- ...needsBinary ? {
294
- toBinary: runType.createJitCompiledFunction(rtModule.JitFunctions.toBinary.id, void 0, opts),
295
- fromBinary: runType.createJitCompiledFunction(rtModule.JitFunctions.fromBinary.id, void 0, opts)
296
- } : {}
297
- };
298
- return jitFns;
299
- }
300
- getTypeJitFunctions.__type = ["BaseRunType", "runType", "RunTypeOptions", "opts", () => __ΩRunTypesFunctions, "rtModule", "needsBinary", () => false, "JitCompiledFunctions", "getTypeJitFunctions", `P"w!2"P"w#-J2$n%2&)2'>("w)/*`];
301
- const functionRunTypeCache = (WeakMap.Ω = [["AnyFn", '"w!'], ["FunctionRunType", '"w!']], /* @__PURE__ */ new WeakMap());
302
- function getFunctionJitFns(fn, opts, rtModule, isReturn, needsBinary = false) {
303
- let runType = functionRunTypeCache.get(fn);
304
- if (!runType) {
305
- runType = rtModule.reflectFunction(fn);
306
- functionRunTypeCache.set(fn, runType);
307
- }
308
- const createFn = isReturn ? runType.createJitCompiledReturnFunction.bind(runType) : runType.createJitCompiledParamsFunction.bind(runType);
309
- const jitFunctions = {
310
- isType: createFn(rtModule.JitFunctions.isType, opts),
311
- typeErrors: createFn(rtModule.JitFunctions.typeErrors, opts),
312
- prepareForJson: createFn(rtModule.JitFunctions.prepareForJson, opts),
313
- restoreFromJson: createFn(rtModule.JitFunctions.restoreFromJson, opts),
314
- stringifyJson: createFn(rtModule.JitFunctions.stringifyJson, opts),
315
- ...needsBinary ? {
316
- toBinary: createFn(rtModule.JitFunctions.toBinary, opts),
317
- fromBinary: createFn(rtModule.JitFunctions.fromBinary, opts)
318
- } : {}
319
- };
320
- return jitFunctions;
321
- }
322
- getFunctionJitFns.__type = ["fn", "RunTypeOptions", "opts", () => __ΩRunTypesFunctions, "rtModule", "isReturn", "needsBinary", () => false, "JitCompiledFunctions", "getFunctionJitFns", `P"2!P"w"-J2#n$2%)2&)2'>("w)/*`];
323
- async function ensureBinaryJitFns(method) {
324
- if (method.paramsJitFns.toBinary && method.returnJitFns.toBinary)
325
- return;
326
- const rt = await loadRunTypesModule();
327
- const isHeader = method.type === HandlerType.headersMiddleFn;
328
- const paramsSlice = isHeader ? { start: HEADER_HOOK_DEFAULT_PARAMS.length } : { start: ROUTE_DEFAULT_PARAMS.length };
329
- const opts = { paramsSlice };
330
- if (!method.paramsJitFns.toBinary && method.paramsJitHash !== EMPTY_HASH) {
331
- const runType = rt.reflectFunction(method.handler);
332
- const createFn = runType.createJitCompiledParamsFunction.bind(runType);
333
- method.paramsJitFns.toBinary = createFn(rt.JitFunctions.toBinary, opts);
334
- method.paramsJitFns.fromBinary = createFn(rt.JitFunctions.fromBinary, opts);
335
- }
336
- if (!method.returnJitFns.toBinary && method.returnJitHash !== EMPTY_HASH && method.hasReturnData) {
337
- const runType = rt.reflectFunction(method.handler);
338
- const createFn = runType.createJitCompiledReturnFunction.bind(runType);
339
- method.returnJitFns.toBinary = createFn(rt.JitFunctions.toBinary);
340
- method.returnJitFns.fromBinary = createFn(rt.JitFunctions.fromBinary);
341
- }
342
- }
343
- ensureBinaryJitFns.__type = [() => ___MiddleFnMethod, () => ___HeadersMethod, "method", "ensureBinaryJitFns", 'PPn!n"J2#$`/$'];
344
- export {
345
- AOTCacheError,
346
- ensureBinaryJitFns,
347
- getHandlerReflection,
348
- getRawMethodReflection,
349
- resetReflectionCaches,
350
- resetRunTypesCache
1
+ import { EMPTY_HASH, getHeadersReflectionFromMarkers, getNoopJitFns, getOrCreateGlobal, getReflectionFromMarkers, isAsyncHandler } from "@mionjs/core";
2
+ //#region src/lib/reflection.ts
3
+ /** The definition carries no injected type information: it was built or run without the mion plugin active. */
4
+ var MissingRtFnsError = class extends Error {
5
+ constructor(routeId, cause) {
6
+ super(`Route/middleware "${routeId}" has no build-time type information.\nDeclare it through route()/middleware() and make sure mionVitePlugin (@mionjs/devtools) is active in the build.` + (cause ? `\nCause: ${cause}` : ""));
7
+ this.name = "MissingRtFnsError";
8
+ }
9
+ };
10
+ /** The injected type information IS present but the host forbids building functions from strings (workerd,
11
+ * Vercel's EdgeVM, a CSP without 'unsafe-eval'). A BUILD-CONFIG problem, not a missing-plugin one. */
12
+ var RuntimeCodeGenBlockedError = class extends Error {
13
+ constructor(routeId, cause) {
14
+ super(`Route/middleware "${routeId}" carries build-time type information, but this runtime forbids compiling functions from strings.\nBuild with \`mionVitePlugin({runTypes: {emitMode: 'both'}})\`: the default 'code' ships each compiled fn as a source string that is turned into a function on first use, which edge runtimes (Cloudflare Workers / workerd, Vercel Edge) refuse. 'both' also emits the live factory, so nothing is compiled at runtime.` + (cause ? `\nCause: ${cause}` : ""));
15
+ this.name = "RuntimeCodeGenBlockedError";
16
+ }
351
17
  };
352
- //# sourceMappingURL=reflection.js.map
18
+ var CODE_GEN_BLOCKED = /code generation from strings|unsafe-eval/i;
19
+ /** True when an error from the mion runtime is a blocked `new Function`, not a missing payload. */
20
+ function isCodeGenBlocked(message) {
21
+ return !!message && CODE_GEN_BLOCKED.test(message);
22
+ }
23
+ var rawMiddlewareReflectionCache = getOrCreateGlobal("mion.reflection.rawMiddlewareReflectionCache", () => /* @__PURE__ */ new Map());
24
+ /** Creates a MethodReflect for raw middlewares: no type info, NoopJitFns. */
25
+ function createRawMiddlewareReflection(isAsync, hasReturnData = false, paramsCount = 0) {
26
+ const cacheKey = `${isAsync}_${hasReturnData}_${paramsCount}`;
27
+ const cached = rawMiddlewareReflectionCache.get(cacheKey);
28
+ if (cached) return cached;
29
+ const reflection = {
30
+ paramsCount,
31
+ paramsJitFns: getNoopJitFns(),
32
+ returnJitFns: getNoopJitFns(),
33
+ paramsJitHash: EMPTY_HASH,
34
+ returnJitHash: EMPTY_HASH,
35
+ hasReturnData,
36
+ isAsync
37
+ };
38
+ rawMiddlewareReflectionCache.set(cacheKey, reflection);
39
+ return reflection;
40
+ }
41
+ /** All data derives from the mion marker payload the factory stashed on the definition (`def.rtFns`);
42
+ * registration fails loudly when that payload is missing (plugin not active). */
43
+ function getHandlerReflection(def, routeId, routerOptions, handlerOptions = {}, isHeadersMiddleware = false) {
44
+ try {
45
+ return isHeadersMiddleware ? getHeadersReflectionFromMarkers(def.rtFns, def.handler, routeId) : getReflectionFromMarkers(def.rtFns, def.handler, routeId);
46
+ } catch (error) {
47
+ if (isCodeGenBlocked(error?.message)) throw new RuntimeCodeGenBlockedError(routeId, error.message);
48
+ throw new MissingRtFnsError(routeId, error?.message);
49
+ }
50
+ }
51
+ /** Raw middlewares parse the raw request / response themselves, so they carry no type info. */
52
+ function getRawMethodReflection(handler, routeId, routerOptions) {
53
+ return createRawMiddlewareReflection(isAsyncHandler(handler));
54
+ }
55
+ /** Checks each direction's compiled strategy against the resolved one: they differ only when the
56
+ * build saw a different literal than the runtime value. */
57
+ function assertCompiledParser(methodId, parser, reflection) {
58
+ const sides = [[
59
+ "params",
60
+ reflection.paramsJitHash,
61
+ reflection.paramsJitFns
62
+ ], [
63
+ "return",
64
+ reflection.returnJitHash,
65
+ reflection.returnJitFns
66
+ ]];
67
+ for (const [direction, hash, fns] of sides) {
68
+ if (hash === EMPTY_HASH) continue;
69
+ const wanted = parser[direction];
70
+ if (fns.json.strategy !== wanted) throw new Error(`mion: ${direction} parser of "${methodId}" is '${wanted}' at runtime but the build compiled '${fns.json.strategy}'. Write the parser option inline on the route (or as an \`as const\` preset) and the router-wide default as a literal on createMionRouter, so the build sees the same value the runtime reads.`);
71
+ }
72
+ }
73
+ //#endregion
74
+ export { MissingRtFnsError, RuntimeCodeGenBlockedError, assertCompiledParser, getHandlerReflection, getRawMethodReflection };
75
+
76
+ //# sourceMappingURL=reflection.js.map