wevu 6.18.6 → 6.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (585) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/defineProperty.mjs +1 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/toPrimitive.mjs +1 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/toPropertyKey.mjs +1 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/typeof.mjs +1 -0
  5. package/dist/{rolldown-runtime-CenpyGzJ.mjs → _virtual/_rolldown/runtime.mjs} +1 -1
  6. package/dist/dev/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/defineProperty.mjs +14 -0
  7. package/dist/dev/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/toPrimitive.mjs +16 -0
  8. package/dist/dev/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/toPropertyKey.mjs +11 -0
  9. package/dist/dev/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/typeof.mjs +12 -0
  10. package/dist/dev/{rolldown-runtime-BUUfjzRC.mjs → _virtual/_rolldown/runtime.mjs} +1 -1
  11. package/dist/dev/index.mjs +49 -10
  12. package/dist/dev/internal-reactivity.mjs +15 -5
  13. package/dist/dev/internal-runtime.mjs +32 -4
  14. package/dist/dev/internal-template.mjs +1 -1
  15. package/dist/dev/package.mjs +6 -0
  16. package/dist/dev/package.mjs.map +1 -0
  17. package/dist/dev/reactivity/computed.mjs +49 -0
  18. package/dist/dev/reactivity/computed.mjs.map +1 -0
  19. package/dist/dev/reactivity/core.mjs +184 -0
  20. package/dist/dev/reactivity/core.mjs.map +1 -0
  21. package/dist/dev/reactivity/reactive/mutation.mjs +12 -0
  22. package/dist/dev/reactivity/reactive/mutation.mjs.map +1 -0
  23. package/dist/dev/{computed-BxRsUJgi.mjs → reactivity/reactive/patch.mjs} +6 -48
  24. package/dist/dev/reactivity/reactive/patch.mjs.map +1 -0
  25. package/dist/dev/reactivity/reactive/patchState.mjs +138 -0
  26. package/dist/dev/reactivity/reactive/patchState.mjs.map +1 -0
  27. package/dist/dev/reactivity/reactive/shallow.mjs +77 -0
  28. package/dist/dev/reactivity/reactive/shallow.mjs.map +1 -0
  29. package/dist/dev/reactivity/reactive/shared.mjs +40 -0
  30. package/dist/dev/reactivity/reactive/shared.mjs.map +1 -0
  31. package/dist/dev/reactivity/reactive/state.mjs +8 -0
  32. package/dist/dev/reactivity/reactive/state.mjs.map +1 -0
  33. package/dist/dev/reactivity/reactive.mjs +212 -0
  34. package/dist/dev/reactivity/reactive.mjs.map +1 -0
  35. package/dist/dev/reactivity/readonly.mjs +69 -0
  36. package/dist/dev/reactivity/readonly.mjs.map +1 -0
  37. package/dist/dev/reactivity/ref.mjs +97 -0
  38. package/dist/dev/reactivity/ref.mjs.map +1 -0
  39. package/dist/dev/reactivity/shallowRef.mjs +71 -0
  40. package/dist/dev/reactivity/shallowRef.mjs.map +1 -0
  41. package/dist/dev/{toRefs-D06VmFK2.mjs → reactivity/toRefs.mjs} +4 -3
  42. package/dist/dev/reactivity/toRefs.mjs.map +1 -0
  43. package/dist/dev/reactivity/traverse.mjs +40 -0
  44. package/dist/dev/reactivity/traverse.mjs.map +1 -0
  45. package/dist/dev/reactivity/watch/helpers.mjs +78 -0
  46. package/dist/dev/reactivity/watch/helpers.mjs.map +1 -0
  47. package/dist/dev/reactivity/watch/types.mjs +20 -0
  48. package/dist/dev/reactivity/watch/types.mjs.map +1 -0
  49. package/dist/dev/reactivity/watch.mjs +167 -0
  50. package/dist/dev/reactivity/watch.mjs.map +1 -0
  51. package/dist/dev/router/backNavigation.mjs +32 -0
  52. package/dist/dev/router/backNavigation.mjs.map +1 -0
  53. package/dist/dev/router/createRouter.mjs +176 -0
  54. package/dist/dev/router/createRouter.mjs.map +1 -0
  55. package/dist/dev/router/instance.mjs +17 -0
  56. package/dist/dev/router/instance.mjs.map +1 -0
  57. package/dist/dev/router/navigationApi.mjs +94 -0
  58. package/dist/dev/router/navigationApi.mjs.map +1 -0
  59. package/dist/dev/router/navigationCore.mjs +139 -0
  60. package/dist/dev/router/navigationCore.mjs.map +1 -0
  61. package/dist/dev/router/navigationResult.mjs +54 -0
  62. package/dist/dev/router/navigationResult.mjs.map +1 -0
  63. package/dist/dev/router/navigationTarget.mjs +121 -0
  64. package/dist/dev/router/navigationTarget.mjs.map +1 -0
  65. package/dist/dev/router/navigationTargetHelpers.mjs +38 -0
  66. package/dist/dev/router/navigationTargetHelpers.mjs.map +1 -0
  67. package/dist/dev/router/resolve.mjs +22 -0
  68. package/dist/dev/router/resolve.mjs.map +1 -0
  69. package/dist/dev/router/routeRegistry.mjs +78 -0
  70. package/dist/dev/router/routeRegistry.mjs.map +1 -0
  71. package/dist/dev/router/routeSync.mjs +72 -0
  72. package/dist/dev/router/routeSync.mjs.map +1 -0
  73. package/dist/dev/router/types.mjs +11 -0
  74. package/dist/dev/router/types.mjs.map +1 -0
  75. package/dist/dev/router/useRoute.mjs +106 -0
  76. package/dist/dev/router/useRoute.mjs.map +1 -0
  77. package/dist/dev/router/useRouter.mjs +15 -0
  78. package/dist/dev/router/useRouter.mjs.map +1 -0
  79. package/dist/dev/router.mjs +9 -1316
  80. package/dist/dev/routerInternal/location.mjs +66 -0
  81. package/dist/dev/routerInternal/location.mjs.map +1 -0
  82. package/dist/dev/routerInternal/matching.mjs +149 -0
  83. package/dist/dev/routerInternal/matching.mjs.map +1 -0
  84. package/dist/dev/routerInternal/params.mjs +95 -0
  85. package/dist/dev/routerInternal/params.mjs.map +1 -0
  86. package/dist/dev/routerInternal/path.mjs +42 -0
  87. package/dist/dev/routerInternal/path.mjs.map +1 -0
  88. package/dist/dev/routerInternal/query.mjs +113 -0
  89. package/dist/dev/routerInternal/query.mjs.map +1 -0
  90. package/dist/dev/routerInternal/records.mjs +172 -0
  91. package/dist/dev/routerInternal/records.mjs.map +1 -0
  92. package/dist/dev/routerInternal/recordsWarnings.mjs +49 -0
  93. package/dist/dev/routerInternal/recordsWarnings.mjs.map +1 -0
  94. package/dist/dev/routerInternal/snapshots.mjs +126 -0
  95. package/dist/dev/routerInternal/snapshots.mjs.map +1 -0
  96. package/dist/dev/runtime/app/computed.mjs +68 -0
  97. package/dist/dev/runtime/app/computed.mjs.map +1 -0
  98. package/dist/dev/runtime/app/context.mjs +275 -0
  99. package/dist/dev/runtime/app/context.mjs.map +1 -0
  100. package/dist/dev/runtime/app/diagnostics.mjs +34 -0
  101. package/dist/dev/runtime/app/diagnostics.mjs.map +1 -0
  102. package/dist/dev/runtime/app/mount.mjs +269 -0
  103. package/dist/dev/runtime/app/mount.mjs.map +1 -0
  104. package/dist/dev/runtime/app/pending.mjs +14 -0
  105. package/dist/dev/runtime/app/pending.mjs.map +1 -0
  106. package/dist/dev/runtime/app/setData/patchScheduler.mjs +158 -0
  107. package/dist/dev/runtime/app/setData/patchScheduler.mjs.map +1 -0
  108. package/dist/dev/runtime/app/setData/payload.mjs +161 -0
  109. package/dist/dev/runtime/app/setData/payload.mjs.map +1 -0
  110. package/dist/dev/runtime/app/setData/scheduler.mjs +313 -0
  111. package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -0
  112. package/dist/dev/runtime/app/setData/snapshot.mjs +129 -0
  113. package/dist/dev/runtime/app/setData/snapshot.mjs.map +1 -0
  114. package/dist/dev/runtime/app/setDataOptions.mjs +73 -0
  115. package/dist/dev/runtime/app/setDataOptions.mjs.map +1 -0
  116. package/dist/dev/runtime/app.mjs +93 -0
  117. package/dist/dev/runtime/app.mjs.map +1 -0
  118. package/dist/dev/runtime/bindModel.mjs +92 -0
  119. package/dist/dev/runtime/bindModel.mjs.map +1 -0
  120. package/dist/dev/runtime/defaults.mjs +61 -0
  121. package/dist/dev/runtime/defaults.mjs.map +1 -0
  122. package/dist/dev/runtime/define/initialComputed.mjs +125 -0
  123. package/dist/dev/runtime/define/initialComputed.mjs.map +1 -0
  124. package/dist/dev/runtime/define/options.mjs +169 -0
  125. package/dist/dev/runtime/define/options.mjs.map +1 -0
  126. package/dist/dev/runtime/define/optionsApi.mjs +48 -0
  127. package/dist/dev/runtime/define/optionsApi.mjs.map +1 -0
  128. package/dist/dev/runtime/define/props.mjs +194 -0
  129. package/dist/dev/runtime/define/props.mjs.map +1 -0
  130. package/dist/dev/runtime/define/scopedSlotOptions.mjs +313 -0
  131. package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -0
  132. package/dist/dev/runtime/define/setupResult.mjs +78 -0
  133. package/dist/dev/runtime/define/setupResult.mjs.map +1 -0
  134. package/dist/dev/runtime/define.mjs +140 -0
  135. package/dist/dev/runtime/define.mjs.map +1 -0
  136. package/dist/dev/runtime/diff.mjs +193 -0
  137. package/dist/dev/runtime/diff.mjs.map +1 -0
  138. package/dist/dev/runtime/disposables.mjs +81 -0
  139. package/dist/dev/runtime/disposables.mjs.map +1 -0
  140. package/dist/dev/runtime/elementIntersectionObserver.mjs +80 -0
  141. package/dist/dev/runtime/elementIntersectionObserver.mjs.map +1 -0
  142. package/dist/dev/runtime/emit.mjs +36 -0
  143. package/dist/dev/runtime/emit.mjs.map +1 -0
  144. package/dist/dev/{base-CYkvI7w8.mjs → runtime/hooks/base.mjs} +3 -140
  145. package/dist/dev/runtime/hooks/base.mjs.map +1 -0
  146. package/dist/dev/runtime/hooks/register.mjs +92 -0
  147. package/dist/dev/runtime/hooks/register.mjs.map +1 -0
  148. package/dist/dev/runtime/hooks/vue.mjs +81 -0
  149. package/dist/dev/runtime/hooks/vue.mjs.map +1 -0
  150. package/dist/dev/runtime/internal.mjs +18 -0
  151. package/dist/dev/runtime/internal.mjs.map +1 -0
  152. package/dist/dev/runtime/intersectionObserver.mjs +46 -0
  153. package/dist/dev/runtime/intersectionObserver.mjs.map +1 -0
  154. package/dist/dev/runtime/layoutBridge.mjs +303 -0
  155. package/dist/dev/runtime/layoutBridge.mjs.map +1 -0
  156. package/dist/dev/runtime/layoutComponentMatcher.mjs +11 -0
  157. package/dist/dev/runtime/layoutComponentMatcher.mjs.map +1 -0
  158. package/dist/dev/runtime/nativeBridge.mjs +21 -0
  159. package/dist/dev/runtime/nativeBridge.mjs.map +1 -0
  160. package/dist/dev/runtime/noSetData.mjs +18 -0
  161. package/dist/dev/runtime/noSetData.mjs.map +1 -0
  162. package/dist/dev/runtime/pageEnvironment.mjs +100 -0
  163. package/dist/dev/runtime/pageEnvironment.mjs.map +1 -0
  164. package/dist/dev/runtime/pageLayout.mjs +71 -0
  165. package/dist/dev/runtime/pageLayout.mjs.map +1 -0
  166. package/dist/dev/runtime/pageScroll.mjs +110 -0
  167. package/dist/dev/runtime/pageScroll.mjs.map +1 -0
  168. package/dist/dev/runtime/platform.mjs +77 -0
  169. package/dist/dev/runtime/platform.mjs.map +1 -0
  170. package/dist/dev/runtime/provide.mjs +71 -0
  171. package/dist/dev/runtime/provide.mjs.map +1 -0
  172. package/dist/dev/runtime/provideContext.mjs +101 -0
  173. package/dist/dev/runtime/provideContext.mjs.map +1 -0
  174. package/dist/dev/runtime/provideStore.mjs +18 -0
  175. package/dist/dev/runtime/provideStore.mjs.map +1 -0
  176. package/dist/dev/runtime/pullDownRefresh.mjs +24 -0
  177. package/dist/dev/runtime/pullDownRefresh.mjs.map +1 -0
  178. package/dist/dev/runtime/register/app.mjs +159 -0
  179. package/dist/dev/runtime/register/app.mjs.map +1 -0
  180. package/dist/dev/runtime/register/component/features.mjs +43 -0
  181. package/dist/dev/runtime/register/component/features.mjs.map +1 -0
  182. package/dist/dev/runtime/register/component/lifecycle/optionalHooks.mjs +64 -0
  183. package/dist/dev/runtime/register/component/lifecycle/optionalHooks.mjs.map +1 -0
  184. package/dist/dev/runtime/register/component/lifecycle/platform.mjs +95 -0
  185. package/dist/dev/runtime/register/component/lifecycle/platform.mjs.map +1 -0
  186. package/dist/dev/runtime/register/component/lifecycle.mjs +122 -0
  187. package/dist/dev/runtime/register/component/lifecycle.mjs.map +1 -0
  188. package/dist/dev/runtime/register/component/methods.mjs +80 -0
  189. package/dist/dev/runtime/register/component/methods.mjs.map +1 -0
  190. package/dist/dev/runtime/register/component/options.mjs +204 -0
  191. package/dist/dev/runtime/register/component/options.mjs.map +1 -0
  192. package/dist/dev/runtime/register/component/props.mjs +218 -0
  193. package/dist/dev/runtime/register/component/props.mjs.map +1 -0
  194. package/dist/dev/runtime/register/component/registerDefinition.mjs +290 -0
  195. package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -0
  196. package/dist/dev/runtime/register/component.mjs +128 -0
  197. package/dist/dev/runtime/register/component.mjs.map +1 -0
  198. package/dist/dev/runtime/register/inline.mjs +145 -0
  199. package/dist/dev/runtime/register/inline.mjs.map +1 -0
  200. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs +53 -0
  201. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs.map +1 -0
  202. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs +34 -0
  203. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs.map +1 -0
  204. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +230 -0
  205. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -0
  206. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +164 -0
  207. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -0
  208. package/dist/dev/runtime/register/runtimeInstance/utils.mjs +122 -0
  209. package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -0
  210. package/dist/dev/runtime/register/runtimeInstance.mjs +438 -0
  211. package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -0
  212. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs +95 -0
  213. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs.map +1 -0
  214. package/dist/dev/runtime/register/setup.mjs +22 -0
  215. package/dist/dev/runtime/register/setup.mjs.map +1 -0
  216. package/dist/dev/runtime/register/snapshot.mjs +17 -0
  217. package/dist/dev/runtime/register/snapshot.mjs.map +1 -0
  218. package/dist/dev/runtime/register/watch.mjs +57 -0
  219. package/dist/dev/runtime/register/watch.mjs.map +1 -0
  220. package/dist/dev/runtime/scopedSlots.mjs +115 -0
  221. package/dist/dev/runtime/scopedSlots.mjs.map +1 -0
  222. package/dist/dev/runtime/selectorQuery.mjs +49 -0
  223. package/dist/dev/runtime/selectorQuery.mjs.map +1 -0
  224. package/dist/dev/runtime/setupTracking.mjs +59 -0
  225. package/dist/dev/runtime/setupTracking.mjs.map +1 -0
  226. package/dist/dev/{template-n_iVr0ey.mjs → runtime/template.mjs} +7 -4
  227. package/dist/dev/runtime/template.mjs.map +1 -0
  228. package/dist/dev/runtime/templateRefs/helpers.mjs +254 -0
  229. package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -0
  230. package/dist/dev/runtime/templateRefs.mjs +162 -0
  231. package/dist/dev/runtime/templateRefs.mjs.map +1 -0
  232. package/dist/dev/runtime/uniAppHost.mjs +119 -0
  233. package/dist/dev/runtime/uniAppHost.mjs.map +1 -0
  234. package/dist/dev/runtime/updatePerformance.mjs +41 -0
  235. package/dist/dev/runtime/updatePerformance.mjs.map +1 -0
  236. package/dist/dev/runtime/use.mjs +25 -0
  237. package/dist/dev/runtime/use.mjs.map +1 -0
  238. package/dist/dev/runtime/vueCompat/context.mjs +25 -0
  239. package/dist/dev/runtime/vueCompat/context.mjs.map +1 -0
  240. package/dist/dev/runtime/vueCompat/model.mjs +118 -0
  241. package/dist/dev/runtime/vueCompat/model.mjs.map +1 -0
  242. package/dist/dev/runtime/vueCompat/router.mjs +124 -0
  243. package/dist/dev/runtime/vueCompat/router.mjs.map +1 -0
  244. package/dist/dev/runtime/vueCompat/templateRef.mjs +37 -0
  245. package/dist/dev/runtime/vueCompat/templateRef.mjs.map +1 -0
  246. package/dist/dev/scheduler.mjs +75 -0
  247. package/dist/dev/scheduler.mjs.map +1 -0
  248. package/dist/dev/store/actions.mjs +40 -0
  249. package/dist/dev/store/actions.mjs.map +1 -0
  250. package/dist/dev/store/base.mjs +56 -0
  251. package/dist/dev/store/base.mjs.map +1 -0
  252. package/dist/dev/store/define/optionsStyle.mjs +125 -0
  253. package/dist/dev/store/define/optionsStyle.mjs.map +1 -0
  254. package/dist/dev/store/define/setupStyle.mjs +145 -0
  255. package/dist/dev/store/define/setupStyle.mjs.map +1 -0
  256. package/dist/dev/store/define/shared.mjs +38 -0
  257. package/dist/dev/store/define/shared.mjs.map +1 -0
  258. package/dist/dev/store/define.mjs +23 -0
  259. package/dist/dev/store/define.mjs.map +1 -0
  260. package/dist/dev/store/manager.mjs +21 -0
  261. package/dist/dev/store/manager.mjs.map +1 -0
  262. package/dist/dev/store/storeToRefs.mjs +29 -0
  263. package/dist/dev/store/storeToRefs.mjs.map +1 -0
  264. package/dist/dev/store/utils.mjs +49 -0
  265. package/dist/dev/store/utils.mjs.map +1 -0
  266. package/dist/dev/store.mjs +3 -1
  267. package/dist/dev/utils.mjs +16 -0
  268. package/dist/dev/utils.mjs.map +1 -0
  269. package/dist/dev/version.mjs +8 -0
  270. package/dist/dev/version.mjs.map +1 -0
  271. package/dist/dev/vue-demi.mjs +49 -11
  272. package/dist/dev/vue-demi.mjs.map +1 -1
  273. package/dist/index.d.mts +71 -7
  274. package/dist/index.mjs +1 -1
  275. package/dist/internal-reactivity.d.mts +16 -2
  276. package/dist/internal-reactivity.mjs +1 -1
  277. package/dist/internal-runtime.d.mts +35 -2
  278. package/dist/internal-runtime.mjs +1 -1
  279. package/dist/internal-template.d.mts +1 -1
  280. package/dist/internal-template.mjs +1 -1
  281. package/dist/jsx-runtime.d.mts +1 -1
  282. package/dist/macros/shared.d.mts +81 -0
  283. package/dist/macros.d.mts +70 -0
  284. package/dist/package.mjs +1 -0
  285. package/dist/reactivity/computed.d.mts +21 -0
  286. package/dist/reactivity/computed.mjs +1 -0
  287. package/dist/reactivity/core.d.mts +34 -0
  288. package/dist/reactivity/core.mjs +1 -0
  289. package/dist/reactivity/index.d.mts +15 -0
  290. package/dist/reactivity/reactive/mutation.d.mts +21 -0
  291. package/dist/reactivity/reactive/mutation.mjs +1 -0
  292. package/dist/reactivity/reactive/patch.d.mts +18 -0
  293. package/dist/reactivity/reactive/patch.mjs +1 -0
  294. package/dist/reactivity/reactive/patchState.mjs +1 -0
  295. package/dist/reactivity/reactive/shallow.d.mts +22 -0
  296. package/dist/reactivity/reactive/shallow.mjs +1 -0
  297. package/dist/reactivity/reactive/shared.d.mts +4 -0
  298. package/dist/reactivity/reactive/shared.mjs +1 -0
  299. package/dist/reactivity/reactive/state.mjs +1 -0
  300. package/dist/reactivity/reactive.d.mts +41 -0
  301. package/dist/reactivity/reactive.mjs +1 -0
  302. package/dist/reactivity/readonly.d.mts +27 -0
  303. package/dist/reactivity/readonly.mjs +1 -0
  304. package/dist/reactivity/ref.d.mts +27 -0
  305. package/dist/reactivity/ref.mjs +1 -0
  306. package/dist/reactivity/shallowRef.d.mts +19 -0
  307. package/dist/reactivity/shallowRef.mjs +1 -0
  308. package/dist/reactivity/toRefs.d.mts +43 -0
  309. package/dist/reactivity/toRefs.mjs +1 -0
  310. package/dist/reactivity/traverse.d.mts +8 -0
  311. package/dist/reactivity/traverse.mjs +1 -0
  312. package/dist/reactivity/watch/helpers.mjs +1 -0
  313. package/dist/reactivity/watch/types.d.mts +43 -0
  314. package/dist/reactivity/watch/types.mjs +1 -0
  315. package/dist/reactivity/watch.d.mts +21 -0
  316. package/dist/reactivity/watch.mjs +1 -0
  317. package/dist/router/backNavigation.mjs +1 -0
  318. package/dist/router/createRouter.d.mts +8 -0
  319. package/dist/router/createRouter.mjs +1 -0
  320. package/dist/router/instance.mjs +1 -0
  321. package/dist/router/navigationApi.mjs +1 -0
  322. package/dist/router/navigationCore.d.mts +6 -0
  323. package/dist/router/navigationCore.mjs +1 -0
  324. package/dist/router/navigationResult.mjs +1 -0
  325. package/dist/router/navigationTarget.mjs +1 -0
  326. package/dist/router/navigationTargetHelpers.mjs +1 -0
  327. package/dist/router/resolve.d.mts +6 -0
  328. package/dist/router/resolve.mjs +1 -0
  329. package/dist/router/routeRegistry.mjs +1 -0
  330. package/dist/router/routeSync.d.mts +1 -0
  331. package/dist/router/routeSync.mjs +1 -0
  332. package/dist/router/types.d.mts +163 -0
  333. package/dist/router/types.mjs +1 -0
  334. package/dist/router/useRoute.d.mts +19 -0
  335. package/dist/router/useRoute.mjs +1 -0
  336. package/dist/router/useRouter.d.mts +8 -0
  337. package/dist/router/useRouter.mjs +1 -0
  338. package/dist/router.d.mts +9 -204
  339. package/dist/router.mjs +1 -1
  340. package/dist/routerInternal/location.mjs +1 -0
  341. package/dist/routerInternal/matching.mjs +1 -0
  342. package/dist/routerInternal/params.mjs +1 -0
  343. package/dist/routerInternal/path.mjs +1 -0
  344. package/dist/routerInternal/query.d.mts +7 -0
  345. package/dist/routerInternal/query.mjs +1 -0
  346. package/dist/routerInternal/records.mjs +1 -0
  347. package/dist/routerInternal/recordsWarnings.mjs +1 -0
  348. package/dist/routerInternal/snapshots.mjs +1 -0
  349. package/dist/routerInternal/types.d.mts +9 -0
  350. package/dist/runtime/app/computed.mjs +1 -0
  351. package/dist/runtime/app/context.mjs +1 -0
  352. package/dist/runtime/app/diagnostics.mjs +1 -0
  353. package/dist/runtime/app/mount.mjs +1 -0
  354. package/dist/runtime/app/pending.d.mts +10 -0
  355. package/dist/runtime/app/pending.mjs +1 -0
  356. package/dist/runtime/app/setData/patchScheduler.mjs +1 -0
  357. package/dist/runtime/app/setData/payload.mjs +1 -0
  358. package/dist/runtime/app/setData/scheduler.mjs +1 -0
  359. package/dist/runtime/app/setData/snapshot.mjs +1 -0
  360. package/dist/runtime/app/setDataOptions.mjs +1 -0
  361. package/dist/runtime/app.d.mts +8 -0
  362. package/dist/runtime/app.mjs +1 -0
  363. package/dist/runtime/bindModel.mjs +1 -0
  364. package/dist/runtime/defaults.d.mts +11 -0
  365. package/dist/runtime/defaults.mjs +1 -0
  366. package/dist/runtime/define/initialComputed.mjs +1 -0
  367. package/dist/runtime/define/options.mjs +1 -0
  368. package/dist/runtime/define/optionsApi.mjs +1 -0
  369. package/dist/runtime/define/props.mjs +1 -0
  370. package/dist/runtime/define/scopedSlotOptions.mjs +1 -0
  371. package/dist/runtime/define/setupResult.mjs +1 -0
  372. package/dist/runtime/define.d.mts +105 -0
  373. package/dist/runtime/define.mjs +1 -0
  374. package/dist/runtime/diff.mjs +1 -0
  375. package/dist/runtime/disposables.d.mts +31 -0
  376. package/dist/runtime/disposables.mjs +1 -0
  377. package/dist/runtime/elementIntersectionObserver.d.mts +26 -0
  378. package/dist/runtime/elementIntersectionObserver.mjs +1 -0
  379. package/dist/runtime/emit.mjs +1 -0
  380. package/dist/runtime/hooks/base.d.mts +27 -0
  381. package/dist/runtime/hooks/base.mjs +1 -0
  382. package/dist/runtime/hooks/register.d.mts +30 -0
  383. package/dist/runtime/hooks/register.mjs +1 -0
  384. package/dist/runtime/hooks/vue.d.mts +53 -0
  385. package/dist/runtime/hooks/vue.mjs +1 -0
  386. package/dist/runtime/hooks.d.mts +4 -0
  387. package/dist/runtime/index.d.mts +47 -0
  388. package/dist/runtime/internal.mjs +1 -0
  389. package/dist/runtime/intersectionObserver.d.mts +14 -0
  390. package/dist/runtime/intersectionObserver.mjs +1 -0
  391. package/dist/runtime/layoutBridge.d.mts +59 -0
  392. package/dist/runtime/layoutBridge.mjs +1 -0
  393. package/dist/runtime/layoutComponentMatcher.mjs +1 -0
  394. package/dist/runtime/nativeBridge.mjs +1 -0
  395. package/dist/runtime/noSetData.d.mts +5 -0
  396. package/dist/runtime/noSetData.mjs +1 -0
  397. package/dist/runtime/pageEnvironment.d.mts +50 -0
  398. package/dist/runtime/pageEnvironment.mjs +1 -0
  399. package/dist/runtime/pageLayout.d.mts +26 -0
  400. package/dist/runtime/pageLayout.mjs +1 -0
  401. package/dist/runtime/pageScroll.d.mts +29 -0
  402. package/dist/runtime/pageScroll.mjs +1 -0
  403. package/dist/runtime/platform.mjs +1 -0
  404. package/dist/runtime/provide.d.mts +59 -0
  405. package/dist/runtime/provide.mjs +1 -0
  406. package/dist/runtime/provideContext.mjs +1 -0
  407. package/dist/runtime/provideStore.d.mts +7 -0
  408. package/dist/runtime/provideStore.mjs +1 -0
  409. package/dist/runtime/pullDownRefresh.d.mts +12 -0
  410. package/dist/runtime/pullDownRefresh.mjs +1 -0
  411. package/dist/runtime/register/app.d.mts +14 -0
  412. package/dist/runtime/register/app.mjs +1 -0
  413. package/dist/runtime/register/component/features.mjs +1 -0
  414. package/dist/runtime/register/component/lifecycle/optionalHooks.mjs +1 -0
  415. package/dist/runtime/register/component/lifecycle/platform.mjs +1 -0
  416. package/dist/runtime/register/component/lifecycle.mjs +1 -0
  417. package/dist/runtime/register/component/methods.mjs +1 -0
  418. package/dist/runtime/register/component/options.mjs +1 -0
  419. package/dist/runtime/register/component/props.mjs +1 -0
  420. package/dist/runtime/register/component/registerDefinition.mjs +1 -0
  421. package/dist/runtime/register/component.d.mts +15 -0
  422. package/dist/runtime/register/component.mjs +1 -0
  423. package/dist/runtime/register/inline.d.mts +15 -0
  424. package/dist/runtime/register/inline.mjs +1 -0
  425. package/dist/runtime/register/runtimeInstance/methodBridge.mjs +1 -0
  426. package/dist/runtime/register/runtimeInstance/provideContext.mjs +1 -0
  427. package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -0
  428. package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -0
  429. package/dist/runtime/register/runtimeInstance/utils.mjs +1 -0
  430. package/dist/runtime/register/runtimeInstance.d.mts +26 -0
  431. package/dist/runtime/register/runtimeInstance.mjs +1 -0
  432. package/dist/runtime/register/setDataFrequencyWarning.mjs +1 -0
  433. package/dist/runtime/register/setup.d.mts +11 -0
  434. package/dist/runtime/register/setup.mjs +1 -0
  435. package/dist/runtime/register/snapshot.mjs +1 -0
  436. package/dist/runtime/register/watch.d.mts +12 -0
  437. package/dist/runtime/register/watch.mjs +1 -0
  438. package/dist/runtime/register.d.mts +5 -0
  439. package/dist/runtime/scopedSlots.mjs +1 -0
  440. package/dist/runtime/selectorQuery.d.mts +54 -0
  441. package/dist/runtime/selectorQuery.mjs +1 -0
  442. package/dist/runtime/setupTracking.mjs +1 -0
  443. package/dist/{template-DE8e5dj_.d.mts → runtime/template.d.mts} +1 -1
  444. package/dist/runtime/template.mjs +1 -0
  445. package/dist/runtime/templateRefTypes.d.mts +7 -0
  446. package/dist/runtime/templateRefs/helpers.mjs +1 -0
  447. package/dist/runtime/templateRefs.d.mts +11 -0
  448. package/dist/runtime/templateRefs.mjs +1 -0
  449. package/dist/runtime/types/core.d.mts +35 -0
  450. package/dist/runtime/types/miniprogram.d.mts +80 -0
  451. package/dist/runtime/types/miniprogramHost.d.mts +44 -0
  452. package/dist/runtime/types/miniprogramHostSources.d.mts +112 -0
  453. package/dist/runtime/types/options.d.mts +136 -0
  454. package/dist/runtime/types/props/propTypes.d.mts +79 -0
  455. package/dist/runtime/types/props/router.d.mts +51 -0
  456. package/dist/runtime/types/props/setup.d.mts +96 -0
  457. package/dist/runtime/types/props.d.mts +4 -0
  458. package/dist/runtime/types/runtime.d.mts +59 -0
  459. package/dist/runtime/types/setData.d.mts +220 -0
  460. package/dist/runtime/types.d.mts +28 -0
  461. package/dist/runtime/uniAppHost.d.mts +8 -0
  462. package/dist/runtime/uniAppHost.mjs +1 -0
  463. package/dist/runtime/updatePerformance.d.mts +13 -0
  464. package/dist/runtime/updatePerformance.mjs +1 -0
  465. package/dist/runtime/use.d.mts +13 -0
  466. package/dist/runtime/use.mjs +1 -0
  467. package/dist/runtime/vueCompat/context.d.mts +8 -0
  468. package/dist/runtime/vueCompat/context.mjs +1 -0
  469. package/dist/runtime/vueCompat/model.d.mts +30 -0
  470. package/dist/runtime/vueCompat/model.mjs +1 -0
  471. package/dist/runtime/vueCompat/router.d.mts +28 -0
  472. package/dist/runtime/vueCompat/router.mjs +1 -0
  473. package/dist/runtime/vueCompat/templateRef.d.mts +9 -0
  474. package/dist/runtime/vueCompat/templateRef.mjs +1 -0
  475. package/dist/runtime/vueCompat.d.mts +5 -0
  476. package/dist/scheduler.d.mts +4 -0
  477. package/dist/scheduler.mjs +1 -0
  478. package/dist/store/actions.mjs +1 -0
  479. package/dist/store/base.mjs +1 -0
  480. package/dist/store/define/optionsStyle.mjs +1 -0
  481. package/dist/store/define/setupStyle.mjs +1 -0
  482. package/dist/store/define/shared.mjs +1 -0
  483. package/dist/store/define.d.mts +26 -0
  484. package/dist/store/define.mjs +1 -0
  485. package/dist/store/manager.d.mts +8 -0
  486. package/dist/store/manager.mjs +1 -0
  487. package/dist/store/storeToRefs.d.mts +13 -0
  488. package/dist/store/storeToRefs.mjs +1 -0
  489. package/dist/store/types.d.mts +70 -0
  490. package/dist/store/utils.mjs +1 -0
  491. package/dist/store.d.mts +4 -1
  492. package/dist/store.mjs +1 -1
  493. package/dist/utils.mjs +1 -0
  494. package/dist/version.d.mts +4 -0
  495. package/dist/version.mjs +1 -0
  496. package/dist/vue-augment.d.mts +6 -0
  497. package/dist/vue-demi.d.mts +67 -7
  498. package/dist/vue-demi.mjs +1 -1
  499. package/dist/vue-types.d.mts +18 -0
  500. package/dist/weappIntrinsicElements/base.d.mts +22 -0
  501. package/dist/weappIntrinsicElements/elements/ad-custom.d.mts +13 -0
  502. package/dist/weappIntrinsicElements/elements/ad.d.mts +16 -0
  503. package/dist/weappIntrinsicElements/elements/audio.d.mts +20 -0
  504. package/dist/weappIntrinsicElements/elements/block.d.mts +8 -0
  505. package/dist/weappIntrinsicElements/elements/button.d.mts +40 -0
  506. package/dist/weappIntrinsicElements/elements/camera.d.mts +18 -0
  507. package/dist/weappIntrinsicElements/elements/canvas.d.mts +18 -0
  508. package/dist/weappIntrinsicElements/elements/checkbox-group.d.mts +13 -0
  509. package/dist/weappIntrinsicElements/elements/checkbox.d.mts +13 -0
  510. package/dist/weappIntrinsicElements/elements/cover-image.d.mts +10 -0
  511. package/dist/weappIntrinsicElements/elements/cover-view.d.mts +10 -0
  512. package/dist/weappIntrinsicElements/elements/editor.d.mts +22 -0
  513. package/dist/weappIntrinsicElements/elements/form.d.mts +16 -0
  514. package/dist/weappIntrinsicElements/elements/functional-page-navigator.d.mts +15 -0
  515. package/dist/weappIntrinsicElements/elements/icon.d.mts +12 -0
  516. package/dist/weappIntrinsicElements/elements/image.d.mts +18 -0
  517. package/dist/weappIntrinsicElements/elements/import.d.mts +10 -0
  518. package/dist/weappIntrinsicElements/elements/include.d.mts +10 -0
  519. package/dist/weappIntrinsicElements/elements/input.d.mts +47 -0
  520. package/dist/weappIntrinsicElements/elements/keyboard-accessory.d.mts +8 -0
  521. package/dist/weappIntrinsicElements/elements/label.d.mts +10 -0
  522. package/dist/weappIntrinsicElements/elements/live-player.d.mts +35 -0
  523. package/dist/weappIntrinsicElements/elements/live-pusher.d.mts +57 -0
  524. package/dist/weappIntrinsicElements/elements/map.d.mts +105 -0
  525. package/dist/weappIntrinsicElements/elements/match-media.d.mts +16 -0
  526. package/dist/weappIntrinsicElements/elements/movable-area.d.mts +26 -0
  527. package/dist/weappIntrinsicElements/elements/movable-view.d.mts +26 -0
  528. package/dist/weappIntrinsicElements/elements/navigation-bar.d.mts +15 -0
  529. package/dist/weappIntrinsicElements/elements/navigator.d.mts +25 -0
  530. package/dist/weappIntrinsicElements/elements/official-account.d.mts +13 -0
  531. package/dist/weappIntrinsicElements/elements/open-data.d.mts +15 -0
  532. package/dist/weappIntrinsicElements/elements/page-container.d.mts +25 -0
  533. package/dist/weappIntrinsicElements/elements/page-meta.d.mts +23 -0
  534. package/dist/weappIntrinsicElements/elements/picker-view-column.d.mts +18 -0
  535. package/dist/weappIntrinsicElements/elements/picker-view.d.mts +18 -0
  536. package/dist/weappIntrinsicElements/elements/picker.d.mts +23 -0
  537. package/dist/weappIntrinsicElements/elements/progress.d.mts +21 -0
  538. package/dist/weappIntrinsicElements/elements/radio-group.d.mts +13 -0
  539. package/dist/weappIntrinsicElements/elements/radio.d.mts +13 -0
  540. package/dist/weappIntrinsicElements/elements/rich-text.d.mts +17 -0
  541. package/dist/weappIntrinsicElements/elements/scroll-view.d.mts +68 -0
  542. package/dist/weappIntrinsicElements/elements/share-element.d.mts +18 -0
  543. package/dist/weappIntrinsicElements/elements/slider.d.mts +23 -0
  544. package/dist/weappIntrinsicElements/elements/slot.d.mts +10 -0
  545. package/dist/weappIntrinsicElements/elements/swiper-item.d.mts +42 -0
  546. package/dist/weappIntrinsicElements/elements/swiper.d.mts +42 -0
  547. package/dist/weappIntrinsicElements/elements/switch.d.mts +14 -0
  548. package/dist/weappIntrinsicElements/elements/template.d.mts +12 -0
  549. package/dist/weappIntrinsicElements/elements/text.d.mts +15 -0
  550. package/dist/weappIntrinsicElements/elements/textarea.d.mts +40 -0
  551. package/dist/weappIntrinsicElements/elements/video.d.mts +71 -0
  552. package/dist/weappIntrinsicElements/elements/view.d.mts +13 -0
  553. package/dist/weappIntrinsicElements/elements/voip-room.d.mts +14 -0
  554. package/dist/weappIntrinsicElements/elements/web-view.d.mts +13 -0
  555. package/dist/weappIntrinsicElements.d.mts +153 -0
  556. package/package.json +6 -6
  557. package/dist/base-BxKbbKVO.mjs +0 -1
  558. package/dist/computed-Xoi9XEUx.mjs +0 -1
  559. package/dist/dev/base-CYkvI7w8.mjs.map +0 -1
  560. package/dist/dev/computed-BxRsUJgi.mjs.map +0 -1
  561. package/dist/dev/ref-DRZC3Kc5.mjs +0 -695
  562. package/dist/dev/ref-DRZC3Kc5.mjs.map +0 -1
  563. package/dist/dev/router-DjGhTM7A.mjs +0 -739
  564. package/dist/dev/router-DjGhTM7A.mjs.map +0 -1
  565. package/dist/dev/router.mjs.map +0 -1
  566. package/dist/dev/store-HNsiQJ4d.mjs +0 -479
  567. package/dist/dev/store-HNsiQJ4d.mjs.map +0 -1
  568. package/dist/dev/template-n_iVr0ey.mjs.map +0 -1
  569. package/dist/dev/templateRef-Dyo45y5v.mjs +0 -6436
  570. package/dist/dev/templateRef-Dyo45y5v.mjs.map +0 -1
  571. package/dist/dev/toRefs-D06VmFK2.mjs.map +0 -1
  572. package/dist/dev/watch-jrgL5ald.mjs +0 -445
  573. package/dist/dev/watch-jrgL5ald.mjs.map +0 -1
  574. package/dist/index-BiHILcmb.d.mts +0 -1215
  575. package/dist/index-CCET_bCY.d.mts +0 -111
  576. package/dist/ref-D37CknuD.mjs +0 -1
  577. package/dist/router-DJOmKqXb.mjs +0 -1
  578. package/dist/store-eHrHBQiv.mjs +0 -1
  579. package/dist/template-CNzlwH-E.mjs +0 -1
  580. package/dist/templateRef-L_qeTIeS.mjs +0 -1
  581. package/dist/toRefs-CoytPyo0.mjs +0 -1
  582. package/dist/traverse-B4Ez44Gd.d.mts +0 -108
  583. package/dist/vue-types-B3N60cGV.d.mts +0 -757
  584. package/dist/watch-Bbd-gmEg.mjs +0 -1
  585. package/dist/weappIntrinsicElements-BgDtC53_.d.mts +0 -1257
