@mionjs/router 0.8.8 → 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.
- package/.dist/cjs/.mion/types/A0Qb_D32xQCR.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_D32xQCR.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_D5PMNNO.cjs +17 -0
- package/.dist/cjs/.mion/types/A0Qb_D5PMNNO.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_E1CjDEA.cjs +36 -0
- package/.dist/cjs/.mion/types/A0Qb_E1CjDEA.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_EYEglde.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_EYEglde.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_EyHLuYw.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_EyHLuYw.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_G42dZdW.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_G42dZdW.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_HSE8icr.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_HSE8icr.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_HXAy3Lx.cjs +13 -0
- package/.dist/cjs/.mion/types/A0Qb_HXAy3Lx.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_JJrCj9i.cjs +13 -0
- package/.dist/cjs/.mion/types/A0Qb_JJrCj9i.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_KDyf2Fa.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_KDyf2Fa.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_L3mQkaR.cjs +13 -0
- package/.dist/cjs/.mion/types/A0Qb_L3mQkaR.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_RAudOr2.cjs +13 -0
- package/.dist/cjs/.mion/types/A0Qb_RAudOr2.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_TRnIbow.cjs +17 -0
- package/.dist/cjs/.mion/types/A0Qb_TRnIbow.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_UOI3bXq.cjs +17 -0
- package/.dist/cjs/.mion/types/A0Qb_UOI3bXq.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_VsWxRKn.cjs +13 -0
- package/.dist/cjs/.mion/types/A0Qb_VsWxRKn.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_ZTKzxQG.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_ZTKzxQG.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_b4tYK8X.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_b4tYK8X.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_deFq9zY.cjs +26 -0
- package/.dist/cjs/.mion/types/A0Qb_deFq9zY.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_fMIJ1JT.cjs +14 -0
- package/.dist/cjs/.mion/types/A0Qb_fMIJ1JT.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_g17turq.cjs +13 -0
- package/.dist/cjs/.mion/types/A0Qb_g17turq.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_hqa3Nzs.cjs +14 -0
- package/.dist/cjs/.mion/types/A0Qb_hqa3Nzs.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_iKPrxW9.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_iKPrxW9.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_jLtJ5Kv.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_jLtJ5Kv.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_kibOHkN.cjs +14 -0
- package/.dist/cjs/.mion/types/A0Qb_kibOHkN.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_kz5ne4c.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_kz5ne4c.cjs.map +1 -0
- package/.dist/cjs/.mion/types/A0Qb_pzBRrJb.cjs +16 -0
- package/.dist/cjs/.mion/types/A0Qb_pzBRrJb.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_EYEglde.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_EYEglde.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_EyHLuYw.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_EyHLuYw.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_HSE8icr.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_HSE8icr.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_HXAy3Lx.cjs +13 -0
- package/.dist/cjs/.mion/types/Eq2V_HXAy3Lx.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_JJrCj9i.cjs +13 -0
- package/.dist/cjs/.mion/types/Eq2V_JJrCj9i.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_KDyf2Fa.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_KDyf2Fa.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_L3mQkaR.cjs +13 -0
- package/.dist/cjs/.mion/types/Eq2V_L3mQkaR.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_RAudOr2.cjs +13 -0
- package/.dist/cjs/.mion/types/Eq2V_RAudOr2.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_TRnIbow.cjs +17 -0
- package/.dist/cjs/.mion/types/Eq2V_TRnIbow.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_UOI3bXq.cjs +17 -0
- package/.dist/cjs/.mion/types/Eq2V_UOI3bXq.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_VsWxRKn.cjs +13 -0
- package/.dist/cjs/.mion/types/Eq2V_VsWxRKn.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_ZTKzxQG.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_ZTKzxQG.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_b4tYK8X.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_b4tYK8X.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_deFq9zY.cjs +26 -0
- package/.dist/cjs/.mion/types/Eq2V_deFq9zY.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_g17turq.cjs +13 -0
- package/.dist/cjs/.mion/types/Eq2V_g17turq.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_iKPrxW9.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_iKPrxW9.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_jLtJ5Kv.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_jLtJ5Kv.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_kz5ne4c.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_kz5ne4c.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Eq2V_pzBRrJb.cjs +16 -0
- package/.dist/cjs/.mion/types/Eq2V_pzBRrJb.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_D32xQCR.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_D32xQCR.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_D5PMNNO.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_D5PMNNO.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_E1CjDEA.cjs +32 -0
- package/.dist/cjs/.mion/types/Ky89_E1CjDEA.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_EYEglde.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_EYEglde.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_EyHLuYw.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_EyHLuYw.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_G42dZdW.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_G42dZdW.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_HSE8icr.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_HSE8icr.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_JJrCj9i.cjs +13 -0
- package/.dist/cjs/.mion/types/Ky89_JJrCj9i.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_KDyf2Fa.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_KDyf2Fa.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_L3mQkaR.cjs +13 -0
- package/.dist/cjs/.mion/types/Ky89_L3mQkaR.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_RAudOr2.cjs +13 -0
- package/.dist/cjs/.mion/types/Ky89_RAudOr2.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_TRnIbow.cjs +13 -0
- package/.dist/cjs/.mion/types/Ky89_TRnIbow.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_UOI3bXq.cjs +17 -0
- package/.dist/cjs/.mion/types/Ky89_UOI3bXq.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_ZTKzxQG.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_ZTKzxQG.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_b4tYK8X.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_b4tYK8X.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_deFq9zY.cjs +26 -0
- package/.dist/cjs/.mion/types/Ky89_deFq9zY.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_fMIJ1JT.cjs +13 -0
- package/.dist/cjs/.mion/types/Ky89_fMIJ1JT.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_g17turq.cjs +13 -0
- package/.dist/cjs/.mion/types/Ky89_g17turq.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_hqa3Nzs.cjs +14 -0
- package/.dist/cjs/.mion/types/Ky89_hqa3Nzs.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_iKPrxW9.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_iKPrxW9.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_jLtJ5Kv.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_jLtJ5Kv.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_kibOHkN.cjs +13 -0
- package/.dist/cjs/.mion/types/Ky89_kibOHkN.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_kz5ne4c.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_kz5ne4c.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Ky89_pzBRrJb.cjs +16 -0
- package/.dist/cjs/.mion/types/Ky89_pzBRrJb.cjs.map +1 -0
- package/.dist/cjs/.mion/types/OBOg_D32xQCR.cjs +23 -0
- package/.dist/cjs/.mion/types/OBOg_D32xQCR.cjs.map +1 -0
- package/.dist/cjs/.mion/types/OBOg_D5PMNNO.cjs +18 -0
- package/.dist/cjs/.mion/types/OBOg_D5PMNNO.cjs.map +1 -0
- package/.dist/cjs/.mion/types/OBOg_E1CjDEA.cjs +18 -0
- package/.dist/cjs/.mion/types/OBOg_E1CjDEA.cjs.map +1 -0
- package/.dist/cjs/.mion/types/OBOg_G42dZdW.cjs +18 -0
- package/.dist/cjs/.mion/types/OBOg_G42dZdW.cjs.map +1 -0
- package/.dist/cjs/.mion/types/OBOg_LKYfhxm.cjs +18 -0
- package/.dist/cjs/.mion/types/OBOg_LKYfhxm.cjs.map +1 -0
- package/.dist/cjs/.mion/types/OBOg_fMIJ1JT.cjs +18 -0
- package/.dist/cjs/.mion/types/OBOg_fMIJ1JT.cjs.map +1 -0
- package/.dist/cjs/.mion/types/OBOg_g17turq.cjs +17 -0
- package/.dist/cjs/.mion/types/OBOg_g17turq.cjs.map +1 -0
- package/.dist/cjs/.mion/types/OBOg_hqa3Nzs.cjs +17 -0
- package/.dist/cjs/.mion/types/OBOg_hqa3Nzs.cjs.map +1 -0
- package/.dist/cjs/.mion/types/OBOg_kibOHkN.cjs +17 -0
- package/.dist/cjs/.mion/types/OBOg_kibOHkN.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_D32xQCR.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_D32xQCR.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_D5PMNNO.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_D5PMNNO.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_E1CjDEA.cjs +29 -0
- package/.dist/cjs/.mion/types/Xhuv_E1CjDEA.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_EYEglde.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_EYEglde.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_EyHLuYw.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_EyHLuYw.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_G42dZdW.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_G42dZdW.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_HSE8icr.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_HSE8icr.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_HXAy3Lx.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_HXAy3Lx.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_JJrCj9i.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_JJrCj9i.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_KDyf2Fa.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_KDyf2Fa.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_L3mQkaR.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_L3mQkaR.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_LKYfhxm.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_LKYfhxm.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_RAudOr2.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_RAudOr2.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_TRnIbow.cjs +17 -0
- package/.dist/cjs/.mion/types/Xhuv_TRnIbow.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_UOI3bXq.cjs +17 -0
- package/.dist/cjs/.mion/types/Xhuv_UOI3bXq.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_VsWxRKn.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_VsWxRKn.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_ZTKzxQG.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_ZTKzxQG.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_ZgsWs6s.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_ZgsWs6s.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_b4tYK8X.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_b4tYK8X.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_deFq9zY.cjs +26 -0
- package/.dist/cjs/.mion/types/Xhuv_deFq9zY.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_fMIJ1JT.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_fMIJ1JT.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_g17turq.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_g17turq.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_hqa3Nzs.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_hqa3Nzs.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_iKPrxW9.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_iKPrxW9.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_jLtJ5Kv.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_jLtJ5Kv.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_kibOHkN.cjs +13 -0
- package/.dist/cjs/.mion/types/Xhuv_kibOHkN.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_kz5ne4c.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_kz5ne4c.cjs.map +1 -0
- package/.dist/cjs/.mion/types/Xhuv_pzBRrJb.cjs +16 -0
- package/.dist/cjs/.mion/types/Xhuv_pzBRrJb.cjs.map +1 -0
- package/.dist/cjs/.mion/types/mzca_fMIJ1JT.cjs +14 -0
- package/.dist/cjs/.mion/types/mzca_fMIJ1JT.cjs.map +1 -0
- package/.dist/cjs/.mion/types/mzca_hqa3Nzs.cjs +14 -0
- package/.dist/cjs/.mion/types/mzca_hqa3Nzs.cjs.map +1 -0
- package/.dist/cjs/.mion/types/mzca_kibOHkN.cjs +14 -0
- package/.dist/cjs/.mion/types/mzca_kibOHkN.cjs.map +1 -0
- package/.dist/cjs/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.cjs +14 -0
- package/.dist/cjs/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.cjs.map +1 -0
- package/.dist/cjs/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.cjs +14 -0
- package/.dist/cjs/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.cjs.map +1 -0
- package/.dist/cjs/.mion/types/rt/C7ezVBCtGn.cjs +498 -0
- package/.dist/cjs/.mion/types/rt/C7ezVBCtGn.cjs.map +1 -0
- package/.dist/cjs/.mion/types/rt/VIdAjpHu1X.cjs +526 -0
- package/.dist/cjs/.mion/types/rt/VIdAjpHu1X.cjs.map +1 -0
- package/.dist/cjs/.mion/types/rt/eF4wQzU6Fd.cjs +876 -0
- package/.dist/cjs/.mion/types/rt/eF4wQzU6Fd.cjs.map +1 -0
- package/.dist/cjs/.mion/types/rt/shared/JQEexHbHMp.cjs +467 -0
- package/.dist/cjs/.mion/types/rt/shared/JQEexHbHMp.cjs.map +1 -0
- package/.dist/cjs/.mion/types/rt/shared/connsmWgsp.cjs +1475 -0
- package/.dist/cjs/.mion/types/rt/shared/connsmWgsp.cjs.map +1 -0
- package/.dist/cjs/index.cjs +115 -153
- package/.dist/cjs/index.d.ts +5 -4
- package/.dist/cjs/middlewares.cjs +5 -0
- package/.dist/cjs/middlewares.d.ts +3 -0
- package/.dist/cjs/src/batches.cjs +332 -0
- package/.dist/cjs/src/batches.cjs.map +1 -0
- package/.dist/cjs/src/batches.d.ts +22 -0
- package/.dist/cjs/src/callContext.cjs +72 -116
- package/.dist/cjs/src/callContext.cjs.map +1 -1
- package/.dist/cjs/src/callContext.d.ts +5 -8
- package/.dist/cjs/src/constants.cjs +22 -41
- package/.dist/cjs/src/constants.cjs.map +1 -1
- package/.dist/cjs/src/constants.d.ts +1 -7
- package/.dist/cjs/src/dispatch.cjs +227 -129
- package/.dist/cjs/src/dispatch.cjs.map +1 -1
- package/.dist/cjs/src/dispatch.d.ts +8 -2
- package/.dist/cjs/src/lib/bodyLimit.cjs +37 -0
- package/.dist/cjs/src/lib/bodyLimit.cjs.map +1 -0
- package/.dist/cjs/src/lib/bodyLimit.d.ts +5 -0
- package/.dist/cjs/src/lib/bodyReader.cjs +79 -0
- package/.dist/cjs/src/lib/bodyReader.cjs.map +1 -0
- package/.dist/cjs/src/lib/bodyReader.d.ts +10 -0
- package/.dist/cjs/src/lib/dispatchError.cjs +77 -34
- package/.dist/cjs/src/lib/dispatchError.cjs.map +1 -1
- package/.dist/cjs/src/lib/dispatchError.d.ts +6 -2
- package/.dist/cjs/src/lib/handlers.cjs +91 -44
- package/.dist/cjs/src/lib/handlers.cjs.map +1 -1
- package/.dist/cjs/src/lib/handlers.d.ts +14 -9
- package/.dist/cjs/src/lib/headers.cjs +172 -55
- package/.dist/cjs/src/lib/headers.cjs.map +1 -1
- package/.dist/cjs/src/lib/headers.d.ts +40 -1
- package/.dist/cjs/src/lib/queryBody.cjs +25 -29
- package/.dist/cjs/src/lib/queryBody.cjs.map +1 -1
- package/.dist/cjs/src/lib/queryBody.d.ts +0 -1
- package/.dist/cjs/src/lib/reflection.cjs +78 -371
- package/.dist/cjs/src/lib/reflection.cjs.map +1 -1
- package/.dist/cjs/src/lib/reflection.d.ts +12 -9
- package/.dist/cjs/src/lib/remoteMethods.cjs +104 -104
- package/.dist/cjs/src/lib/remoteMethods.cjs.map +1 -1
- package/.dist/cjs/src/lib/remoteMethods.d.ts +4 -4
- package/.dist/cjs/src/lib/urlQuery.cjs +24 -0
- package/.dist/cjs/src/lib/urlQuery.cjs.map +1 -0
- package/.dist/cjs/src/lib/urlQuery.d.ts +2 -0
- package/.dist/cjs/src/middlewares/fetchMetadata.cjs +99 -0
- package/.dist/cjs/src/middlewares/fetchMetadata.cjs.map +1 -0
- package/.dist/cjs/src/middlewares/fetchMetadata.d.ts +15 -0
- package/.dist/cjs/src/middlewares/syncRoutes.cjs +67 -0
- package/.dist/cjs/src/middlewares/syncRoutes.cjs.map +1 -0
- package/.dist/cjs/src/middlewares/syncRoutes.d.ts +12 -0
- package/.dist/cjs/src/router.cjs +506 -432
- package/.dist/cjs/src/router.cjs.map +1 -1
- package/.dist/cjs/src/router.d.ts +27 -19
- package/.dist/cjs/src/routes/errors.routes.cjs +81 -46
- package/.dist/cjs/src/routes/errors.routes.cjs.map +1 -1
- package/.dist/cjs/src/routes/errors.routes.d.ts +14 -3
- package/.dist/cjs/src/routes/serializer.routes.cjs +107 -176
- package/.dist/cjs/src/routes/serializer.routes.cjs.map +1 -1
- package/.dist/cjs/src/routes/serializer.routes.d.ts +3 -3
- package/.dist/cjs/src/types/context.cjs +0 -31
- package/.dist/cjs/src/types/context.d.ts +13 -21
- package/.dist/cjs/src/types/definitions.cjs +0 -15
- package/.dist/cjs/src/types/definitions.d.ts +32 -20
- package/.dist/cjs/src/types/general.cjs +0 -14
- package/.dist/cjs/src/types/general.d.ts +15 -15
- package/.dist/cjs/src/types/guards.cjs +31 -38
- package/.dist/cjs/src/types/guards.cjs.map +1 -1
- package/.dist/cjs/src/types/guards.d.ts +7 -7
- package/.dist/cjs/src/types/handlers.cjs +0 -13
- package/.dist/cjs/src/types/handlers.d.ts +8 -5
- package/.dist/cjs/src/types/mionRouter.cjs +0 -0
- package/.dist/cjs/src/types/mionRouter.d.ts +44 -0
- package/.dist/cjs/src/types/parser.cjs +0 -0
- package/.dist/cjs/src/types/parser.d.ts +43 -0
- package/.dist/cjs/src/types/publicMethods.cjs +0 -24
- package/.dist/cjs/src/types/publicMethods.d.ts +65 -25
- package/.dist/cjs/src/types/remoteMethods.cjs +0 -25
- package/.dist/cjs/src/types/remoteMethods.d.ts +49 -29
- package/.dist/cjs/src/types/resolvedOptions.cjs +0 -0
- package/.dist/cjs/src/types/resolvedOptions.d.ts +28 -0
- package/.dist/esm/.mion/types/A0Qb_D32xQCR.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_D32xQCR.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_D5PMNNO.js +17 -0
- package/.dist/esm/.mion/types/A0Qb_D5PMNNO.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_E1CjDEA.js +36 -0
- package/.dist/esm/.mion/types/A0Qb_E1CjDEA.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_EYEglde.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_EYEglde.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_EyHLuYw.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_EyHLuYw.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_G42dZdW.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_G42dZdW.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_HSE8icr.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_HSE8icr.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_HXAy3Lx.js +13 -0
- package/.dist/esm/.mion/types/A0Qb_HXAy3Lx.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_JJrCj9i.js +13 -0
- package/.dist/esm/.mion/types/A0Qb_JJrCj9i.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_KDyf2Fa.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_KDyf2Fa.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_L3mQkaR.js +13 -0
- package/.dist/esm/.mion/types/A0Qb_L3mQkaR.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_RAudOr2.js +13 -0
- package/.dist/esm/.mion/types/A0Qb_RAudOr2.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_TRnIbow.js +17 -0
- package/.dist/esm/.mion/types/A0Qb_TRnIbow.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_UOI3bXq.js +17 -0
- package/.dist/esm/.mion/types/A0Qb_UOI3bXq.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_VsWxRKn.js +13 -0
- package/.dist/esm/.mion/types/A0Qb_VsWxRKn.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_ZTKzxQG.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_ZTKzxQG.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_b4tYK8X.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_b4tYK8X.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_deFq9zY.js +26 -0
- package/.dist/esm/.mion/types/A0Qb_deFq9zY.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_fMIJ1JT.js +14 -0
- package/.dist/esm/.mion/types/A0Qb_fMIJ1JT.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_g17turq.js +13 -0
- package/.dist/esm/.mion/types/A0Qb_g17turq.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_hqa3Nzs.js +14 -0
- package/.dist/esm/.mion/types/A0Qb_hqa3Nzs.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_iKPrxW9.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_iKPrxW9.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_jLtJ5Kv.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_jLtJ5Kv.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_kibOHkN.js +14 -0
- package/.dist/esm/.mion/types/A0Qb_kibOHkN.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_kz5ne4c.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_kz5ne4c.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_pzBRrJb.js +16 -0
- package/.dist/esm/.mion/types/A0Qb_pzBRrJb.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_EYEglde.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_EYEglde.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_EyHLuYw.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_EyHLuYw.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_HSE8icr.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_HSE8icr.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_HXAy3Lx.js +13 -0
- package/.dist/esm/.mion/types/Eq2V_HXAy3Lx.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_JJrCj9i.js +13 -0
- package/.dist/esm/.mion/types/Eq2V_JJrCj9i.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_KDyf2Fa.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_KDyf2Fa.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_L3mQkaR.js +13 -0
- package/.dist/esm/.mion/types/Eq2V_L3mQkaR.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_RAudOr2.js +13 -0
- package/.dist/esm/.mion/types/Eq2V_RAudOr2.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_TRnIbow.js +17 -0
- package/.dist/esm/.mion/types/Eq2V_TRnIbow.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_UOI3bXq.js +17 -0
- package/.dist/esm/.mion/types/Eq2V_UOI3bXq.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_VsWxRKn.js +13 -0
- package/.dist/esm/.mion/types/Eq2V_VsWxRKn.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_ZTKzxQG.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_ZTKzxQG.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_b4tYK8X.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_b4tYK8X.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_deFq9zY.js +26 -0
- package/.dist/esm/.mion/types/Eq2V_deFq9zY.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_g17turq.js +13 -0
- package/.dist/esm/.mion/types/Eq2V_g17turq.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_iKPrxW9.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_iKPrxW9.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_jLtJ5Kv.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_jLtJ5Kv.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_kz5ne4c.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_kz5ne4c.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_pzBRrJb.js +16 -0
- package/.dist/esm/.mion/types/Eq2V_pzBRrJb.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_D32xQCR.js +16 -0
- package/.dist/esm/.mion/types/Ky89_D32xQCR.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_D5PMNNO.js +16 -0
- package/.dist/esm/.mion/types/Ky89_D5PMNNO.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_E1CjDEA.js +32 -0
- package/.dist/esm/.mion/types/Ky89_E1CjDEA.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_EYEglde.js +16 -0
- package/.dist/esm/.mion/types/Ky89_EYEglde.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_EyHLuYw.js +16 -0
- package/.dist/esm/.mion/types/Ky89_EyHLuYw.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_G42dZdW.js +16 -0
- package/.dist/esm/.mion/types/Ky89_G42dZdW.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_HSE8icr.js +16 -0
- package/.dist/esm/.mion/types/Ky89_HSE8icr.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_JJrCj9i.js +13 -0
- package/.dist/esm/.mion/types/Ky89_JJrCj9i.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_KDyf2Fa.js +16 -0
- package/.dist/esm/.mion/types/Ky89_KDyf2Fa.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_L3mQkaR.js +13 -0
- package/.dist/esm/.mion/types/Ky89_L3mQkaR.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_RAudOr2.js +13 -0
- package/.dist/esm/.mion/types/Ky89_RAudOr2.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_TRnIbow.js +13 -0
- package/.dist/esm/.mion/types/Ky89_TRnIbow.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_UOI3bXq.js +17 -0
- package/.dist/esm/.mion/types/Ky89_UOI3bXq.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_ZTKzxQG.js +16 -0
- package/.dist/esm/.mion/types/Ky89_ZTKzxQG.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_b4tYK8X.js +16 -0
- package/.dist/esm/.mion/types/Ky89_b4tYK8X.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_deFq9zY.js +26 -0
- package/.dist/esm/.mion/types/Ky89_deFq9zY.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_fMIJ1JT.js +13 -0
- package/.dist/esm/.mion/types/Ky89_fMIJ1JT.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_g17turq.js +13 -0
- package/.dist/esm/.mion/types/Ky89_g17turq.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_hqa3Nzs.js +14 -0
- package/.dist/esm/.mion/types/Ky89_hqa3Nzs.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_iKPrxW9.js +16 -0
- package/.dist/esm/.mion/types/Ky89_iKPrxW9.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_jLtJ5Kv.js +16 -0
- package/.dist/esm/.mion/types/Ky89_jLtJ5Kv.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_kibOHkN.js +13 -0
- package/.dist/esm/.mion/types/Ky89_kibOHkN.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_kz5ne4c.js +16 -0
- package/.dist/esm/.mion/types/Ky89_kz5ne4c.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_pzBRrJb.js +16 -0
- package/.dist/esm/.mion/types/Ky89_pzBRrJb.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_D32xQCR.js +23 -0
- package/.dist/esm/.mion/types/OBOg_D32xQCR.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_D5PMNNO.js +18 -0
- package/.dist/esm/.mion/types/OBOg_D5PMNNO.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_E1CjDEA.js +18 -0
- package/.dist/esm/.mion/types/OBOg_E1CjDEA.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_G42dZdW.js +18 -0
- package/.dist/esm/.mion/types/OBOg_G42dZdW.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_LKYfhxm.js +18 -0
- package/.dist/esm/.mion/types/OBOg_LKYfhxm.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_fMIJ1JT.js +18 -0
- package/.dist/esm/.mion/types/OBOg_fMIJ1JT.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_g17turq.js +17 -0
- package/.dist/esm/.mion/types/OBOg_g17turq.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_hqa3Nzs.js +17 -0
- package/.dist/esm/.mion/types/OBOg_hqa3Nzs.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_kibOHkN.js +17 -0
- package/.dist/esm/.mion/types/OBOg_kibOHkN.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_D32xQCR.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_D32xQCR.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_D5PMNNO.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_D5PMNNO.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_E1CjDEA.js +29 -0
- package/.dist/esm/.mion/types/Xhuv_E1CjDEA.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_EYEglde.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_EYEglde.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_EyHLuYw.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_EyHLuYw.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_G42dZdW.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_G42dZdW.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_HSE8icr.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_HSE8icr.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_HXAy3Lx.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_HXAy3Lx.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_JJrCj9i.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_JJrCj9i.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_KDyf2Fa.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_KDyf2Fa.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_L3mQkaR.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_L3mQkaR.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_LKYfhxm.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_LKYfhxm.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_RAudOr2.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_RAudOr2.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_TRnIbow.js +17 -0
- package/.dist/esm/.mion/types/Xhuv_TRnIbow.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_UOI3bXq.js +17 -0
- package/.dist/esm/.mion/types/Xhuv_UOI3bXq.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_VsWxRKn.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_VsWxRKn.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_ZTKzxQG.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_ZTKzxQG.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_ZgsWs6s.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_ZgsWs6s.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_b4tYK8X.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_b4tYK8X.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_deFq9zY.js +26 -0
- package/.dist/esm/.mion/types/Xhuv_deFq9zY.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_fMIJ1JT.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_fMIJ1JT.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_g17turq.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_g17turq.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_hqa3Nzs.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_hqa3Nzs.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_iKPrxW9.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_iKPrxW9.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_jLtJ5Kv.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_jLtJ5Kv.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_kibOHkN.js +13 -0
- package/.dist/esm/.mion/types/Xhuv_kibOHkN.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_kz5ne4c.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_kz5ne4c.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_pzBRrJb.js +16 -0
- package/.dist/esm/.mion/types/Xhuv_pzBRrJb.js.map +1 -0
- package/.dist/esm/.mion/types/mzca_fMIJ1JT.js +14 -0
- package/.dist/esm/.mion/types/mzca_fMIJ1JT.js.map +1 -0
- package/.dist/esm/.mion/types/mzca_hqa3Nzs.js +14 -0
- package/.dist/esm/.mion/types/mzca_hqa3Nzs.js.map +1 -0
- package/.dist/esm/.mion/types/mzca_kibOHkN.js +14 -0
- package/.dist/esm/.mion/types/mzca_kibOHkN.js.map +1 -0
- package/.dist/esm/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.js +14 -0
- package/.dist/esm/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.js.map +1 -0
- package/.dist/esm/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.js +14 -0
- package/.dist/esm/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.js.map +1 -0
- package/.dist/esm/.mion/types/rt/C7ezVBCtGn.js +495 -0
- package/.dist/esm/.mion/types/rt/C7ezVBCtGn.js.map +1 -0
- package/.dist/esm/.mion/types/rt/VIdAjpHu1X.js +521 -0
- package/.dist/esm/.mion/types/rt/VIdAjpHu1X.js.map +1 -0
- package/.dist/esm/.mion/types/rt/eF4wQzU6Fd.js +873 -0
- package/.dist/esm/.mion/types/rt/eF4wQzU6Fd.js.map +1 -0
- package/.dist/esm/.mion/types/rt/shared/JQEexHbHMp.js +467 -0
- package/.dist/esm/.mion/types/rt/shared/JQEexHbHMp.js.map +1 -0
- package/.dist/esm/.mion/types/rt/shared/connsmWgsp.js +1475 -0
- package/.dist/esm/.mion/types/rt/shared/connsmWgsp.js.map +1 -0
- package/.dist/esm/index.d.ts +5 -4
- package/.dist/esm/index.js +11 -145
- package/.dist/esm/middlewares.d.ts +3 -0
- package/.dist/esm/middlewares.js +3 -0
- package/.dist/esm/src/batches.d.ts +22 -0
- package/.dist/esm/src/batches.js +321 -0
- package/.dist/esm/src/batches.js.map +1 -0
- package/.dist/esm/src/callContext.d.ts +5 -8
- package/.dist/esm/src/callContext.js +70 -118
- package/.dist/esm/src/callContext.js.map +1 -1
- package/.dist/esm/src/constants.d.ts +1 -7
- package/.dist/esm/src/constants.js +22 -44
- package/.dist/esm/src/constants.js.map +1 -1
- package/.dist/esm/src/dispatch.d.ts +8 -2
- package/.dist/esm/src/dispatch.js +223 -131
- package/.dist/esm/src/dispatch.js.map +1 -1
- package/.dist/esm/src/lib/bodyLimit.d.ts +5 -0
- package/.dist/esm/src/lib/bodyLimit.js +35 -0
- package/.dist/esm/src/lib/bodyLimit.js.map +1 -0
- package/.dist/esm/src/lib/bodyReader.d.ts +10 -0
- package/.dist/esm/src/lib/bodyReader.js +76 -0
- package/.dist/esm/src/lib/bodyReader.js.map +1 -0
- package/.dist/esm/src/lib/dispatchError.d.ts +6 -2
- package/.dist/esm/src/lib/dispatchError.js +72 -36
- package/.dist/esm/src/lib/dispatchError.js.map +1 -1
- package/.dist/esm/src/lib/handlers.d.ts +14 -9
- package/.dist/esm/src/lib/handlers.js +85 -48
- package/.dist/esm/src/lib/handlers.js.map +1 -1
- package/.dist/esm/src/lib/headers.d.ts +40 -1
- package/.dist/esm/src/lib/headers.js +167 -57
- package/.dist/esm/src/lib/headers.js.map +1 -1
- package/.dist/esm/src/lib/queryBody.d.ts +0 -1
- package/.dist/esm/src/lib/queryBody.js +26 -31
- package/.dist/esm/src/lib/queryBody.js.map +1 -1
- package/.dist/esm/src/lib/reflection.d.ts +12 -9
- package/.dist/esm/src/lib/reflection.js +75 -351
- package/.dist/esm/src/lib/reflection.js.map +1 -1
- package/.dist/esm/src/lib/remoteMethods.d.ts +4 -4
- package/.dist/esm/src/lib/remoteMethods.js +105 -111
- package/.dist/esm/src/lib/remoteMethods.js.map +1 -1
- package/.dist/esm/src/lib/urlQuery.d.ts +2 -0
- package/.dist/esm/src/lib/urlQuery.js +23 -0
- package/.dist/esm/src/lib/urlQuery.js.map +1 -0
- package/.dist/esm/src/middlewares/fetchMetadata.d.ts +15 -0
- package/.dist/esm/src/middlewares/fetchMetadata.js +97 -0
- package/.dist/esm/src/middlewares/fetchMetadata.js.map +1 -0
- package/.dist/esm/src/middlewares/syncRoutes.d.ts +12 -0
- package/.dist/esm/src/middlewares/syncRoutes.js +66 -0
- package/.dist/esm/src/middlewares/syncRoutes.js.map +1 -0
- package/.dist/esm/src/router.d.ts +27 -19
- package/.dist/esm/src/router.js +477 -449
- package/.dist/esm/src/router.js.map +1 -1
- package/.dist/esm/src/routes/errors.routes.d.ts +14 -3
- package/.dist/esm/src/routes/errors.routes.js +80 -48
- package/.dist/esm/src/routes/errors.routes.js.map +1 -1
- package/.dist/esm/src/routes/serializer.routes.d.ts +3 -3
- package/.dist/esm/src/routes/serializer.routes.js +107 -179
- package/.dist/esm/src/routes/serializer.routes.js.map +1 -1
- package/.dist/esm/src/types/context.d.ts +13 -21
- package/.dist/esm/src/types/context.js +0 -31
- package/.dist/esm/src/types/definitions.d.ts +32 -20
- package/.dist/esm/src/types/definitions.js +0 -15
- package/.dist/esm/src/types/general.d.ts +15 -15
- package/.dist/esm/src/types/general.js +0 -14
- package/.dist/esm/src/types/guards.d.ts +7 -7
- package/.dist/esm/src/types/guards.js +27 -46
- package/.dist/esm/src/types/guards.js.map +1 -1
- package/.dist/esm/src/types/handlers.d.ts +8 -5
- package/.dist/esm/src/types/handlers.js +0 -13
- package/.dist/esm/src/types/mionRouter.d.ts +44 -0
- package/.dist/esm/src/types/mionRouter.js +0 -0
- package/.dist/esm/src/types/parser.d.ts +43 -0
- package/.dist/esm/src/types/parser.js +0 -0
- package/.dist/esm/src/types/publicMethods.d.ts +65 -25
- package/.dist/esm/src/types/publicMethods.js +0 -24
- package/.dist/esm/src/types/remoteMethods.d.ts +49 -29
- package/.dist/esm/src/types/remoteMethods.js +0 -25
- package/.dist/esm/src/types/resolvedOptions.d.ts +28 -0
- package/.dist/esm/src/types/resolvedOptions.js +0 -0
- package/LICENSE +1 -1
- package/README.md +6 -6
- package/package.json +21 -24
- package/.dist/cjs/index.cjs.map +0 -1
- package/.dist/cjs/index.d.ts.map +0 -1
- package/.dist/cjs/src/aot/aotCacheLoader.cjs +0 -11
- package/.dist/cjs/src/aot/aotCacheLoader.cjs.map +0 -1
- package/.dist/cjs/src/aot/aotCacheLoader.d.ts +0 -2
- package/.dist/cjs/src/aot/aotCacheLoader.d.ts.map +0 -1
- package/.dist/cjs/src/callContext.d.ts.map +0 -1
- package/.dist/cjs/src/constants.d.ts.map +0 -1
- package/.dist/cjs/src/defaultRoutes.cjs +0 -16
- package/.dist/cjs/src/defaultRoutes.cjs.map +0 -1
- package/.dist/cjs/src/defaultRoutes.d.ts +0 -4
- package/.dist/cjs/src/defaultRoutes.d.ts.map +0 -1
- package/.dist/cjs/src/dispatch.d.ts.map +0 -1
- package/.dist/cjs/src/lib/aotEmitter.cjs +0 -74
- package/.dist/cjs/src/lib/aotEmitter.cjs.map +0 -1
- package/.dist/cjs/src/lib/aotEmitter.d.ts +0 -24
- package/.dist/cjs/src/lib/aotEmitter.d.ts.map +0 -1
- package/.dist/cjs/src/lib/dispatchError.d.ts.map +0 -1
- package/.dist/cjs/src/lib/handlers.d.ts.map +0 -1
- package/.dist/cjs/src/lib/headers.d.ts.map +0 -1
- package/.dist/cjs/src/lib/methodsCache.cjs +0 -55
- package/.dist/cjs/src/lib/methodsCache.cjs.map +0 -1
- package/.dist/cjs/src/lib/methodsCache.d.ts +0 -12
- package/.dist/cjs/src/lib/methodsCache.d.ts.map +0 -1
- package/.dist/cjs/src/lib/queryBody.d.ts.map +0 -1
- package/.dist/cjs/src/lib/reflection.d.ts.map +0 -1
- package/.dist/cjs/src/lib/remoteMethods.d.ts.map +0 -1
- package/.dist/cjs/src/lib/test/aotEmitter-test-router.cjs +0 -24
- package/.dist/cjs/src/lib/test/aotEmitter-test-router.cjs.map +0 -1
- package/.dist/cjs/src/lib/test/aotEmitter-test-router.d.ts +0 -5
- package/.dist/cjs/src/lib/test/aotEmitter-test-router.d.ts.map +0 -1
- package/.dist/cjs/src/router.d.ts.map +0 -1
- package/.dist/cjs/src/routes/client.routes.cjs +0 -76
- package/.dist/cjs/src/routes/client.routes.cjs.map +0 -1
- package/.dist/cjs/src/routes/client.routes.d.ts +0 -20
- package/.dist/cjs/src/routes/client.routes.d.ts.map +0 -1
- package/.dist/cjs/src/routes/errors.routes.d.ts.map +0 -1
- package/.dist/cjs/src/routes/mion.routes.cjs +0 -13
- package/.dist/cjs/src/routes/mion.routes.cjs.map +0 -1
- package/.dist/cjs/src/routes/mion.routes.d.ts +0 -10
- package/.dist/cjs/src/routes/mion.routes.d.ts.map +0 -1
- package/.dist/cjs/src/routes/serializer.routes.d.ts.map +0 -1
- package/.dist/cjs/src/routesFlow.cjs +0 -227
- package/.dist/cjs/src/routesFlow.cjs.map +0 -1
- package/.dist/cjs/src/routesFlow.d.ts +0 -8
- package/.dist/cjs/src/routesFlow.d.ts.map +0 -1
- package/.dist/cjs/src/types/context.cjs.map +0 -1
- package/.dist/cjs/src/types/context.d.ts.map +0 -1
- package/.dist/cjs/src/types/definitions.cjs.map +0 -1
- package/.dist/cjs/src/types/definitions.d.ts.map +0 -1
- package/.dist/cjs/src/types/general.cjs.map +0 -1
- package/.dist/cjs/src/types/general.d.ts.map +0 -1
- package/.dist/cjs/src/types/guards.d.ts.map +0 -1
- package/.dist/cjs/src/types/handlers.cjs.map +0 -1
- package/.dist/cjs/src/types/handlers.d.ts.map +0 -1
- package/.dist/cjs/src/types/publicMethods.cjs.map +0 -1
- package/.dist/cjs/src/types/publicMethods.d.ts.map +0 -1
- package/.dist/cjs/src/types/remoteMethods.cjs.map +0 -1
- package/.dist/cjs/src/types/remoteMethods.d.ts.map +0 -1
- package/.dist/esm/index.d.ts.map +0 -1
- package/.dist/esm/index.js.map +0 -1
- package/.dist/esm/src/aot/aotCacheLoader.d.ts +0 -2
- package/.dist/esm/src/aot/aotCacheLoader.d.ts.map +0 -1
- package/.dist/esm/src/aot/aotCacheLoader.js +0 -11
- package/.dist/esm/src/aot/aotCacheLoader.js.map +0 -1
- package/.dist/esm/src/callContext.d.ts.map +0 -1
- package/.dist/esm/src/constants.d.ts.map +0 -1
- package/.dist/esm/src/defaultRoutes.d.ts +0 -4
- package/.dist/esm/src/defaultRoutes.d.ts.map +0 -1
- package/.dist/esm/src/defaultRoutes.js +0 -16
- package/.dist/esm/src/defaultRoutes.js.map +0 -1
- package/.dist/esm/src/dispatch.d.ts.map +0 -1
- package/.dist/esm/src/lib/aotEmitter.d.ts +0 -24
- package/.dist/esm/src/lib/aotEmitter.d.ts.map +0 -1
- package/.dist/esm/src/lib/aotEmitter.js +0 -74
- package/.dist/esm/src/lib/aotEmitter.js.map +0 -1
- package/.dist/esm/src/lib/dispatchError.d.ts.map +0 -1
- package/.dist/esm/src/lib/handlers.d.ts.map +0 -1
- package/.dist/esm/src/lib/headers.d.ts.map +0 -1
- package/.dist/esm/src/lib/methodsCache.d.ts +0 -12
- package/.dist/esm/src/lib/methodsCache.d.ts.map +0 -1
- package/.dist/esm/src/lib/methodsCache.js +0 -56
- package/.dist/esm/src/lib/methodsCache.js.map +0 -1
- package/.dist/esm/src/lib/queryBody.d.ts.map +0 -1
- package/.dist/esm/src/lib/reflection.d.ts.map +0 -1
- package/.dist/esm/src/lib/remoteMethods.d.ts.map +0 -1
- package/.dist/esm/src/lib/test/aotEmitter-test-router.d.ts +0 -5
- package/.dist/esm/src/lib/test/aotEmitter-test-router.d.ts.map +0 -1
- package/.dist/esm/src/lib/test/aotEmitter-test-router.js +0 -24
- package/.dist/esm/src/lib/test/aotEmitter-test-router.js.map +0 -1
- package/.dist/esm/src/router.d.ts.map +0 -1
- package/.dist/esm/src/routes/client.routes.d.ts +0 -20
- package/.dist/esm/src/routes/client.routes.d.ts.map +0 -1
- package/.dist/esm/src/routes/client.routes.js +0 -76
- package/.dist/esm/src/routes/client.routes.js.map +0 -1
- package/.dist/esm/src/routes/errors.routes.d.ts.map +0 -1
- package/.dist/esm/src/routes/mion.routes.d.ts +0 -10
- package/.dist/esm/src/routes/mion.routes.d.ts.map +0 -1
- package/.dist/esm/src/routes/mion.routes.js +0 -13
- package/.dist/esm/src/routes/mion.routes.js.map +0 -1
- package/.dist/esm/src/routes/serializer.routes.d.ts.map +0 -1
- package/.dist/esm/src/routesFlow.d.ts +0 -8
- package/.dist/esm/src/routesFlow.d.ts.map +0 -1
- package/.dist/esm/src/routesFlow.js +0 -227
- package/.dist/esm/src/routesFlow.js.map +0 -1
- package/.dist/esm/src/types/context.d.ts.map +0 -1
- package/.dist/esm/src/types/context.js.map +0 -1
- package/.dist/esm/src/types/definitions.d.ts.map +0 -1
- package/.dist/esm/src/types/definitions.js.map +0 -1
- package/.dist/esm/src/types/general.d.ts.map +0 -1
- package/.dist/esm/src/types/general.js.map +0 -1
- package/.dist/esm/src/types/guards.d.ts.map +0 -1
- package/.dist/esm/src/types/handlers.d.ts.map +0 -1
- package/.dist/esm/src/types/handlers.js.map +0 -1
- package/.dist/esm/src/types/publicMethods.d.ts.map +0 -1
- package/.dist/esm/src/types/publicMethods.js.map +0 -1
- package/.dist/esm/src/types/remoteMethods.d.ts.map +0 -1
- package/.dist/esm/src/types/remoteMethods.js.map +0 -1
- package/index.ts +0 -29
- package/src/aot/aotCacheLoader.ts +0 -15
- package/src/callContext.ts +0 -193
- package/src/constants.ts +0 -45
- package/src/defaultRoutes.ts +0 -37
- package/src/dispatch.ts +0 -204
- package/src/lib/aotEmitter.ts +0 -140
- package/src/lib/dispatchError.ts +0 -60
- package/src/lib/handlers.ts +0 -75
- package/src/lib/headers.ts +0 -102
- package/src/lib/methodsCache.ts +0 -72
- package/src/lib/queryBody.ts +0 -40
- package/src/lib/reflection.ts +0 -517
- package/src/lib/remoteMethods.ts +0 -180
- package/src/lib/test/aotEmitter-test-router.ts +0 -40
- package/src/router.ts +0 -656
- package/src/routes/client.routes.ts +0 -108
- package/src/routes/errors.routes.ts +0 -51
- package/src/routes/mion.routes.ts +0 -11
- package/src/routes/serializer.routes.ts +0 -225
- package/src/routesFlow.ts +0 -320
- package/src/types/context.ts +0 -119
- package/src/types/definitions.ts +0 -53
- package/src/types/general.ts +0 -84
- package/src/types/guards.ts +0 -71
- package/src/types/handlers.ts +0 -49
- package/src/types/publicMethods.ts +0 -83
- package/src/types/remoteMethods.ts +0 -54
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sources":["../../../src/router.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\n/** Lightweight path join for error messages (avoids Node's 'path' module for edge compatibility) */\nimport type {Route, RouterOptions, Routes, RouterEntry} from './types/general.ts';\nimport type {\n RemoteMethod,\n MethodsExecutionChain,\n RawMethod,\n HeadersMethod,\n MiddleFnMethod,\n RouteMethod,\n} from './types/remoteMethods.ts';\nimport type {PublicApi, PrivateDef, MiddleFnsCollection} from './types/publicMethods.ts';\nimport type {HeadersMiddleFnDef, MiddleFnDef, RawMiddleFnDef} from './types/definitions.ts';\nimport {DEFAULT_ROUTE_OPTIONS, MAX_ROUTE_NESTING, WORKFLOW_KEY} from './constants.ts';\nimport {\n isRawMiddleFnDef,\n isHeadersMiddleFnDef,\n isExecutable,\n isMiddleFnDef,\n isRoute,\n isRoutes,\n isAnyMiddleFnDef,\n isPublicExecutable,\n} from './types/guards.ts';\nimport {\n HandlerType,\n SerializerModes,\n SerializerCode,\n SerializerMode,\n isTestEnv,\n isMionCompileMode,\n isMionAOTEmitMode,\n resetRoutesCache,\n} from '@mionjs/core';\nimport {getRawMethodReflection, getHandlerReflection, ensureBinaryJitFns} from './lib/reflection.ts';\nimport {serializerMiddleFns} from './routes/serializer.routes.ts';\nimport {getRouterItemId, getRoutePath, getENV, MION_ROUTES, routesCache} from '@mionjs/core';\nimport {setErrorOptions} from '@mionjs/core';\nimport {getPublicApi, resetRemoteMethodsMetadata} from './lib/remoteMethods.ts';\nimport {addToPersistedMethods, getPersistedMethod, resetPersistedMethods} from './lib/methodsCache.ts';\nimport {mionClientRoutes, mionClientMiddleFns} from './routes/client.routes.ts';\nimport {mionErrorsRoutes} from './routes/errors.routes.ts';\nimport {clearRoutesFlowCache} from './routesFlow.ts';\nimport {clearContextPool} from './callContext.ts';\n\ntype RouterKeyEntryList = [string, RouterEntry][];\ntype RoutesWithId = {\n pathPointer: string[];\n routes: Routes;\n};\n\n// ############# PRIVATE STATE #############\n\nconst mionInternalRoutes = Object.values(MION_ROUTES) as string[];\nconst flatRouter: Map<string, MethodsExecutionChain> = new Map(); // Main Router\nconst middleFnsById: Map<string, MiddleFnMethod | HeadersMethod | RawMethod> = new Map();\nconst routesById: Map<string, RouteMethod> = new Map();\nconst rawMiddleFnsById: Map<string, RawMethod> = new Map();\nconst middleFnNames: Set<string> = new Set();\nconst routeNames: Set<string> = new Set();\nlet complexity = 0;\nlet routerOptions: RouterOptions = {...DEFAULT_ROUTE_OPTIONS};\nlet isRouterInitialized = false;\nlet allExecutablesIds: string[] | undefined;\nlet platformConfig: Record<string, unknown> | undefined;\n\n/** Global middleFns to be run before and after any other middleFns or routes set using `registerRoutes` */\nconst defaultStartMiddleFns = {\n mionDeserializeRequest: serializerMiddleFns.mionDeserializeRequest,\n};\nconst defaultEndMiddleFns = {\n ...mionClientMiddleFns,\n mionSerializeResponse: serializerMiddleFns.mionSerializeResponse,\n};\nlet startMiddleFnsDef: MiddleFnsCollection = {...defaultStartMiddleFns};\nlet endMiddleFnsDef: MiddleFnsCollection = {...defaultEndMiddleFns};\nexport let startMiddleFns: RemoteMethod[] = [];\nexport let endMiddleFns: RemoteMethod[] = [];\n\n// ############# PUBLIC METHODS #############\n\nexport const getRouteExecutionChain = (path: string) => flatRouter.get(path);\nexport const getRouteEntries = () => flatRouter.entries();\nexport const geRoutesSize = () => flatRouter.size;\nexport const getRouteExecutable = (id: string) => routesById.get(id);\nexport const getMiddleFnExecutable = (id: string) => middleFnsById.get(id);\nexport const geMiddleFnsSize = () => middleFnsById.size;\nexport const getComplexity = () => complexity;\nexport const getRouterOptions = <Opts extends RouterOptions>(): Readonly<Opts> => routerOptions as Opts;\nexport const getAnyExecutable = (id: string) => routesById.get(id) || middleFnsById.get(id) || rawMiddleFnsById.get(id);\n\n/** Sets platform adapter config and notifies the parent process (Vite plugin) that the server is ready.\n * Called automatically by platform adapters. Sends an IPC message containing both the\n * serializable router config and the platform adapter config. */\nexport function setPlatformConfig(config: Record<string, unknown>): void {\n platformConfig = config;\n if (isMionAOTEmitMode() && typeof process.send === 'function') {\n const routerConfig = Object.fromEntries(Object.entries(routerOptions).filter(([, v]) => typeof v !== 'function'));\n try {\n process.send({type: 'mion-platform-ready', routerConfig, platformConfig: config});\n } catch (err) {\n console.error('[mion] Failed to send platform-ready IPC:', err);\n }\n }\n}\n\n/** Returns the platform adapter config set by setPlatformConfig(). */\nexport const getPlatformConfig = (): Readonly<Record<string, unknown>> | undefined => platformConfig;\n\nexport const resetRouter = () => {\n flatRouter.clear();\n middleFnsById.clear();\n routesById.clear();\n rawMiddleFnsById.clear();\n middleFnNames.clear();\n routeNames.clear();\n complexity = 0;\n routerOptions = {...DEFAULT_ROUTE_OPTIONS};\n startMiddleFnsDef = {...defaultStartMiddleFns};\n endMiddleFnsDef = {...defaultEndMiddleFns};\n startMiddleFns = [];\n endMiddleFns = [];\n isRouterInitialized = false;\n allExecutablesIds = undefined;\n platformConfig = undefined;\n resetRemoteMethodsMetadata();\n resetPersistedMethods();\n resetRoutesCache();\n clearContextPool();\n clearRoutesFlowCache();\n // Note: We intentionally do NOT call resetJitFnCaches() here because:\n // 1. JIT function caches are global and should persist across router resets\n // 2. The serializableClassRegistry (cleared by resetJitFnCaches) is needed for\n // serialization/deserialization of classes like RpcError\n // resetJitFnCaches() should only be called in specific test scenarios that need\n // to test AOT cache loading behavior\n};\n\n// simpler router initialization\nexport async function initMionRouter<R extends Routes>(routes: R, opts?: Partial<RouterOptions>): Promise<PublicApi<R>> {\n await initRouter(opts);\n const publicApi = await registerRoutes(routes);\n // Emit AOT caches once after ALL routes (error, client, user) are registered\n await emitAOTCaches();\n return publicApi;\n}\n\n/**\n * Initializes the Router.\n * @param application\n * @param contextDataFactory a factory function that returns an object to be shared in the `callContext.shared`\n * @param routerOptions\n * @returns\n */\nexport async function initRouter(opts?: Partial<RouterOptions>): Promise<Readonly<RouterOptions>> {\n if (isRouterInitialized) throw new Error('Router has already been initialized');\n routerOptions = {...routerOptions, ...opts};\n validateSharedDataFactory(routerOptions);\n Object.freeze(routerOptions);\n setErrorOptions(routerOptions);\n if (routerOptions.aot) await loadAOTCaches();\n isRouterInitialized = true;\n await registerRoutes({...mionErrorsRoutes});\n if (!routerOptions.skipClientRoutes) await registerRoutes({...mionClientRoutes});\n if (!isTestEnv()) console.log('mion router initialized', {routerOptions});\n return routerOptions;\n}\n\nexport async function registerRoutes<R extends Routes>(routes: R): Promise<PublicApi<R>> {\n if (!isRouterInitialized) throw new Error('initRouter should be called first');\n startMiddleFns = await getExecutablesFromMiddleFnsCollection(startMiddleFnsDef);\n endMiddleFns = await getExecutablesFromMiddleFnsCollection(endMiddleFnsDef);\n const binaryMiddlewares = new Set<string>();\n await recursiveFlatRoutes(routes, [], [], [], binaryMiddlewares, 0);\n if (binaryMiddlewares.size > 0) await compileBinaryForMiddleware(binaryMiddlewares);\n if (shouldFullGenerateSpec()) {\n return getPublicApi(routes);\n }\n return {} as PublicApi<R>;\n}\n\n/** Add middleFns at the start af the ExecutionChain, adds them before any other existing start middleFns by default */\nexport function addStartMiddleFns(middleFnsDef: MiddleFnsCollection, appendBeforeExisting = true) {\n if (isRouterInitialized) throw new Error('Can not add start middleFns after the router has been initialized');\n if (appendBeforeExisting) {\n startMiddleFnsDef = {...middleFnsDef, ...startMiddleFnsDef};\n return;\n }\n startMiddleFnsDef = {...startMiddleFnsDef, ...middleFnsDef};\n}\n\n/** Add middleFns at the end af the ExecutionChain, adds them after any other existing end middleFns by default */\nexport function addEndMiddleFns(middleFnsDef: MiddleFnsCollection, prependAfterExisting = true) {\n if (isRouterInitialized) throw new Error('Can not add end middleFns after the router has been initialized');\n if (prependAfterExisting) {\n endMiddleFnsDef = {...endMiddleFnsDef, ...middleFnsDef};\n return;\n }\n endMiddleFnsDef = {...middleFnsDef, ...endMiddleFnsDef};\n}\n\nexport function isPrivateDefinition(entry: RouterEntry, id: string): entry is PrivateDef {\n if (isRoute(entry)) return false;\n if (isRawMiddleFnDef(entry)) return true;\n try {\n const executable = getMiddleFnExecutable(id) || getRouteExecutable(id);\n if (!executable)\n throw new Error(`Route or MiddleFn ${id} not found. Please check you have called router.registerRoutes first.`);\n return isPrivateExecutable(executable);\n } catch {\n // error thrown because entry is a Routes object and does not have any handler\n return false;\n }\n}\n\nexport function isPrivateExecutable(executable: RemoteMethod): boolean {\n if (executable.type === HandlerType.rawMiddleFn) return true;\n if (executable.type === HandlerType.route) return false;\n const hasPublicParams = !!executable.paramNames?.length;\n const hasHeaderParams = !!(executable as HeadersMethod).headersParam?.headerNames?.length;\n return !hasPublicParams && !hasHeaderParams && !executable.hasReturnData;\n}\n\nexport function getTotalExecutables(): number {\n return routesById.size + middleFnsById.size + rawMiddleFnsById.size;\n}\n\nexport function getAllExecutablesIds(): string[] {\n if (allExecutablesIds) return allExecutablesIds;\n allExecutablesIds = [...routesById.keys(), ...middleFnsById.keys(), ...rawMiddleFnsById.keys()];\n return allExecutablesIds;\n}\n\n// used by codegen\nexport function shouldFullGenerateSpec(): boolean {\n return routerOptions.getPublicRoutesData || getENV('GENERATE_ROUTER_SPEC') === 'true' || isMionCompileMode();\n}\n\nexport function getRouteExecutableFromPath(path: string): RouteMethod {\n const executionChain = flatRouter.get(path);\n if (!executionChain) {\n // Return the not-found route executable\n return getAnyExecutable(MION_ROUTES.notFound) as RouteMethod;\n }\n return executionChain.methods[executionChain.routeIndex] as RouteMethod;\n}\n\n// ############# PRIVATE METHODS #############\n\nasync function loadAOTCaches() {\n const loader = await import('./aot/aotCacheLoader.ts');\n return loader.loadRouterAOTCaches();\n}\n\nasync function emitAOTCaches() {\n if (!isMionAOTEmitMode()) return;\n // Dynamic import resolves relative to this source file.\n // This only runs via vite-node (MION_COMPILE=buildOnly|childProcess), which always resolves from source.\n const aotEmitter = await import('./lib/aotEmitter.ts');\n return aotEmitter.emitAOTCaches();\n}\n\n/**\n * Optimized algorithm to flatten the routes object into a list of Executable objects.\n * @param routes\n * @param currentPointer current pointer in the routes object i.e. ['users', 'get']\n * @param preMiddleFns middleFns one level up preceding current pointer\n * @param postMiddleFns middleFns one level up following the current pointer\n * @param nestLevel\n */\nasync function recursiveFlatRoutes(\n routes: Routes,\n currentPointer: string[] = [],\n preMiddleFns: RemoteMethod[] = [],\n postMiddleFns: RemoteMethod[] = [],\n binaryMiddlewares: Set<string> = new Set(),\n nestLevel = 0\n) {\n if (nestLevel > MAX_ROUTE_NESTING)\n throw new Error('Too many nested routes, you can only nest routes ${MAX_ROUTE_NESTING} levels');\n\n const entries = Object.entries(routes);\n if (entries.length === 0)\n throw new Error(\n `Invalid route: ${currentPointer.length ? joinPath(...currentPointer) : '*'}. Can Not define empty routes`\n );\n\n let minus1Props: ReturnType<typeof getRouteEntryProperties> | null = null;\n for (let index = 0; index < entries.length; index++) {\n const [key, item] = entries[index];\n // create the executable items\n const newPointer = [...currentPointer, key];\n let routeEntry: RemoteMethod | RoutesWithId;\n if (typeof key !== 'string' || !isNaN(key as any))\n throw new Error(`Invalid route: ${joinPath(...newPointer)}. Numeric route names are not allowed`);\n if (key.includes(',')) throw new Error(`Invalid route: ${joinPath(...newPointer)}. Route names cannot contain commas.`);\n if (key === WORKFLOW_KEY)\n throw new Error(`Invalid route: ${joinPath(...newPointer)}. '${WORKFLOW_KEY}' is a reserved mion route name.`);\n\n // generates a middleFn\n if (isAnyMiddleFnDef(item)) {\n routeEntry = await getExecutableFromAnyMiddleFn(item, newPointer, nestLevel);\n if (middleFnNames.has(routeEntry.id))\n throw new Error(\n `Invalid middleFn: ${joinPath(...newPointer)}. Naming collision, Naming collision, duplicated middleFn.`\n );\n middleFnNames.add(routeEntry.id);\n }\n\n // generates a route\n else if (isRoute(item)) {\n routeEntry = await getExecutableFromRoute(item, newPointer, nestLevel);\n if (routeNames.has(routeEntry.id))\n throw new Error(`Invalid route: ${joinPath(...newPointer)}. Naming collision, duplicated route`);\n routeNames.add(routeEntry.id);\n }\n\n // generates structure required to go one level down\n else if (isRoutes(item)) {\n routeEntry = {\n pathPointer: newPointer,\n routes: item,\n };\n }\n\n // throws an error if the route is invalid\n else {\n const itemType = typeof item;\n throw new Error(`Invalid route: ${joinPath(...newPointer)}. Type <${itemType}> is not a valid route.`);\n }\n\n // recurse into sublevels\n minus1Props = await recursiveCreateExecutionChain(\n routeEntry,\n newPointer,\n preMiddleFns,\n postMiddleFns,\n binaryMiddlewares,\n nestLevel,\n index,\n entries,\n minus1Props\n );\n\n complexity++;\n }\n}\n\nasync function recursiveCreateExecutionChain(\n routeEntry: RemoteMethod | RoutesWithId,\n currentPointer: string[],\n preMiddleFns: RemoteMethod[],\n postMiddleFns: RemoteMethod[],\n binaryMiddlewares: Set<string>,\n nestLevel: number,\n index: number,\n routeKeyedEntries: RouterKeyEntryList,\n minus1Props: ReturnType<typeof getRouteEntryProperties> | null\n) {\n const minus1 = getEntry(index - 1, routeKeyedEntries);\n const plus1 = getEntry(index + 1, routeKeyedEntries);\n const props = getRouteEntryProperties(minus1, routeEntry, plus1);\n\n if (props.isBetweenRoutes && minus1Props) {\n props.preLevelMiddleFns = minus1Props.preLevelMiddleFns;\n props.postLevelMiddleFns = minus1Props.postLevelMiddleFns;\n } else {\n for (let i = 0; i < routeKeyedEntries.length; i++) {\n const [k, entry] = routeKeyedEntries[i];\n complexity++;\n if (!isAnyMiddleFnDef(entry)) continue;\n const newPointer = [...currentPointer.slice(0, -1), k];\n const executable = await getExecutableFromAnyMiddleFn(entry, newPointer, nestLevel);\n if (i < index) props.preLevelMiddleFns.push(executable);\n if (i > index) props.postLevelMiddleFns.push(executable);\n }\n }\n const isExec = isExecutable(routeEntry);\n\n if (isExec && props.isRoute) {\n const path = getRoutePath(routeEntry.pointer, routerOptions);\n const routeMethod = routeEntry as RouteMethod;\n const levelMethods = [\n ...preMiddleFns,\n ...props.preLevelMiddleFns,\n routeEntry,\n ...props.postLevelMiddleFns,\n ...postMiddleFns,\n ];\n const methods = [...startMiddleFns, ...levelMethods, ...endMiddleFns];\n const executionChain: MethodsExecutionChain = {\n routeIndex: startMiddleFns.length + preMiddleFns.length + props.preLevelMiddleFns.length,\n methods,\n serializer: getSerializerCodeFromMode(routeMethod.options.serializer),\n };\n const middleFnIds = getPublicMiddleFnIds(methods);\n // add middleware functions deps, so can be serialized with the router\n if (middleFnIds.length) routeMethod.middleFnIds = middleFnIds;\n flatRouter.set(path, executionChain);\n // Collect middleware that needs binary JIT functions for retroactive compilation\n if (routeMethod.options.serializer === 'binary') {\n for (const method of methods) {\n if (method.type === HandlerType.middleFn || method.type === HandlerType.headersMiddleFn) {\n binaryMiddlewares.add(method.id);\n }\n }\n }\n } else if (!isExec) {\n await recursiveFlatRoutes(\n routeEntry.routes,\n routeEntry.pathPointer,\n [...preMiddleFns, ...props.preLevelMiddleFns],\n [...props.postLevelMiddleFns, ...postMiddleFns],\n binaryMiddlewares,\n nestLevel + 1\n );\n }\n\n return props;\n}\n\nasync function getExecutableFromAnyMiddleFn(\n middleFn: MiddleFnDef | HeadersMiddleFnDef | RawMiddleFnDef,\n middleFnPointer: string[],\n nestLevel: number\n) {\n if (isRawMiddleFnDef(middleFn)) return getExecutableFromRawMiddleFn(middleFn, middleFnPointer, nestLevel);\n return getExecutableFromMiddleFn(middleFn, middleFnPointer, nestLevel);\n}\n\nexport async function getExecutableFromMiddleFn(\n middleFn: MiddleFnDef | HeadersMiddleFnDef,\n middleFnPointer: string[],\n nestLevel: number\n): Promise<MiddleFnMethod | HeadersMethod> {\n const isHeader = isHeadersMiddleFnDef(middleFn);\n // todo fix header id should be same as any other one and then maybe map from id to header name\n const middleFnId = getRouterItemId(middleFnPointer);\n const existing = middleFnsById.get(middleFnId);\n if (existing) return existing as MiddleFnMethod;\n\n type MixedMiddleFn = (Omit<MiddleFnMethod, 'type'> | Omit<HeadersMethod, 'type'>) & {\n type: typeof HandlerType.middleFn | typeof HandlerType.headersMiddleFn;\n };\n\n const compiledMethod = getPersistedMethod(middleFnId, middleFn.handler);\n let executable: MixedMiddleFn;\n if (compiledMethod) {\n executable = compiledMethod as MixedMiddleFn;\n } else {\n const reflectionData = await getHandlerReflection(\n middleFn.handler,\n middleFnId,\n routerOptions,\n middleFn.options ?? {},\n isHeader,\n middleFn.options?.strictTypes\n );\n executable = {\n id: middleFnId,\n type: isHeader ? HandlerType.headersMiddleFn : HandlerType.middleFn,\n nestLevel,\n handler: middleFn.handler,\n pointer: middleFnPointer,\n ...reflectionData,\n options: {\n runOnError: !!middleFn.options?.runOnError,\n validateParams: middleFn.options?.validateParams ?? true,\n validateReturn: middleFn.options?.validateReturn ?? false,\n description: middleFn.options?.description,\n strictTypes: middleFn.options?.strictTypes ?? routerOptions.strictTypes,\n },\n };\n addToPersistedMethods(middleFnId, executable);\n }\n\n middleFnsById.set(middleFnId, executable as any);\n routesCache.setMethodJitFns(middleFnId, executable as any);\n return executable as any;\n}\n\nexport async function getExecutableFromRawMiddleFn(\n middleFn: RawMiddleFnDef,\n middleFnPointer: string[],\n nestLevel: number\n): Promise<RawMethod> {\n const middleFnId = getRouterItemId(middleFnPointer);\n const existing = rawMiddleFnsById.get(middleFnId);\n if (existing) return existing as RawMethod;\n const reflectionData = await getRawMethodReflection(middleFn.handler, middleFnId, routerOptions);\n const executable: RawMethod = {\n id: middleFnId,\n type: HandlerType.rawMiddleFn,\n nestLevel,\n handler: middleFn.handler,\n pointer: middleFnPointer,\n ...reflectionData,\n options: {\n runOnError: !!middleFn.options?.runOnError,\n validateParams: false,\n validateReturn: false,\n description: middleFn.options?.description,\n },\n };\n rawMiddleFnsById.set(middleFnId, executable);\n routesCache.setMethodJitFns(middleFnId, executable as any);\n return executable;\n}\n\n/** Retroactively compiles binary JIT functions for middleware in the path of binary routes */\nasync function compileBinaryForMiddleware(binaryMiddlewareIds: Set<string>): Promise<void> {\n for (const id of binaryMiddlewareIds) {\n const method = middleFnsById.get(id);\n if (method) await ensureBinaryJitFns(method as MiddleFnMethod);\n }\n}\n\nexport async function getExecutableFromRoute(route: Route, routePointer: string[], nestLevel: number): Promise<RouteMethod> {\n const routeId = getRouterItemId(routePointer);\n const existing = routesById.get(routeId);\n if (existing) return existing as RouteMethod;\n\n const compiledMethod = getPersistedMethod(routeId, route.handler);\n let executable: RouteMethod;\n if (compiledMethod) {\n executable = compiledMethod as RouteMethod;\n } else {\n const resolvedRouteOptions = {...route.options, serializer: route.options?.serializer ?? routerOptions.serializer};\n const reflectionData = await getHandlerReflection(\n route.handler,\n routeId,\n routerOptions,\n resolvedRouteOptions,\n false,\n route.options?.strictTypes\n );\n executable = {\n id: routeId,\n type: HandlerType.route,\n nestLevel,\n handler: route.handler,\n pointer: routePointer,\n ...reflectionData,\n options: {\n runOnError: false,\n validateParams: route.options?.validateParams ?? true,\n validateReturn: route.options?.validateReturn ?? false,\n description: route.options?.description,\n serializer: route.options?.serializer ?? routerOptions.serializer,\n isMutation: route.options?.isMutation,\n strictTypes: route.options?.strictTypes ?? routerOptions.strictTypes,\n },\n };\n addToPersistedMethods(routeId, executable);\n }\n routesById.set(routeId, executable);\n routesCache.setMethodJitFns(routeId, executable as any);\n return executable;\n}\n\n/** Returns IDs of public middleware methods from the execution chain, excluding internal mion routes. */\nfunction getPublicMiddleFnIds(methods: RemoteMethod[]): string[] {\n const ids = methods\n .filter((exec) => isPublicExecutable(exec))\n .map((exec) => getRouterItemId(exec.pointer))\n .filter((mfId) => {\n if (mionInternalRoutes.includes(mfId)) return false;\n const exec = getMiddleFnExecutable(mfId);\n return exec && isPublicExecutable(exec);\n });\n return ids;\n}\n\nfunction getEntry(index: number, keyEntryList: RouterKeyEntryList) {\n return keyEntryList[index]?.[1];\n}\n\nfunction getRouteEntryProperties(\n minus1: RouterEntry | undefined,\n zero: RemoteMethod | RoutesWithId,\n plus1: RouterEntry | undefined\n) {\n const minus1IsRoute = minus1 && isRoute(minus1);\n const zeroIsRoute = (zero as RemoteMethod).type === HandlerType.route;\n const plus1IsRoute = plus1 && isRoute(plus1);\n\n const isExec = !!(zero as RemoteMethod).handler;\n\n return {\n isBetweenRoutes: minus1IsRoute && zeroIsRoute && plus1IsRoute,\n isExecutable: isExec,\n isRoute: zeroIsRoute,\n preLevelMiddleFns: [] as RemoteMethod[],\n postLevelMiddleFns: [] as RemoteMethod[],\n };\n}\n\nasync function getExecutablesFromMiddleFnsCollection(\n middleFnsDef: MiddleFnsCollection\n): Promise<(RawMethod | MiddleFnMethod | HeadersMethod)[]> {\n const results: (RawMethod | MiddleFnMethod | HeadersMethod)[] = [];\n for (const [key, middleFn] of Object.entries(middleFnsDef)) {\n if (isRawMiddleFnDef(middleFn)) {\n results.push(await getExecutableFromRawMiddleFn(middleFn, [key], 0));\n } else if (isHeadersMiddleFnDef(middleFn) || isMiddleFnDef(middleFn)) {\n results.push(await getExecutableFromMiddleFn(middleFn, [key], 0));\n } else {\n throw new Error(`Invalid middleFn: ${key}. Invalid middleFn definition`);\n }\n }\n return results;\n}\n\n/**\n * Validates that a contextDataFactory returns a valid context data object.\n * @param contextDataFactory The factory function to validate\n * @throws Error if the factory doesn't return a plain object with at least one property\n */\nfunction validateSharedDataFactory(opts?: Partial<RouterOptions>): void {\n if (!opts?.contextDataFactory) return;\n const testSharedData = opts.contextDataFactory();\n if (\n typeof testSharedData !== 'object' ||\n Array.isArray(testSharedData) ||\n testSharedData === null ||\n Object.keys(testSharedData).length === 0\n ) {\n throw new Error('contextDataFactory must return a plain object with at least one property');\n }\n}\n\n/** Maps serializer mode string to response body type code */\nfunction getSerializerCodeFromMode(mode: SerializerMode | undefined): SerializerCode {\n switch (mode) {\n case 'binary':\n return SerializerModes.binary;\n case 'stringifyJson':\n return SerializerModes.stringifyJson;\n case 'optimistic':\n return SerializerModes.stringifyJson;\n case 'json':\n default:\n return SerializerModes.json;\n }\n}\n\n/** Path replacement as is not available in edge runtime */\nfunction joinPath(...parts: string[]): string {\n return parts.filter(Boolean).join('/');\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","names":[],"sources":["../../../src/router.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 {HostRequestHandler, Route, RouterOptions, Routes, RouterEntry} from './types/general.ts';\nimport type {\n RemoteMethod,\n MethodsExecutionChain,\n RawMethod,\n HeadersMethod,\n MiddlewareMethod,\n RouteMethod,\n} from './types/remoteMethods.ts';\nimport type {PublicApi, PrivateDef, MiddlewaresCollection} from './types/publicMethods.ts';\nimport type {HeadersMiddlewareDef, MiddlewareDef, RawMiddlewareDef} from './types/definitions.ts';\nimport type {ResponseDefaults} from './types/context.ts';\nimport {DEFAULT_ROUTE_OPTIONS, JSON_CONTENT_TYPE, MAX_ROUTE_NESTING} from './constants.ts';\nimport {\n isRawMiddlewareDef,\n isHeadersMiddlewareDef,\n isExecutable,\n isMiddlewareDef,\n isRoute,\n isRoutes,\n isAnyMiddlewareDef,\n isPublicExecutable,\n} from './types/guards.ts';\nimport {\n BUILD_VERSION_HEADER,\n HandlerType,\n isTestEnv,\n resetRoutesCache,\n getOrCreateGlobal,\n resolveParser,\n DEFAULT_MAX_BODY_SIZE,\n} from '@mionjs/core';\nimport {getRawMethodReflection, getHandlerReflection, assertCompiledParser} from './lib/reflection.ts';\nimport {resolveChainMaxBodySize} from './lib/bodyLimit.ts';\nimport {callerForType} from './dispatch.ts';\nimport {serializerMiddlewares} from './routes/serializer.routes.ts';\nimport {\n getRouterItemId,\n getRoutePath,\n getENV,\n MION_ROUTES,\n MION_BATCH_KEY,\n routesCache,\n isUnsafePropertyName,\n} from '@mionjs/core';\nimport {setErrorOptions} from '@mionjs/core';\nimport {getPublicApi, resetRemoteMethodsMetadata} from './lib/remoteMethods.ts';\nimport {mionErrorsRoutes, notFoundMiddleware, batchNotFoundMiddleware} from './routes/errors.routes.ts';\nimport {capBatchBodySizes, clearBatches, getMaxBatchBodySize, refreshBatchChainBodyLimits} from './batches.ts';\nimport {\n headersMiddleware,\n isOnDemandMiddleware,\n getOnEveryCall,\n middleware,\n mionInternalRouteIds,\n mutation,\n query,\n rawMiddleware,\n route,\n} from './lib/handlers.ts';\nimport type {CallContext} from './types/context.ts';\nimport type {\n HeadersMiddlewareHelper,\n MiddlewareHelper,\n MionRouter,\n RawMiddlewareHelper,\n RouteHelper,\n RouterOptionsInput,\n RouterOptionsArg,\n} from './types/mionRouter.ts';\n\ntype RouterKeyEntryList = [string, RouterEntry][];\ntype RoutesWithId = {\n pathPointer: string[];\n routes: Routes;\n};\n\n// ############# PRIVATE STATE #############\n\nconst flatRouter = getOrCreateGlobal('mion.router.flatRouter', () => new Map<string, MethodsExecutionChain>()); // Main Router\n/** mion's two not-found chains (an unknown path, an unknown batch id) are NOT routes and not in the\n * router above: each is the global middleware behind a first member that throws, and is rebuilt on\n * every registration because that middleware is. */\nconst notFoundChains = getOrCreateGlobal('mion.router.notFoundChains', () => new Map<string, MethodsExecutionChain>());\nconst middlewaresById = getOrCreateGlobal(\n 'mion.router.middlewaresById',\n () => new Map<string, MiddlewareMethod | HeadersMethod | RawMethod>()\n);\nconst routesById = getOrCreateGlobal('mion.router.routesById', () => new Map<string, RouteMethod>());\nconst rawMiddlewaresById = getOrCreateGlobal('mion.router.rawMiddlewaresById', () => new Map<string, RawMethod>());\nconst middlewareNames = getOrCreateGlobal('mion.router.middlewareNames', () => new Set<string>());\nconst routeNames = getOrCreateGlobal('mion.router.routeNames', () => new Set<string>());\nlet complexity = 0;\nlet routerOptions: RouterOptions = {...DEFAULT_ROUTE_OPTIONS};\nlet isRouterInitialized = false;\nlet isRouterCreated = false;\nlet allExecutablesIds: string[] | undefined;\nlet platformConfig: Record<string, unknown> | undefined;\n/** Merged by initRouter, read per request. */\nlet responseDefaults: ResponseDefaults = mergeResponseDefaults({});\n/** Sent by mionFetchMetadata; unset with `apiVersionCheck` off, a pinned header or no build version. */\nlet buildVersion: string | undefined;\n/** The adapter's `maxBodySize` under its `maxBodySizeCap`, settled by setPlatformConfig (the default with no adapter). */\nlet platformMaxBodySize = DEFAULT_MAX_BODY_SIZE;\n\n/** Run before and after every middleware or route set through `mion.initRoutes` */\nconst defaultStartMiddlewares = {\n mionDeserializeRequest: serializerMiddlewares.mionDeserializeRequest,\n};\nconst defaultEndMiddlewares = {\n mionSerializeResponse: serializerMiddlewares.mionSerializeResponse,\n};\nlet startMiddlewaresDef: MiddlewaresCollection = {...defaultStartMiddlewares};\nlet endMiddlewaresDef: MiddlewaresCollection = {...defaultEndMiddlewares};\nexport let startMiddlewares: RemoteMethod[] = [];\nexport let endMiddlewares: RemoteMethod[] = [];\n\n// ############# PUBLIC METHODS #############\n\nexport const getRouteExecutionChain = (path: string) => flatRouter.get(path);\n/** The chain that answers an unknown path or an unknown batch id, by its `MION_ROUTES` id. */\nexport const getNotFoundExecutionChain = (id: string) => notFoundChains.get(id);\nexport const getRouteEntries = () => flatRouter.entries();\nexport const geRoutesSize = () => flatRouter.size;\nexport const getRouteExecutable = (id: string) => routesById.get(id);\nexport const getMiddlewareExecutable = (id: string) => middlewaresById.get(id);\nexport const getMiddlewaresSize = () => middlewaresById.size;\nexport const getComplexity = () => complexity;\nexport const getRouterOptions = <Opts extends RouterOptions>(): Readonly<Opts> => routerOptions as Opts;\n/** The version mionFetchMetadata sends in `x-build-version`. */\nexport const getBuildVersion = (): string | undefined => buildVersion;\n/** The headers every response starts with: every adapter reads it per request. */\nexport const getResponseDefaults = (): ResponseDefaults => responseDefaults;\n\nexport const getAnyExecutable = (id: string) => routesById.get(id) || middlewaresById.get(id) || rawMiddlewaresById.get(id);\n\n/** Called automatically by platform adapters: the adapter's `maxBodySize` and `maxBodySizeCap` are\n * settled here, once, so no request reads the config. */\nexport function setPlatformConfig(config: Record<string, unknown>): void {\n platformConfig = config;\n const published = config.maxBodySize;\n platformMaxBodySize = Math.min(\n typeof published === 'number' ? published : DEFAULT_MAX_BODY_SIZE,\n readMaxBodySizeCap(config) ?? Infinity\n );\n if (isRouterInitialized) applyMaxBodySizeCap();\n // Unconditional, and NOT inside applyMaxBodySizeCap: that returns early when the adapter published no\n // cap, while platformMaxBodySize still changed under every chain that declared nothing of its own.\n refreshChainBodyLimits();\n}\n\nexport const getPlatformConfig = (): Readonly<Record<string, unknown>> | undefined => platformConfig;\n\n// Survives resetRouter on purpose: a dev host reloads the entry after a reset and still owns the socket.\nconst devHost = getOrCreateGlobal('mion.router.devHost', () => ({\n ownsSocket: false,\n handler: undefined as HostRequestHandler | undefined,\n}));\n\n/** Set by a dev host that owns the socket (the mion vite plugin) BEFORE it loads the server entry, so whatever\n * platform adapter the entry starts registers its routes and hands over its handler instead of listening. */\nexport function setHostOwnsSocket(ownsSocket: boolean): void {\n devHost.ownsSocket = ownsSocket;\n if (!ownsSocket) devHost.handler = undefined;\n}\n\nexport const hostOwnsSocket = (): boolean => devHost.ownsSocket;\n\n/** Every platform adapter calls it on start; true means a dev host owns the socket and the adapter must not listen. */\nexport function handOverToHost(handler: HostRequestHandler): boolean {\n if (devHost.ownsSocket) devHost.handler = handler;\n return devHost.ownsSocket;\n}\n\nexport const getHostRequestHandler = (): HostRequestHandler | undefined => devHost.handler;\n\nexport const resetRouter = () => {\n flatRouter.clear();\n notFoundChains.clear();\n middlewaresById.clear();\n routesById.clear();\n rawMiddlewaresById.clear();\n middlewareNames.clear();\n routeNames.clear();\n complexity = 0;\n routerOptions = {...DEFAULT_ROUTE_OPTIONS};\n startMiddlewaresDef = {...defaultStartMiddlewares};\n endMiddlewaresDef = {...defaultEndMiddlewares};\n startMiddlewares = [];\n endMiddlewares = [];\n isRouterInitialized = false;\n isRouterCreated = false;\n allExecutablesIds = undefined;\n platformConfig = undefined;\n responseDefaults = mergeResponseDefaults({});\n buildVersion = undefined;\n platformMaxBodySize = DEFAULT_MAX_BODY_SIZE;\n resetRemoteMethodsMetadata();\n resetRoutesCache();\n clearBatches();\n // resetJitFnCaches() is deliberately NOT called: the JIT caches are global, and the\n // serializableClassRegistry it clears is needed to (de)serialize classes like RpcError.\n // Only a test of AOT cache loading calls it.\n};\n\n/** The ONE way to initialize the router and to declare routes and middlewares: the options are written once\n * and carried BY TYPE into every helper the factory returns, so a handler's `ctx.shared` is typed from\n * `contextDataFactory` and router-wide defaults can be read at build time. The helpers are plain closures\n * (no `this`), so destructuring them is fine. Create the router once per app: a second call throws until\n * `resetRouter()` (tests) clears it. */\nexport function createMionRouter<const O extends RouterOptionsInput = RouterOptionsInput>(\n opts?: RouterOptionsArg<O>\n): MionRouter<O> {\n if (isRouterCreated)\n throw new Error(\n 'createMionRouter has already been called: create the router once per app (resetRouter() clears it in tests)'\n );\n isRouterCreated = true;\n const options = Object.freeze({...opts}) as Readonly<O>;\n return {\n options,\n route: route as RouteHelper<O>,\n query: query as RouteHelper<O, false>,\n mutation: mutation as RouteHelper<O, true>,\n middleware: middleware as MiddlewareHelper<O>,\n headersMiddleware: headersMiddleware as HeadersMiddlewareHelper<O>,\n rawMiddleware: rawMiddleware as RawMiddlewareHelper<O>,\n // Typed by MionRouter, the one place its signature is written.\n initRoutes(routes, buildVersion) {\n initRouter(options, buildVersion);\n const api = registerRoutes(routes);\n if (platformConfig) applyMaxBodySizeCap();\n refreshChainBodyLimits();\n return api;\n },\n };\n}\n\n/** Once per app; `resetRouter()` clears it. */\nfunction initRouter(opts: RouterOptionsInput, version?: string): void {\n if (isRouterInitialized) throw new Error('Router has already been initialized');\n routerOptions = {...routerOptions, ...opts};\n // a pinned version already rides every response, so the middleware adds none\n responseDefaults = mergeResponseDefaults(routerOptions.responseHeaders);\n const isPinned = responseDefaults[BUILD_VERSION_HEADER] !== undefined;\n buildVersion = (routerOptions.apiVersionCheck && !isPinned && version) || undefined;\n validateSharedDataFactory(routerOptions);\n Object.freeze(routerOptions);\n setErrorOptions(routerOptions);\n isRouterInitialized = true;\n registerRoutes({...mionErrorsRoutes});\n if (!isTestEnv()) console.log('mion router initialized', {routerOptions});\n}\n\nfunction registerRoutes<R extends Routes>(routes: R): PublicApi<R> {\n if (!isRouterInitialized) throw new Error('the router must be initialized first');\n startMiddlewares = getExecutablesFromMiddlewaresCollection(startMiddlewaresDef);\n endMiddlewares = getExecutablesFromMiddlewaresCollection(endMiddlewaresDef);\n recursiveFlatRoutes(routes, [], [], [], 0);\n buildNotFoundChains();\n allExecutablesIds = undefined; // the memoized id list must see the routes registered by this call\n if (shouldFullGenerateSpec()) {\n return getPublicApi(routes);\n }\n return {} as PublicApi<R>;\n}\n\n/** Adds middlewares at the start of the ExecutionChain, before the existing start middlewares by default */\nexport function addStartMiddlewares(middlewaresDef: MiddlewaresCollection, appendBeforeExisting = true) {\n if (isRouterInitialized) throw new Error('Can not add start middlewares after the router has been initialized');\n if (appendBeforeExisting) {\n startMiddlewaresDef = {...middlewaresDef, ...startMiddlewaresDef};\n return;\n }\n startMiddlewaresDef = {...startMiddlewaresDef, ...middlewaresDef};\n}\n\n/** Adds middlewares at the end of the ExecutionChain, after the existing end middlewares by default */\nexport function addEndMiddlewares(middlewaresDef: MiddlewaresCollection, prependAfterExisting = true) {\n if (isRouterInitialized) throw new Error('Can not add end middlewares after the router has been initialized');\n if (prependAfterExisting) {\n endMiddlewaresDef = {...endMiddlewaresDef, ...middlewaresDef};\n return;\n }\n endMiddlewaresDef = {...middlewaresDef, ...endMiddlewaresDef};\n}\n\nexport function isPrivateDefinition(entry: RouterEntry, id: string): entry is PrivateDef {\n if (isRoute(entry)) return false;\n if (isRawMiddlewareDef(entry)) return true;\n try {\n const executable = getMiddlewareExecutable(id) || getRouteExecutable(id);\n if (!executable) throw new Error(`Route or Middleware ${id} not found. Please check you have called mion.initRoutes first.`);\n return !isPublicExecutable(executable);\n } catch {\n // a Routes object has no handler, so no executable is found\n return false;\n }\n}\n\nexport function getTotalExecutables(): number {\n return routesById.size + middlewaresById.size + rawMiddlewaresById.size;\n}\n\nexport function getAllExecutablesIds(): string[] {\n if (allExecutablesIds) return allExecutablesIds;\n allExecutablesIds = [...routesById.keys(), ...middlewaresById.keys(), ...rawMiddlewaresById.keys()];\n return allExecutablesIds;\n}\n\n// used by codegen\nexport function shouldFullGenerateSpec(): boolean {\n return routerOptions.getPublicRoutesData || getENV('GENERATE_ROUTER_SPEC') === 'true';\n}\n\n// ############# PRIVATE METHODS #############\n\n/** Flattens the routes object into a list of Executable objects. `currentPointer` is the position in that\n * object (i.e. ['users', 'get']); `preMiddlewares` / `postMiddlewares` are the middlewares one level up, before\n * and after that position. */\nfunction recursiveFlatRoutes(\n routes: Routes,\n currentPointer: string[] = [],\n preMiddlewares: RemoteMethod[] = [],\n postMiddlewares: RemoteMethod[] = [],\n nestLevel = 0\n) {\n if (nestLevel > MAX_ROUTE_NESTING)\n throw new Error('Too many nested routes, you can only nest routes ${MAX_ROUTE_NESTING} levels');\n\n const entries = Object.entries(routes);\n if (entries.length === 0)\n throw new Error(`Invalid route: ${currentPointer.length ? joinPath(...currentPointer) : '*'}. Can Not define empty routes`);\n\n let minus1Props: ReturnType<typeof getRouteEntryProperties> | null = null;\n for (let index = 0; index < entries.length; index++) {\n const [key, item] = entries[index];\n const newPointer = [...currentPointer, key];\n let routeEntry: RemoteMethod | RoutesWithId;\n if (typeof key !== 'string' || !isNaN(key as any))\n throw new Error(`Invalid route: ${joinPath(...newPointer)}. Numeric route names are not allowed`);\n if (key.includes(',')) throw new Error(`Invalid route: ${joinPath(...newPointer)}. Route names cannot contain commas.`);\n // a route id is used as an object key on both ends of the wire, so a prototype name can never be one\n if (isUnsafePropertyName(key))\n throw new Error(`Invalid route: ${joinPath(...newPointer)}. '${key}' is not a valid route name.`);\n if (key === MION_BATCH_KEY)\n throw new Error(`Invalid route: ${joinPath(...newPointer)}. '${MION_BATCH_KEY}' is a reserved mion route name.`);\n\n if (isAnyMiddlewareDef(item)) {\n // a start or end middleware already owns this id, and would otherwise be silently reused in its place\n if (nestLevel === 0 && (Object.hasOwn(startMiddlewaresDef, key) || Object.hasOwn(endMiddlewaresDef, key)))\n throw new Error(`Invalid middleware: ${joinPath(...newPointer)}. '${key}' is a reserved mion middleware name.`);\n // it can stop a call before its route, so every route must come after it\n if (\n isOnDemandMiddleware(item) &&\n (nestLevel !== 0 || entries.slice(0, index).some(([, entry]) => !isAnyMiddlewareDef(entry)))\n )\n throw new Error(\n `Invalid middleware: ${joinPath(...newPointer)}. Place '${key}' at the root of your routes, before any route or group.`\n );\n routeEntry = getExecutableFromAnyMiddleware(item, newPointer, nestLevel);\n if (middlewareNames.has(routeEntry.id))\n throw new Error(`Invalid middleware: ${joinPath(...newPointer)}. Naming collision, duplicated middleware.`);\n middlewareNames.add(routeEntry.id);\n } else if (isRoute(item)) {\n routeEntry = getExecutableFromRoute(item, newPointer, nestLevel);\n if (routeNames.has(routeEntry.id))\n throw new Error(`Invalid route: ${joinPath(...newPointer)}. Naming collision, duplicated route`);\n routeNames.add(routeEntry.id);\n } else if (isRoutes(item)) {\n routeEntry = {\n pathPointer: newPointer,\n routes: item,\n };\n } else {\n const itemType = typeof item;\n throw new Error(`Invalid route: ${joinPath(...newPointer)}. Type <${itemType}> is not a valid route.`);\n }\n\n minus1Props = recursiveCreateExecutionChain(\n routeEntry,\n newPointer,\n preMiddlewares,\n postMiddlewares,\n nestLevel,\n index,\n entries,\n minus1Props\n );\n\n complexity++;\n }\n}\n\nfunction recursiveCreateExecutionChain(\n routeEntry: RemoteMethod | RoutesWithId,\n currentPointer: string[],\n preMiddlewares: RemoteMethod[],\n postMiddlewares: RemoteMethod[],\n nestLevel: number,\n index: number,\n routeKeyedEntries: RouterKeyEntryList,\n minus1Props: ReturnType<typeof getRouteEntryProperties> | null\n) {\n const minus1 = getEntry(index - 1, routeKeyedEntries);\n const plus1 = getEntry(index + 1, routeKeyedEntries);\n const props = getRouteEntryProperties(minus1, routeEntry, plus1);\n\n if (props.isBetweenRoutes && minus1Props) {\n props.preLevelMiddlewares = minus1Props.preLevelMiddlewares;\n props.postLevelMiddlewares = minus1Props.postLevelMiddlewares;\n } else {\n for (let i = 0; i < routeKeyedEntries.length; i++) {\n const [k, entry] = routeKeyedEntries[i];\n complexity++;\n if (!isAnyMiddlewareDef(entry)) continue;\n const newPointer = [...currentPointer.slice(0, -1), k];\n const executable = getExecutableFromAnyMiddleware(entry, newPointer, nestLevel);\n if (i < index) props.preLevelMiddlewares.push(executable);\n if (i > index) props.postLevelMiddlewares.push(executable);\n }\n }\n const isExec = isExecutable(routeEntry);\n\n if (isExec && props.isRoute) {\n const path = getRoutePath(routeEntry.pointer, routerOptions);\n const routeMethod = routeEntry as RouteMethod;\n const levelMethods = [\n ...preMiddlewares,\n ...props.preLevelMiddlewares,\n routeEntry,\n ...props.postLevelMiddlewares,\n ...postMiddlewares,\n ];\n const methods = [...startMiddlewares, ...levelMethods, ...endMiddlewares];\n // internal error routes are never client-called: platform's size, not their no-params tuple's tiny one\n const maxBodySize = mionInternalRouteIds.has(routeMethod.id)\n ? routeMethod.options.maxBodySize\n : resolveChainMaxBodySize(methods, routeMethod, routerOptions);\n // published in the metadata; undefined means the platform's, filled in when the metadata is read\n if (maxBodySize !== undefined) routeMethod.options.maxBodySize = maxBodySize;\n const executionChain: MethodsExecutionChain = {\n routeIndex: startMiddlewares.length + preMiddlewares.length + props.preLevelMiddlewares.length,\n methods,\n path,\n declaredBodySize: maxBodySize,\n maxBodySize: maxBodySize ?? platformMaxBodySize,\n readsBody: true,\n };\n // route-level only: a global start/end middleware is not in the API type, so a built client never lists it\n const middlewareIds = getPublicMiddlewareIds(levelMethods);\n // add middleware deps, so can be serialized with the router\n if (middlewareIds.length) routeMethod.middlewareIds = middlewareIds;\n flatRouter.set(path, executionChain);\n } else if (!isExec) {\n recursiveFlatRoutes(\n routeEntry.routes,\n routeEntry.pathPointer,\n [...preMiddlewares, ...props.preLevelMiddlewares],\n [...props.postLevelMiddlewares, ...postMiddlewares],\n nestLevel + 1\n );\n }\n\n return props;\n}\n\n/** The thrower goes first so the dispatcher skips every later non-`alwaysRun` member; body size is the platform's. */\nfunction buildNotFoundChains(): void {\n notFoundChains.clear();\n const throwers = [\n [MION_ROUTES.notFound, notFoundMiddleware],\n [MION_ROUTES.batchNotFound, batchNotFoundMiddleware],\n ] as const;\n for (const [id, middlewareDef] of throwers) {\n const methods = [getExecutableFromRawMiddleware(middlewareDef, [id], 0), ...startMiddlewares, ...endMiddlewares];\n notFoundChains.set(id, {\n routeIndex: -1, // there is no route in this chain\n methods,\n // a shared chain answers for many paths, so the request brings its own\n path: undefined,\n declaredBodySize: undefined,\n maxBodySize: platformMaxBodySize,\n readsBody: false,\n });\n }\n}\n\nfunction getExecutableFromAnyMiddleware(\n middleware: MiddlewareDef | HeadersMiddlewareDef | RawMiddlewareDef,\n middlewarePointer: string[],\n nestLevel: number\n) {\n if (isRawMiddlewareDef(middleware)) return getExecutableFromRawMiddleware(middleware, middlewarePointer, nestLevel);\n return getExecutableFromMiddleware(middleware, middlewarePointer, nestLevel);\n}\n\nexport function getExecutableFromMiddleware(\n middleware: MiddlewareDef | HeadersMiddlewareDef,\n middlewarePointer: string[],\n nestLevel: number\n): MiddlewareMethod | HeadersMethod {\n const isHeader = isHeadersMiddlewareDef(middleware);\n // todo fix header id should be same as any other one and then maybe map from id to header name\n const middlewareId = getRouterItemId(middlewarePointer);\n const existing = middlewaresById.get(middlewareId);\n if (existing) return existing as MiddlewareMethod;\n\n type MixedMiddleware = (Omit<MiddlewareMethod, 'type'> | Omit<HeadersMethod, 'type'>) & {\n type: typeof HandlerType.middleware | typeof HandlerType.headersMiddleware;\n };\n\n let executable: MixedMiddleware;\n {\n const parser = resolveParser(middleware.options?.parser, routerOptions.parser, middlewareId);\n const reflectionData = getHandlerReflection(middleware, middlewareId, routerOptions, middleware.options ?? {}, isHeader);\n assertCompiledParser(middlewareId, parser, reflectionData);\n const middlewareType = isHeader ? HandlerType.headersMiddleware : HandlerType.middleware;\n executable = {\n id: middlewareId,\n type: middlewareType,\n nestLevel,\n handler: middleware.handler,\n pointer: middlewarePointer,\n // resolved here so the dispatch loop reads a field instead of deriving them per request\n methodCaller: isOnDemandMiddleware(middleware)\n ? onDemandCaller(callerForType(middlewareType), getOnEveryCall(middleware))\n : callerForType(middlewareType),\n alwaysRun: !!middleware.options?.alwaysRun,\n quotedId: JSON.stringify(middlewareId),\n ...reflectionData,\n options: {\n alwaysRun: !!middleware.options?.alwaysRun,\n description: middleware.options?.description,\n parser,\n sanitizeParams: middleware.options?.sanitizeParams ?? routerOptions.sanitizeParams,\n },\n };\n // a middleware's maxBodySize is its OWN contribution to every chain it sits in, never resolved;\n // written only when set, so the metadata a client receives carries no `undefined` key\n if (middleware.options?.maxBodySize !== undefined) executable.options.maxBodySize = middleware.options.maxBodySize;\n }\n\n middlewaresById.set(middlewareId, executable as any);\n routesCache.setMethodJitFns(middlewareId, executable as any);\n return executable as any;\n}\n\n/** An absent slot skips the params pipeline; the answer is the same only because such a middleware's params are optional. */\nfunction onDemandCaller(\n caller: RemoteMethod['methodCaller'],\n onEveryCall?: ReturnType<typeof getOnEveryCall>\n): RemoteMethod['methodCaller'] {\n return (context: CallContext, executable: RemoteMethod, request: {body: Record<string, unknown>}, ...rest: unknown[]) => {\n onEveryCall?.(context);\n return request.body[executable.id] === undefined ? undefined : caller(context, executable, request, ...rest);\n };\n}\n\nexport function getExecutableFromRawMiddleware(\n middleware: RawMiddlewareDef,\n middlewarePointer: string[],\n nestLevel: number\n): RawMethod {\n const middlewareId = getRouterItemId(middlewarePointer);\n const existing = rawMiddlewaresById.get(middlewareId);\n if (existing) return existing as RawMethod;\n const reflectionData = getRawMethodReflection(middleware.handler, middlewareId, routerOptions);\n const executable: RawMethod = {\n id: middlewareId,\n type: HandlerType.rawMiddleware,\n nestLevel,\n handler: middleware.handler,\n pointer: middlewarePointer,\n methodCaller: callerForType(HandlerType.rawMiddleware),\n alwaysRun: !!middleware.options?.alwaysRun,\n quotedId: JSON.stringify(middlewareId),\n ...reflectionData,\n options: {\n alwaysRun: !!middleware.options?.alwaysRun,\n description: middleware.options?.description,\n },\n };\n rawMiddlewaresById.set(middlewareId, executable);\n routesCache.setMethodJitFns(middlewareId, executable as any);\n return executable;\n}\n\nexport function getExecutableFromRoute(route: Route, routePointer: string[], nestLevel: number): RouteMethod {\n const routeId = getRouterItemId(routePointer);\n const existing = routesById.get(routeId);\n if (existing) return existing as RouteMethod;\n\n let executable: RouteMethod;\n {\n const parser = resolveParser(route.options?.parser, routerOptions.parser, routeId);\n const reflectionData = getHandlerReflection(route, routeId, routerOptions, route.options ?? {}, false);\n assertCompiledParser(routeId, parser, reflectionData);\n executable = {\n id: routeId,\n type: HandlerType.route,\n nestLevel,\n handler: route.handler,\n pointer: routePointer,\n methodCaller: callerForType(HandlerType.route),\n alwaysRun: false,\n quotedId: JSON.stringify(routeId),\n ...reflectionData,\n options: {\n alwaysRun: false,\n description: route.options?.description,\n parser,\n isMutation: route.options?.isMutation,\n sanitizeParams: route.options?.sanitizeParams ?? routerOptions.sanitizeParams,\n },\n };\n // the route option as written; the chain resolution overwrites it with the resolved number\n if (route.options?.maxBodySize !== undefined) executable.options.maxBodySize = route.options.maxBodySize;\n }\n routesById.set(routeId, executable);\n routesCache.setMethodJitFns(routeId, executable as any);\n return executable;\n}\n\nfunction getPublicMiddlewareIds(methods: RemoteMethod[]): string[] {\n const ids = methods\n .filter((exec) => isPublicExecutable(exec))\n .map((exec) => getRouterItemId(exec.pointer))\n .filter((mfId) => {\n if (mionInternalRouteIds.has(mfId)) return false;\n const exec = getMiddlewareExecutable(mfId);\n return exec && isPublicExecutable(exec);\n });\n return ids;\n}\n\nfunction getEntry(index: number, keyEntryList: RouterKeyEntryList) {\n return keyEntryList[index]?.[1];\n}\n\nfunction getRouteEntryProperties(\n minus1: RouterEntry | undefined,\n zero: RemoteMethod | RoutesWithId,\n plus1: RouterEntry | undefined\n) {\n const minus1IsRoute = minus1 && isRoute(minus1);\n const zeroIsRoute = (zero as RemoteMethod).type === HandlerType.route;\n const plus1IsRoute = plus1 && isRoute(plus1);\n\n const isExec = !!(zero as RemoteMethod).handler;\n\n return {\n isBetweenRoutes: minus1IsRoute && zeroIsRoute && plus1IsRoute,\n isExecutable: isExec,\n isRoute: zeroIsRoute,\n preLevelMiddlewares: [] as RemoteMethod[],\n postLevelMiddlewares: [] as RemoteMethod[],\n };\n}\n\nfunction getExecutablesFromMiddlewaresCollection(\n middlewaresDef: MiddlewaresCollection\n): (RawMethod | MiddlewareMethod | HeadersMethod)[] {\n const results: (RawMethod | MiddlewareMethod | HeadersMethod)[] = [];\n for (const [key, middleware] of Object.entries(middlewaresDef)) {\n if (isRawMiddlewareDef(middleware)) {\n results.push(getExecutableFromRawMiddleware(middleware, [key], 0));\n } else if (isHeadersMiddlewareDef(middleware) || isMiddlewareDef(middleware)) {\n results.push(getExecutableFromMiddleware(middleware, [key], 0));\n } else {\n throw new Error(`Invalid middleware: ${key}. Invalid middleware definition`);\n }\n }\n return results;\n}\n\nfunction validateSharedDataFactory(opts?: Partial<RouterOptions>): void {\n if (!opts?.contextDataFactory) return;\n const testSharedData = opts.contextDataFactory();\n if (\n typeof testSharedData !== 'object' ||\n Array.isArray(testSharedData) ||\n testSharedData === null ||\n Object.keys(testSharedData).length === 0\n ) {\n throw new Error('contextDataFactory must return a plain object with at least one property');\n }\n}\n\n/** Hand-rolled: Node's 'path' module is not available in edge runtimes. */\nfunction joinPath(...parts: string[]): string {\n return parts.filter(Boolean).join('/');\n}\n\n// ############# PLATFORM SIZE LIMITS #############\n\n/** What a route takes when its own option is unset and its types cannot say: the adapter's `maxBodySize`,\n * published with its config at start, else the shared default (a router driven with no adapter, as in tests). */\nexport const getPlatformMaxBodySize = (): number => platformMaxBodySize;\n\n/** The platform's own request ceiling, when the adapter published one. */\nexport const getPlatformRequestCap = (): number | undefined => readMaxBodySizeCap(platformConfig);\n\n/** The largest limit any registered route or batch resolves to: what a platform with ONE native,\n * server-wide read limit (bun) starts with, so it never refuses a body a route allows. */\nexport function getMaxRouteBodySize(): number {\n let largest = getPlatformMaxBodySize();\n for (const chain of flatRouter.values()) largest = Math.max(largest, chain.maxBodySize);\n return Math.max(largest, getMaxBatchBodySize());\n}\n\n/** The platform's own request ceiling the adapter published, in bytes; undefined means none. */\nfunction readMaxBodySizeCap(config: Record<string, unknown> | undefined): number | undefined {\n const cap = config?.maxBodySizeCap;\n return typeof cap === 'number' ? cap : undefined;\n}\n\n/** A limit above the platform's ceiling would promise a size the platform refuses before mion ever runs,\n * so it is brought down. Applied once, when the adapter has published its config AND the routes are\n * registered, whichever comes last. */\nfunction applyMaxBodySizeCap(): void {\n const cap = readMaxBodySizeCap(platformConfig);\n if (cap === undefined) return;\n for (const chain of flatRouter.values()) {\n if (chain.declaredBodySize === undefined || chain.declaredBodySize <= cap) continue;\n chain.declaredBodySize = cap;\n const route = chain.methods[chain.routeIndex];\n if (route.options.maxBodySize !== undefined) route.options.maxBodySize = cap;\n }\n capBatchBodySizes(cap);\n}\n\n/** `maxBodySize` caches two inputs that both move after a chain is built: the cap above lowers what a\n * chain declared, and `setPlatformConfig` replaces the fallback the chains that declared nothing read.\n * Missing a refresh refuses bodies a route allows, or allows bodies past the platform's ceiling. */\nfunction refreshChainBodyLimits(): void {\n for (const chain of flatRouter.values()) chain.maxBodySize = chain.declaredBodySize ?? platformMaxBodySize;\n for (const chain of notFoundChains.values()) chain.maxBodySize = chain.declaredBodySize ?? platformMaxBodySize;\n refreshBatchChainBodyLimits(platformMaxBodySize);\n}\n\n/** `server` first so the option can replace it, `content-type` last so it cannot; lowercased, or `Headers` would\n * append a name repeated in another case. */\nfunction mergeResponseDefaults(responseHeaders: Record<string, string>): ResponseDefaults {\n const merged: Record<string, string> = {server: 'mionjs'};\n for (const name in responseHeaders) merged[name.toLowerCase()] = responseHeaders[name];\n merged['content-type'] = JSON_CONTENT_TYPE;\n return merged;\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import { CallContext } from '../types/context.ts';
|
|
2
2
|
import { RpcError } from '@mionjs/core';
|
|
3
3
|
export declare const mionErrorsRoutes: {
|
|
4
|
-
readonly "@thrownErrors": import('../types/definitions.ts').RouteDef<(ctx: CallContext) => Record<string, RpcError<string
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
readonly "@thrownErrors": import('../types/definitions.ts').RouteDef<(ctx: CallContext) => Record<string, RpcError<string>>, {
|
|
5
|
+
readonly parser: {
|
|
6
|
+
readonly params: "clone";
|
|
7
|
+
readonly return: "clone";
|
|
8
|
+
};
|
|
9
|
+
}, Partial<import('../types/general.ts').RouterOptions<any, any>>>;
|
|
10
|
+
readonly "mion@platformError": import('../types/definitions.ts').RouteDef<(_ctx: CallContext) => RpcError<string>, {
|
|
11
|
+
readonly parser: {
|
|
12
|
+
readonly params: "clone";
|
|
13
|
+
readonly return: "clone";
|
|
14
|
+
};
|
|
15
|
+
}, Partial<import('../types/general.ts').RouterOptions<any, any>>>;
|
|
7
16
|
};
|
|
17
|
+
export declare const notFoundMiddleware: import('../types/definitions.ts').RawMiddlewareDef<() => void>;
|
|
18
|
+
export declare const batchNotFoundMiddleware: import('../types/definitions.ts').RawMiddlewareDef<() => void>;
|
|
8
19
|
//# sourceMappingURL=errors.routes.d.ts.map
|
|
@@ -1,49 +1,81 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
import { rawMiddleware, route } from "../lib/handlers.js";
|
|
2
|
+
import { __rt_A0Qb_D32xQCR } from "../../.mion/types/A0Qb_D32xQCR.js";
|
|
3
|
+
import { __rt_A0Qb_G42dZdW } from "../../.mion/types/A0Qb_G42dZdW.js";
|
|
4
|
+
import { __rt_A0Qb_hqa3Nzs } from "../../.mion/types/A0Qb_hqa3Nzs.js";
|
|
5
|
+
import { __rt_Ky89_D32xQCR } from "../../.mion/types/Ky89_D32xQCR.js";
|
|
6
|
+
import { __rt_Ky89_G42dZdW } from "../../.mion/types/Ky89_G42dZdW.js";
|
|
7
|
+
import { __rt_Ky89_hqa3Nzs } from "../../.mion/types/Ky89_hqa3Nzs.js";
|
|
8
|
+
import { __rt_OBOg_D32xQCR } from "../../.mion/types/OBOg_D32xQCR.js";
|
|
9
|
+
import { __rt_OBOg_G42dZdW } from "../../.mion/types/OBOg_G42dZdW.js";
|
|
10
|
+
import { __rt_OBOg_hqa3Nzs } from "../../.mion/types/OBOg_hqa3Nzs.js";
|
|
11
|
+
import { __rt_Xhuv_D32xQCR } from "../../.mion/types/Xhuv_D32xQCR.js";
|
|
12
|
+
import { __rt_Xhuv_G42dZdW } from "../../.mion/types/Xhuv_G42dZdW.js";
|
|
13
|
+
import { __rt_Xhuv_hqa3Nzs } from "../../.mion/types/Xhuv_hqa3Nzs.js";
|
|
14
|
+
import { __rt_mzca_hqa3Nzs } from "../../.mion/types/mzca_hqa3Nzs.js";
|
|
15
|
+
import { __rt_D32xQCR, __rt_G42dZdW, __rt_JWRNzuD, __rt_hqa3Nzs, __rt_jzOWBBT, __rt_w6KmCD1 } from "../../.mion/types/rt/VIdAjpHu1X.js";
|
|
16
|
+
import { FatalError, MION_ROUTES, RpcError, StatusCodes } from "@mionjs/core";
|
|
17
|
+
//#region src/routes/errors.routes.ts
|
|
18
|
+
var DEFAULT_WIRE = { parser: {
|
|
19
|
+
params: "clone",
|
|
20
|
+
return: "clone"
|
|
21
|
+
} };
|
|
22
|
+
var mionErrorsRoutes = {
|
|
23
|
+
/** Not a real endpoint: reuses the JSON round trip for the "@thrownErrors" body field, and reserves the name. */
|
|
24
|
+
[MION_ROUTES.thrownErrors]: route((ctx) => {
|
|
25
|
+
return ctx.request.thrownErrors || {};
|
|
26
|
+
}, DEFAULT_WIRE, [
|
|
27
|
+
__rt_Xhuv_hqa3Nzs,
|
|
28
|
+
__rt_OBOg_hqa3Nzs,
|
|
29
|
+
__rt_mzca_hqa3Nzs,
|
|
30
|
+
__rt_A0Qb_hqa3Nzs,
|
|
31
|
+
__rt_Ky89_hqa3Nzs
|
|
32
|
+
], [
|
|
33
|
+
__rt_Xhuv_G42dZdW,
|
|
34
|
+
__rt_OBOg_G42dZdW,
|
|
35
|
+
__rt_A0Qb_G42dZdW,
|
|
36
|
+
__rt_Ky89_G42dZdW
|
|
37
|
+
], __rt_hqa3Nzs, __rt_G42dZdW, __rt_w6KmCD1, __rt_JWRNzuD),
|
|
38
|
+
/** Strongly types the errors an adapter raises rather than a handler: before the router sees the request
|
|
39
|
+
* (an HTTP server error, a connection issue), or after the route resolved (a body the adapter refused,
|
|
40
|
+
* which then runs the chain's alwaysRun members). Registering it also stops a user route taking the name. */
|
|
41
|
+
[MION_ROUTES.platformError]: route((_ctx) => {
|
|
42
|
+
return new RpcError({
|
|
43
|
+
publicMessage: "Platform error",
|
|
44
|
+
type: "platform-error"
|
|
45
|
+
});
|
|
46
|
+
}, DEFAULT_WIRE, [
|
|
47
|
+
__rt_Xhuv_hqa3Nzs,
|
|
48
|
+
__rt_OBOg_hqa3Nzs,
|
|
49
|
+
__rt_mzca_hqa3Nzs,
|
|
50
|
+
__rt_A0Qb_hqa3Nzs,
|
|
51
|
+
__rt_Ky89_hqa3Nzs
|
|
52
|
+
], [
|
|
53
|
+
__rt_Xhuv_D32xQCR,
|
|
54
|
+
__rt_OBOg_D32xQCR,
|
|
55
|
+
__rt_A0Qb_D32xQCR,
|
|
56
|
+
__rt_Ky89_D32xQCR
|
|
57
|
+
], __rt_hqa3Nzs, __rt_D32xQCR, __rt_w6KmCD1, __rt_jzOWBBT)
|
|
45
58
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
59
|
+
/** The first member of each of mion's two not-found chains. It throws, so the dispatcher skips every later
|
|
60
|
+
* member that does not declare `alwaysRun`: a failed request never reaches a session loader or an auth step.
|
|
61
|
+
* Raw middlewares rather than routes: nobody declared this request, so there is no params or return contract
|
|
62
|
+
* to compile, and the error belongs in the undeclared `@thrownErrors` slot. The batch id is the only
|
|
63
|
+
* untrusted input and it is never echoed. */
|
|
64
|
+
var notFoundMiddleware = rawMiddleware(() => {
|
|
65
|
+
throw new FatalError({
|
|
66
|
+
statusCode: StatusCodes.NOT_FOUND,
|
|
67
|
+
publicMessage: `Route not found`,
|
|
68
|
+
type: "route-not-found"
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
var batchNotFoundMiddleware = rawMiddleware(() => {
|
|
72
|
+
throw new FatalError({
|
|
73
|
+
statusCode: StatusCodes.NOT_FOUND,
|
|
74
|
+
type: "batch-unknown-id",
|
|
75
|
+
publicMessage: "Batch id not registered on this server. Batches are compiled by the build; rebuild the client and the server together."
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
//#endregion
|
|
79
|
+
export { batchNotFoundMiddleware, mionErrorsRoutes, notFoundMiddleware };
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=errors.routes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.routes.js","sources":["../../../../src/routes/errors.routes.ts"],"sourcesContent":["/* ########\n * 2023 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport type {Routes} from '../types/general.ts';\nimport type {CallContext} from '../types/context.ts';\nimport {RpcError, MION_ROUTES, StatusCodes} from '@mionjs/core';\nimport {route} from '../lib/handlers.ts';\n\
|
|
1
|
+
{"version":3,"file":"errors.routes.js","names":[],"sources":["../../../../src/routes/errors.routes.ts"],"sourcesContent":["/* ########\n * 2023 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport type {Routes} from '../types/general.ts';\nimport type {CallContext} from '../types/context.ts';\nimport {RpcError, FatalError, MION_ROUTES, StatusCodes} from '@mionjs/core';\nimport {route, rawMiddleware} from '../lib/handlers.ts';\n\n// mion's own routes, registered by initRouter for every app. Declared at module level rather than\n// through the router factory: a marker call site inside the generic `createMionRouter` would carry an\n// unresolved type parameter and `initRouter` takes the widened options type, so either way the build\n// compiles them against the built-in default parser. So each one PINS that default: without the\n// pin the runtime resolves the router-wide `parser`, it disagrees with what the build compiled,\n// and the router refuses to start.\nconst DEFAULT_WIRE = {parser: {params: 'clone', return: 'clone'}} as const;\n\nexport const mionErrorsRoutes = {\n /** Not a real endpoint: reuses the JSON round trip for the \"@thrownErrors\" body field, and reserves the name. */\n [MION_ROUTES.thrownErrors]: route((ctx: CallContext): Record<string, RpcError<string>> => {\n return ctx.request.thrownErrors || {};\n }, DEFAULT_WIRE),\n /** Strongly types the errors an adapter raises rather than a handler: before the router sees the request\n * (an HTTP server error, a connection issue), or after the route resolved (a body the adapter refused,\n * which then runs the chain's alwaysRun members). Registering it also stops a user route taking the name. */\n [MION_ROUTES.platformError]: route((_ctx: CallContext): RpcError<string> => {\n // The real platform error rides on the context; this value only gives the route its type\n return new RpcError({\n publicMessage: 'Platform error',\n type: 'platform-error',\n });\n }, DEFAULT_WIRE),\n} as const satisfies Routes;\n\n/** The first member of each of mion's two not-found chains. It throws, so the dispatcher skips every later\n * member that does not declare `alwaysRun`: a failed request never reaches a session loader or an auth step.\n * Raw middlewares rather than routes: nobody declared this request, so there is no params or return contract\n * to compile, and the error belongs in the undeclared `@thrownErrors` slot. The batch id is the only\n * untrusted input and it is never echoed. */\nexport const notFoundMiddleware = rawMiddleware((): void => {\n throw new FatalError({\n statusCode: StatusCodes.NOT_FOUND,\n publicMessage: `Route not found`,\n type: 'route-not-found',\n });\n});\n\nexport const batchNotFoundMiddleware = rawMiddleware((): void => {\n throw new FatalError({\n statusCode: StatusCodes.NOT_FOUND,\n type: 'batch-unknown-id',\n publicMessage:\n 'Batch id not registered on this server. Batches are compiled by the build; rebuild the client and the server together.',\n });\n});\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,IAAM,eAAe,EAAC,QAAQ;CAAC,QAAQ;CAAS,QAAQ;AAAO,EAAC;AAEhE,IAAa,mBAAmB;;EAE7B,YAAY,eAAe,OAAO,QAAuD;EACxF,OAAO,IAAI,QAAQ,gBAAgB,CAAC;CACtC,GAAG,cAAA;EAAA;EAAA;EAAA;EAAA;EAAA;CAAA,GAAA;EAAA;EAAA;EAAA;EAAA;CAAA,GAAA,cAAA,cAAA,cAAA,YAAY;;;;EAId,YAAY,gBAAgB,OAAO,SAAwC;EAE1E,OAAO,IAAI,SAAS;GAClB,eAAe;GACf,MAAM;EACR,CAAC;CACH,GAAG,cAAA;EAAA;EAAA;EAAA;EAAA;EAAA;CAAA,GAAA;EAAA;EAAA;EAAA;EAAA;CAAA,GAAA,cAAA,cAAA,cAAA,YAAY;AACjB;;;;;;AAOA,IAAa,qBAAqB,oBAA0B;CAC1D,MAAM,IAAI,WAAW;EACnB,YAAY,YAAY;EACxB,eAAe;EACf,MAAM;CACR,CAAC;AACH,CAAC;AAED,IAAa,0BAA0B,oBAA0B;CAC/D,MAAM,IAAI,WAAW;EACnB,YAAY,YAAY;EACxB,MAAM;EACN,eACE;CACJ,CAAC;AACH,CAAC"}
|
|
@@ -3,8 +3,8 @@ import { RouterOptions } from '../types/general.ts';
|
|
|
3
3
|
import { MayReturnError } from '../types/publicMethods.ts';
|
|
4
4
|
export declare function deserializeRequestBody(context: CallContext): MayReturnError;
|
|
5
5
|
export declare function serializeResponseBody(context: CallContext, opts: RouterOptions): MayReturnError;
|
|
6
|
-
export declare const
|
|
7
|
-
mionDeserializeRequest: import('../types/definitions.ts').
|
|
8
|
-
mionSerializeResponse: import('../types/definitions.ts').
|
|
6
|
+
export declare const serializerMiddlewares: {
|
|
7
|
+
mionDeserializeRequest: import('../types/definitions.ts').RawMiddlewareDef<typeof deserializeRequestBody>;
|
|
8
|
+
mionSerializeResponse: import('../types/definitions.ts').RawMiddlewareDef<typeof serializeResponseBody>;
|
|
9
9
|
};
|
|
10
10
|
//# sourceMappingURL=serializer.routes.d.ts.map
|