@mionjs/router 0.13.2 → 0.14.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/esm/.mion/types/A0Qb_CXFfAul.js +43 -0
- package/.dist/esm/.mion/types/A0Qb_CXFfAul.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_EkYSHqf.js +29 -0
- package/.dist/esm/.mion/types/A0Qb_EkYSHqf.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_GVXB1Wo.js +22 -0
- package/.dist/esm/.mion/types/A0Qb_GVXB1Wo.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_HvnlLnd.js +38 -0
- package/.dist/esm/.mion/types/A0Qb_HvnlLnd.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_JTXvy7Y.js +43 -0
- package/.dist/esm/.mion/types/A0Qb_JTXvy7Y.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_JkwVz03.js +36 -0
- package/.dist/esm/.mion/types/A0Qb_JkwVz03.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_Ju6MvJU.js +14 -0
- package/.dist/esm/.mion/types/A0Qb_Ju6MvJU.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_KYXJdoi.js +42 -0
- package/.dist/esm/.mion/types/A0Qb_KYXJdoi.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_L7TAwqn.js +44 -0
- package/.dist/esm/.mion/types/A0Qb_L7TAwqn.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_NXjo9wB.js +82 -0
- package/.dist/esm/.mion/types/A0Qb_NXjo9wB.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_P05N010.js +35 -0
- package/.dist/esm/.mion/types/A0Qb_P05N010.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_R2waGIJ.js +43 -0
- package/.dist/esm/.mion/types/A0Qb_R2waGIJ.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_UE6lPE3.js +14 -0
- package/.dist/esm/.mion/types/A0Qb_UE6lPE3.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_UGPHsHZ.js +29 -0
- package/.dist/esm/.mion/types/A0Qb_UGPHsHZ.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_VMxJugF.js +29 -0
- package/.dist/esm/.mion/types/A0Qb_VMxJugF.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_VuzVN13.js +43 -0
- package/.dist/esm/.mion/types/A0Qb_VuzVN13.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_WaXzp6u.js +29 -0
- package/.dist/esm/.mion/types/A0Qb_WaXzp6u.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_b8JOgtl.js +35 -0
- package/.dist/esm/.mion/types/A0Qb_b8JOgtl.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_bWgCH09.js +14 -0
- package/.dist/esm/.mion/types/A0Qb_bWgCH09.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_cIwQaiK.js +43 -0
- package/.dist/esm/.mion/types/A0Qb_cIwQaiK.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_ddv0QYt.js +27 -0
- package/.dist/esm/.mion/types/A0Qb_ddv0QYt.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_fjaxPpO.js +28 -0
- package/.dist/esm/.mion/types/A0Qb_fjaxPpO.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_hnO6xA5.js +43 -0
- package/.dist/esm/.mion/types/A0Qb_hnO6xA5.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_jMcsHAh.js +76 -0
- package/.dist/esm/.mion/types/A0Qb_jMcsHAh.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_pJ9XvFm.js +43 -0
- package/.dist/esm/.mion/types/A0Qb_pJ9XvFm.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_pWBRJYE.js +22 -0
- package/.dist/esm/.mion/types/A0Qb_pWBRJYE.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_qatpo1O.js +27 -0
- package/.dist/esm/.mion/types/A0Qb_qatpo1O.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_qxw8aWP.js +43 -0
- package/.dist/esm/.mion/types/A0Qb_qxw8aWP.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_ujMZYNY.js +29 -0
- package/.dist/esm/.mion/types/A0Qb_ujMZYNY.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_vIbt7K7.js +25 -0
- package/.dist/esm/.mion/types/A0Qb_vIbt7K7.js.map +1 -0
- package/.dist/esm/.mion/types/A0Qb_vMVZ77w.js +29 -0
- package/.dist/esm/.mion/types/A0Qb_vMVZ77w.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_EkYSHqf.js +31 -0
- package/.dist/esm/.mion/types/Eq2V_EkYSHqf.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_GVXB1Wo.js +22 -0
- package/.dist/esm/.mion/types/Eq2V_GVXB1Wo.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_HvnlLnd.js +39 -0
- package/.dist/esm/.mion/types/Eq2V_HvnlLnd.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_JTXvy7Y.js +24 -0
- package/.dist/esm/.mion/types/Eq2V_JTXvy7Y.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_JkwVz03.js +39 -0
- package/.dist/esm/.mion/types/Eq2V_JkwVz03.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_KYXJdoi.js +41 -0
- package/.dist/esm/.mion/types/Eq2V_KYXJdoi.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_L7TAwqn.js +41 -0
- package/.dist/esm/.mion/types/Eq2V_L7TAwqn.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_P05N010.js +31 -0
- package/.dist/esm/.mion/types/Eq2V_P05N010.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_R2waGIJ.js +24 -0
- package/.dist/esm/.mion/types/Eq2V_R2waGIJ.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_UGPHsHZ.js +26 -0
- package/.dist/esm/.mion/types/Eq2V_UGPHsHZ.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_VMxJugF.js +31 -0
- package/.dist/esm/.mion/types/Eq2V_VMxJugF.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_VuzVN13.js +24 -0
- package/.dist/esm/.mion/types/Eq2V_VuzVN13.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_WaXzp6u.js +31 -0
- package/.dist/esm/.mion/types/Eq2V_WaXzp6u.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_cIwQaiK.js +24 -0
- package/.dist/esm/.mion/types/Eq2V_cIwQaiK.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_ddv0QYt.js +26 -0
- package/.dist/esm/.mion/types/Eq2V_ddv0QYt.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_fjaxPpO.js +32 -0
- package/.dist/esm/.mion/types/Eq2V_fjaxPpO.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_hnO6xA5.js +24 -0
- package/.dist/esm/.mion/types/Eq2V_hnO6xA5.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_pJ9XvFm.js +24 -0
- package/.dist/esm/.mion/types/Eq2V_pJ9XvFm.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_pWBRJYE.js +22 -0
- package/.dist/esm/.mion/types/Eq2V_pWBRJYE.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_qatpo1O.js +29 -0
- package/.dist/esm/.mion/types/Eq2V_qatpo1O.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_qxw8aWP.js +24 -0
- package/.dist/esm/.mion/types/Eq2V_qxw8aWP.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_vIbt7K7.js +27 -0
- package/.dist/esm/.mion/types/Eq2V_vIbt7K7.js.map +1 -0
- package/.dist/esm/.mion/types/Eq2V_vMVZ77w.js +31 -0
- package/.dist/esm/.mion/types/Eq2V_vMVZ77w.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_CXFfAul.js +64 -0
- package/.dist/esm/.mion/types/Ky89_CXFfAul.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_EkYSHqf.js +28 -0
- package/.dist/esm/.mion/types/Ky89_EkYSHqf.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_HvnlLnd.js +42 -0
- package/.dist/esm/.mion/types/Ky89_HvnlLnd.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_JTXvy7Y.js +64 -0
- package/.dist/esm/.mion/types/Ky89_JTXvy7Y.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_JkwVz03.js +37 -0
- package/.dist/esm/.mion/types/Ky89_JkwVz03.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_Ju6MvJU.js +14 -0
- package/.dist/esm/.mion/types/Ky89_Ju6MvJU.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_KYXJdoi.js +47 -0
- package/.dist/esm/.mion/types/Ky89_KYXJdoi.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_L7TAwqn.js +53 -0
- package/.dist/esm/.mion/types/Ky89_L7TAwqn.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_NXjo9wB.js +51 -0
- package/.dist/esm/.mion/types/Ky89_NXjo9wB.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_P05N010.js +35 -0
- package/.dist/esm/.mion/types/Ky89_P05N010.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_R2waGIJ.js +64 -0
- package/.dist/esm/.mion/types/Ky89_R2waGIJ.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_UE6lPE3.js +25 -0
- package/.dist/esm/.mion/types/Ky89_UE6lPE3.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_UGPHsHZ.js +28 -0
- package/.dist/esm/.mion/types/Ky89_UGPHsHZ.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_VMxJugF.js +28 -0
- package/.dist/esm/.mion/types/Ky89_VMxJugF.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_VuzVN13.js +64 -0
- package/.dist/esm/.mion/types/Ky89_VuzVN13.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_WaXzp6u.js +27 -0
- package/.dist/esm/.mion/types/Ky89_WaXzp6u.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_b8JOgtl.js +32 -0
- package/.dist/esm/.mion/types/Ky89_b8JOgtl.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_bWgCH09.js +26 -0
- package/.dist/esm/.mion/types/Ky89_bWgCH09.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_cIwQaiK.js +64 -0
- package/.dist/esm/.mion/types/Ky89_cIwQaiK.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_ddv0QYt.js +23 -0
- package/.dist/esm/.mion/types/Ky89_ddv0QYt.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_fjaxPpO.js +30 -0
- package/.dist/esm/.mion/types/Ky89_fjaxPpO.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_hnO6xA5.js +64 -0
- package/.dist/esm/.mion/types/Ky89_hnO6xA5.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_jMcsHAh.js +63 -0
- package/.dist/esm/.mion/types/Ky89_jMcsHAh.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_pJ9XvFm.js +64 -0
- package/.dist/esm/.mion/types/Ky89_pJ9XvFm.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_qatpo1O.js +33 -0
- package/.dist/esm/.mion/types/Ky89_qatpo1O.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_qxw8aWP.js +64 -0
- package/.dist/esm/.mion/types/Ky89_qxw8aWP.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_ujMZYNY.js +28 -0
- package/.dist/esm/.mion/types/Ky89_ujMZYNY.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_vIbt7K7.js +28 -0
- package/.dist/esm/.mion/types/Ky89_vIbt7K7.js.map +1 -0
- package/.dist/esm/.mion/types/Ky89_vMVZ77w.js +28 -0
- package/.dist/esm/.mion/types/Ky89_vMVZ77w.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_CXFfAul.js +57 -0
- package/.dist/esm/.mion/types/OBOg_CXFfAul.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_Ju6MvJU.js +25 -0
- package/.dist/esm/.mion/types/OBOg_Ju6MvJU.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_K9zElfi.js +27 -0
- package/.dist/esm/.mion/types/OBOg_K9zElfi.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_NXjo9wB.js +27 -0
- package/.dist/esm/.mion/types/OBOg_NXjo9wB.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_UE6lPE3.js +29 -0
- package/.dist/esm/.mion/types/OBOg_UE6lPE3.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_b8JOgtl.js +27 -0
- package/.dist/esm/.mion/types/OBOg_b8JOgtl.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_bWgCH09.js +34 -0
- package/.dist/esm/.mion/types/OBOg_bWgCH09.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_ddv0QYt.js +25 -0
- package/.dist/esm/.mion/types/OBOg_ddv0QYt.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_jMcsHAh.js +27 -0
- package/.dist/esm/.mion/types/OBOg_jMcsHAh.js.map +1 -0
- package/.dist/esm/.mion/types/OBOg_ujMZYNY.js +34 -0
- package/.dist/esm/.mion/types/OBOg_ujMZYNY.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_CXFfAul.js +24 -0
- package/.dist/esm/.mion/types/Xhuv_CXFfAul.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_EkYSHqf.js +31 -0
- package/.dist/esm/.mion/types/Xhuv_EkYSHqf.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_GVXB1Wo.js +22 -0
- package/.dist/esm/.mion/types/Xhuv_GVXB1Wo.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_HvnlLnd.js +39 -0
- package/.dist/esm/.mion/types/Xhuv_HvnlLnd.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_JTXvy7Y.js +24 -0
- package/.dist/esm/.mion/types/Xhuv_JTXvy7Y.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_JkwVz03.js +39 -0
- package/.dist/esm/.mion/types/Xhuv_JkwVz03.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_Ju6MvJU.js +22 -0
- package/.dist/esm/.mion/types/Xhuv_Ju6MvJU.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_K9zElfi.js +22 -0
- package/.dist/esm/.mion/types/Xhuv_K9zElfi.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_KYXJdoi.js +41 -0
- package/.dist/esm/.mion/types/Xhuv_KYXJdoi.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_L7TAwqn.js +41 -0
- package/.dist/esm/.mion/types/Xhuv_L7TAwqn.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_NXjo9wB.js +95 -0
- package/.dist/esm/.mion/types/Xhuv_NXjo9wB.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_P05N010.js +31 -0
- package/.dist/esm/.mion/types/Xhuv_P05N010.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_R2waGIJ.js +24 -0
- package/.dist/esm/.mion/types/Xhuv_R2waGIJ.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_UE6lPE3.js +30 -0
- package/.dist/esm/.mion/types/Xhuv_UE6lPE3.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_UGPHsHZ.js +26 -0
- package/.dist/esm/.mion/types/Xhuv_UGPHsHZ.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_VMxJugF.js +31 -0
- package/.dist/esm/.mion/types/Xhuv_VMxJugF.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_VuzVN13.js +24 -0
- package/.dist/esm/.mion/types/Xhuv_VuzVN13.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_WaXzp6u.js +31 -0
- package/.dist/esm/.mion/types/Xhuv_WaXzp6u.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_b0EmsPZ.js +22 -0
- package/.dist/esm/.mion/types/Xhuv_b0EmsPZ.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_b8JOgtl.js +24 -0
- package/.dist/esm/.mion/types/Xhuv_b8JOgtl.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_bWgCH09.js +33 -0
- package/.dist/esm/.mion/types/Xhuv_bWgCH09.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_cIwQaiK.js +24 -0
- package/.dist/esm/.mion/types/Xhuv_cIwQaiK.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_ddv0QYt.js +26 -0
- package/.dist/esm/.mion/types/Xhuv_ddv0QYt.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_fjaxPpO.js +32 -0
- package/.dist/esm/.mion/types/Xhuv_fjaxPpO.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_hnO6xA5.js +24 -0
- package/.dist/esm/.mion/types/Xhuv_hnO6xA5.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_jMcsHAh.js +71 -0
- package/.dist/esm/.mion/types/Xhuv_jMcsHAh.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_pJ9XvFm.js +24 -0
- package/.dist/esm/.mion/types/Xhuv_pJ9XvFm.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_pWBRJYE.js +22 -0
- package/.dist/esm/.mion/types/Xhuv_pWBRJYE.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_qatpo1O.js +29 -0
- package/.dist/esm/.mion/types/Xhuv_qatpo1O.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_qxw8aWP.js +24 -0
- package/.dist/esm/.mion/types/Xhuv_qxw8aWP.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_ujMZYNY.js +31 -0
- package/.dist/esm/.mion/types/Xhuv_ujMZYNY.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_vIbt7K7.js +27 -0
- package/.dist/esm/.mion/types/Xhuv_vIbt7K7.js.map +1 -0
- package/.dist/esm/.mion/types/Xhuv_vMVZ77w.js +31 -0
- package/.dist/esm/.mion/types/Xhuv_vMVZ77w.js.map +1 -0
- package/.dist/esm/.mion/types/mzca_Ju6MvJU.js +14 -0
- package/.dist/esm/.mion/types/mzca_Ju6MvJU.js.map +1 -0
- package/.dist/esm/.mion/types/mzca_UE6lPE3.js +14 -0
- package/.dist/esm/.mion/types/mzca_UE6lPE3.js.map +1 -0
- package/.dist/esm/.mion/types/mzca_bWgCH09.js +14 -0
- package/.dist/esm/.mion/types/mzca_bWgCH09.js.map +1 -0
- package/.dist/esm/.mion/types/pf/_rt/_abcB3do2M.js +23 -0
- package/.dist/esm/.mion/types/pf/_rt/_abcB3do2M.js.map +1 -0
- package/.dist/esm/.mion/types/pf/_rt/tfRjnFZVF8.js +27 -0
- package/.dist/esm/.mion/types/pf/_rt/tfRjnFZVF8.js.map +1 -0
- package/.dist/esm/.mion/types/rt/C7ezVBCtGn.js +192 -187
- package/.dist/esm/.mion/types/rt/C7ezVBCtGn.js.map +1 -1
- package/.dist/esm/.mion/types/rt/KjC1OsUQp4.js +1207 -0
- package/.dist/esm/.mion/types/rt/KjC1OsUQp4.js.map +1 -0
- package/.dist/esm/.mion/types/rt/VIdAjpHu1X.js +183 -184
- package/.dist/esm/.mion/types/rt/VIdAjpHu1X.js.map +1 -1
- package/.dist/esm/.mion/types/rt/eF4wQzU6Fd.js +332 -326
- package/.dist/esm/.mion/types/rt/eF4wQzU6Fd.js.map +1 -1
- package/.dist/esm/.mion/types/rt/shared/{X6LLuPu8LB.js → EjfwjaotqB.js} +169 -153
- package/.dist/esm/.mion/types/rt/shared/EjfwjaotqB.js.map +1 -0
- package/.dist/esm/.mion/types/rt/shared/lhgmFrJdOO.js +278 -0
- package/.dist/esm/.mion/types/rt/shared/lhgmFrJdOO.js.map +1 -0
- package/.dist/esm/.mion/types/rt/shared/{b3OCOIQ3Az.js → nJOmbxLb37.js} +474 -610
- package/.dist/esm/.mion/types/rt/shared/nJOmbxLb37.js.map +1 -0
- package/.dist/esm/index.d.ts +1 -1
- package/.dist/esm/index.js +7 -7
- package/.dist/esm/middlewares.d.ts +1 -0
- package/.dist/esm/middlewares.js +2 -1
- package/.dist/esm/src/batches.js +3 -3
- package/.dist/esm/src/batches.js.map +1 -1
- package/.dist/esm/src/callContext.d.ts +3 -3
- package/.dist/esm/src/callContext.js +7 -5
- package/.dist/esm/src/callContext.js.map +1 -1
- package/.dist/esm/src/constants.d.ts +1 -0
- package/.dist/esm/src/constants.js +5 -3
- package/.dist/esm/src/constants.js.map +1 -1
- package/.dist/esm/src/dispatch.d.ts +3 -3
- package/.dist/esm/src/dispatch.js +10 -8
- package/.dist/esm/src/dispatch.js.map +1 -1
- package/.dist/esm/src/lib/dispatchError.d.ts +2 -1
- package/.dist/esm/src/lib/dispatchError.js +11 -2
- package/.dist/esm/src/lib/dispatchError.js.map +1 -1
- package/.dist/esm/src/lib/handlers.d.ts +3 -3
- package/.dist/esm/src/lib/handlers.js.map +1 -1
- package/.dist/esm/src/lib/headers.d.ts +2 -0
- package/.dist/esm/src/lib/headers.js +19 -1
- package/.dist/esm/src/lib/headers.js.map +1 -1
- package/.dist/esm/src/lib/httpMethod.d.ts +3 -0
- package/.dist/esm/src/lib/httpMethod.js +21 -0
- package/.dist/esm/src/lib/httpMethod.js.map +1 -0
- package/.dist/esm/src/lib/queryBody.d.ts +1 -6
- package/.dist/esm/src/lib/queryBody.js +4 -7
- package/.dist/esm/src/lib/queryBody.js.map +1 -1
- package/.dist/esm/src/lib/reflection.js +4 -4
- package/.dist/esm/src/lib/reflection.js.map +1 -1
- package/.dist/esm/src/lib/remoteMethods.js +2 -2
- package/.dist/esm/src/lib/remoteMethods.js.map +1 -1
- package/.dist/esm/src/middlewares/fetchMetadata.js +20 -20
- package/.dist/esm/src/middlewares/security.d.ts +9 -0
- package/.dist/esm/src/middlewares/security.js +213 -0
- package/.dist/esm/src/middlewares/security.js.map +1 -0
- package/.dist/esm/src/middlewares/syncRoutes.js +20 -20
- package/.dist/esm/src/router.d.ts +8 -6
- package/.dist/esm/src/router.js +40 -29
- package/.dist/esm/src/router.js.map +1 -1
- package/.dist/esm/src/routes/errors.routes.js +34 -34
- package/.dist/esm/src/routes/serializer.routes.js +13 -2
- package/.dist/esm/src/routes/serializer.routes.js.map +1 -1
- package/.dist/esm/src/types/context.d.ts +6 -3
- package/.dist/esm/src/types/definitions.d.ts +5 -3
- package/.dist/esm/src/types/general.d.ts +24 -5
- package/.dist/esm/src/types/guards.d.ts +2 -6
- package/.dist/esm/src/types/guards.js +1 -13
- package/.dist/esm/src/types/guards.js.map +1 -1
- package/.dist/esm/src/types/mionRouter.d.ts +67 -22
- package/.dist/esm/src/types/publicMethods.d.ts +4 -5
- package/.dist/esm/src/types/resolvedOptions.d.ts +11 -2
- package/package.json +6 -6
- package/.dist/cjs/.mion/types/A0Qb_EtDWACB.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_EtDWACB.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_FSFQzFT.cjs +0 -17
- package/.dist/cjs/.mion/types/A0Qb_FSFQzFT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_IJpcjGV.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_IJpcjGV.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_IugtMk3.cjs +0 -14
- package/.dist/cjs/.mion/types/A0Qb_IugtMk3.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_JmyrGf9.cjs +0 -13
- package/.dist/cjs/.mion/types/A0Qb_JmyrGf9.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_KW2BeGf.cjs +0 -13
- package/.dist/cjs/.mion/types/A0Qb_KW2BeGf.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_N4upY9e.cjs +0 -14
- package/.dist/cjs/.mion/types/A0Qb_N4upY9e.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_NpYuWjf.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_NpYuWjf.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_PGJvDQM.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_PGJvDQM.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_SJBMH8X.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_SJBMH8X.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_SW6Ke6X.cjs +0 -26
- package/.dist/cjs/.mion/types/A0Qb_SW6Ke6X.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_UM4R4B0.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_UM4R4B0.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_VU2j3Ds.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_VU2j3Ds.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_WIhjWe9.cjs +0 -13
- package/.dist/cjs/.mion/types/A0Qb_WIhjWe9.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_ZRJiRyT.cjs +0 -13
- package/.dist/cjs/.mion/types/A0Qb_ZRJiRyT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_Zdevfid.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_Zdevfid.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_cCmjzQr.cjs +0 -36
- package/.dist/cjs/.mion/types/A0Qb_cCmjzQr.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_dbzlcVY.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_dbzlcVY.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_fzrXFOz.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_fzrXFOz.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_il6MWfT.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_il6MWfT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_kuE24Ar.cjs +0 -13
- package/.dist/cjs/.mion/types/A0Qb_kuE24Ar.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_od0j6kO.cjs +0 -16
- package/.dist/cjs/.mion/types/A0Qb_od0j6kO.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_uz6TmiD.cjs +0 -17
- package/.dist/cjs/.mion/types/A0Qb_uz6TmiD.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_vDX1rqR.cjs +0 -13
- package/.dist/cjs/.mion/types/A0Qb_vDX1rqR.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_vei3XnC.cjs +0 -17
- package/.dist/cjs/.mion/types/A0Qb_vei3XnC.cjs.map +0 -1
- package/.dist/cjs/.mion/types/A0Qb_vtuQRKM.cjs +0 -14
- package/.dist/cjs/.mion/types/A0Qb_vtuQRKM.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_EtDWACB.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_EtDWACB.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_IJpcjGV.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_IJpcjGV.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_JmyrGf9.cjs +0 -13
- package/.dist/cjs/.mion/types/Eq2V_JmyrGf9.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_KW2BeGf.cjs +0 -13
- package/.dist/cjs/.mion/types/Eq2V_KW2BeGf.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_NpYuWjf.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_NpYuWjf.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_SJBMH8X.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_SJBMH8X.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_SW6Ke6X.cjs +0 -26
- package/.dist/cjs/.mion/types/Eq2V_SW6Ke6X.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_VU2j3Ds.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_VU2j3Ds.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_WIhjWe9.cjs +0 -13
- package/.dist/cjs/.mion/types/Eq2V_WIhjWe9.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_ZRJiRyT.cjs +0 -13
- package/.dist/cjs/.mion/types/Eq2V_ZRJiRyT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_Zdevfid.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_Zdevfid.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_dbzlcVY.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_dbzlcVY.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_fzrXFOz.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_fzrXFOz.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_il6MWfT.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_il6MWfT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_kuE24Ar.cjs +0 -13
- package/.dist/cjs/.mion/types/Eq2V_kuE24Ar.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_od0j6kO.cjs +0 -16
- package/.dist/cjs/.mion/types/Eq2V_od0j6kO.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_uz6TmiD.cjs +0 -17
- package/.dist/cjs/.mion/types/Eq2V_uz6TmiD.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_vDX1rqR.cjs +0 -13
- package/.dist/cjs/.mion/types/Eq2V_vDX1rqR.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Eq2V_vei3XnC.cjs +0 -17
- package/.dist/cjs/.mion/types/Eq2V_vei3XnC.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_EtDWACB.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_EtDWACB.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_FSFQzFT.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_FSFQzFT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_IJpcjGV.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_IJpcjGV.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_IugtMk3.cjs +0 -14
- package/.dist/cjs/.mion/types/Ky89_IugtMk3.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_JmyrGf9.cjs +0 -13
- package/.dist/cjs/.mion/types/Ky89_JmyrGf9.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_KW2BeGf.cjs +0 -13
- package/.dist/cjs/.mion/types/Ky89_KW2BeGf.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_N4upY9e.cjs +0 -13
- package/.dist/cjs/.mion/types/Ky89_N4upY9e.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_NpYuWjf.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_NpYuWjf.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_PGJvDQM.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_PGJvDQM.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_SJBMH8X.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_SJBMH8X.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_SW6Ke6X.cjs +0 -26
- package/.dist/cjs/.mion/types/Ky89_SW6Ke6X.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_UM4R4B0.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_UM4R4B0.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_VU2j3Ds.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_VU2j3Ds.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_Zdevfid.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_Zdevfid.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_cCmjzQr.cjs +0 -32
- package/.dist/cjs/.mion/types/Ky89_cCmjzQr.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_dbzlcVY.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_dbzlcVY.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_fzrXFOz.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_fzrXFOz.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_il6MWfT.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_il6MWfT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_kuE24Ar.cjs +0 -13
- package/.dist/cjs/.mion/types/Ky89_kuE24Ar.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_od0j6kO.cjs +0 -16
- package/.dist/cjs/.mion/types/Ky89_od0j6kO.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_uz6TmiD.cjs +0 -13
- package/.dist/cjs/.mion/types/Ky89_uz6TmiD.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_vDX1rqR.cjs +0 -13
- package/.dist/cjs/.mion/types/Ky89_vDX1rqR.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_vei3XnC.cjs +0 -17
- package/.dist/cjs/.mion/types/Ky89_vei3XnC.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Ky89_vtuQRKM.cjs +0 -13
- package/.dist/cjs/.mion/types/Ky89_vtuQRKM.cjs.map +0 -1
- package/.dist/cjs/.mion/types/OBOg_FSFQzFT.cjs +0 -18
- package/.dist/cjs/.mion/types/OBOg_FSFQzFT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/OBOg_IugtMk3.cjs +0 -17
- package/.dist/cjs/.mion/types/OBOg_IugtMk3.cjs.map +0 -1
- package/.dist/cjs/.mion/types/OBOg_N4upY9e.cjs +0 -17
- package/.dist/cjs/.mion/types/OBOg_N4upY9e.cjs.map +0 -1
- package/.dist/cjs/.mion/types/OBOg_PGJvDQM.cjs +0 -18
- package/.dist/cjs/.mion/types/OBOg_PGJvDQM.cjs.map +0 -1
- package/.dist/cjs/.mion/types/OBOg_TEA76po.cjs +0 -18
- package/.dist/cjs/.mion/types/OBOg_TEA76po.cjs.map +0 -1
- package/.dist/cjs/.mion/types/OBOg_UM4R4B0.cjs +0 -23
- package/.dist/cjs/.mion/types/OBOg_UM4R4B0.cjs.map +0 -1
- package/.dist/cjs/.mion/types/OBOg_cCmjzQr.cjs +0 -18
- package/.dist/cjs/.mion/types/OBOg_cCmjzQr.cjs.map +0 -1
- package/.dist/cjs/.mion/types/OBOg_vDX1rqR.cjs +0 -17
- package/.dist/cjs/.mion/types/OBOg_vDX1rqR.cjs.map +0 -1
- package/.dist/cjs/.mion/types/OBOg_vtuQRKM.cjs +0 -18
- package/.dist/cjs/.mion/types/OBOg_vtuQRKM.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_EtDWACB.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_EtDWACB.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_FSFQzFT.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_FSFQzFT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_IJpcjGV.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_IJpcjGV.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_IugtMk3.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_IugtMk3.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_JmyrGf9.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_JmyrGf9.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_KW2BeGf.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_KW2BeGf.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_N4upY9e.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_N4upY9e.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_NpYuWjf.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_NpYuWjf.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_PGJvDQM.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_PGJvDQM.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_SJBMH8X.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_SJBMH8X.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_SW6Ke6X.cjs +0 -26
- package/.dist/cjs/.mion/types/Xhuv_SW6Ke6X.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_TEA76po.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_TEA76po.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_UM4R4B0.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_UM4R4B0.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_VU2j3Ds.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_VU2j3Ds.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_WIhjWe9.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_WIhjWe9.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_ZRJiRyT.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_ZRJiRyT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_Zdevfid.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_Zdevfid.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_cCmjzQr.cjs +0 -29
- package/.dist/cjs/.mion/types/Xhuv_cCmjzQr.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_dbzlcVY.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_dbzlcVY.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_fzrXFOz.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_fzrXFOz.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_il6MWfT.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_il6MWfT.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_kuE24Ar.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_kuE24Ar.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_m13oqC7.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_m13oqC7.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_od0j6kO.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_od0j6kO.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_uz6TmiD.cjs +0 -17
- package/.dist/cjs/.mion/types/Xhuv_uz6TmiD.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_vDX1rqR.cjs +0 -13
- package/.dist/cjs/.mion/types/Xhuv_vDX1rqR.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_vei3XnC.cjs +0 -17
- package/.dist/cjs/.mion/types/Xhuv_vei3XnC.cjs.map +0 -1
- package/.dist/cjs/.mion/types/Xhuv_vtuQRKM.cjs +0 -16
- package/.dist/cjs/.mion/types/Xhuv_vtuQRKM.cjs.map +0 -1
- package/.dist/cjs/.mion/types/mzca_IugtMk3.cjs +0 -14
- package/.dist/cjs/.mion/types/mzca_IugtMk3.cjs.map +0 -1
- package/.dist/cjs/.mion/types/mzca_N4upY9e.cjs +0 -14
- package/.dist/cjs/.mion/types/mzca_N4upY9e.cjs.map +0 -1
- package/.dist/cjs/.mion/types/mzca_vtuQRKM.cjs +0 -14
- package/.dist/cjs/.mion/types/mzca_vtuQRKM.cjs.map +0 -1
- package/.dist/cjs/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.cjs +0 -14
- package/.dist/cjs/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.cjs.map +0 -1
- package/.dist/cjs/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.cjs +0 -14
- package/.dist/cjs/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.cjs.map +0 -1
- package/.dist/cjs/.mion/types/rt/C7ezVBCtGn.cjs +0 -498
- package/.dist/cjs/.mion/types/rt/C7ezVBCtGn.cjs.map +0 -1
- package/.dist/cjs/.mion/types/rt/VIdAjpHu1X.cjs +0 -526
- package/.dist/cjs/.mion/types/rt/VIdAjpHu1X.cjs.map +0 -1
- package/.dist/cjs/.mion/types/rt/eF4wQzU6Fd.cjs +0 -875
- package/.dist/cjs/.mion/types/rt/eF4wQzU6Fd.cjs.map +0 -1
- package/.dist/cjs/.mion/types/rt/shared/X6LLuPu8LB.cjs +0 -467
- package/.dist/cjs/.mion/types/rt/shared/X6LLuPu8LB.cjs.map +0 -1
- package/.dist/cjs/.mion/types/rt/shared/b3OCOIQ3Az.cjs +0 -1475
- package/.dist/cjs/.mion/types/rt/shared/b3OCOIQ3Az.cjs.map +0 -1
- package/.dist/cjs/index.cjs +0 -118
- package/.dist/cjs/index.d.ts +0 -21
- package/.dist/cjs/middlewares.cjs +0 -5
- package/.dist/cjs/middlewares.d.ts +0 -3
- package/.dist/cjs/package.json +0 -1
- package/.dist/cjs/src/batches.cjs +0 -332
- package/.dist/cjs/src/batches.cjs.map +0 -1
- package/.dist/cjs/src/batches.d.ts +0 -22
- package/.dist/cjs/src/callContext.cjs +0 -81
- package/.dist/cjs/src/callContext.cjs.map +0 -1
- package/.dist/cjs/src/callContext.d.ts +0 -8
- package/.dist/cjs/src/constants.cjs +0 -26
- package/.dist/cjs/src/constants.cjs.map +0 -1
- package/.dist/cjs/src/constants.d.ts +0 -5
- package/.dist/cjs/src/dispatch.cjs +0 -239
- package/.dist/cjs/src/dispatch.cjs.map +0 -1
- package/.dist/cjs/src/dispatch.d.ts +0 -10
- package/.dist/cjs/src/lib/bodyLimit.cjs +0 -37
- package/.dist/cjs/src/lib/bodyLimit.cjs.map +0 -1
- package/.dist/cjs/src/lib/bodyLimit.d.ts +0 -5
- package/.dist/cjs/src/lib/bodyReader.cjs +0 -79
- package/.dist/cjs/src/lib/bodyReader.cjs.map +0 -1
- package/.dist/cjs/src/lib/bodyReader.d.ts +0 -10
- package/.dist/cjs/src/lib/dispatchError.cjs +0 -82
- package/.dist/cjs/src/lib/dispatchError.cjs.map +0 -1
- package/.dist/cjs/src/lib/dispatchError.d.ts +0 -10
- package/.dist/cjs/src/lib/handlers.cjs +0 -99
- package/.dist/cjs/src/lib/handlers.cjs.map +0 -1
- package/.dist/cjs/src/lib/handlers.d.ts +0 -15
- package/.dist/cjs/src/lib/headers.cjs +0 -181
- package/.dist/cjs/src/lib/headers.cjs.map +0 -1
- package/.dist/cjs/src/lib/headers.d.ts +0 -42
- package/.dist/cjs/src/lib/queryBody.cjs +0 -30
- package/.dist/cjs/src/lib/queryBody.cjs.map +0 -1
- package/.dist/cjs/src/lib/queryBody.d.ts +0 -7
- package/.dist/cjs/src/lib/reflection.cjs +0 -81
- package/.dist/cjs/src/lib/reflection.cjs.map +0 -1
- package/.dist/cjs/src/lib/reflection.d.ts +0 -18
- package/.dist/cjs/src/lib/remoteMethods.cjs +0 -125
- package/.dist/cjs/src/lib/remoteMethods.cjs.map +0 -1
- package/.dist/cjs/src/lib/remoteMethods.d.ts +0 -11
- package/.dist/cjs/src/lib/urlQuery.cjs +0 -24
- package/.dist/cjs/src/lib/urlQuery.cjs.map +0 -1
- package/.dist/cjs/src/lib/urlQuery.d.ts +0 -2
- package/.dist/cjs/src/middlewares/fetchMetadata.cjs +0 -99
- package/.dist/cjs/src/middlewares/fetchMetadata.cjs.map +0 -1
- package/.dist/cjs/src/middlewares/fetchMetadata.d.ts +0 -15
- package/.dist/cjs/src/middlewares/syncRoutes.cjs +0 -67
- package/.dist/cjs/src/middlewares/syncRoutes.cjs.map +0 -1
- package/.dist/cjs/src/middlewares/syncRoutes.d.ts +0 -12
- package/.dist/cjs/src/router.cjs +0 -556
- package/.dist/cjs/src/router.cjs.map +0 -1
- package/.dist/cjs/src/router.d.ts +0 -41
- package/.dist/cjs/src/routes/errors.routes.cjs +0 -84
- package/.dist/cjs/src/routes/errors.routes.cjs.map +0 -1
- package/.dist/cjs/src/routes/errors.routes.d.ts +0 -19
- package/.dist/cjs/src/routes/serializer.routes.cjs +0 -122
- package/.dist/cjs/src/routes/serializer.routes.cjs.map +0 -1
- package/.dist/cjs/src/routes/serializer.routes.d.ts +0 -10
- package/.dist/cjs/src/types/context.cjs +0 -0
- package/.dist/cjs/src/types/context.d.ts +0 -50
- package/.dist/cjs/src/types/definitions.cjs +0 -0
- package/.dist/cjs/src/types/definitions.d.ts +0 -33
- package/.dist/cjs/src/types/general.cjs +0 -0
- package/.dist/cjs/src/types/general.d.ts +0 -29
- package/.dist/cjs/src/types/guards.cjs +0 -59
- package/.dist/cjs/src/types/guards.cjs.map +0 -1
- package/.dist/cjs/src/types/guards.d.ts +0 -18
- package/.dist/cjs/src/types/handlers.cjs +0 -0
- package/.dist/cjs/src/types/handlers.d.ts +0 -16
- package/.dist/cjs/src/types/mionRouter.cjs +0 -0
- package/.dist/cjs/src/types/mionRouter.d.ts +0 -44
- package/.dist/cjs/src/types/parser.cjs +0 -0
- package/.dist/cjs/src/types/parser.d.ts +0 -43
- package/.dist/cjs/src/types/publicMethods.cjs +0 -0
- package/.dist/cjs/src/types/publicMethods.d.ts +0 -86
- package/.dist/cjs/src/types/remoteMethods.cjs +0 -0
- package/.dist/cjs/src/types/remoteMethods.d.ts +0 -65
- package/.dist/cjs/src/types/resolvedOptions.cjs +0 -0
- package/.dist/cjs/src/types/resolvedOptions.d.ts +0 -28
- package/.dist/esm/.mion/types/A0Qb_EtDWACB.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_EtDWACB.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_FSFQzFT.js +0 -17
- package/.dist/esm/.mion/types/A0Qb_FSFQzFT.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_IJpcjGV.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_IJpcjGV.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_IugtMk3.js +0 -14
- package/.dist/esm/.mion/types/A0Qb_IugtMk3.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_JmyrGf9.js +0 -13
- package/.dist/esm/.mion/types/A0Qb_JmyrGf9.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_KW2BeGf.js +0 -13
- package/.dist/esm/.mion/types/A0Qb_KW2BeGf.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_N4upY9e.js +0 -14
- package/.dist/esm/.mion/types/A0Qb_N4upY9e.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_NpYuWjf.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_NpYuWjf.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_PGJvDQM.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_PGJvDQM.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_SJBMH8X.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_SJBMH8X.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_SW6Ke6X.js +0 -26
- package/.dist/esm/.mion/types/A0Qb_SW6Ke6X.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_UM4R4B0.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_UM4R4B0.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_VU2j3Ds.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_VU2j3Ds.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_WIhjWe9.js +0 -13
- package/.dist/esm/.mion/types/A0Qb_WIhjWe9.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_ZRJiRyT.js +0 -13
- package/.dist/esm/.mion/types/A0Qb_ZRJiRyT.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_Zdevfid.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_Zdevfid.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_cCmjzQr.js +0 -36
- package/.dist/esm/.mion/types/A0Qb_cCmjzQr.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_dbzlcVY.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_dbzlcVY.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_fzrXFOz.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_fzrXFOz.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_il6MWfT.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_il6MWfT.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_kuE24Ar.js +0 -13
- package/.dist/esm/.mion/types/A0Qb_kuE24Ar.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_od0j6kO.js +0 -16
- package/.dist/esm/.mion/types/A0Qb_od0j6kO.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_uz6TmiD.js +0 -17
- package/.dist/esm/.mion/types/A0Qb_uz6TmiD.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_vDX1rqR.js +0 -13
- package/.dist/esm/.mion/types/A0Qb_vDX1rqR.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_vei3XnC.js +0 -17
- package/.dist/esm/.mion/types/A0Qb_vei3XnC.js.map +0 -1
- package/.dist/esm/.mion/types/A0Qb_vtuQRKM.js +0 -14
- package/.dist/esm/.mion/types/A0Qb_vtuQRKM.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_EtDWACB.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_EtDWACB.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_IJpcjGV.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_IJpcjGV.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_JmyrGf9.js +0 -13
- package/.dist/esm/.mion/types/Eq2V_JmyrGf9.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_KW2BeGf.js +0 -13
- package/.dist/esm/.mion/types/Eq2V_KW2BeGf.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_NpYuWjf.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_NpYuWjf.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_SJBMH8X.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_SJBMH8X.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_SW6Ke6X.js +0 -26
- package/.dist/esm/.mion/types/Eq2V_SW6Ke6X.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_VU2j3Ds.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_VU2j3Ds.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_WIhjWe9.js +0 -13
- package/.dist/esm/.mion/types/Eq2V_WIhjWe9.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_ZRJiRyT.js +0 -13
- package/.dist/esm/.mion/types/Eq2V_ZRJiRyT.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_Zdevfid.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_Zdevfid.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_dbzlcVY.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_dbzlcVY.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_fzrXFOz.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_fzrXFOz.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_il6MWfT.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_il6MWfT.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_kuE24Ar.js +0 -13
- package/.dist/esm/.mion/types/Eq2V_kuE24Ar.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_od0j6kO.js +0 -16
- package/.dist/esm/.mion/types/Eq2V_od0j6kO.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_uz6TmiD.js +0 -17
- package/.dist/esm/.mion/types/Eq2V_uz6TmiD.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_vDX1rqR.js +0 -13
- package/.dist/esm/.mion/types/Eq2V_vDX1rqR.js.map +0 -1
- package/.dist/esm/.mion/types/Eq2V_vei3XnC.js +0 -17
- package/.dist/esm/.mion/types/Eq2V_vei3XnC.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_EtDWACB.js +0 -16
- package/.dist/esm/.mion/types/Ky89_EtDWACB.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_FSFQzFT.js +0 -16
- package/.dist/esm/.mion/types/Ky89_FSFQzFT.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_IJpcjGV.js +0 -16
- package/.dist/esm/.mion/types/Ky89_IJpcjGV.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_IugtMk3.js +0 -14
- package/.dist/esm/.mion/types/Ky89_IugtMk3.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_JmyrGf9.js +0 -13
- package/.dist/esm/.mion/types/Ky89_JmyrGf9.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_KW2BeGf.js +0 -13
- package/.dist/esm/.mion/types/Ky89_KW2BeGf.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_N4upY9e.js +0 -13
- package/.dist/esm/.mion/types/Ky89_N4upY9e.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_NpYuWjf.js +0 -16
- package/.dist/esm/.mion/types/Ky89_NpYuWjf.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_PGJvDQM.js +0 -16
- package/.dist/esm/.mion/types/Ky89_PGJvDQM.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_SJBMH8X.js +0 -16
- package/.dist/esm/.mion/types/Ky89_SJBMH8X.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_SW6Ke6X.js +0 -26
- package/.dist/esm/.mion/types/Ky89_SW6Ke6X.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_UM4R4B0.js +0 -16
- package/.dist/esm/.mion/types/Ky89_UM4R4B0.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_VU2j3Ds.js +0 -16
- package/.dist/esm/.mion/types/Ky89_VU2j3Ds.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_Zdevfid.js +0 -16
- package/.dist/esm/.mion/types/Ky89_Zdevfid.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_cCmjzQr.js +0 -32
- package/.dist/esm/.mion/types/Ky89_cCmjzQr.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_dbzlcVY.js +0 -16
- package/.dist/esm/.mion/types/Ky89_dbzlcVY.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_fzrXFOz.js +0 -16
- package/.dist/esm/.mion/types/Ky89_fzrXFOz.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_il6MWfT.js +0 -16
- package/.dist/esm/.mion/types/Ky89_il6MWfT.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_kuE24Ar.js +0 -13
- package/.dist/esm/.mion/types/Ky89_kuE24Ar.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_od0j6kO.js +0 -16
- package/.dist/esm/.mion/types/Ky89_od0j6kO.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_uz6TmiD.js +0 -13
- package/.dist/esm/.mion/types/Ky89_uz6TmiD.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_vDX1rqR.js +0 -13
- package/.dist/esm/.mion/types/Ky89_vDX1rqR.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_vei3XnC.js +0 -17
- package/.dist/esm/.mion/types/Ky89_vei3XnC.js.map +0 -1
- package/.dist/esm/.mion/types/Ky89_vtuQRKM.js +0 -13
- package/.dist/esm/.mion/types/Ky89_vtuQRKM.js.map +0 -1
- package/.dist/esm/.mion/types/OBOg_FSFQzFT.js +0 -18
- package/.dist/esm/.mion/types/OBOg_FSFQzFT.js.map +0 -1
- package/.dist/esm/.mion/types/OBOg_IugtMk3.js +0 -17
- package/.dist/esm/.mion/types/OBOg_IugtMk3.js.map +0 -1
- package/.dist/esm/.mion/types/OBOg_N4upY9e.js +0 -17
- package/.dist/esm/.mion/types/OBOg_N4upY9e.js.map +0 -1
- package/.dist/esm/.mion/types/OBOg_PGJvDQM.js +0 -18
- package/.dist/esm/.mion/types/OBOg_PGJvDQM.js.map +0 -1
- package/.dist/esm/.mion/types/OBOg_TEA76po.js +0 -18
- package/.dist/esm/.mion/types/OBOg_TEA76po.js.map +0 -1
- package/.dist/esm/.mion/types/OBOg_UM4R4B0.js +0 -23
- package/.dist/esm/.mion/types/OBOg_UM4R4B0.js.map +0 -1
- package/.dist/esm/.mion/types/OBOg_cCmjzQr.js +0 -18
- package/.dist/esm/.mion/types/OBOg_cCmjzQr.js.map +0 -1
- package/.dist/esm/.mion/types/OBOg_vDX1rqR.js +0 -17
- package/.dist/esm/.mion/types/OBOg_vDX1rqR.js.map +0 -1
- package/.dist/esm/.mion/types/OBOg_vtuQRKM.js +0 -18
- package/.dist/esm/.mion/types/OBOg_vtuQRKM.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_EtDWACB.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_EtDWACB.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_FSFQzFT.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_FSFQzFT.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_IJpcjGV.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_IJpcjGV.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_IugtMk3.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_IugtMk3.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_JmyrGf9.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_JmyrGf9.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_KW2BeGf.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_KW2BeGf.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_N4upY9e.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_N4upY9e.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_NpYuWjf.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_NpYuWjf.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_PGJvDQM.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_PGJvDQM.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_SJBMH8X.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_SJBMH8X.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_SW6Ke6X.js +0 -26
- package/.dist/esm/.mion/types/Xhuv_SW6Ke6X.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_TEA76po.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_TEA76po.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_UM4R4B0.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_UM4R4B0.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_VU2j3Ds.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_VU2j3Ds.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_WIhjWe9.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_WIhjWe9.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_ZRJiRyT.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_ZRJiRyT.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_Zdevfid.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_Zdevfid.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_cCmjzQr.js +0 -29
- package/.dist/esm/.mion/types/Xhuv_cCmjzQr.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_dbzlcVY.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_dbzlcVY.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_fzrXFOz.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_fzrXFOz.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_il6MWfT.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_il6MWfT.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_kuE24Ar.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_kuE24Ar.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_m13oqC7.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_m13oqC7.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_od0j6kO.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_od0j6kO.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_uz6TmiD.js +0 -17
- package/.dist/esm/.mion/types/Xhuv_uz6TmiD.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_vDX1rqR.js +0 -13
- package/.dist/esm/.mion/types/Xhuv_vDX1rqR.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_vei3XnC.js +0 -17
- package/.dist/esm/.mion/types/Xhuv_vei3XnC.js.map +0 -1
- package/.dist/esm/.mion/types/Xhuv_vtuQRKM.js +0 -16
- package/.dist/esm/.mion/types/Xhuv_vtuQRKM.js.map +0 -1
- package/.dist/esm/.mion/types/mzca_IugtMk3.js +0 -14
- package/.dist/esm/.mion/types/mzca_IugtMk3.js.map +0 -1
- package/.dist/esm/.mion/types/mzca_N4upY9e.js +0 -14
- package/.dist/esm/.mion/types/mzca_N4upY9e.js.map +0 -1
- package/.dist/esm/.mion/types/mzca_vtuQRKM.js +0 -14
- package/.dist/esm/.mion/types/mzca_vtuQRKM.js.map +0 -1
- package/.dist/esm/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.js +0 -14
- package/.dist/esm/.mion/types/pf/@mionjs/run-types/rXVwGkGDX08BsQ.js.map +0 -1
- package/.dist/esm/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.js +0 -14
- package/.dist/esm/.mion/types/pf/@mionjs/run-types/tfRjnFZVF8lqI_.js.map +0 -1
- package/.dist/esm/.mion/types/rt/shared/X6LLuPu8LB.js.map +0 -1
- package/.dist/esm/.mion/types/rt/shared/b3OCOIQ3Az.js.map +0 -1
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_src_constants = require("./constants.cjs");
|
|
3
|
-
const require_src_batches = require("./batches.cjs");
|
|
4
|
-
const require_src_router = require("./router.cjs");
|
|
5
|
-
let _mionjs_core = require("@mionjs/core");
|
|
6
|
-
//#region src/callContext.ts
|
|
7
|
-
/** Resolves a request to the REGISTERED chain that answers it, allocating NOTHING, so a streaming adapter
|
|
8
|
-
* calls it BEFORE the body to read against `chain.maxBodySize` and `createContextFromChain` after.
|
|
9
|
-
* Nothing of the request's own may survive the read: such an object is promoted to the old heap and the
|
|
10
|
-
* parsed body attached to it is promoted with it, which on a 4 MB body costs garbage-collector throughput.
|
|
11
|
-
* The chain is SHARED and long-lived: mutating what this returns damages the route for the whole process.
|
|
12
|
-
* An unknown path or batch id resolves to a not-found chain that never reads the body (`readsBody` false)
|
|
13
|
-
* and runs only the global middlewares that declare `alwaysRun`. */
|
|
14
|
-
function resolveExecutionChain(path, urlQuery, rawRequest) {
|
|
15
|
-
const opts = require_src_router.getRouterOptions();
|
|
16
|
-
return getExecutionChain(path, opts.pathTransform?.(rawRequest, path) || path, urlQuery, rawRequest, opts);
|
|
17
|
-
}
|
|
18
|
-
/** `path` and `urlQuery` are the request's; a route chain's own path wins, not-found and batch chains use the request's. */
|
|
19
|
-
function createContextFromChain(chain, path, urlQuery, reqHeaders, respHeaders, reqRawBody, reqBodyType) {
|
|
20
|
-
const request = {
|
|
21
|
-
headers: reqHeaders,
|
|
22
|
-
rawBody: reqRawBody,
|
|
23
|
-
bodyType: reqBodyType ?? getRequestBodyType(reqRawBody),
|
|
24
|
-
body: EMPTY_BODY,
|
|
25
|
-
thrownErrors: void 0
|
|
26
|
-
};
|
|
27
|
-
const response = {
|
|
28
|
-
statusCode: _mionjs_core.StatusCodes.OK,
|
|
29
|
-
contentType: require_src_constants.JSON_CONTENT_TYPE,
|
|
30
|
-
hasErrors: false,
|
|
31
|
-
fatalError: void 0,
|
|
32
|
-
headers: respHeaders,
|
|
33
|
-
body: {}
|
|
34
|
-
};
|
|
35
|
-
const contextDataFactory = require_src_router.getRouterOptions().contextDataFactory;
|
|
36
|
-
return {
|
|
37
|
-
path: chain.path ?? path,
|
|
38
|
-
request,
|
|
39
|
-
response,
|
|
40
|
-
executionChain: chain,
|
|
41
|
-
maxBodySize: chain.maxBodySize,
|
|
42
|
-
readsBody: chain.readsBody,
|
|
43
|
-
shared: contextDataFactory ? contextDataFactory() : {},
|
|
44
|
-
urlQuery,
|
|
45
|
-
batchId: chain.batchId,
|
|
46
|
-
batchRouteIds: chain.batchRouteIds
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
var EMPTY_BODY = Object.freeze({});
|
|
50
|
-
/** The one-call form, for a caller that already has the body (a host that parsed it, `dispatchRoute`, a test). */
|
|
51
|
-
function createCallContext(path, urlQuery, rawRequest, reqHeaders, respHeaders, reqRawBody, reqBodyType) {
|
|
52
|
-
return createContextFromChain(resolveExecutionChain(path, urlQuery, rawRequest), path, urlQuery, reqHeaders, respHeaders, reqRawBody, reqBodyType);
|
|
53
|
-
}
|
|
54
|
-
/** The wire form of a body: a string is stringified JSON, anything else a parsed object. A body
|
|
55
|
-
* not yet read (a context built before it) reads as an object until the body arrives. */
|
|
56
|
-
function getRequestBodyType(rawBody) {
|
|
57
|
-
if (typeof rawBody === "string") return _mionjs_core.SerializerModes.stringifyJson;
|
|
58
|
-
if (rawBody instanceof ArrayBuffer || rawBody instanceof Uint8Array) throw new Error("mion: a byte request body has no encoder; send the body as a JSON string or a parsed object.");
|
|
59
|
-
return _mionjs_core.SerializerModes.json;
|
|
60
|
-
}
|
|
61
|
-
function getExecutionChain(originalPath, transformedPath, urlQuery, rawRequest, opts) {
|
|
62
|
-
if (!!opts.basePath ? originalPath.endsWith(_mionjs_core.MION_BATCH_PATH) : originalPath === _mionjs_core.MION_BATCH_PATH) return require_src_batches.getBatchExecutionChain(rawRequest, opts, urlQuery) ?? notFoundChain(_mionjs_core.MION_ROUTES.batchNotFound);
|
|
63
|
-
return require_src_router.getRouteExecutionChain(transformedPath) ?? notFoundChain(_mionjs_core.MION_ROUTES.notFound);
|
|
64
|
-
}
|
|
65
|
-
/** mion's own not-found chains are built by initRouter, so an absent one is a bug, not a request error. */
|
|
66
|
-
function notFoundChain(chainId) {
|
|
67
|
-
const executionChain = require_src_router.getNotFoundExecutionChain(chainId);
|
|
68
|
-
if (!executionChain) throw new _mionjs_core.FatalError({
|
|
69
|
-
statusCode: _mionjs_core.StatusCodes.UNEXPECTED_ERROR,
|
|
70
|
-
type: "not-found",
|
|
71
|
-
publicMessage: "Not-found chain is not registered. This should never happen."
|
|
72
|
-
});
|
|
73
|
-
return executionChain;
|
|
74
|
-
}
|
|
75
|
-
//#endregion
|
|
76
|
-
exports.createCallContext = createCallContext;
|
|
77
|
-
exports.createContextFromChain = createContextFromChain;
|
|
78
|
-
exports.getRequestBodyType = getRequestBodyType;
|
|
79
|
-
exports.resolveExecutionChain = resolveExecutionChain;
|
|
80
|
-
|
|
81
|
-
//# sourceMappingURL=callContext.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"callContext.cjs","names":[],"sources":["../../../src/callContext.ts"],"sourcesContent":["/* ########\n * 2026 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {getRouteExecutionChain, getNotFoundExecutionChain, getRouterOptions} from './router.ts';\nimport type {CallContext, MionHeaders, MionRequest, MionResponse, RawRequestBody} from './types/context.ts';\nimport type {RouterOptions} from './types/general.ts';\nimport type {MethodsExecutionChain} from './types/remoteMethods.ts';\nimport {StatusCodes, SerializerModes, SerializerCode, FatalError, MION_ROUTES, MION_BATCH_PATH} from '@mionjs/core';\nimport type {AnyObject} from '@mionjs/core';\nimport {getBatchExecutionChain} from './batches.ts';\nimport {JSON_CONTENT_TYPE} from './constants.ts';\n\n// ############# CONTEXT CREATION #############\n\n/** Resolves a request to the REGISTERED chain that answers it, allocating NOTHING, so a streaming adapter\n * calls it BEFORE the body to read against `chain.maxBodySize` and `createContextFromChain` after.\n * Nothing of the request's own may survive the read: such an object is promoted to the old heap and the\n * parsed body attached to it is promoted with it, which on a 4 MB body costs garbage-collector throughput.\n * The chain is SHARED and long-lived: mutating what this returns damages the route for the whole process.\n * An unknown path or batch id resolves to a not-found chain that never reads the body (`readsBody` false)\n * and runs only the global middlewares that declare `alwaysRun`. */\nexport function resolveExecutionChain(path: string, urlQuery: string | undefined, rawRequest: unknown): MethodsExecutionChain {\n const opts = getRouterOptions();\n const transformedPath = opts.pathTransform?.(rawRequest, path) || path;\n return getExecutionChain(path, transformedPath, urlQuery, rawRequest, opts);\n}\n\n/** `path` and `urlQuery` are the request's; a route chain's own path wins, not-found and batch chains use the request's. */\nexport function createContextFromChain(\n chain: MethodsExecutionChain,\n path: string,\n urlQuery: string | undefined,\n reqHeaders: MionHeaders,\n respHeaders: MionHeaders,\n reqRawBody?: RawRequestBody,\n reqBodyType?: SerializerCode\n): CallContext {\n const request: MionRequest = {\n headers: reqHeaders,\n rawBody: reqRawBody,\n bodyType: reqBodyType ?? getRequestBodyType(reqRawBody),\n // Shared and FROZEN: the parse replaces it, and a write before the parse would leak across requests\n body: EMPTY_BODY,\n thrownErrors: undefined,\n } as MionRequest;\n const response: MionResponse = {\n statusCode: StatusCodes.OK,\n contentType: JSON_CONTENT_TYPE,\n hasErrors: false,\n fatalError: undefined,\n headers: respHeaders,\n body: {},\n } as MionResponse;\n const contextDataFactory = getRouterOptions().contextDataFactory;\n\n return {\n path: chain.path ?? path,\n request,\n response,\n executionChain: chain,\n maxBodySize: chain.maxBodySize,\n readsBody: chain.readsBody,\n // Eager: a lazy defineProperty puts contexts in V8 dictionary mode (2x heap, 6% less throughput at 1 KB)\n shared: contextDataFactory ? contextDataFactory() : {},\n urlQuery,\n batchId: chain.batchId,\n batchRouteIds: chain.batchRouteIds,\n } as CallContext;\n}\n\nconst EMPTY_BODY: Readonly<AnyObject> = Object.freeze({});\n\n/** The one-call form, for a caller that already has the body (a host that parsed it, `dispatchRoute`, a test). */\nexport function createCallContext(\n path: string,\n urlQuery: string | undefined,\n rawRequest: unknown,\n reqHeaders: MionHeaders,\n respHeaders: MionHeaders,\n reqRawBody?: RawRequestBody,\n reqBodyType?: SerializerCode\n): CallContext {\n const chain = resolveExecutionChain(path, urlQuery, rawRequest);\n return createContextFromChain(chain, path, urlQuery, reqHeaders, respHeaders, reqRawBody, reqBodyType);\n}\n\n// ############# HELPER FUNCTIONS #############\n\n/** The wire form of a body: a string is stringified JSON, anything else a parsed object. A body\n * not yet read (a context built before it) reads as an object until the body arrives. */\nexport function getRequestBodyType(rawBody: RawRequestBody | undefined): SerializerCode {\n if (typeof rawBody === 'string') return SerializerModes.stringifyJson;\n if (rawBody instanceof ArrayBuffer || rawBody instanceof Uint8Array)\n throw new Error('mion: a byte request body has no encoder; send the body as a JSON string or a parsed object.');\n return SerializerModes.json;\n}\n\nfunction getExecutionChain(\n originalPath: string,\n transformedPath: string,\n urlQuery: string | undefined,\n rawRequest: unknown,\n opts: RouterOptions\n): MethodsExecutionChain {\n const hasPrefix = !!opts.basePath;\n // the batch key ends the path under any prefix (/mion-batch, /api/v1/mion-batch); the query id picks the chain\n const isBatchPath = hasPrefix ? originalPath.endsWith(MION_BATCH_PATH) : originalPath === MION_BATCH_PATH;\n if (isBatchPath) {\n return getBatchExecutionChain(rawRequest, opts, urlQuery) ?? notFoundChain(MION_ROUTES.batchNotFound);\n }\n\n return getRouteExecutionChain(transformedPath) ?? notFoundChain(MION_ROUTES.notFound);\n}\n\n/** mion's own not-found chains are built by initRouter, so an absent one is a bug, not a request error. */\nfunction notFoundChain(chainId: string): MethodsExecutionChain {\n const executionChain = getNotFoundExecutionChain(chainId);\n if (!executionChain) {\n throw new FatalError({\n statusCode: StatusCodes.UNEXPECTED_ERROR,\n type: 'not-found',\n publicMessage: 'Not-found chain is not registered. This should never happen.',\n });\n }\n return executionChain;\n}\n"],"mappings":";;;;;;;;;;;;;AAyBA,SAAgB,sBAAsB,MAAc,UAA8B,YAA4C;CAC5H,MAAM,OAAO,mBAAA,iBAAiB;CAE9B,OAAO,kBAAkB,MADD,KAAK,gBAAgB,YAAY,IAAI,KAAK,MAClB,UAAU,YAAY,IAAI;AAC5E;;AAGA,SAAgB,uBACd,OACA,MACA,UACA,YACA,aACA,YACA,aACa;CACb,MAAM,UAAuB;EAC3B,SAAS;EACT,SAAS;EACT,UAAU,eAAe,mBAAmB,UAAU;EAEtD,MAAM;EACN,cAAc,KAAA;CAChB;CACA,MAAM,WAAyB;EAC7B,YAAY,aAAA,YAAY;EACxB,aAAa,sBAAA;EACb,WAAW;EACX,YAAY,KAAA;EACZ,SAAS;EACT,MAAM,CAAC;CACT;CACA,MAAM,qBAAqB,mBAAA,iBAAiB,EAAE;CAE9C,OAAO;EACL,MAAM,MAAM,QAAQ;EACpB;EACA;EACA,gBAAgB;EAChB,aAAa,MAAM;EACnB,WAAW,MAAM;EAEjB,QAAQ,qBAAqB,mBAAmB,IAAI,CAAC;EACrD;EACA,SAAS,MAAM;EACf,eAAe,MAAM;CACvB;AACF;AAEA,IAAM,aAAkC,OAAO,OAAO,CAAC,CAAC;;AAGxD,SAAgB,kBACd,MACA,UACA,YACA,YACA,aACA,YACA,aACa;CAEb,OAAO,uBADO,sBAAsB,MAAM,UAAU,UACtB,GAAO,MAAM,UAAU,YAAY,aAAa,YAAY,WAAW;AACvG;;;AAMA,SAAgB,mBAAmB,SAAqD;CACtF,IAAI,OAAO,YAAY,UAAU,OAAO,aAAA,gBAAgB;CACxD,IAAI,mBAAmB,eAAe,mBAAmB,YACvD,MAAM,IAAI,MAAM,8FAA8F;CAChH,OAAO,aAAA,gBAAgB;AACzB;AAEA,SAAS,kBACP,cACA,iBACA,UACA,YACA,MACuB;CAIvB,IADoB,CAFD,CAAC,KAAK,WAEO,aAAa,SAAS,aAAA,eAAe,IAAI,iBAAiB,aAAA,iBAExF,OAAO,oBAAA,uBAAuB,YAAY,MAAM,QAAQ,KAAK,cAAc,aAAA,YAAY,aAAa;CAGtG,OAAO,mBAAA,uBAAuB,eAAe,KAAK,cAAc,aAAA,YAAY,QAAQ;AACtF;;AAGA,SAAS,cAAc,SAAwC;CAC7D,MAAM,iBAAiB,mBAAA,0BAA0B,OAAO;CACxD,IAAI,CAAC,gBACH,MAAM,IAAI,aAAA,WAAW;EACnB,YAAY,aAAA,YAAY;EACxB,MAAM;EACN,eAAe;CACjB,CAAC;CAEH,OAAO;AACT"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CallContext, MionHeaders, RawRequestBody } from './types/context.ts';
|
|
2
|
-
import { MethodsExecutionChain } from './types/remoteMethods.ts';
|
|
3
|
-
import { SerializerCode } from '@mionjs/core';
|
|
4
|
-
export declare function resolveExecutionChain(path: string, urlQuery: string | undefined, rawRequest: unknown): MethodsExecutionChain;
|
|
5
|
-
export declare function createContextFromChain(chain: MethodsExecutionChain, path: string, urlQuery: string | undefined, reqHeaders: MionHeaders, respHeaders: MionHeaders, reqRawBody?: RawRequestBody, reqBodyType?: SerializerCode): CallContext;
|
|
6
|
-
export declare function createCallContext(path: string, urlQuery: string | undefined, rawRequest: unknown, reqHeaders: MionHeaders, respHeaders: MionHeaders, reqRawBody?: RawRequestBody, reqBodyType?: SerializerCode): CallContext;
|
|
7
|
-
export declare function getRequestBodyType(rawBody: RawRequestBody | undefined): SerializerCode;
|
|
8
|
-
//# sourceMappingURL=callContext.d.ts.map
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
//#region src/constants.ts
|
|
3
|
-
var DEFAULT_ROUTE_OPTIONS = {
|
|
4
|
-
basePath: "",
|
|
5
|
-
suffix: "",
|
|
6
|
-
pathTransform: void 0,
|
|
7
|
-
/** set to true to generate router spec for clients. */
|
|
8
|
-
getPublicRoutesData: process.env.GENERATE_ROUTER_SPEC === "true",
|
|
9
|
-
autoGenerateErrorId: false,
|
|
10
|
-
/** Every chain step is awaited by default, so the chain keeps yielding between steps */
|
|
11
|
-
alwaysAwait: true,
|
|
12
|
-
/** A type-derived request limit is the JSON maximum times this factor */
|
|
13
|
-
maxBodySizeFactor: 2,
|
|
14
|
-
releaseRawBody: true,
|
|
15
|
-
responseHeaders: {},
|
|
16
|
-
apiVersionCheck: true,
|
|
17
|
-
getAllRemoteMethodsMaxNumber: 100
|
|
18
|
-
};
|
|
19
|
-
var MAX_ROUTE_NESTING = 10;
|
|
20
|
-
var JSON_CONTENT_TYPE = "application/json; charset=utf-8";
|
|
21
|
-
//#endregion
|
|
22
|
-
exports.DEFAULT_ROUTE_OPTIONS = DEFAULT_ROUTE_OPTIONS;
|
|
23
|
-
exports.JSON_CONTENT_TYPE = JSON_CONTENT_TYPE;
|
|
24
|
-
exports.MAX_ROUTE_NESTING = MAX_ROUTE_NESTING;
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=constants.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","names":[],"sources":["../../../src/constants.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 {RouterOptions} from './types/general.ts';\n\nexport const DEFAULT_ROUTE_OPTIONS = {\n basePath: '',\n suffix: '',\n pathTransform: undefined,\n /** set to true to generate router spec for clients. */\n getPublicRoutesData: process.env.GENERATE_ROUTER_SPEC === 'true',\n autoGenerateErrorId: false,\n /** Every chain step is awaited by default, so the chain keeps yielding between steps */\n alwaysAwait: true,\n /** A type-derived request limit is the JSON maximum times this factor */\n maxBodySizeFactor: 2,\n releaseRawBody: true,\n responseHeaders: {},\n apiVersionCheck: true,\n getAllRemoteMethodsMaxNumber: 100,\n} as Readonly<RouterOptions>;\n\nexport const MAX_ROUTE_NESTING = 10;\n\nexport const JSON_CONTENT_TYPE = 'application/json; charset=utf-8';\n"],"mappings":";;AASA,IAAa,wBAAwB;CACnC,UAAU;CACV,QAAQ;CACR,eAAe,KAAA;;CAEf,qBAAqB,QAAQ,IAAI,yBAAyB;CAC1D,qBAAqB;;CAErB,aAAa;;CAEb,mBAAmB;CACnB,gBAAgB;CAChB,iBAAiB,CAAC;CAClB,iBAAiB;CACjB,8BAA8B;AAChC;AAEA,IAAa,oBAAoB;AAEjC,IAAa,oBAAoB"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { RouterOptions } from './types/general.ts';
|
|
2
|
-
export declare const DEFAULT_ROUTE_OPTIONS: Readonly<RouterOptions>;
|
|
3
|
-
export declare const MAX_ROUTE_NESTING = 10;
|
|
4
|
-
export declare const JSON_CONTENT_TYPE = "application/json; charset=utf-8";
|
|
5
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_src_lib_dispatchError = require("./lib/dispatchError.cjs");
|
|
3
|
-
const require_src_callContext = require("./callContext.cjs");
|
|
4
|
-
const require_src_router = require("./router.cjs");
|
|
5
|
-
let _mionjs_core = require("@mionjs/core");
|
|
6
|
-
let _mionjs_run_types = require("@mionjs/run-types");
|
|
7
|
-
//#region src/dispatch.ts
|
|
8
|
-
/** The one-call form for a caller that already has the body (tests, a host that parsed it). */
|
|
9
|
-
async function dispatchRoute(path, reqRawBody, reqHeaders, respHeaders, rawRequest, rawResponse, reqBodyType, urlQuery) {
|
|
10
|
-
return dispatchWithContext(require_src_callContext.createCallContext(path, urlQuery, rawRequest, reqHeaders, respHeaders, reqRawBody, reqBodyType), rawRequest, rawResponse);
|
|
11
|
-
}
|
|
12
|
-
/** A streaming adapter builds the context before reading the body, to check `context.maxBodySize`, then passes it. */
|
|
13
|
-
async function dispatchWithContext(context, rawRequest, rawResponse, reqRawBody, reqBodyType) {
|
|
14
|
-
if (reqRawBody !== void 0) {
|
|
15
|
-
const request = context.request;
|
|
16
|
-
request.rawBody = reqRawBody;
|
|
17
|
-
request.bodyType = reqBodyType ?? require_src_callContext.getRequestBodyType(reqRawBody);
|
|
18
|
-
}
|
|
19
|
-
return dispatchMaybeSync(context, rawRequest, rawResponse);
|
|
20
|
-
}
|
|
21
|
-
/** `dispatchWithContext` for a context built with its body, minus the promise when no step needs one. */
|
|
22
|
-
function dispatchMaybeSync(context, rawRequest, rawResponse) {
|
|
23
|
-
const opts = require_src_router.getRouterOptions();
|
|
24
|
-
if (opts.alwaysAwait) return runExecutionChain(context, rawRequest, rawResponse, opts, 0);
|
|
25
|
-
return runSyncExecutionChain(context, rawRequest, rawResponse, opts);
|
|
26
|
-
}
|
|
27
|
-
/** Dispatches a request the platform adapter refused after its route resolved: a body past the limit.
|
|
28
|
-
* The error is recorded exactly as a thrown one is, so the chain runs only the members that declare
|
|
29
|
-
* `alwaysRun` (a rate limiter, an access log) and answers with the same envelope. The adapter stopped
|
|
30
|
-
* the read, so the context is built without a body.
|
|
31
|
-
* `path` and `urlQuery` travel with the chain rather than on it: mion's not-found chains and a merged
|
|
32
|
-
* batch chain each answer for many paths, so they carry none of their own, and a refusal does reach one
|
|
33
|
-
* of those (an adapter checks a declared content-length before asking whether the chain reads a body). */
|
|
34
|
-
function dispatchPlatformError(chain, path, urlQuery, platformError, reqHeaders, respHeaders, rawRequest, rawResponse) {
|
|
35
|
-
const context = require_src_callContext.createContextFromChain(chain, path, urlQuery, reqHeaders, respHeaders);
|
|
36
|
-
require_src_lib_dispatchError.recordUndeclaredError(context, _mionjs_core.MION_ROUTES.platformError, platformError);
|
|
37
|
-
return dispatchWithContext(context, rawRequest, rawResponse);
|
|
38
|
-
}
|
|
39
|
-
async function runExecutionChain(context, rawRequest, rawResponse, opts, startIndex) {
|
|
40
|
-
const { response, request, executionChain } = context;
|
|
41
|
-
const alwaysAwait = opts.alwaysAwait;
|
|
42
|
-
const executionList = executionChain.methods;
|
|
43
|
-
const executionCount = executionList.length;
|
|
44
|
-
for (let i = startIndex; i < executionCount; i++) {
|
|
45
|
-
const executable = executionList[i];
|
|
46
|
-
if (response.hasErrors && !executable.alwaysRun) continue;
|
|
47
|
-
try {
|
|
48
|
-
let result;
|
|
49
|
-
if (alwaysAwait || executable.isAsync) result = await executable.methodCaller(context, executable, request, response, opts, rawRequest, rawResponse);
|
|
50
|
-
else {
|
|
51
|
-
result = executable.methodCaller(context, executable, request, response, opts, rawRequest, rawResponse);
|
|
52
|
-
if (isUncheckedPromise(executable, result)) result = await result;
|
|
53
|
-
}
|
|
54
|
-
applyResult(context, executable, result);
|
|
55
|
-
} catch (err) {
|
|
56
|
-
require_src_lib_dispatchError.recordUndeclaredError(context, executable.id, err);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return context.response;
|
|
60
|
-
}
|
|
61
|
-
/** `runExecutionChain` without awaits: from the first async step on it hands over, so both give the same result. */
|
|
62
|
-
function runSyncExecutionChain(context, rawRequest, rawResponse, opts) {
|
|
63
|
-
const { response, request, executionChain } = context;
|
|
64
|
-
const executionList = executionChain.methods;
|
|
65
|
-
const executionCount = executionList.length;
|
|
66
|
-
for (let i = 0; i < executionCount; i++) {
|
|
67
|
-
const executable = executionList[i];
|
|
68
|
-
if (response.hasErrors && !executable.alwaysRun) continue;
|
|
69
|
-
if (executable.isAsync) return runExecutionChain(context, rawRequest, rawResponse, opts, i);
|
|
70
|
-
try {
|
|
71
|
-
const result = executable.methodCaller(context, executable, request, response, opts, rawRequest, rawResponse);
|
|
72
|
-
if (isUncheckedPromise(executable, result)) return Promise.resolve(result).then((resolved) => applyResult(context, executable, resolved)).catch((err) => require_src_lib_dispatchError.recordUndeclaredError(context, executable.id, err)).then(() => runExecutionChain(context, rawRequest, rawResponse, opts, i + 1));
|
|
73
|
-
applyResult(context, executable, result);
|
|
74
|
-
} catch (err) {
|
|
75
|
-
require_src_lib_dispatchError.recordUndeclaredError(context, executable.id, err);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return response;
|
|
79
|
-
}
|
|
80
|
-
/** Backstop for a wrong or missing declared type, else the promise is serialized as the answer. */
|
|
81
|
-
function isUncheckedPromise(executable, result) {
|
|
82
|
-
if (executable.asyncChecked === true) return false;
|
|
83
|
-
executable.asyncChecked = true;
|
|
84
|
-
if (result === null || typeof result !== "object" || typeof result.then !== "function") return false;
|
|
85
|
-
executable.isAsync = true;
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
/** A throw here is the caller's to record, like the step's own. */
|
|
89
|
-
function applyResult(context, executable, result) {
|
|
90
|
-
if (result === void 0) return;
|
|
91
|
-
const response = context.response;
|
|
92
|
-
const isMionError = result !== null && result["mion@isΣrrθr"] === true;
|
|
93
|
-
if (!executable.hasReturnData) {
|
|
94
|
-
if (isMionError || (0, _mionjs_core.isNativeError)(result)) require_src_lib_dispatchError.recordUndeclaredError(context, executable.id, result);
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
if (isMionError) {
|
|
98
|
-
if (result.isFatal === true) require_src_lib_dispatchError.markResponseFailed(context, result, _mionjs_core.StatusCodes.APPLICATION_ERROR);
|
|
99
|
-
} else if ((0, _mionjs_core.isNativeError)(result)) {
|
|
100
|
-
require_src_lib_dispatchError.recordUndeclaredError(context, executable.id, result);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (executable.headersReturn && result instanceof _mionjs_core.HeadersSubset) {
|
|
104
|
-
const headersMap = result.headers;
|
|
105
|
-
for (const name of Object.keys(headersMap)) {
|
|
106
|
-
const value = headersMap[name];
|
|
107
|
-
if (value !== void 0 && value !== null) response.headers.set(name, value);
|
|
108
|
-
}
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
response.body[executable.id] = result;
|
|
112
|
-
}
|
|
113
|
-
function runRawMiddleware(context, executable, req, resp, opts, rawRequest, rawResponse) {
|
|
114
|
-
return executable.handler(context, rawRequest, rawResponse, opts);
|
|
115
|
-
}
|
|
116
|
-
function runHeadersMiddleware(context, executable, request) {
|
|
117
|
-
const headerNames = executable.headersParam.headerNames;
|
|
118
|
-
const params = sanitizeParams(deserializeBodyParamsOrThrow(request, executable), request, executable);
|
|
119
|
-
const headersMap = {};
|
|
120
|
-
headerNames.forEach((name) => {
|
|
121
|
-
const value = request.headers.get(name);
|
|
122
|
-
if (value) headersMap[name] = value;
|
|
123
|
-
});
|
|
124
|
-
const headersSubset = (0, _mionjs_core.trustedHeadersSubset)(headersMap);
|
|
125
|
-
validateHeaderParamsOrThrow(headersSubset, executable);
|
|
126
|
-
validateParametersOrThrow(params, executable);
|
|
127
|
-
return executable.handler(context, headersSubset, ...params);
|
|
128
|
-
}
|
|
129
|
-
function runRouteOrMiddleware(context, executable, request) {
|
|
130
|
-
const params = sanitizeParams(deserializeBodyParamsOrThrow(request, executable), request, executable);
|
|
131
|
-
validateParametersOrThrow(params, executable);
|
|
132
|
-
return executable.handler(context, ...params);
|
|
133
|
-
}
|
|
134
|
-
/** Applies the rewrites the params types declare under a format's `transform` key (trim / case /
|
|
135
|
-
* replace / stripSeparators) in place, after decode and BEFORE validation. Params only: headers and
|
|
136
|
-
* return values are never sanitized. A transform over wrong-shaped input can throw (`.trim()` on a
|
|
137
|
-
* number): the raw params fall through so validation reports the real error instead of a 500. */
|
|
138
|
-
function sanitizeParams(params, request, executable) {
|
|
139
|
-
if (!executable.options.sanitizeParams) return params;
|
|
140
|
-
const formatTransform = executable.paramsJitFns.formatTransform;
|
|
141
|
-
if (!formatTransform || formatTransform.isNoop) return params;
|
|
142
|
-
try {
|
|
143
|
-
const sanitized = formatTransform.fn(params);
|
|
144
|
-
request.body[executable.id] = sanitized;
|
|
145
|
-
return sanitized;
|
|
146
|
-
} catch {
|
|
147
|
-
return params;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/** The caller for a method kind. Read ONCE, when the method is registered, so the dispatch loop
|
|
151
|
-
* reads a field instead of branching on the method type on every request. */
|
|
152
|
-
function callerForType(type) {
|
|
153
|
-
if (type === _mionjs_core.HandlerType.rawMiddleware) return runRawMiddleware;
|
|
154
|
-
if (type === _mionjs_core.HandlerType.headersMiddleware) return runHeadersMiddleware;
|
|
155
|
-
return runRouteOrMiddleware;
|
|
156
|
-
}
|
|
157
|
-
/** The caller already stored on a registered method. */
|
|
158
|
-
function getMethodCaller(executable) {
|
|
159
|
-
return executable.methodCaller;
|
|
160
|
-
}
|
|
161
|
-
/** Shared, for the members whose id is absent from the body: a fresh empty array per member per request
|
|
162
|
-
* bought nothing. Frozen, so a handler that tried to mutate its params fails loudly instead of corrupting
|
|
163
|
-
* the next request; nothing can reach it anyway, an empty tuple is spread into the call. */
|
|
164
|
-
var EMPTY_PARAMS = [];
|
|
165
|
-
Object.freeze(EMPTY_PARAMS);
|
|
166
|
-
function deserializeBodyParamsOrThrow(request, executable) {
|
|
167
|
-
const body = request.body;
|
|
168
|
-
const params = Object.hasOwn(body, executable.id) ? body[executable.id] : void 0;
|
|
169
|
-
if (!params) return EMPTY_PARAMS;
|
|
170
|
-
if (!Array.isArray(params)) throw new _mionjs_core.FatalError({
|
|
171
|
-
statusCode: _mionjs_core.StatusCodes.UNEXPECTED_ERROR,
|
|
172
|
-
type: "serialization-error",
|
|
173
|
-
publicMessage: `Invalid params '${executable.id}', params must be an array.`,
|
|
174
|
-
errorData: { deserializeError: "params must be an array" }
|
|
175
|
-
});
|
|
176
|
-
const { decode } = executable.paramsJitFns.json;
|
|
177
|
-
if (decode.isNoop) return params;
|
|
178
|
-
try {
|
|
179
|
-
const decoded = decode.fn(params);
|
|
180
|
-
body[executable.id] = decoded;
|
|
181
|
-
return decoded;
|
|
182
|
-
} catch (e) {
|
|
183
|
-
if (isStackOverflow(e)) throw nestingTooDeep(executable, e);
|
|
184
|
-
const detail = typeof e?.message === "string" && e.message.startsWith(_mionjs_run_types.UNSAFE_PROPERTY_NAME_MESSAGE) ? e.message : "Parameters might be of the wrong type.";
|
|
185
|
-
throw new _mionjs_core.FatalError({
|
|
186
|
-
statusCode: _mionjs_core.StatusCodes.UNEXPECTED_ERROR,
|
|
187
|
-
type: "serialization-error",
|
|
188
|
-
publicMessage: `Invalid params '${executable.id}', can not deserialize. ${detail}`,
|
|
189
|
-
originalError: e,
|
|
190
|
-
errorData: { deserializeError: detail }
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
/** A RangeError out of a compiled function is the engine's stack limit: the request nested deeper
|
|
195
|
-
* than a recursive type can be walked. Reported as its own typed 4xx, never as an unknown error. */
|
|
196
|
-
function isStackOverflow(err) {
|
|
197
|
-
return err instanceof RangeError;
|
|
198
|
-
}
|
|
199
|
-
function nestingTooDeep(executable, originalError) {
|
|
200
|
-
return new _mionjs_core.FatalError({
|
|
201
|
-
statusCode: _mionjs_core.StatusCodes.UNEXPECTED_ERROR,
|
|
202
|
-
type: "request-nesting-too-deep",
|
|
203
|
-
publicMessage: `Invalid params in '${executable.id}', the request is nested too deep.`,
|
|
204
|
-
originalError
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
function validateParametersOrThrow(params, executable) {
|
|
208
|
-
if (executable.paramsJitFns.isType.isNoop) return;
|
|
209
|
-
let isValid;
|
|
210
|
-
try {
|
|
211
|
-
isValid = executable.paramsJitFns.isType.fn(params);
|
|
212
|
-
} catch (e) {
|
|
213
|
-
if (isStackOverflow(e)) throw nestingTooDeep(executable, e);
|
|
214
|
-
throw e;
|
|
215
|
-
}
|
|
216
|
-
if (!isValid) throw new _mionjs_core.FatalError({
|
|
217
|
-
statusCode: _mionjs_core.StatusCodes.UNEXPECTED_ERROR,
|
|
218
|
-
type: "validation-error",
|
|
219
|
-
publicMessage: `Invalid params in '${executable.id}', validation failed.`,
|
|
220
|
-
errorData: { typeErrors: executable.paramsJitFns.typeErrors.fn(params) }
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
function validateHeaderParamsOrThrow(headers, executable) {
|
|
224
|
-
if (!executable.headersParam.jitFns.isType.fn(headers)) throw new _mionjs_core.FatalError({
|
|
225
|
-
statusCode: _mionjs_core.StatusCodes.UNEXPECTED_ERROR,
|
|
226
|
-
type: "validation-error",
|
|
227
|
-
publicMessage: `Invalid params in '${executable.id}', validation failed.`,
|
|
228
|
-
errorData: { typeErrors: executable.headersParam.jitFns.typeErrors.fn(headers) }
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
//#endregion
|
|
232
|
-
exports.callerForType = callerForType;
|
|
233
|
-
exports.dispatchMaybeSync = dispatchMaybeSync;
|
|
234
|
-
exports.dispatchPlatformError = dispatchPlatformError;
|
|
235
|
-
exports.dispatchRoute = dispatchRoute;
|
|
236
|
-
exports.dispatchWithContext = dispatchWithContext;
|
|
237
|
-
exports.getMethodCaller = getMethodCaller;
|
|
238
|
-
|
|
239
|
-
//# sourceMappingURL=dispatch.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.cjs","names":[],"sources":["../../../src/dispatch.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 {CallContext, MionResponse, MionRequest, MionHeaders, RawRequestBody} from './types/context.ts';\nimport {type RouterOptions} from './types/general.ts';\nimport {HeadersMethod, RemoteMethod, RawMethod} from './types/remoteMethods.ts';\nimport type {MethodsExecutionChain} from './types/remoteMethods.ts';\nimport {getRouterOptions} from './router.ts';\nimport {Mutable, AnyObject, StatusCodes, HeadersSubset, SerializerCode, MION_ROUTES, trustedHeadersSubset} from '@mionjs/core';\nimport {RpcError, FatalError, HandlerType, ValidationError, isNativeError} from '@mionjs/core';\nimport {UNSAFE_PROPERTY_NAME_MESSAGE} from '@mionjs/run-types';\nimport {markResponseFailed, recordUndeclaredError} from './lib/dispatchError.ts';\nimport {createCallContext, createContextFromChain, getRequestBodyType} from './callContext.ts';\n\n// Profiled and discarded: promisify(setImmediate) (worse or no gain), queueMicrotask instead of\n// setImmediate (definitely worse), callbacks instead of promises (slower, less memory in some scenarios).\n\n// ############# PUBLIC METHODS #############\n\n/** The one-call form for a caller that already has the body (tests, a host that parsed it). */\nexport async function dispatchRoute<Req, Resp>(\n path: string,\n reqRawBody: RawRequestBody,\n reqHeaders: MionHeaders,\n respHeaders: MionHeaders,\n rawRequest: Req,\n rawResponse?: Resp,\n reqBodyType?: SerializerCode,\n urlQuery?: string\n): Promise<MionResponse> {\n const context = createCallContext(path, urlQuery, rawRequest, reqHeaders, respHeaders, reqRawBody, reqBodyType);\n return dispatchWithContext(context, rawRequest, rawResponse);\n}\n\n/** A streaming adapter builds the context before reading the body, to check `context.maxBodySize`, then passes it. */\nexport async function dispatchWithContext<Req, Resp>(\n context: CallContext,\n rawRequest: Req,\n rawResponse?: Resp,\n reqRawBody?: RawRequestBody,\n reqBodyType?: SerializerCode\n): Promise<MionResponse> {\n if (reqRawBody !== undefined) {\n const request = context.request as Mutable<MionRequest>;\n request.rawBody = reqRawBody;\n request.bodyType = reqBodyType ?? getRequestBodyType(reqRawBody);\n }\n // No catch: the chain runners handle every exception themselves, so one that only re-rejects changes nothing.\n return dispatchMaybeSync(context, rawRequest, rawResponse);\n}\n\n/** `dispatchWithContext` for a context built with its body, minus the promise when no step needs one. */\nexport function dispatchMaybeSync<Req, Resp>(\n context: CallContext,\n rawRequest: Req,\n rawResponse?: Resp\n): MionResponse | Promise<MionResponse> {\n const opts = getRouterOptions();\n if (opts.alwaysAwait) return runExecutionChain(context, rawRequest, rawResponse, opts, 0);\n return runSyncExecutionChain(context, rawRequest, rawResponse, opts);\n}\n\n/** Dispatches a request the platform adapter refused after its route resolved: a body past the limit.\n * The error is recorded exactly as a thrown one is, so the chain runs only the members that declare\n * `alwaysRun` (a rate limiter, an access log) and answers with the same envelope. The adapter stopped\n * the read, so the context is built without a body.\n * `path` and `urlQuery` travel with the chain rather than on it: mion's not-found chains and a merged\n * batch chain each answer for many paths, so they carry none of their own, and a refusal does reach one\n * of those (an adapter checks a declared content-length before asking whether the chain reads a body). */\nexport function dispatchPlatformError<Req, Resp>(\n chain: MethodsExecutionChain,\n path: string,\n urlQuery: string | undefined,\n platformError: RpcError<string>,\n reqHeaders: MionHeaders,\n respHeaders: MionHeaders,\n rawRequest: Req,\n rawResponse?: Resp\n): Promise<MionResponse> {\n const context = createContextFromChain(chain, path, urlQuery, reqHeaders, respHeaders);\n recordUndeclaredError(context, MION_ROUTES.platformError, platformError);\n return dispatchWithContext(context, rawRequest, rawResponse);\n}\n\n// ############# PRIVATE METHODS #############\n\nasync function runExecutionChain(\n context: CallContext,\n rawRequest: unknown,\n rawResponse: unknown,\n opts: RouterOptions,\n startIndex: number\n): Promise<MionResponse> {\n const {response, request, executionChain} = context;\n // `alwaysAwait: false` skips the await on sync steps: awaiting one only costs a promise frame\n const alwaysAwait = opts.alwaysAwait;\n const executionList = executionChain.methods;\n const executionCount = executionList.length;\n for (let i = startIndex; i < executionCount; i++) {\n const executable = executionList[i];\n if (response.hasErrors && !executable.alwaysRun) continue;\n\n try {\n // runRawMiddleware, runHeadersMiddleware & runRouteOrMiddleware must take the same params in the same order\n // methodCaller is resolved at registration, so the loop never picks one\n // `isAsync` comes from the type checker, so a plain function returning a promise still awaits\n let result;\n if (alwaysAwait || executable.isAsync) {\n result = await executable.methodCaller(context, executable, request, response, opts, rawRequest, rawResponse);\n } else {\n result = executable.methodCaller(context, executable, request, response, opts, rawRequest, rawResponse);\n if (isUncheckedPromise(executable, result)) result = await result;\n }\n applyResult(context, executable, result);\n } catch (err: any) {\n // All thrown errors are undeclared and fatal\n recordUndeclaredError(context, executable.id, err);\n }\n }\n return context.response;\n}\n\n/** `runExecutionChain` without awaits: from the first async step on it hands over, so both give the same result. */\nfunction runSyncExecutionChain(\n context: CallContext,\n rawRequest: unknown,\n rawResponse: unknown,\n opts: RouterOptions\n): MionResponse | Promise<MionResponse> {\n const {response, request, executionChain} = context;\n const executionList = executionChain.methods;\n const executionCount = executionList.length;\n for (let i = 0; i < executionCount; i++) {\n const executable = executionList[i];\n if (response.hasErrors && !executable.alwaysRun) continue;\n if (executable.isAsync) return runExecutionChain(context, rawRequest, rawResponse, opts, i);\n\n try {\n const result = executable.methodCaller(context, executable, request, response, opts, rawRequest, rawResponse);\n if (isUncheckedPromise(executable, result)) {\n return Promise.resolve(result)\n .then((resolved) => applyResult(context, executable, resolved))\n .catch((err) => recordUndeclaredError(context, executable.id, err))\n .then(() => runExecutionChain(context, rawRequest, rawResponse, opts, i + 1));\n }\n applyResult(context, executable, result);\n } catch (err: any) {\n // All thrown errors are undeclared and fatal\n recordUndeclaredError(context, executable.id, err);\n }\n }\n return response;\n}\n\n/** Backstop for a wrong or missing declared type, else the promise is serialized as the answer. */\nfunction isUncheckedPromise(executable: RemoteMethod, result: any): result is PromiseLike<unknown> {\n if (executable.asyncChecked === true) return false;\n executable.asyncChecked = true;\n if (result === null || typeof result !== 'object' || typeof result.then !== 'function') return false;\n (executable as Mutable<RemoteMethod>).isAsync = true;\n return true;\n}\n\n/** A throw here is the caller's to record, like the step's own. */\nfunction applyResult(context: CallContext, executable: RemoteMethod, result: any): void {\n if (result === undefined) return;\n const response = context.response;\n // One brand read serves every branch below: it is an own property on every mion error, wire copies too\n // `null` is a valid answer and reading a property off it throws, so it is excluded first\n const isMionError = result !== null && result['mion@isΣrrθr'] === true;\n if (!executable.hasReturnData) {\n // a raw middleware declares no return, so a returned error is undeclared and halts like a thrown one\n if (isMionError || isNativeError(result)) recordUndeclaredError(context, executable.id, result);\n return;\n }\n if (isMionError) {\n // a returned FatalError is declared: it ends the chain but keeps its slot; a plain RpcError lets the chain run on\n if (result.isFatal === true) markResponseFailed(context, result, StatusCodes.APPLICATION_ERROR);\n }\n // A brandless Error is a bug with no typed slot; in the body it would be served as a SUCCESSFUL answer\n else if (isNativeError(result)) {\n recordUndeclaredError(context, executable.id, result);\n return; // like a thrown one: it belongs in @thrownErrors, never in the body\n }\n if (executable.headersReturn && result instanceof HeadersSubset) {\n // own keys only: a HeadersSubset built over a parsed body must not turn inherited keys into headers\n const headersMap = result.headers;\n for (const name of Object.keys(headersMap)) {\n const value = headersMap[name];\n if (value !== undefined && value !== null) {\n response.headers.set(name, value);\n }\n }\n return;\n }\n (response.body as Mutable<AnyObject>)[executable.id] = result;\n}\n\n// The three callers below are NOT async: awaiting the handler only to return its value adds a promise\n// frame per chain member, and the loop's own await and try/catch cover the value and the promise alike.\nfunction runRawMiddleware(\n context: CallContext,\n executable: RawMethod,\n req,\n resp,\n opts: RouterOptions,\n rawRequest: unknown,\n rawResponse: unknown\n) {\n return executable.handler(context, rawRequest, rawResponse, opts);\n}\n\nfunction runHeadersMiddleware(context: CallContext, executable: HeadersMethod, request: MionRequest) {\n const headerNames = executable.headersParam.headerNames;\n const params = sanitizeParams(\n deserializeBodyParamsOrThrow(request, executable as RemoteMethod),\n request,\n executable as RemoteMethod\n );\n const headersMap: Record<string, string> = {};\n headerNames.forEach((name) => {\n const value = request.headers.get(name);\n if (value) headersMap[name] = value;\n });\n const headersSubset = trustedHeadersSubset(headersMap);\n validateHeaderParamsOrThrow(headersSubset, executable as HeadersMethod);\n validateParametersOrThrow(params, executable as HeadersMethod);\n\n return executable.handler(context, headersSubset, ...params);\n}\n\nfunction runRouteOrMiddleware(context: CallContext, executable: HeadersMethod, request: MionRequest) {\n const params = sanitizeParams(\n deserializeBodyParamsOrThrow(request, executable as RemoteMethod),\n request,\n executable as RemoteMethod\n );\n validateParametersOrThrow(params, executable as RemoteMethod);\n return executable.handler(context, ...params);\n}\n\n/** Applies the rewrites the params types declare under a format's `transform` key (trim / case /\n * replace / stripSeparators) in place, after decode and BEFORE validation. Params only: headers and\n * return values are never sanitized. A transform over wrong-shaped input can throw (`.trim()` on a\n * number): the raw params fall through so validation reports the real error instead of a 500. */\nfunction sanitizeParams(params: any[], request: MionRequest, executable: RemoteMethod): any[] {\n if (!executable.options.sanitizeParams) return params;\n const formatTransform = executable.paramsJitFns.formatTransform;\n if (!formatTransform || formatTransform.isNoop) return params;\n try {\n const sanitized = formatTransform.fn(params) as any[];\n (request.body as Mutable<MionRequest['body']>)[executable.id] = sanitized;\n return sanitized;\n } catch {\n return params;\n }\n}\n\n/** The caller for a method kind. Read ONCE, when the method is registered, so the dispatch loop\n * reads a field instead of branching on the method type on every request. */\nexport function callerForType(type: RemoteMethod['type']): (...args: any[]) => any {\n if (type === HandlerType.rawMiddleware) return runRawMiddleware;\n if (type === HandlerType.headersMiddleware) return runHeadersMiddleware;\n return runRouteOrMiddleware;\n}\n\n/** The caller already stored on a registered method. */\nexport function getMethodCaller(executable: RemoteMethod) {\n return executable.methodCaller;\n}\n\n/** Shared, for the members whose id is absent from the body: a fresh empty array per member per request\n * bought nothing. Frozen, so a handler that tried to mutate its params fails loudly instead of corrupting\n * the next request; nothing can reach it anyway, an empty tuple is spread into the call. */\nconst EMPTY_PARAMS: any[] = [];\nObject.freeze(EMPTY_PARAMS);\n\nfunction deserializeBodyParamsOrThrow(request: MionRequest, executable: RemoteMethod): any[] {\n // own key only: an id like `toString` would otherwise read Object.prototype off the parsed body\n const body = request.body;\n const params = (Object.hasOwn(body, executable.id) ? body[executable.id] : undefined) as any[] | undefined;\n // EMPTY_PARAMS is frozen and the decoders mutate what they are handed, so decoding the sentinel would\n // report a raw serialization error where validation should refuse the missing body.\n if (!params) return EMPTY_PARAMS;\n // a route without params has no validator, so a spread string would reach the handler as its characters\n if (!Array.isArray(params))\n throw new FatalError({\n statusCode: StatusCodes.UNEXPECTED_ERROR,\n type: 'serialization-error',\n publicMessage: `Invalid params '${executable.id}', params must be an array.`,\n errorData: {deserializeError: 'params must be an array'},\n });\n\n const {decode} = executable.paramsJitFns.json;\n if (decode.isNoop) return params;\n try {\n const decoded = decode.fn(params);\n (body as Mutable<MionRequest['body']>)[executable.id] = decoded;\n return decoded;\n } catch (e: any) {\n if (isStackOverflow(e)) throw nestingTooDeep(executable, e);\n // Fixed wire text: the decoder's message quotes internal detail; the original stays on `originalError`.\n // A refused-key message is safe to pass on: mion's own constant, naming a key the caller sent.\n const refusedKey = typeof e?.message === 'string' && e.message.startsWith(UNSAFE_PROPERTY_NAME_MESSAGE);\n const detail = refusedKey ? (e.message as string) : 'Parameters might be of the wrong type.';\n throw new FatalError({\n statusCode: StatusCodes.UNEXPECTED_ERROR,\n type: 'serialization-error',\n publicMessage: `Invalid params '${executable.id}', can not deserialize. ${detail}`,\n originalError: e,\n errorData: {\n deserializeError: detail,\n },\n });\n }\n}\n\n/** A RangeError out of a compiled function is the engine's stack limit: the request nested deeper\n * than a recursive type can be walked. Reported as its own typed 4xx, never as an unknown error. */\nfunction isStackOverflow(err: unknown): boolean {\n return err instanceof RangeError;\n}\n\nfunction nestingTooDeep(executable: RemoteMethod, originalError: Error): RpcError<'request-nesting-too-deep'> {\n return new FatalError({\n statusCode: StatusCodes.UNEXPECTED_ERROR,\n type: 'request-nesting-too-deep',\n publicMessage: `Invalid params in '${executable.id}', the request is nested too deep.`,\n originalError,\n });\n}\n\nfunction validateParametersOrThrow(params: any[], executable: RemoteMethod): void {\n if (executable.paramsJitFns.isType.isNoop) return;\n let isValid: boolean;\n try {\n isValid = executable.paramsJitFns.isType.fn(params);\n } catch (e: any) {\n if (isStackOverflow(e)) throw nestingTooDeep(executable, e);\n throw e;\n }\n if (!isValid) {\n const validationError: ValidationError = new FatalError({\n statusCode: StatusCodes.UNEXPECTED_ERROR,\n type: 'validation-error',\n publicMessage: `Invalid params in '${executable.id}', validation failed.`,\n errorData: {\n typeErrors: executable.paramsJitFns.typeErrors.fn(params),\n },\n });\n throw validationError;\n }\n}\n\nfunction validateHeaderParamsOrThrow(headers: HeadersSubset<string, string>, executable: HeadersMethod): void {\n if (!executable.headersParam.jitFns.isType.fn(headers)) {\n const validationError: ValidationError = new FatalError({\n statusCode: StatusCodes.UNEXPECTED_ERROR,\n type: 'validation-error',\n publicMessage: `Invalid params in '${executable.id}', validation failed.`,\n errorData: {\n typeErrors: executable.headersParam.jitFns.typeErrors.fn(headers),\n },\n });\n throw validationError;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { CallContext, MionResponse, MionHeaders, RawRequestBody } from './types/context.ts';
|
|
2
|
-
import { RemoteMethod, MethodsExecutionChain } from './types/remoteMethods.ts';
|
|
3
|
-
import { SerializerCode, RpcError } from '@mionjs/core';
|
|
4
|
-
export declare function dispatchRoute<Req, Resp>(path: string, reqRawBody: RawRequestBody, reqHeaders: MionHeaders, respHeaders: MionHeaders, rawRequest: Req, rawResponse?: Resp, reqBodyType?: SerializerCode, urlQuery?: string): Promise<MionResponse>;
|
|
5
|
-
export declare function dispatchWithContext<Req, Resp>(context: CallContext, rawRequest: Req, rawResponse?: Resp, reqRawBody?: RawRequestBody, reqBodyType?: SerializerCode): Promise<MionResponse>;
|
|
6
|
-
export declare function dispatchMaybeSync<Req, Resp>(context: CallContext, rawRequest: Req, rawResponse?: Resp): MionResponse | Promise<MionResponse>;
|
|
7
|
-
export declare function dispatchPlatformError<Req, Resp>(chain: MethodsExecutionChain, path: string, urlQuery: string | undefined, platformError: RpcError<string>, reqHeaders: MionHeaders, respHeaders: MionHeaders, rawRequest: Req, rawResponse?: Resp): Promise<MionResponse>;
|
|
8
|
-
export declare function callerForType(type: RemoteMethod['type']): (...args: any[]) => any;
|
|
9
|
-
export declare function getMethodCaller(executable: RemoteMethod): (...args: any[]) => any;
|
|
10
|
-
//# sourceMappingURL=dispatch.d.ts.map
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
let _mionjs_core = require("@mionjs/core");
|
|
3
|
-
//#region src/lib/bodyLimit.ts
|
|
4
|
-
/** Floor of a derived chain limit: a body of `{}` / `[]`, whitespace, or a no-params slot is never refused. */
|
|
5
|
-
var MIN_CHAIN_BODY_SIZE = 64;
|
|
6
|
-
/** A member's contribution: its own `maxBodySize` option, else the compact-JSON maximum of its params
|
|
7
|
-
* tuple the build computed, else unknown. One with no params and no option costs no slot at all. */
|
|
8
|
-
function memberBodyBytes(method) {
|
|
9
|
-
if (method.type === _mionjs_core.HandlerType.rawMiddleware) return null;
|
|
10
|
-
const declared = method.options.maxBodySize;
|
|
11
|
-
if (declared !== void 0) return declared;
|
|
12
|
-
if (!method.paramsCount) return null;
|
|
13
|
-
return method.paramsJsonMaxBytes;
|
|
14
|
-
}
|
|
15
|
-
/** The request limit of one chain, settled once at registration: the route's own `maxBodySize` option,
|
|
16
|
-
* else, when every member with params has a number, the largest keyed body `{"<id>":<params>,…}` times
|
|
17
|
-
* `maxBodySizeFactor`, else undefined, meaning the types cannot say and the request takes the adapter's
|
|
18
|
-
* `maxBodySize` at resolve time. Reads `options.maxBodySize` BEFORE it is overwritten with the result. */
|
|
19
|
-
function resolveChainMaxBodySize(methods, route, opts) {
|
|
20
|
-
if (route.options.maxBodySize !== void 0) return route.options.maxBodySize;
|
|
21
|
-
let total = 2;
|
|
22
|
-
let slots = 0;
|
|
23
|
-
for (const method of methods) {
|
|
24
|
-
const bytes = memberBodyBytes(method);
|
|
25
|
-
if (bytes === null) continue;
|
|
26
|
-
if (bytes === void 0) return void 0;
|
|
27
|
-
total += method.quotedId.length + 1 + bytes;
|
|
28
|
-
slots++;
|
|
29
|
-
}
|
|
30
|
-
if (slots > 1) total += slots - 1;
|
|
31
|
-
return Math.max(Math.ceil(total * opts.maxBodySizeFactor), 64);
|
|
32
|
-
}
|
|
33
|
-
//#endregion
|
|
34
|
-
exports.MIN_CHAIN_BODY_SIZE = MIN_CHAIN_BODY_SIZE;
|
|
35
|
-
exports.resolveChainMaxBodySize = resolveChainMaxBodySize;
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=bodyLimit.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bodyLimit.cjs","names":[],"sources":["../../../../src/lib/bodyLimit.ts"],"sourcesContent":["/* ########\n * 2026 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {HandlerType} from '@mionjs/core';\nimport type {RemoteMethod, RouteMethod} from '../types/remoteMethods.ts';\nimport type {RouterOptions} from '../types/general.ts';\n\n/** Floor of a derived chain limit: a body of `{}` / `[]`, whitespace, or a no-params slot is never refused. */\nexport const MIN_CHAIN_BODY_SIZE = 64;\n\n/** A member's contribution: its own `maxBodySize` option, else the compact-JSON maximum of its params\n * tuple the build computed, else unknown. One with no params and no option costs no slot at all. */\nfunction memberBodyBytes(method: RemoteMethod): number | undefined | null {\n if (method.type === HandlerType.rawMiddleware) return null;\n const declared = method.options.maxBodySize;\n if (declared !== undefined) return declared;\n if (!method.paramsCount) return null;\n return method.paramsJsonMaxBytes;\n}\n\n/** The request limit of one chain, settled once at registration: the route's own `maxBodySize` option,\n * else, when every member with params has a number, the largest keyed body `{\"<id>\":<params>,…}` times\n * `maxBodySizeFactor`, else undefined, meaning the types cannot say and the request takes the adapter's\n * `maxBodySize` at resolve time. Reads `options.maxBodySize` BEFORE it is overwritten with the result. */\nexport function resolveChainMaxBodySize(methods: RemoteMethod[], route: RouteMethod, opts: RouterOptions): number | undefined {\n if (route.options.maxBodySize !== undefined) return route.options.maxBodySize;\n let total = 2; // the braces\n let slots = 0;\n for (const method of methods) {\n const bytes = memberBodyBytes(method);\n if (bytes === null) continue;\n if (bytes === undefined) return undefined;\n total += method.quotedId.length + 1 + bytes; // `\"id\":` + params\n slots++;\n }\n if (slots > 1) total += slots - 1; // the commas\n return Math.max(Math.ceil(total * opts.maxBodySizeFactor), MIN_CHAIN_BODY_SIZE);\n}\n"],"mappings":";;;;AAYA,IAAa,sBAAsB;;;AAInC,SAAS,gBAAgB,QAAiD;CACxE,IAAI,OAAO,SAAS,aAAA,YAAY,eAAe,OAAO;CACtD,MAAM,WAAW,OAAO,QAAQ;CAChC,IAAI,aAAa,KAAA,GAAW,OAAO;CACnC,IAAI,CAAC,OAAO,aAAa,OAAO;CAChC,OAAO,OAAO;AAChB;;;;;AAMA,SAAgB,wBAAwB,SAAyB,OAAoB,MAAyC;CAC5H,IAAI,MAAM,QAAQ,gBAAgB,KAAA,GAAW,OAAO,MAAM,QAAQ;CAClE,IAAI,QAAQ;CACZ,IAAI,QAAQ;CACZ,KAAK,MAAM,UAAU,SAAS;EAC5B,MAAM,QAAQ,gBAAgB,MAAM;EACpC,IAAI,UAAU,MAAM;EACpB,IAAI,UAAU,KAAA,GAAW,OAAO,KAAA;EAChC,SAAS,OAAO,SAAS,SAAS,IAAI;EACtC;CACF;CACA,IAAI,QAAQ,GAAG,SAAS,QAAQ;CAChC,OAAO,KAAK,IAAI,KAAK,KAAK,QAAQ,KAAK,iBAAiB,GAAA,EAAsB;AAChF"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { RemoteMethod, RouteMethod } from '../types/remoteMethods.ts';
|
|
2
|
-
import { RouterOptions } from '../types/general.ts';
|
|
3
|
-
export declare const MIN_CHAIN_BODY_SIZE = 64;
|
|
4
|
-
export declare function resolveChainMaxBodySize(methods: RemoteMethod[], route: RouteMethod, opts: RouterOptions): number | undefined;
|
|
5
|
-
//# sourceMappingURL=bodyLimit.d.ts.map
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
let _mionjs_core = require("@mionjs/core");
|
|
3
|
-
//#region src/lib/bodyReader.ts
|
|
4
|
-
/** The 413 a platform adapter answers when a body passes the route's limit while it arrives. */
|
|
5
|
-
function requestPayloadTooLarge() {
|
|
6
|
-
return new _mionjs_core.FatalError({
|
|
7
|
-
statusCode: _mionjs_core.StatusCodes.PAYLOAD_TOO_LARGE,
|
|
8
|
-
publicMessage: "Payload Too Large",
|
|
9
|
-
type: "request-payload-too-large"
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
/** How a fetch-style runtime reads a body fastest, a numeric code so the per-request check is one integer
|
|
13
|
-
* compare. Measured on each runtime with a real server:
|
|
14
|
-
* `stream` pulls the body stream and decodes once: node's Request (undici, the vercel node runtime), where
|
|
15
|
-
* `text()` is slower than its own stream at every size.
|
|
16
|
-
* `text` is `text()` when a content-length is declared, the stream otherwise: workerd, where both are
|
|
17
|
-
* native and only the stream can stop an upload mid-flight.
|
|
18
|
-
* `buffered` is `text()` or `arrayBuffer()`, never the stream reader: bun buffers the body natively and its
|
|
19
|
-
* stream reader is over ten times slower, so its server-wide native limit is the one mid-flight guard. */
|
|
20
|
-
var BodyReadStrategy = {
|
|
21
|
-
stream: 1,
|
|
22
|
-
text: 2,
|
|
23
|
-
buffered: 3
|
|
24
|
-
};
|
|
25
|
-
var utf8 = new TextDecoder();
|
|
26
|
-
/** Reads a fetch-style request body as text against the route's limit, the way the runtime reads fastest
|
|
27
|
-
* (`strategy`). A declared `content-length` past the limit is refused before a byte is read. Sizes are
|
|
28
|
-
* counted in bytes, never less than the character count the router checks again before parsing, so the
|
|
29
|
-
* byte-exact refusal here always fires first. Undefined for a request with no body, else the router's 413. */
|
|
30
|
-
async function readRequestBody(req, maxBodySize, strategy) {
|
|
31
|
-
if (!req.body) return void 0;
|
|
32
|
-
const declared = req.headers.get("content-length");
|
|
33
|
-
if (declared !== null) {
|
|
34
|
-
if (Number(declared) > maxBodySize) throw requestPayloadTooLarge();
|
|
35
|
-
if (strategy !== BodyReadStrategy.stream) return req.text();
|
|
36
|
-
return readStream(req, maxBodySize);
|
|
37
|
-
}
|
|
38
|
-
if (strategy !== BodyReadStrategy.buffered) return readStream(req, maxBodySize);
|
|
39
|
-
const bytes = await req.arrayBuffer();
|
|
40
|
-
if (bytes.byteLength > maxBodySize) throw requestPayloadTooLarge();
|
|
41
|
-
return utf8.decode(bytes);
|
|
42
|
-
}
|
|
43
|
-
/** Pulls the body chunk by chunk with the running size counted, cancels the stream the moment it
|
|
44
|
-
* passes the limit so the rest is never pulled, and decodes ONCE at the end. */
|
|
45
|
-
async function readStream(req, maxBodySize) {
|
|
46
|
-
const reader = req.body.getReader();
|
|
47
|
-
const chunks = [];
|
|
48
|
-
let size = 0;
|
|
49
|
-
for (;;) {
|
|
50
|
-
const { done, value } = await reader.read();
|
|
51
|
-
if (done) break;
|
|
52
|
-
size += value.byteLength;
|
|
53
|
-
if (size > maxBodySize) {
|
|
54
|
-
await reader.cancel();
|
|
55
|
-
throw requestPayloadTooLarge();
|
|
56
|
-
}
|
|
57
|
-
chunks.push(value);
|
|
58
|
-
}
|
|
59
|
-
return decodeOnce(chunks, size);
|
|
60
|
-
}
|
|
61
|
-
/** One UTF-8 decode over the whole body: a single chunk decodes in place, several are joined into
|
|
62
|
-
* one buffer first so a character split across chunks is never decoded in halves. */
|
|
63
|
-
function decodeOnce(chunks, size) {
|
|
64
|
-
if (chunks.length === 0) return "";
|
|
65
|
-
if (chunks.length === 1) return utf8.decode(chunks[0]);
|
|
66
|
-
const joined = new Uint8Array(size);
|
|
67
|
-
let offset = 0;
|
|
68
|
-
for (const chunk of chunks) {
|
|
69
|
-
joined.set(chunk, offset);
|
|
70
|
-
offset += chunk.byteLength;
|
|
71
|
-
}
|
|
72
|
-
return utf8.decode(joined);
|
|
73
|
-
}
|
|
74
|
-
//#endregion
|
|
75
|
-
exports.BodyReadStrategy = BodyReadStrategy;
|
|
76
|
-
exports.readRequestBody = readRequestBody;
|
|
77
|
-
exports.requestPayloadTooLarge = requestPayloadTooLarge;
|
|
78
|
-
|
|
79
|
-
//# sourceMappingURL=bodyReader.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bodyReader.cjs","names":[],"sources":["../../../../src/lib/bodyReader.ts"],"sourcesContent":["/* ########\n * 2026 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {FatalError, RpcError, StatusCodes} from '@mionjs/core';\n\n/** The 413 a platform adapter answers when a body passes the route's limit while it arrives. */\nexport function requestPayloadTooLarge(): RpcError<'request-payload-too-large'> {\n return new FatalError({\n statusCode: StatusCodes.PAYLOAD_TOO_LARGE,\n publicMessage: 'Payload Too Large',\n type: 'request-payload-too-large',\n });\n}\n\n/** How a fetch-style runtime reads a body fastest, a numeric code so the per-request check is one integer\n * compare. Measured on each runtime with a real server:\n * `stream` pulls the body stream and decodes once: node's Request (undici, the vercel node runtime), where\n * `text()` is slower than its own stream at every size.\n * `text` is `text()` when a content-length is declared, the stream otherwise: workerd, where both are\n * native and only the stream can stop an upload mid-flight.\n * `buffered` is `text()` or `arrayBuffer()`, never the stream reader: bun buffers the body natively and its\n * stream reader is over ten times slower, so its server-wide native limit is the one mid-flight guard. */\nexport const BodyReadStrategy = {stream: 1, text: 2, buffered: 3} as const;\nexport type BodyReadStrategy = (typeof BodyReadStrategy)[keyof typeof BodyReadStrategy];\n\n// One decoder for every request: a non-streaming `decode` keeps no state between calls, so sharing it is\n// safe. A streaming decode (`{stream: true}`) would not be, which is why the stream path decodes ONCE.\nconst utf8 = new TextDecoder();\n\n/** Reads a fetch-style request body as text against the route's limit, the way the runtime reads fastest\n * (`strategy`). A declared `content-length` past the limit is refused before a byte is read. Sizes are\n * counted in bytes, never less than the character count the router checks again before parsing, so the\n * byte-exact refusal here always fires first. Undefined for a request with no body, else the router's 413. */\nexport async function readRequestBody(\n req: Request,\n maxBodySize: number,\n strategy: BodyReadStrategy\n): Promise<string | undefined> {\n if (!req.body) return undefined;\n const declared = req.headers.get('content-length');\n if (declared !== null) {\n if (Number(declared) > maxBodySize) throw requestPayloadTooLarge();\n // the runtime delivers exactly content-length bytes: one native decode\n if (strategy !== BodyReadStrategy.stream) return req.text();\n return readStream(req, maxBodySize);\n }\n if (strategy !== BodyReadStrategy.buffered) return readStream(req, maxBodySize);\n // no content-length on a runtime whose stream reader is the slow path: take the bytes whole\n // (the native server limit already bounded them) and refuse past the limit before decoding\n const bytes = await req.arrayBuffer();\n if (bytes.byteLength > maxBodySize) throw requestPayloadTooLarge();\n return utf8.decode(bytes);\n}\n\n/** Pulls the body chunk by chunk with the running size counted, cancels the stream the moment it\n * passes the limit so the rest is never pulled, and decodes ONCE at the end. */\nasync function readStream(req: Request, maxBodySize: number): Promise<string> {\n const reader = req.body!.getReader();\n const chunks: Uint8Array[] = [];\n let size = 0;\n for (;;) {\n const {done, value} = await reader.read();\n if (done) break;\n size += value.byteLength;\n if (size > maxBodySize) {\n await reader.cancel();\n throw requestPayloadTooLarge();\n }\n chunks.push(value);\n }\n return decodeOnce(chunks, size);\n}\n\n/** One UTF-8 decode over the whole body: a single chunk decodes in place, several are joined into\n * one buffer first so a character split across chunks is never decoded in halves. */\nfunction decodeOnce(chunks: Uint8Array[], size: number): string {\n if (chunks.length === 0) return '';\n if (chunks.length === 1) return utf8.decode(chunks[0]);\n const joined = new Uint8Array(size);\n let offset = 0;\n for (const chunk of chunks) {\n joined.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return utf8.decode(joined);\n}\n"],"mappings":";;;;AAUA,SAAgB,yBAAgE;CAC9E,OAAO,IAAI,aAAA,WAAW;EACpB,YAAY,aAAA,YAAY;EACxB,eAAe;EACf,MAAM;CACR,CAAC;AACH;;;;;;;;;AAUA,IAAa,mBAAmB;CAAC,QAAQ;CAAG,MAAM;CAAG,UAAU;AAAC;AAKhE,IAAM,OAAO,IAAI,YAAY;;;;;AAM7B,eAAsB,gBACpB,KACA,aACA,UAC6B;CAC7B,IAAI,CAAC,IAAI,MAAM,OAAO,KAAA;CACtB,MAAM,WAAW,IAAI,QAAQ,IAAI,gBAAgB;CACjD,IAAI,aAAa,MAAM;EACrB,IAAI,OAAO,QAAQ,IAAI,aAAa,MAAM,uBAAuB;EAEjE,IAAI,aAAa,iBAAiB,QAAQ,OAAO,IAAI,KAAK;EAC1D,OAAO,WAAW,KAAK,WAAW;CACpC;CACA,IAAI,aAAa,iBAAiB,UAAU,OAAO,WAAW,KAAK,WAAW;CAG9E,MAAM,QAAQ,MAAM,IAAI,YAAY;CACpC,IAAI,MAAM,aAAa,aAAa,MAAM,uBAAuB;CACjE,OAAO,KAAK,OAAO,KAAK;AAC1B;;;AAIA,eAAe,WAAW,KAAc,aAAsC;CAC5E,MAAM,SAAS,IAAI,KAAM,UAAU;CACnC,MAAM,SAAuB,CAAC;CAC9B,IAAI,OAAO;CACX,SAAS;EACP,MAAM,EAAC,MAAM,UAAS,MAAM,OAAO,KAAK;EACxC,IAAI,MAAM;EACV,QAAQ,MAAM;EACd,IAAI,OAAO,aAAa;GACtB,MAAM,OAAO,OAAO;GACpB,MAAM,uBAAuB;EAC/B;EACA,OAAO,KAAK,KAAK;CACnB;CACA,OAAO,WAAW,QAAQ,IAAI;AAChC;;;AAIA,SAAS,WAAW,QAAsB,MAAsB;CAC9D,IAAI,OAAO,WAAW,GAAG,OAAO;CAChC,IAAI,OAAO,WAAW,GAAG,OAAO,KAAK,OAAO,OAAO,EAAE;CACrD,MAAM,SAAS,IAAI,WAAW,IAAI;CAClC,IAAI,SAAS;CACb,KAAK,MAAM,SAAS,QAAQ;EAC1B,OAAO,IAAI,OAAO,MAAM;EACxB,UAAU,MAAM;CAClB;CACA,OAAO,KAAK,OAAO,MAAM;AAC3B"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { RpcError } from '@mionjs/core';
|
|
2
|
-
export declare function requestPayloadTooLarge(): RpcError<'request-payload-too-large'>;
|
|
3
|
-
export declare const BodyReadStrategy: {
|
|
4
|
-
readonly stream: 1;
|
|
5
|
-
readonly text: 2;
|
|
6
|
-
readonly buffered: 3;
|
|
7
|
-
};
|
|
8
|
-
export type BodyReadStrategy = (typeof BodyReadStrategy)[keyof typeof BodyReadStrategy];
|
|
9
|
-
export declare function readRequestBody(req: Request, maxBodySize: number, strategy: BodyReadStrategy): Promise<string | undefined>;
|
|
10
|
-
//# sourceMappingURL=bodyReader.d.ts.map
|