@@ -0,0 +1,176 @@
1
+ import { getMiniProgramGlobalObject } from "../runtime/platform.mjs";
2
+ import { installRouteStateSyncOnNativeRouter } from "./routeSync.mjs";
3
+ import { resolvePath } from "../routerInternal/path.mjs";
4
+ import { parseQuery, stringifyQuery } from "../routerInternal/query.mjs";
5
+ import { resolveNamedRouteLocation } from "../routerInternal/params.mjs";
6
+ import { mergeMatchedRouteMeta, resolveMatchedRouteRecord } from "../routerInternal/matching.mjs";
7
+ import { warnDuplicateRouteEntries } from "../routerInternal/recordsWarnings.mjs";
8
+ import { createNamedRouteLookup, resolveRouteOptionEntries } from "../routerInternal/records.mjs";
9
+ import { cloneRouteMeta, cloneRouteParams, createRouterOptionsSnapshot, normalizeRouteRecordMatched, snapshotRouteLocation } from "../routerInternal/snapshots.mjs";
10
+ import { createNavigationResultController } from "./navigationResult.mjs";
11
+ import { runBackNavigationGuards } from "./backNavigation.mjs";
12
+ import { setActiveRouter } from "./instance.mjs";
13
+ import { createNavigationApi } from "./navigationApi.mjs";
14
+ import { resolveRouteLocation } from "./resolve.mjs";
15
+ import { createRouteRegistry } from "./routeRegistry.mjs";
16
+ import { createRouteStateController, useNativeRouter } from "./useRoute.mjs";
17
+
18
+ //#region src/router/createRouter.ts
19
+ /**
20
+ * @description 创建高阶路由导航器(对齐 Vue Router 的 createRouter 心智)
21
+ */
22
+ function createRouter(options = {}) {
23
+ var _options$maxRedirects, _options$paramsMode, _options$rejectOnErro, _options$parseQuery, _options$stringifyQue, _options$tabBarEntrie;
24
+ const nativeRouter = useNativeRouter();
25
+ installRouteStateSyncOnNativeRouter(getMiniProgramGlobalObject());
26
+ const beforeEachGuards = /* @__PURE__ */ new Set();
27
+ const beforeResolveGuards = /* @__PURE__ */ new Set();
28
+ const afterEachHooks = /* @__PURE__ */ new Set();
29
+ const errorHandlers = /* @__PURE__ */ new Set();
30
+ const maxRedirects = (_options$maxRedirects = options.maxRedirects) !== null && _options$maxRedirects !== void 0 ? _options$maxRedirects : 10;
31
+ const paramsMode = (_options$paramsMode = options.paramsMode) !== null && _options$paramsMode !== void 0 ? _options$paramsMode : "loose";
32
+ const rejectOnError = (_options$rejectOnErro = options.rejectOnError) !== null && _options$rejectOnErro !== void 0 ? _options$rejectOnErro : true;
33
+ const routeResolveCodec = {
34
+ parseQuery: (_options$parseQuery = options.parseQuery) !== null && _options$parseQuery !== void 0 ? _options$parseQuery : parseQuery,
35
+ stringifyQuery: (_options$stringifyQue = options.stringifyQuery) !== null && _options$stringifyQue !== void 0 ? _options$stringifyQue : stringifyQuery
36
+ };
37
+ const readyPromise = Promise.resolve();
38
+ const routeEntries = resolveRouteOptionEntries(options);
39
+ warnDuplicateRouteEntries(routeEntries);
40
+ const namedRouteLookup = createNamedRouteLookup(routeEntries);
41
+ const normalizedTabBarEntries = ((_options$tabBarEntrie = options.tabBarEntries) !== null && _options$tabBarEntrie !== void 0 ? _options$tabBarEntrie : []).map((path) => resolvePath(path, "")).filter(Boolean);
42
+ const tabBarPathSet = new Set(normalizedTabBarEntries);
43
+ const routeRegistry = createRouteRegistry(namedRouteLookup);
44
+ let managedNavigationCount = 0;
45
+ const routerOptions = createRouterOptionsSnapshot(normalizedTabBarEntries, routeRegistry.getRoutes(), paramsMode, maxRedirects, routeResolveCodec, rejectOnError);
46
+ function enrichRouteRecordState(routeLocation) {
47
+ const resolved = { ...routeLocation };
48
+ resolved.href = resolved.fullPath;
49
+ const matchedResult = resolveMatchedRouteRecord(resolved, namedRouteLookup);
50
+ if (matchedResult) {
51
+ const matchedRecord = matchedResult.record;
52
+ if (resolved.name === void 0) resolved.name = matchedRecord.name;
53
+ const mergedRouteMeta = mergeMatchedRouteMeta(matchedResult.matchedRecords);
54
+ if (mergedRouteMeta !== void 0) resolved.meta = cloneRouteMeta(mergedRouteMeta);
55
+ if (matchedResult.params && Object.keys(resolved.params).length === 0) resolved.params = cloneRouteParams(matchedResult.params);
56
+ resolved.matched = matchedResult.matchedRecords.map((record, index, records) => {
57
+ return normalizeRouteRecordMatched(record, index === records.length - 1 ? matchedResult.matchedPath : void 0);
58
+ });
59
+ } else resolved.matched = [];
60
+ return resolved;
61
+ }
62
+ function resolveWithCodec(to, currentPath) {
63
+ return enrichRouteRecordState(resolveRouteLocation(typeof to === "string" ? to : resolveNamedRouteLocation(to, namedRouteLookup, paramsMode), currentPath, routeResolveCodec));
64
+ }
65
+ let route;
66
+ let emitObservedNavigationAfterEach;
67
+ function isExternalBackSync(payload) {
68
+ return payload.source === "page" || payload.source === "native" && payload.method === "navigateBack";
69
+ }
70
+ function beforeRouteStateSync(nextRoute, payload) {
71
+ if (managedNavigationCount > 0 || !isExternalBackSync(payload) || nextRoute.fullPath === route.fullPath) return;
72
+ runBackNavigationGuards({
73
+ target: nextRoute,
74
+ from: snapshotRouteLocation(route),
75
+ nativeRouter,
76
+ beforeEachGuards,
77
+ beforeResolveGuards,
78
+ resolveWithCodec
79
+ }).then((result) => {
80
+ return emitObservedNavigationAfterEach === null || emitObservedNavigationAfterEach === void 0 ? void 0 : emitObservedNavigationAfterEach(result);
81
+ });
82
+ }
83
+ route = createRouteStateController({
84
+ beforeRouteStateSync,
85
+ resolveRoute: enrichRouteRecordState
86
+ }).route;
87
+ function resolve(to) {
88
+ return resolveWithCodec(to, route.path);
89
+ }
90
+ const navigationResultController = createNavigationResultController({
91
+ afterEachHooks,
92
+ errorHandlers,
93
+ nativeRouter,
94
+ rejectOnError
95
+ });
96
+ emitObservedNavigationAfterEach = navigationResultController.emitNavigationAfterEach;
97
+ const navigationApi = createNavigationApi({
98
+ nativeRouter,
99
+ route,
100
+ routeResolveCodec,
101
+ namedRouteLookup,
102
+ beforeEachGuards,
103
+ beforeResolveGuards,
104
+ maxRedirects,
105
+ tabBarPathSet,
106
+ resolveWithCodec,
107
+ settleNavigationResult: navigationResultController.settleNavigationResult
108
+ });
109
+ async function runManagedNavigation(navigation) {
110
+ managedNavigationCount += 1;
111
+ try {
112
+ return await navigation();
113
+ } finally {
114
+ managedNavigationCount -= 1;
115
+ }
116
+ }
117
+ function beforeEach(guard) {
118
+ beforeEachGuards.add(guard);
119
+ return () => {
120
+ beforeEachGuards.delete(guard);
121
+ };
122
+ }
123
+ function beforeResolve(guard) {
124
+ beforeResolveGuards.add(guard);
125
+ return () => {
126
+ beforeResolveGuards.delete(guard);
127
+ };
128
+ }
129
+ function afterEach(hook) {
130
+ afterEachHooks.add(hook);
131
+ return () => {
132
+ afterEachHooks.delete(hook);
133
+ };
134
+ }
135
+ function onError(handler) {
136
+ errorHandlers.add(handler);
137
+ return () => {
138
+ errorHandlers.delete(handler);
139
+ };
140
+ }
141
+ const router = {
142
+ nativeRouter,
143
+ options: routerOptions,
144
+ currentRoute: route,
145
+ install(app) {
146
+ var _config;
147
+ setActiveRouter(router);
148
+ const globalProperties = app === null || app === void 0 || (_config = app.config) === null || _config === void 0 ? void 0 : _config.globalProperties;
149
+ if (globalProperties) globalProperties.$router = router;
150
+ },
151
+ resolve,
152
+ isReady() {
153
+ return readyPromise;
154
+ },
155
+ push: (to) => runManagedNavigation(() => navigationApi.push(to)),
156
+ replace: (to) => runManagedNavigation(() => navigationApi.replace(to)),
157
+ back: (delta) => runManagedNavigation(() => navigationApi.back(delta)),
158
+ go: (delta) => runManagedNavigation(() => navigationApi.go(delta)),
159
+ forward: () => runManagedNavigation(() => navigationApi.forward()),
160
+ hasRoute: routeRegistry.hasRoute,
161
+ getRoutes: routeRegistry.getRoutes,
162
+ addRoute: routeRegistry.addRoute,
163
+ removeRoute: routeRegistry.removeRoute,
164
+ clearRoutes: routeRegistry.clearRoutes,
165
+ beforeEach,
166
+ beforeResolve,
167
+ afterEach,
168
+ onError
169
+ };
170
+ setActiveRouter(router);
171
+ return router;
172
+ }
173
+
174
+ //#endregion
175
+ export { createRouter };
176
+ //# sourceMappingURL=createRouter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createRouter.mjs","names":[],"sources":["../../../src/router/createRouter.ts"],"sourcesContent":["import type { RouteResolveCodec } from '../routerInternal/shared'\nimport type { NavigationRunResult } from './navigationResult'\nimport type { RouteStateSyncPayload } from './routeSync'\nimport type {\n NavigationAfterEach,\n NavigationErrorHandler,\n NavigationGuard,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n RouterNavigation,\n UseRouterOptions,\n} from './types'\nimport {\n cloneRouteMeta,\n cloneRouteParams,\n createNamedRouteLookup,\n createRouterOptionsSnapshot,\n mergeMatchedRouteMeta,\n normalizeRouteRecordMatched,\n parseQuery,\n resolveMatchedRouteRecord,\n resolveNamedRouteLocation,\n resolvePath,\n resolveRouteOptionEntries,\n snapshotRouteLocation,\n stringifyQuery,\n warnDuplicateRouteEntries,\n} from '../routerInternal/shared'\nimport { getMiniProgramGlobalObject } from '../runtime/platform'\nimport { runBackNavigationGuards } from './backNavigation'\nimport { setActiveRouter } from './instance'\nimport { createNavigationApi } from './navigationApi'\nimport { createNavigationResultController } from './navigationResult'\nimport { resolveRouteLocation } from './resolve'\nimport { createRouteRegistry } from './routeRegistry'\nimport { installRouteStateSyncOnNativeRouter } from './routeSync'\nimport { createRouteStateController, useNativeRouter } from './useRoute'\n\n/**\n * @description 创建高阶路由导航器(对齐 Vue Router 的 createRouter 心智)\n */\nexport function createRouter(options: UseRouterOptions = {}): RouterNavigation {\n const nativeRouter = useNativeRouter()\n installRouteStateSyncOnNativeRouter(getMiniProgramGlobalObject())\n const beforeEachGuards = new Set<NavigationGuard>()\n const beforeResolveGuards = new Set<NavigationGuard>()\n const afterEachHooks = new Set<NavigationAfterEach>()\n const errorHandlers = new Set<NavigationErrorHandler>()\n const maxRedirects = options.maxRedirects ?? 10\n const paramsMode = options.paramsMode ?? 'loose'\n const rejectOnError = options.rejectOnError ?? true\n const routeResolveCodec: RouteResolveCodec = {\n parseQuery: options.parseQuery ?? parseQuery,\n stringifyQuery: options.stringifyQuery ?? stringifyQuery,\n }\n const readyPromise = Promise.resolve()\n const routeEntries = resolveRouteOptionEntries(options)\n warnDuplicateRouteEntries(routeEntries)\n const namedRouteLookup = createNamedRouteLookup(routeEntries)\n const normalizedTabBarEntries = (options.tabBarEntries ?? [])\n .map(path => resolvePath(path, ''))\n .filter(Boolean)\n const tabBarPathSet = new Set(normalizedTabBarEntries)\n const routeRegistry = createRouteRegistry(namedRouteLookup)\n let managedNavigationCount = 0\n const routerOptions = createRouterOptionsSnapshot(\n normalizedTabBarEntries,\n routeRegistry.getRoutes(),\n paramsMode,\n maxRedirects,\n routeResolveCodec,\n rejectOnError,\n )\n\n function enrichRouteRecordState(routeLocation: RouteLocationNormalizedLoaded): RouteLocationNormalizedLoaded {\n const resolved = { ...routeLocation }\n resolved.href = resolved.fullPath\n const matchedResult = resolveMatchedRouteRecord(resolved, namedRouteLookup)\n if (matchedResult) {\n const matchedRecord = matchedResult.record\n if (resolved.name === undefined) {\n resolved.name = matchedRecord.name\n }\n const mergedRouteMeta = mergeMatchedRouteMeta(matchedResult.matchedRecords)\n if (mergedRouteMeta !== undefined) {\n resolved.meta = cloneRouteMeta(mergedRouteMeta)\n }\n if (matchedResult.params && Object.keys(resolved.params).length === 0) {\n resolved.params = cloneRouteParams(matchedResult.params)\n }\n resolved.matched = matchedResult.matchedRecords.map((record, index, records) => {\n const leafMatchedPath = index === records.length - 1\n ? matchedResult.matchedPath\n : undefined\n return normalizeRouteRecordMatched(record, leafMatchedPath)\n })\n }\n else {\n resolved.matched = []\n }\n return resolved\n }\n\n function resolveWithCodec(to: RouteLocationRaw, currentPath: string): RouteLocationNormalizedLoaded {\n const rawTo = typeof to === 'string'\n ? to\n : resolveNamedRouteLocation(to, namedRouteLookup, paramsMode)\n return enrichRouteRecordState(resolveRouteLocation(rawTo, currentPath, routeResolveCodec))\n }\n\n let route: Readonly<RouteLocationNormalizedLoaded>\n let emitObservedNavigationAfterEach: ((result: NavigationRunResult) => Promise<void>) | undefined\n\n function isExternalBackSync(payload: RouteStateSyncPayload): boolean {\n return payload.source === 'page'\n || (payload.source === 'native' && payload.method === 'navigateBack')\n }\n\n function beforeRouteStateSync(\n nextRoute: RouteLocationNormalizedLoaded,\n payload: RouteStateSyncPayload,\n ) {\n if (\n managedNavigationCount > 0\n || !isExternalBackSync(payload)\n || nextRoute.fullPath === route.fullPath\n ) {\n return\n }\n\n const from = snapshotRouteLocation(route)\n void runBackNavigationGuards({\n target: nextRoute,\n from,\n nativeRouter,\n beforeEachGuards,\n beforeResolveGuards,\n resolveWithCodec,\n }).then((result) => {\n return emitObservedNavigationAfterEach?.(result)\n })\n }\n\n const routeController = createRouteStateController({\n beforeRouteStateSync,\n resolveRoute: enrichRouteRecordState,\n })\n route = routeController.route\n\n function resolve(to: RouteLocationRaw): RouteLocationNormalizedLoaded {\n return resolveWithCodec(to, route.path)\n }\n\n const navigationResultController = createNavigationResultController({\n afterEachHooks,\n errorHandlers,\n nativeRouter,\n rejectOnError,\n })\n emitObservedNavigationAfterEach = navigationResultController.emitNavigationAfterEach\n\n const navigationApi = createNavigationApi({\n nativeRouter,\n route,\n routeResolveCodec,\n namedRouteLookup,\n beforeEachGuards,\n beforeResolveGuards,\n maxRedirects,\n tabBarPathSet,\n resolveWithCodec,\n settleNavigationResult: navigationResultController.settleNavigationResult,\n })\n\n async function runManagedNavigation<T>(navigation: () => Promise<T>): Promise<T> {\n managedNavigationCount += 1\n try {\n return await navigation()\n }\n finally {\n managedNavigationCount -= 1\n }\n }\n\n function beforeEach(guard: NavigationGuard): () => void {\n beforeEachGuards.add(guard)\n return () => {\n beforeEachGuards.delete(guard)\n }\n }\n\n function beforeResolve(guard: NavigationGuard): () => void {\n beforeResolveGuards.add(guard)\n return () => {\n beforeResolveGuards.delete(guard)\n }\n }\n\n function afterEach(hook: NavigationAfterEach): () => void {\n afterEachHooks.add(hook)\n return () => {\n afterEachHooks.delete(hook)\n }\n }\n\n function onError(handler: NavigationErrorHandler): () => void {\n errorHandlers.add(handler)\n return () => {\n errorHandlers.delete(handler)\n }\n }\n\n const router: RouterNavigation = {\n nativeRouter,\n options: routerOptions,\n currentRoute: route,\n install(app?: unknown): void {\n setActiveRouter(router)\n const globalProperties = (app as { config?: { globalProperties?: Record<string, unknown> } } | undefined)?.config?.globalProperties\n if (globalProperties) {\n globalProperties.$router = router\n }\n },\n resolve,\n isReady(): Promise<void> {\n return readyPromise\n },\n push: to => runManagedNavigation(() => navigationApi.push(to)),\n replace: to => runManagedNavigation(() => navigationApi.replace(to)),\n back: delta => runManagedNavigation(() => navigationApi.back(delta)),\n go: delta => runManagedNavigation(() => navigationApi.go(delta)),\n forward: () => runManagedNavigation(() => navigationApi.forward()),\n hasRoute: routeRegistry.hasRoute,\n getRoutes: routeRegistry.getRoutes,\n addRoute: routeRegistry.addRoute,\n removeRoute: routeRegistry.removeRoute,\n clearRoutes: routeRegistry.clearRoutes,\n beforeEach,\n beforeResolve,\n afterEach,\n onError,\n }\n\n setActiveRouter(router)\n return router\n}\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { injectGlobal, provideGlobal } from "../runtime/provide.mjs";
2
+
3
+ //#region src/router/instance.ts
4
+ const ROUTER_INSTANCE_KEY = Symbol("wevu.router.instance");
5
+ let activeRouter;
6
+ function setActiveRouter(router) {
7
+ activeRouter = router;
8
+ provideGlobal(ROUTER_INSTANCE_KEY, router);
9
+ }
10
+ function getActiveRouter() {
11
+ var _activeRouter;
12
+ return (_activeRouter = activeRouter) !== null && _activeRouter !== void 0 ? _activeRouter : injectGlobal(ROUTER_INSTANCE_KEY, void 0);
13
+ }
14
+
15
+ //#endregion
16
+ export { getActiveRouter, setActiveRouter };
17
+ //# sourceMappingURL=instance.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance.mjs","names":[],"sources":["../../../src/router/instance.ts"],"sourcesContent":["import type { RouterNavigation } from './types'\nimport { injectGlobal, provideGlobal } from '../runtime/provide'\n\nconst ROUTER_INSTANCE_KEY = Symbol('wevu.router.instance')\n\nlet activeRouter: RouterNavigation | undefined\n\nexport function setActiveRouter(router: RouterNavigation) {\n activeRouter = router\n provideGlobal(ROUTER_INSTANCE_KEY, router)\n}\n\nexport function clearActiveRouter() {\n activeRouter = undefined\n provideGlobal(ROUTER_INSTANCE_KEY, undefined)\n}\n\nexport function getActiveRouter() {\n return activeRouter ?? injectGlobal<RouterNavigation | undefined>(ROUTER_INSTANCE_KEY, undefined)\n}\n"],"mappings":";;;AAGA,MAAM,sBAAsB,OAAO,sBAAsB;AAEzD,IAAI;AAEJ,SAAgB,gBAAgB,QAA0B;CACxD,eAAe;CACf,cAAc,qBAAqB,MAAM;AAC3C;AAOA,SAAgB,kBAAkB;;CAChC,wBAAO,qEAAgB,aAA2C,qBAAqB,MAAS;AAClG"}
@@ -0,0 +1,94 @@
1
+ import { snapshotRouteLocation } from "../routerInternal/snapshots.mjs";
2
+ import { NavigationFailureType } from "./types.mjs";
3
+ import { createNavigationFailure, executeNavigationMethod, isNavigationFailure } from "./navigationCore.mjs";
4
+ import { createNavigationRunResult } from "./navigationResult.mjs";
5
+ import { resolveBackNavigationTarget, runBackNavigationGuards } from "./backNavigation.mjs";
6
+ import { createForwardNotSupportedFailure } from "./navigationTargetHelpers.mjs";
7
+ import { navigateWithTarget } from "./navigationTarget.mjs";
8
+
9
+ //#region src/router/navigationApi.ts
10
+ function createNavigationApi(options) {
11
+ const { nativeRouter, route, routeResolveCodec, namedRouteLookup, beforeEachGuards, beforeResolveGuards, maxRedirects, tabBarPathSet, resolveWithCodec, settleNavigationResult } = options;
12
+ async function push(to) {
13
+ const from = snapshotRouteLocation(route);
14
+ let target;
15
+ try {
16
+ target = resolveWithCodec(to, from.path);
17
+ } catch (error) {
18
+ return settleNavigationResult(createNavigationRunResult("push", from, void 0, createNavigationFailure(NavigationFailureType.unknown, void 0, from, error)));
19
+ }
20
+ const result = await navigateWithTarget({
21
+ mode: "push",
22
+ target,
23
+ from,
24
+ nativeRouter,
25
+ routeResolveCodec,
26
+ namedRouteLookup,
27
+ beforeEachGuards,
28
+ beforeResolveGuards,
29
+ maxRedirects,
30
+ tabBarPathSet,
31
+ resolveWithCodec
32
+ });
33
+ return settleNavigationResult(result);
34
+ }
35
+ async function replace(to) {
36
+ const from = snapshotRouteLocation(route);
37
+ let target;
38
+ try {
39
+ target = resolveWithCodec(to, from.path);
40
+ } catch (error) {
41
+ return settleNavigationResult(createNavigationRunResult("replace", from, void 0, createNavigationFailure(NavigationFailureType.unknown, void 0, from, error)));
42
+ }
43
+ const result = await navigateWithTarget({
44
+ mode: "replace",
45
+ target,
46
+ from,
47
+ nativeRouter,
48
+ routeResolveCodec,
49
+ namedRouteLookup,
50
+ beforeEachGuards,
51
+ beforeResolveGuards,
52
+ maxRedirects,
53
+ tabBarPathSet,
54
+ resolveWithCodec
55
+ });
56
+ return settleNavigationResult(result);
57
+ }
58
+ async function back(delta = 1) {
59
+ const from = snapshotRouteLocation(route);
60
+ const target = resolveBackNavigationTarget(delta, from, resolveWithCodec);
61
+ const guardResult = await runBackNavigationGuards({
62
+ target,
63
+ from,
64
+ nativeRouter,
65
+ beforeEachGuards,
66
+ beforeResolveGuards,
67
+ resolveWithCodec
68
+ });
69
+ if (guardResult.failure) return settleNavigationResult(guardResult);
70
+ const result = await executeNavigationMethod(nativeRouter.navigateBack, { delta }, target, from);
71
+ const runResult = isNavigationFailure(result) ? createNavigationRunResult("back", from, target, result) : guardResult;
72
+ return settleNavigationResult(runResult);
73
+ }
74
+ async function go(delta) {
75
+ if (delta < 0) return back(Math.abs(delta));
76
+ if (delta === 0) return;
77
+ const from = snapshotRouteLocation(route);
78
+ return settleNavigationResult(createNavigationRunResult("back", from, void 0, createForwardNotSupportedFailure(from)));
79
+ }
80
+ async function forward() {
81
+ return go(1);
82
+ }
83
+ return {
84
+ push,
85
+ replace,
86
+ back,
87
+ go,
88
+ forward
89
+ };
90
+ }
91
+
92
+ //#endregion
93
+ export { createNavigationApi };
94
+ //# sourceMappingURL=navigationApi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationApi.mjs","names":[],"sources":["../../../src/router/navigationApi.ts"],"sourcesContent":["import type {\n NamedRouteLookup,\n RouteResolveCodec,\n} from '../routerInternal/shared'\nimport type { NavigationRunResult } from './navigationResult'\nimport type {\n NavigationFailure,\n NavigationGuard,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n} from './types'\nimport { snapshotRouteLocation } from '../routerInternal/shared'\nimport { resolveBackNavigationTarget, runBackNavigationGuards } from './backNavigation'\nimport {\n createNavigationFailure,\n executeNavigationMethod,\n isNavigationFailure,\n} from './navigationCore'\nimport { createNavigationRunResult } from './navigationResult'\nimport { navigateWithTarget } from './navigationTarget'\nimport { createForwardNotSupportedFailure } from './navigationTargetHelpers'\nimport { NavigationFailureType } from './types'\n\ninterface CreateNavigationApiOptions {\n nativeRouter: Record<string, any>\n route: Readonly<RouteLocationNormalizedLoaded>\n routeResolveCodec: RouteResolveCodec\n namedRouteLookup: NamedRouteLookup\n beforeEachGuards: ReadonlySet<NavigationGuard>\n beforeResolveGuards: ReadonlySet<NavigationGuard>\n maxRedirects: number\n tabBarPathSet: ReadonlySet<string>\n resolveWithCodec: (to: RouteLocationRaw, currentPath: string) => RouteLocationNormalizedLoaded\n settleNavigationResult: (result: NavigationRunResult) => Promise<void | NavigationFailure>\n}\n\nexport function createNavigationApi(options: CreateNavigationApiOptions) {\n const {\n nativeRouter,\n route,\n routeResolveCodec,\n namedRouteLookup,\n beforeEachGuards,\n beforeResolveGuards,\n maxRedirects,\n tabBarPathSet,\n resolveWithCodec,\n settleNavigationResult,\n } = options\n\n async function push(to: RouteLocationRaw): Promise<void | NavigationFailure> {\n const from = snapshotRouteLocation(route)\n let target: RouteLocationNormalizedLoaded\n try {\n target = resolveWithCodec(to, from.path)\n }\n catch (error) {\n return settleNavigationResult(\n createNavigationRunResult(\n 'push',\n from,\n undefined,\n createNavigationFailure(NavigationFailureType.unknown, undefined, from, error),\n ),\n )\n }\n const result = await navigateWithTarget({\n mode: 'push',\n target,\n from,\n nativeRouter,\n routeResolveCodec,\n namedRouteLookup,\n beforeEachGuards,\n beforeResolveGuards,\n maxRedirects,\n tabBarPathSet,\n resolveWithCodec,\n })\n return settleNavigationResult(result)\n }\n\n async function replace(to: RouteLocationRaw): Promise<void | NavigationFailure> {\n const from = snapshotRouteLocation(route)\n let target: RouteLocationNormalizedLoaded\n try {\n target = resolveWithCodec(to, from.path)\n }\n catch (error) {\n return settleNavigationResult(\n createNavigationRunResult(\n 'replace',\n from,\n undefined,\n createNavigationFailure(NavigationFailureType.unknown, undefined, from, error),\n ),\n )\n }\n const result = await navigateWithTarget({\n mode: 'replace',\n target,\n from,\n nativeRouter,\n routeResolveCodec,\n namedRouteLookup,\n beforeEachGuards,\n beforeResolveGuards,\n maxRedirects,\n tabBarPathSet,\n resolveWithCodec,\n })\n return settleNavigationResult(result)\n }\n\n async function back(delta = 1): Promise<void | NavigationFailure> {\n const from = snapshotRouteLocation(route)\n const target = resolveBackNavigationTarget(delta, from, resolveWithCodec)\n const guardResult = await runBackNavigationGuards({\n target,\n from,\n nativeRouter: nativeRouter as any,\n beforeEachGuards,\n beforeResolveGuards,\n resolveWithCodec,\n })\n if (guardResult.failure) {\n return settleNavigationResult(guardResult)\n }\n\n const result = await executeNavigationMethod(\n nativeRouter.navigateBack as (options: Record<string, any>) => unknown,\n { delta },\n target,\n from,\n )\n const runResult = isNavigationFailure(result)\n ? createNavigationRunResult('back', from, target, result)\n : guardResult\n return settleNavigationResult(runResult)\n }\n\n async function go(delta: number): Promise<void | NavigationFailure> {\n if (delta < 0) {\n return back(Math.abs(delta))\n }\n if (delta === 0) {\n return undefined\n }\n const from = snapshotRouteLocation(route)\n return settleNavigationResult(\n createNavigationRunResult(\n 'back',\n from,\n undefined,\n createForwardNotSupportedFailure(from),\n ),\n )\n }\n\n async function forward(): Promise<void | NavigationFailure> {\n return go(1)\n }\n\n return {\n push,\n replace,\n back,\n go,\n forward,\n }\n}\n"],"mappings":";;;;;;;;;AAoCA,SAAgB,oBAAoB,SAAqC;CACvE,MAAM,EACJ,cACA,OACA,mBACA,kBACA,kBACA,qBACA,cACA,eACA,kBACA,2BACE;CAEJ,eAAe,KAAK,IAAyD;EAC3E,MAAM,OAAO,sBAAsB,KAAK;EACxC,IAAI;EACJ,IAAI;GACF,SAAS,iBAAiB,IAAI,KAAK,IAAI;EACzC,SACO,OAAO;GACZ,OAAO,uBACL,0BACE,QACA,MACA,QACA,wBAAwB,sBAAsB,SAAS,QAAW,MAAM,KAAK,CAC/E,CACF;EACF;EACA,MAAM,SAAS,MAAM,mBAAmB;GACtC,MAAM;GACN;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EACD,OAAO,uBAAuB,MAAM;CACtC;CAEA,eAAe,QAAQ,IAAyD;EAC9E,MAAM,OAAO,sBAAsB,KAAK;EACxC,IAAI;EACJ,IAAI;GACF,SAAS,iBAAiB,IAAI,KAAK,IAAI;EACzC,SACO,OAAO;GACZ,OAAO,uBACL,0BACE,WACA,MACA,QACA,wBAAwB,sBAAsB,SAAS,QAAW,MAAM,KAAK,CAC/E,CACF;EACF;EACA,MAAM,SAAS,MAAM,mBAAmB;GACtC,MAAM;GACN;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EACD,OAAO,uBAAuB,MAAM;CACtC;CAEA,eAAe,KAAK,QAAQ,GAAsC;EAChE,MAAM,OAAO,sBAAsB,KAAK;EACxC,MAAM,SAAS,4BAA4B,OAAO,MAAM,gBAAgB;EACxE,MAAM,cAAc,MAAM,wBAAwB;GAChD;GACA;GACc;GACd;GACA;GACA;EACF,CAAC;EACD,IAAI,YAAY,SACd,OAAO,uBAAuB,WAAW;EAG3C,MAAM,SAAS,MAAM,wBACnB,aAAa,cACb,EAAE,MAAM,GACR,QACA,IACF;EACA,MAAM,YAAY,oBAAoB,MAAM,IACxC,0BAA0B,QAAQ,MAAM,QAAQ,MAAM,IACtD;EACJ,OAAO,uBAAuB,SAAS;CACzC;CAEA,eAAe,GAAG,OAAkD;EAClE,IAAI,QAAQ,GACV,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC;EAE7B,IAAI,UAAU,GACZ;EAEF,MAAM,OAAO,sBAAsB,KAAK;EACxC,OAAO,uBACL,0BACE,QACA,MACA,QACA,iCAAiC,IAAI,CACvC,CACF;CACF;CAEA,eAAe,UAA6C;EAC1D,OAAO,GAAG,CAAC;CACb;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1,139 @@
1
+ import { NavigationFailureType } from "./types.mjs";
2
+
3
+ //#region src/router/navigationCore.ts
4
+ const DUPLICATED_RE = /already|same|duplicat|重复/;
5
+ const CANCELLED_RE = /cancel|取消/;
6
+ const ABORTED_RE = /abort|interrupt|中断/;
7
+ function normalizeNavigationErrorMessage(error) {
8
+ if (typeof error === "string") return error;
9
+ if (error && typeof error === "object") {
10
+ const message = error.errMsg;
11
+ if (typeof message === "string") return message;
12
+ if (error instanceof Error) return error.message;
13
+ }
14
+ return "";
15
+ }
16
+ function resolveNavigationFailureType(error) {
17
+ const normalizedMessage = normalizeNavigationErrorMessage(error).toLowerCase();
18
+ if (DUPLICATED_RE.test(normalizedMessage)) return NavigationFailureType.duplicated;
19
+ if (CANCELLED_RE.test(normalizedMessage)) return NavigationFailureType.cancelled;
20
+ if (ABORTED_RE.test(normalizedMessage)) return NavigationFailureType.aborted;
21
+ return NavigationFailureType.unknown;
22
+ }
23
+ function createNavigationFailure(type, to, from, cause) {
24
+ const message = normalizeNavigationErrorMessage(cause) || "Navigation failed";
25
+ const error = new Error(message);
26
+ error.__wevuNavigationFailure = true;
27
+ error.type = type;
28
+ error.to = to;
29
+ error.from = from;
30
+ error.cause = cause;
31
+ return error;
32
+ }
33
+ function isNavigationFailure(error, type) {
34
+ if (!error || typeof error !== "object") return false;
35
+ const navigationError = error;
36
+ if (navigationError.__wevuNavigationFailure !== true) return false;
37
+ if (type === void 0) return true;
38
+ return navigationError.type === type;
39
+ }
40
+ function isNavigationRedirectCandidate(value) {
41
+ if (!value || typeof value !== "object") return false;
42
+ return "to" in value;
43
+ }
44
+ function isRouteLocationRawCandidate(value) {
45
+ if (typeof value === "string") return true;
46
+ if (!value || typeof value !== "object") return false;
47
+ const candidate = value;
48
+ return "path" in candidate || "fullPath" in candidate || "query" in candidate || "hash" in candidate || "name" in candidate || "params" in candidate;
49
+ }
50
+ async function runNavigationGuards(guards, context, resolveRoute) {
51
+ for (const guard of guards) try {
52
+ const result = await guard(context.to, context.from, context);
53
+ if (isNavigationFailure(result)) return {
54
+ status: "failure",
55
+ failure: result
56
+ };
57
+ if (result === false) return {
58
+ status: "failure",
59
+ failure: createNavigationFailure(NavigationFailureType.aborted, context.to, context.from, "Navigation aborted by guard")
60
+ };
61
+ if (isNavigationRedirectCandidate(result)) {
62
+ if (!context.to) return {
63
+ status: "failure",
64
+ failure: createNavigationFailure(NavigationFailureType.aborted, context.to, context.from, "Redirect is not supported in back navigation guards")
65
+ };
66
+ return {
67
+ status: "redirect",
68
+ target: resolveRoute(result.to, context.to.path),
69
+ replace: result.replace
70
+ };
71
+ }
72
+ if (isRouteLocationRawCandidate(result)) {
73
+ if (!context.to) return {
74
+ status: "failure",
75
+ failure: createNavigationFailure(NavigationFailureType.aborted, context.to, context.from, "Redirect is not supported in back navigation guards")
76
+ };
77
+ return {
78
+ status: "redirect",
79
+ target: resolveRoute(result, context.to.path)
80
+ };
81
+ }
82
+ } catch (error) {
83
+ return {
84
+ status: "failure",
85
+ failure: createNavigationFailure(NavigationFailureType.aborted, context.to, context.from, error)
86
+ };
87
+ }
88
+ return { status: "continue" };
89
+ }
90
+ function executeNavigationMethod(method, options, to, from) {
91
+ return new Promise((resolve) => {
92
+ let settled = false;
93
+ const finalize = (result) => {
94
+ if (settled) return;
95
+ settled = true;
96
+ resolve(result);
97
+ };
98
+ try {
99
+ const maybePromise = method({
100
+ ...options,
101
+ success: () => finalize(),
102
+ fail: (error) => {
103
+ finalize(createNavigationFailure(resolveNavigationFailureType(error), to, from, error));
104
+ }
105
+ });
106
+ if (maybePromise && typeof maybePromise.then === "function") maybePromise.then(() => finalize(), (error) => finalize(createNavigationFailure(resolveNavigationFailureType(error), to, from, error)));
107
+ } catch (error) {
108
+ finalize(createNavigationFailure(resolveNavigationFailureType(error), to, from, error));
109
+ }
110
+ });
111
+ }
112
+ async function runAfterEachHooks(hooks, context) {
113
+ for (const hook of hooks) try {
114
+ await hook(context.to, context.from, context.failure, context);
115
+ } catch (_unused) {}
116
+ }
117
+ async function runNavigationErrorHooks(handlers, error, context) {
118
+ for (const handler of handlers) try {
119
+ await handler(error, context);
120
+ } catch (_unused2) {}
121
+ }
122
+ function isNativeFailureLikeError(value) {
123
+ if (!value || typeof value !== "object") return false;
124
+ return typeof value.errMsg === "string";
125
+ }
126
+ function shouldEmitNavigationError(failure) {
127
+ if (failure.type === NavigationFailureType.unknown) return true;
128
+ if (failure.cause instanceof Error) return true;
129
+ if (failure.type === NavigationFailureType.aborted && failure.cause !== void 0) {
130
+ if (typeof failure.cause === "string") return false;
131
+ if (isNativeFailureLikeError(failure.cause)) return false;
132
+ return true;
133
+ }
134
+ return false;
135
+ }
136
+
137
+ //#endregion
138
+ export { createNavigationFailure, executeNavigationMethod, isNavigationFailure, isNavigationRedirectCandidate, runAfterEachHooks, runNavigationErrorHooks, runNavigationGuards, shouldEmitNavigationError };
139
+ //# sourceMappingURL=navigationCore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationCore.mjs","names":[],"sources":["../../../src/router/navigationCore.ts"],"sourcesContent":["import type {\n NavigationAfterEach,\n NavigationAfterEachContext,\n NavigationErrorContext,\n NavigationErrorHandler,\n NavigationFailure,\n NavigationFailureTypeValue,\n NavigationGuard,\n NavigationGuardContext,\n NavigationRedirect,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n} from './types'\nimport { NavigationFailureType } from './types'\n\nconst DUPLICATED_RE = /already|same|duplicat|重复/\nconst CANCELLED_RE = /cancel|取消/\nconst ABORTED_RE = /abort|interrupt|中断/\n\nfunction normalizeNavigationErrorMessage(error: unknown): string {\n if (typeof error === 'string') {\n return error\n }\n if (error && typeof error === 'object') {\n const message = (error as Record<string, unknown>).errMsg\n if (typeof message === 'string') {\n return message\n }\n if (error instanceof Error) {\n return error.message\n }\n }\n return ''\n}\n\nfunction resolveNavigationFailureType(error: unknown): NavigationFailureTypeValue {\n const normalizedMessage = normalizeNavigationErrorMessage(error).toLowerCase()\n if (DUPLICATED_RE.test(normalizedMessage)) {\n return NavigationFailureType.duplicated\n }\n if (CANCELLED_RE.test(normalizedMessage)) {\n return NavigationFailureType.cancelled\n }\n if (ABORTED_RE.test(normalizedMessage)) {\n return NavigationFailureType.aborted\n }\n return NavigationFailureType.unknown\n}\n\nexport function createNavigationFailure(\n type: NavigationFailureTypeValue,\n to?: RouteLocationNormalizedLoaded,\n from?: RouteLocationNormalizedLoaded,\n cause?: unknown,\n): NavigationFailure {\n const message = normalizeNavigationErrorMessage(cause) || 'Navigation failed'\n const error = new Error(message) as NavigationFailure\n ;(error as { __wevuNavigationFailure: true }).__wevuNavigationFailure = true\n ;(error as { type: NavigationFailureTypeValue }).type = type\n ;(error as { to?: RouteLocationNormalizedLoaded }).to = to\n ;(error as { from?: RouteLocationNormalizedLoaded }).from = from\n ;(error as { cause?: unknown }).cause = cause\n return error\n}\n\nexport function isNavigationFailure(error: unknown, type?: NavigationFailureTypeValue): error is NavigationFailure {\n if (!error || typeof error !== 'object') {\n return false\n }\n const navigationError = error as Partial<NavigationFailure>\n if (navigationError.__wevuNavigationFailure !== true) {\n return false\n }\n if (type === undefined) {\n return true\n }\n return navigationError.type === type\n}\n\ninterface GuardPipelineContinue {\n status: 'continue'\n}\n\ninterface GuardPipelineFailure {\n status: 'failure'\n failure: NavigationFailure\n}\n\ninterface GuardPipelineRedirect {\n status: 'redirect'\n target: RouteLocationNormalizedLoaded\n replace?: boolean\n}\n\nexport type GuardPipelineResult = GuardPipelineContinue | GuardPipelineFailure | GuardPipelineRedirect\n\nexport function isNavigationRedirectCandidate(value: unknown): value is NavigationRedirect {\n if (!value || typeof value !== 'object') {\n return false\n }\n return 'to' in (value as Record<string, unknown>)\n}\n\nfunction isRouteLocationRawCandidate(value: unknown): value is RouteLocationRaw {\n if (typeof value === 'string') {\n return true\n }\n if (!value || typeof value !== 'object') {\n return false\n }\n const candidate = value as Record<string, unknown>\n return 'path' in candidate\n || 'fullPath' in candidate\n || 'query' in candidate\n || 'hash' in candidate\n || 'name' in candidate\n || 'params' in candidate\n}\n\nexport async function runNavigationGuards(\n guards: ReadonlySet<NavigationGuard>,\n context: NavigationGuardContext,\n resolveRoute: (to: RouteLocationRaw, currentPath: string) => RouteLocationNormalizedLoaded,\n): Promise<GuardPipelineResult> {\n for (const guard of guards) {\n try {\n const result = await guard(context.to, context.from, context)\n if (isNavigationFailure(result)) {\n return {\n status: 'failure',\n failure: result,\n }\n }\n if (result === false) {\n return {\n status: 'failure',\n failure: createNavigationFailure(\n NavigationFailureType.aborted,\n context.to,\n context.from,\n 'Navigation aborted by guard',\n ),\n }\n }\n if (isNavigationRedirectCandidate(result)) {\n if (!context.to) {\n return {\n status: 'failure',\n failure: createNavigationFailure(\n NavigationFailureType.aborted,\n context.to,\n context.from,\n 'Redirect is not supported in back navigation guards',\n ),\n }\n }\n return {\n status: 'redirect',\n target: resolveRoute(result.to, context.to.path),\n replace: result.replace,\n }\n }\n if (isRouteLocationRawCandidate(result)) {\n if (!context.to) {\n return {\n status: 'failure',\n failure: createNavigationFailure(\n NavigationFailureType.aborted,\n context.to,\n context.from,\n 'Redirect is not supported in back navigation guards',\n ),\n }\n }\n return {\n status: 'redirect',\n target: resolveRoute(result, context.to.path),\n }\n }\n }\n catch (error) {\n return {\n status: 'failure',\n failure: createNavigationFailure(NavigationFailureType.aborted, context.to, context.from, error),\n }\n }\n }\n return { status: 'continue' }\n}\n\nexport function executeNavigationMethod(\n method: (options: Record<string, any>) => unknown,\n options: Record<string, any>,\n to?: RouteLocationNormalizedLoaded,\n from?: RouteLocationNormalizedLoaded,\n): Promise<void | NavigationFailure> {\n return new Promise((resolve) => {\n let settled = false\n const finalize = (result?: void | NavigationFailure) => {\n if (settled) {\n return\n }\n settled = true\n resolve(result)\n }\n\n try {\n const maybePromise = method({\n ...options,\n success: () => finalize(),\n fail: (error: unknown) => {\n finalize(createNavigationFailure(resolveNavigationFailureType(error), to, from, error))\n },\n })\n\n if (maybePromise && typeof (maybePromise as PromiseLike<unknown>).then === 'function') {\n ;(maybePromise as PromiseLike<unknown>).then(\n () => finalize(),\n error => finalize(createNavigationFailure(resolveNavigationFailureType(error), to, from, error)),\n )\n }\n }\n catch (error) {\n finalize(createNavigationFailure(resolveNavigationFailureType(error), to, from, error))\n }\n })\n}\n\nexport async function runAfterEachHooks(\n hooks: ReadonlySet<NavigationAfterEach>,\n context: NavigationAfterEachContext,\n) {\n for (const hook of hooks) {\n try {\n await hook(context.to, context.from, context.failure, context)\n }\n catch {\n // 忽略 afterEach hook 的异常,避免影响导航主流程。\n }\n }\n}\n\nexport async function runNavigationErrorHooks(\n handlers: ReadonlySet<NavigationErrorHandler>,\n error: unknown,\n context: NavigationErrorContext,\n) {\n for (const handler of handlers) {\n try {\n await handler(error, context)\n }\n catch {\n // 忽略 onError 回调中的异常,避免影响导航主流程。\n }\n }\n}\n\nfunction isNativeFailureLikeError(value: unknown): boolean {\n if (!value || typeof value !== 'object') {\n return false\n }\n const errMsg = (value as Record<string, unknown>).errMsg\n return typeof errMsg === 'string'\n}\n\nexport function shouldEmitNavigationError(failure: NavigationFailure): boolean {\n if (failure.type === NavigationFailureType.unknown) {\n return true\n }\n if (failure.cause instanceof Error) {\n return true\n }\n if (failure.type === NavigationFailureType.aborted && failure.cause !== undefined) {\n if (typeof failure.cause === 'string') {\n return false\n }\n if (isNativeFailureLikeError(failure.cause)) {\n return false\n }\n return true\n }\n return false\n}\n"],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { notifyRouteStateSync } from "./routeSync.mjs";
2
+ import { runAfterEachHooks, runNavigationErrorHooks, shouldEmitNavigationError } from "./navigationCore.mjs";
3
+
4
+ //#region src/router/navigationResult.ts
5
+ function createNavigationRunResult(mode, from, to, failure) {
6
+ return {
7
+ mode,
8
+ from,
9
+ to,
10
+ failure
11
+ };
12
+ }
13
+ function createNavigationResultController(options) {
14
+ const { afterEachHooks, errorHandlers, nativeRouter, rejectOnError } = options;
15
+ async function emitNavigationAfterEach(result) {
16
+ await runAfterEachHooks(afterEachHooks, {
17
+ mode: result.mode,
18
+ to: result.to,
19
+ from: result.from,
20
+ nativeRouter,
21
+ failure: result.failure
22
+ });
23
+ if (result.failure && shouldEmitNavigationError(result.failure)) {
24
+ var _result$failure$cause;
25
+ await runNavigationErrorHooks(errorHandlers, (_result$failure$cause = result.failure.cause) !== null && _result$failure$cause !== void 0 ? _result$failure$cause : result.failure, {
26
+ mode: result.mode,
27
+ to: result.to,
28
+ from: result.from,
29
+ nativeRouter,
30
+ failure: result.failure
31
+ });
32
+ }
33
+ }
34
+ function shouldRejectNavigationFailure(failure) {
35
+ return rejectOnError && shouldEmitNavigationError(failure);
36
+ }
37
+ async function settleNavigationResult(result) {
38
+ if (!result.failure) notifyRouteStateSync(result.to ? {
39
+ route: result.to,
40
+ source: "router"
41
+ } : void 0);
42
+ await emitNavigationAfterEach(result);
43
+ if (result.failure && shouldRejectNavigationFailure(result.failure)) throw result.failure;
44
+ return result.failure;
45
+ }
46
+ return {
47
+ emitNavigationAfterEach,
48
+ settleNavigationResult
49
+ };
50
+ }
51
+
52
+ //#endregion
53
+ export { createNavigationResultController, createNavigationRunResult };
54
+ //# sourceMappingURL=navigationResult.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationResult.mjs","names":[],"sources":["../../../src/router/navigationResult.ts"],"sourcesContent":["import type { SetupContextRouter } from '../runtime/types/props'\nimport type {\n NavigationAfterEach,\n NavigationErrorHandler,\n NavigationFailure,\n NavigationMode,\n RouteLocationNormalizedLoaded,\n} from './types'\nimport { runAfterEachHooks, runNavigationErrorHooks, shouldEmitNavigationError } from './navigationCore'\nimport { notifyRouteStateSync } from './routeSync'\n\nexport interface NavigationRunResult {\n mode: NavigationMode\n from: RouteLocationNormalizedLoaded\n to?: RouteLocationNormalizedLoaded\n failure?: NavigationFailure\n}\n\nexport function createNavigationRunResult(\n mode: NavigationMode,\n from: RouteLocationNormalizedLoaded,\n to?: RouteLocationNormalizedLoaded,\n failure?: NavigationFailure,\n): NavigationRunResult {\n return {\n mode,\n from,\n to,\n failure,\n }\n}\n\nexport function createNavigationResultController(options: {\n afterEachHooks: ReadonlySet<NavigationAfterEach>\n errorHandlers: ReadonlySet<NavigationErrorHandler>\n nativeRouter: SetupContextRouter\n rejectOnError: boolean\n}) {\n const {\n afterEachHooks,\n errorHandlers,\n nativeRouter,\n rejectOnError,\n } = options\n\n async function emitNavigationAfterEach(result: NavigationRunResult): Promise<void> {\n await runAfterEachHooks(afterEachHooks, {\n mode: result.mode,\n to: result.to,\n from: result.from,\n nativeRouter,\n failure: result.failure,\n })\n\n if (result.failure && shouldEmitNavigationError(result.failure)) {\n await runNavigationErrorHooks(\n errorHandlers,\n result.failure.cause ?? result.failure,\n {\n mode: result.mode,\n to: result.to,\n from: result.from,\n nativeRouter,\n failure: result.failure,\n },\n )\n }\n }\n\n function shouldRejectNavigationFailure(failure: NavigationFailure): boolean {\n return rejectOnError && shouldEmitNavigationError(failure)\n }\n\n async function settleNavigationResult(result: NavigationRunResult): Promise<void | NavigationFailure> {\n if (!result.failure) {\n notifyRouteStateSync(result.to\n ? {\n route: result.to,\n source: 'router',\n }\n : undefined)\n }\n await emitNavigationAfterEach(result)\n if (result.failure && shouldRejectNavigationFailure(result.failure)) {\n throw result.failure\n }\n return result.failure\n }\n\n return {\n emitNavigationAfterEach,\n settleNavigationResult,\n }\n}\n"],"mappings":";;;;AAkBA,SAAgB,0BACd,MACA,MACA,IACA,SACqB;CACrB,OAAO;EACL;EACA;EACA;EACA;CACF;AACF;AAEA,SAAgB,iCAAiC,SAK9C;CACD,MAAM,EACJ,gBACA,eACA,cACA,kBACE;CAEJ,eAAe,wBAAwB,QAA4C;EACjF,MAAM,kBAAkB,gBAAgB;GACtC,MAAM,OAAO;GACb,IAAI,OAAO;GACX,MAAM,OAAO;GACb;GACA,SAAS,OAAO;EAClB,CAAC;EAED,IAAI,OAAO,WAAW,0BAA0B,OAAO,OAAO,GAAG;;GAC/D,MAAM,wBACJ,wCACA,OAAO,QAAQ,8EAAS,OAAO,SAC/B;IACE,MAAM,OAAO;IACb,IAAI,OAAO;IACX,MAAM,OAAO;IACb;IACA,SAAS,OAAO;GAClB,CACF;EACF;CACF;CAEA,SAAS,8BAA8B,SAAqC;EAC1E,OAAO,iBAAiB,0BAA0B,OAAO;CAC3D;CAEA,eAAe,uBAAuB,QAAgE;EACpG,IAAI,CAAC,OAAO,SACV,qBAAqB,OAAO,KACxB;GACE,OAAO,OAAO;GACd,QAAQ;EACV,IACA,MAAS;EAEf,MAAM,wBAAwB,MAAM;EACpC,IAAI,OAAO,WAAW,8BAA8B,OAAO,OAAO,GAChE,MAAM,OAAO;EAEf,OAAO,OAAO;CAChB;CAEA,OAAO;EACL;EACA;CACF;AACF"}