wevu 7.1.0 → 7.1.1

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 (351) hide show
  1. package/dist/alipay/jsx-runtime.d.mts +2 -3
  2. package/dist/dev/package.mjs +1 -1
  3. package/dist/dev/router/createRouter.mjs +16 -3
  4. package/dist/dev/router/createRouter.mjs.map +1 -1
  5. package/dist/dev/router/useRoute.mjs +23 -5
  6. package/dist/dev/router/useRoute.mjs.map +1 -1
  7. package/dist/dev/runtime/platform.mjs +18 -1
  8. package/dist/dev/runtime/platform.mjs.map +1 -1
  9. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +4 -2
  10. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -1
  11. package/dist/dev/runtime/templateRefTypes.d.mts +3 -3
  12. package/dist/dev/runtime/vueCompat/router.d.mts +5 -4
  13. package/dist/dev/runtime/vueCompat/router.mjs +18 -13
  14. package/dist/dev/runtime/vueCompat/router.mjs.map +1 -1
  15. package/dist/miniprogram/jsx-runtime.d.mts +2 -3
  16. package/dist/package.mjs +1 -1
  17. package/dist/router/createRouter.mjs +1 -1
  18. package/dist/router/useRoute.mjs +1 -1
  19. package/dist/runtime/platform.mjs +1 -1
  20. package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -1
  21. package/dist/runtime/templateRefTypes.d.mts +3 -3
  22. package/dist/runtime/vueCompat/router.d.mts +5 -4
  23. package/dist/runtime/vueCompat/router.mjs +1 -1
  24. package/dist/tt/jsx-runtime.d.mts +2 -3
  25. package/dist/weapp/jsx-runtime.d.mts +2 -3
  26. package/package.json +12 -8
  27. package/dist/alipayIntrinsicElements/base.d.mts +0 -4
  28. package/dist/alipayIntrinsicElements/elements/button.d.mts +0 -29
  29. package/dist/alipayIntrinsicElements/elements/camera.d.mts +0 -18
  30. package/dist/alipayIntrinsicElements/elements/canvas.d.mts +0 -20
  31. package/dist/alipayIntrinsicElements/elements/checkbox-group.d.mts +0 -11
  32. package/dist/alipayIntrinsicElements/elements/checkbox.d.mts +0 -14
  33. package/dist/alipayIntrinsicElements/elements/contact-button.d.mts +0 -15
  34. package/dist/alipayIntrinsicElements/elements/cover-image.d.mts +0 -11
  35. package/dist/alipayIntrinsicElements/elements/cover-view.d.mts +0 -11
  36. package/dist/alipayIntrinsicElements/elements/error-view.d.mts +0 -14
  37. package/dist/alipayIntrinsicElements/elements/form.d.mts +0 -12
  38. package/dist/alipayIntrinsicElements/elements/icon.d.mts +0 -11
  39. package/dist/alipayIntrinsicElements/elements/image.d.mts +0 -17
  40. package/dist/alipayIntrinsicElements/elements/input.d.mts +0 -31
  41. package/dist/alipayIntrinsicElements/elements/join-group-chat.d.mts +0 -9
  42. package/dist/alipayIntrinsicElements/elements/label.d.mts +0 -9
  43. package/dist/alipayIntrinsicElements/elements/lifestyle.d.mts +0 -11
  44. package/dist/alipayIntrinsicElements/elements/lottie.d.mts +0 -25
  45. package/dist/alipayIntrinsicElements/elements/map.d.mts +0 -44
  46. package/dist/alipayIntrinsicElements/elements/match-media.d.mts +0 -15
  47. package/dist/alipayIntrinsicElements/elements/movable-area.d.mts +0 -9
  48. package/dist/alipayIntrinsicElements/elements/movable-view.d.mts +0 -32
  49. package/dist/alipayIntrinsicElements/elements/navigator.d.mts +0 -13
  50. package/dist/alipayIntrinsicElements/elements/page-container.d.mts +0 -27
  51. package/dist/alipayIntrinsicElements/elements/page-meta.d.mts +0 -19
  52. package/dist/alipayIntrinsicElements/elements/picker-view-column.d.mts +0 -7
  53. package/dist/alipayIntrinsicElements/elements/picker-view.d.mts +0 -18
  54. package/dist/alipayIntrinsicElements/elements/picker.d.mts +0 -15
  55. package/dist/alipayIntrinsicElements/elements/progress.d.mts +0 -14
  56. package/dist/alipayIntrinsicElements/elements/radio-group.d.mts +0 -11
  57. package/dist/alipayIntrinsicElements/elements/radio.d.mts +0 -12
  58. package/dist/alipayIntrinsicElements/elements/rich-text.d.mts +0 -17
  59. package/dist/alipayIntrinsicElements/elements/root-portal.d.mts +0 -9
  60. package/dist/alipayIntrinsicElements/elements/scroll-view.d.mts +0 -29
  61. package/dist/alipayIntrinsicElements/elements/share-element.d.mts +0 -12
  62. package/dist/alipayIntrinsicElements/elements/slider.d.mts +0 -23
  63. package/dist/alipayIntrinsicElements/elements/subscribe-message.d.mts +0 -11
  64. package/dist/alipayIntrinsicElements/elements/swiper-item.d.mts +0 -7
  65. package/dist/alipayIntrinsicElements/elements/swiper.d.mts +0 -36
  66. package/dist/alipayIntrinsicElements/elements/switch.d.mts +0 -15
  67. package/dist/alipayIntrinsicElements/elements/text.d.mts +0 -12
  68. package/dist/alipayIntrinsicElements/elements/textarea.d.mts +0 -24
  69. package/dist/alipayIntrinsicElements/elements/video.d.mts +0 -39
  70. package/dist/alipayIntrinsicElements/elements/view.d.mts +0 -29
  71. package/dist/alipayIntrinsicElements/elements/web-view.d.mts +0 -13
  72. package/dist/alipayIntrinsicElements.d.mts +0 -94
  73. package/dist/dev/alipayIntrinsicElements/base.d.mts +0 -5
  74. package/dist/dev/alipayIntrinsicElements/elements/button.d.mts +0 -30
  75. package/dist/dev/alipayIntrinsicElements/elements/camera.d.mts +0 -19
  76. package/dist/dev/alipayIntrinsicElements/elements/canvas.d.mts +0 -21
  77. package/dist/dev/alipayIntrinsicElements/elements/checkbox-group.d.mts +0 -12
  78. package/dist/dev/alipayIntrinsicElements/elements/checkbox.d.mts +0 -15
  79. package/dist/dev/alipayIntrinsicElements/elements/contact-button.d.mts +0 -16
  80. package/dist/dev/alipayIntrinsicElements/elements/cover-image.d.mts +0 -12
  81. package/dist/dev/alipayIntrinsicElements/elements/cover-view.d.mts +0 -12
  82. package/dist/dev/alipayIntrinsicElements/elements/error-view.d.mts +0 -15
  83. package/dist/dev/alipayIntrinsicElements/elements/form.d.mts +0 -13
  84. package/dist/dev/alipayIntrinsicElements/elements/icon.d.mts +0 -12
  85. package/dist/dev/alipayIntrinsicElements/elements/image.d.mts +0 -18
  86. package/dist/dev/alipayIntrinsicElements/elements/input.d.mts +0 -32
  87. package/dist/dev/alipayIntrinsicElements/elements/join-group-chat.d.mts +0 -10
  88. package/dist/dev/alipayIntrinsicElements/elements/label.d.mts +0 -10
  89. package/dist/dev/alipayIntrinsicElements/elements/lifestyle.d.mts +0 -12
  90. package/dist/dev/alipayIntrinsicElements/elements/lottie.d.mts +0 -26
  91. package/dist/dev/alipayIntrinsicElements/elements/map.d.mts +0 -45
  92. package/dist/dev/alipayIntrinsicElements/elements/match-media.d.mts +0 -16
  93. package/dist/dev/alipayIntrinsicElements/elements/movable-area.d.mts +0 -10
  94. package/dist/dev/alipayIntrinsicElements/elements/movable-view.d.mts +0 -33
  95. package/dist/dev/alipayIntrinsicElements/elements/navigator.d.mts +0 -14
  96. package/dist/dev/alipayIntrinsicElements/elements/page-container.d.mts +0 -28
  97. package/dist/dev/alipayIntrinsicElements/elements/page-meta.d.mts +0 -20
  98. package/dist/dev/alipayIntrinsicElements/elements/picker-view-column.d.mts +0 -8
  99. package/dist/dev/alipayIntrinsicElements/elements/picker-view.d.mts +0 -19
  100. package/dist/dev/alipayIntrinsicElements/elements/picker.d.mts +0 -16
  101. package/dist/dev/alipayIntrinsicElements/elements/progress.d.mts +0 -15
  102. package/dist/dev/alipayIntrinsicElements/elements/radio-group.d.mts +0 -12
  103. package/dist/dev/alipayIntrinsicElements/elements/radio.d.mts +0 -13
  104. package/dist/dev/alipayIntrinsicElements/elements/rich-text.d.mts +0 -18
  105. package/dist/dev/alipayIntrinsicElements/elements/root-portal.d.mts +0 -10
  106. package/dist/dev/alipayIntrinsicElements/elements/scroll-view.d.mts +0 -30
  107. package/dist/dev/alipayIntrinsicElements/elements/share-element.d.mts +0 -13
  108. package/dist/dev/alipayIntrinsicElements/elements/slider.d.mts +0 -24
  109. package/dist/dev/alipayIntrinsicElements/elements/subscribe-message.d.mts +0 -12
  110. package/dist/dev/alipayIntrinsicElements/elements/swiper-item.d.mts +0 -8
  111. package/dist/dev/alipayIntrinsicElements/elements/swiper.d.mts +0 -37
  112. package/dist/dev/alipayIntrinsicElements/elements/switch.d.mts +0 -16
  113. package/dist/dev/alipayIntrinsicElements/elements/text.d.mts +0 -13
  114. package/dist/dev/alipayIntrinsicElements/elements/textarea.d.mts +0 -25
  115. package/dist/dev/alipayIntrinsicElements/elements/video.d.mts +0 -40
  116. package/dist/dev/alipayIntrinsicElements/elements/view.d.mts +0 -30
  117. package/dist/dev/alipayIntrinsicElements/elements/web-view.d.mts +0 -14
  118. package/dist/dev/alipayIntrinsicElements.d.mts +0 -94
  119. package/dist/dev/jsx-runtime.d.mts +0 -44
  120. package/dist/dev/ttIntrinsicElements/base.d.mts +0 -5
  121. package/dist/dev/ttIntrinsicElements/elements/ad.d.mts +0 -8
  122. package/dist/dev/ttIntrinsicElements/elements/aweme-data.d.mts +0 -15
  123. package/dist/dev/ttIntrinsicElements/elements/aweme-user-card.d.mts +0 -16
  124. package/dist/dev/ttIntrinsicElements/elements/button.d.mts +0 -23
  125. package/dist/dev/ttIntrinsicElements/elements/camera.d.mts +0 -19
  126. package/dist/dev/ttIntrinsicElements/elements/canvas.d.mts +0 -16
  127. package/dist/dev/ttIntrinsicElements/elements/checkbox-group.d.mts +0 -12
  128. package/dist/dev/ttIntrinsicElements/elements/checkbox.d.mts +0 -12
  129. package/dist/dev/ttIntrinsicElements/elements/draw-ad.d.mts +0 -16
  130. package/dist/dev/ttIntrinsicElements/elements/form.d.mts +0 -14
  131. package/dist/dev/ttIntrinsicElements/elements/icon.d.mts +0 -11
  132. package/dist/dev/ttIntrinsicElements/elements/image.d.mts +0 -16
  133. package/dist/dev/ttIntrinsicElements/elements/input.d.mts +0 -32
  134. package/dist/dev/ttIntrinsicElements/elements/label.d.mts +0 -10
  135. package/dist/dev/ttIntrinsicElements/elements/live-player.d.mts +0 -19
  136. package/dist/dev/ttIntrinsicElements/elements/live-preview.d.mts +0 -13
  137. package/dist/dev/ttIntrinsicElements/elements/map.d.mts +0 -36
  138. package/dist/dev/ttIntrinsicElements/elements/mask.d.mts +0 -8
  139. package/dist/dev/ttIntrinsicElements/elements/match-media.d.mts +0 -16
  140. package/dist/dev/ttIntrinsicElements/elements/movable-area.d.mts +0 -10
  141. package/dist/dev/ttIntrinsicElements/elements/movable-view.d.mts +0 -27
  142. package/dist/dev/ttIntrinsicElements/elements/navigator.d.mts +0 -16
  143. package/dist/dev/ttIntrinsicElements/elements/open-data.d.mts +0 -15
  144. package/dist/dev/ttIntrinsicElements/elements/picker-view-column.d.mts +0 -8
  145. package/dist/dev/ttIntrinsicElements/elements/picker-view.d.mts +0 -19
  146. package/dist/dev/ttIntrinsicElements/elements/picker.d.mts +0 -22
  147. package/dist/dev/ttIntrinsicElements/elements/progress.d.mts +0 -16
  148. package/dist/dev/ttIntrinsicElements/elements/radio-group.d.mts +0 -12
  149. package/dist/dev/ttIntrinsicElements/elements/radio.d.mts +0 -12
  150. package/dist/dev/ttIntrinsicElements/elements/rich-text.d.mts +0 -10
  151. package/dist/dev/ttIntrinsicElements/elements/rtc-room.d.mts +0 -13
  152. package/dist/dev/ttIntrinsicElements/elements/scroll-view.d.mts +0 -32
  153. package/dist/dev/ttIntrinsicElements/elements/slider.d.mts +0 -19
  154. package/dist/dev/ttIntrinsicElements/elements/swiper-item.d.mts +0 -10
  155. package/dist/dev/ttIntrinsicElements/elements/swiper.d.mts +0 -27
  156. package/dist/dev/ttIntrinsicElements/elements/switch.d.mts +0 -14
  157. package/dist/dev/ttIntrinsicElements/elements/text.d.mts +0 -12
  158. package/dist/dev/ttIntrinsicElements/elements/textarea.d.mts +0 -34
  159. package/dist/dev/ttIntrinsicElements/elements/video.d.mts +0 -58
  160. package/dist/dev/ttIntrinsicElements/elements/view.d.mts +0 -15
  161. package/dist/dev/ttIntrinsicElements/elements/web-view.d.mts +0 -15
  162. package/dist/dev/ttIntrinsicElements.d.mts +0 -88
  163. package/dist/dev/weappIntrinsicElements/base.d.mts +0 -5
  164. package/dist/dev/weappIntrinsicElements/elements/ad-custom.d.mts +0 -14
  165. package/dist/dev/weappIntrinsicElements/elements/ad.d.mts +0 -17
  166. package/dist/dev/weappIntrinsicElements/elements/audio.d.mts +0 -21
  167. package/dist/dev/weappIntrinsicElements/elements/block.d.mts +0 -8
  168. package/dist/dev/weappIntrinsicElements/elements/button.d.mts +0 -42
  169. package/dist/dev/weappIntrinsicElements/elements/camera.d.mts +0 -19
  170. package/dist/dev/weappIntrinsicElements/elements/canvas.d.mts +0 -19
  171. package/dist/dev/weappIntrinsicElements/elements/checkbox-group.d.mts +0 -11
  172. package/dist/dev/weappIntrinsicElements/elements/checkbox.d.mts +0 -13
  173. package/dist/dev/weappIntrinsicElements/elements/cover-image.d.mts +0 -14
  174. package/dist/dev/weappIntrinsicElements/elements/cover-view.d.mts +0 -10
  175. package/dist/dev/weappIntrinsicElements/elements/editor.d.mts +0 -23
  176. package/dist/dev/weappIntrinsicElements/elements/form.d.mts +0 -17
  177. package/dist/dev/weappIntrinsicElements/elements/functional-page-navigator.d.mts +0 -16
  178. package/dist/dev/weappIntrinsicElements/elements/icon.d.mts +0 -12
  179. package/dist/dev/weappIntrinsicElements/elements/image.d.mts +0 -19
  180. package/dist/dev/weappIntrinsicElements/elements/import.d.mts +0 -10
  181. package/dist/dev/weappIntrinsicElements/elements/include.d.mts +0 -10
  182. package/dist/dev/weappIntrinsicElements/elements/input.d.mts +0 -47
  183. package/dist/dev/weappIntrinsicElements/elements/keyboard-accessory.d.mts +0 -8
  184. package/dist/dev/weappIntrinsicElements/elements/label.d.mts +0 -10
  185. package/dist/dev/weappIntrinsicElements/elements/live-player.d.mts +0 -36
  186. package/dist/dev/weappIntrinsicElements/elements/live-pusher.d.mts +0 -58
  187. package/dist/dev/weappIntrinsicElements/elements/map.d.mts +0 -106
  188. package/dist/dev/weappIntrinsicElements/elements/match-media.d.mts +0 -16
  189. package/dist/dev/weappIntrinsicElements/elements/movable-area.d.mts +0 -27
  190. package/dist/dev/weappIntrinsicElements/elements/movable-view.d.mts +0 -27
  191. package/dist/dev/weappIntrinsicElements/elements/navigation-bar.d.mts +0 -15
  192. package/dist/dev/weappIntrinsicElements/elements/navigator.d.mts +0 -26
  193. package/dist/dev/weappIntrinsicElements/elements/official-account.d.mts +0 -14
  194. package/dist/dev/weappIntrinsicElements/elements/open-data.d.mts +0 -16
  195. package/dist/dev/weappIntrinsicElements/elements/page-container.d.mts +0 -26
  196. package/dist/dev/weappIntrinsicElements/elements/page-meta.d.mts +0 -24
  197. package/dist/dev/weappIntrinsicElements/elements/picker-view-column.d.mts +0 -19
  198. package/dist/dev/weappIntrinsicElements/elements/picker-view.d.mts +0 -19
  199. package/dist/dev/weappIntrinsicElements/elements/picker.d.mts +0 -24
  200. package/dist/dev/weappIntrinsicElements/elements/progress.d.mts +0 -22
  201. package/dist/dev/weappIntrinsicElements/elements/radio-group.d.mts +0 -11
  202. package/dist/dev/weappIntrinsicElements/elements/radio.d.mts +0 -13
  203. package/dist/dev/weappIntrinsicElements/elements/rich-text.d.mts +0 -17
  204. package/dist/dev/weappIntrinsicElements/elements/scroll-view.d.mts +0 -64
  205. package/dist/dev/weappIntrinsicElements/elements/share-element.d.mts +0 -17
  206. package/dist/dev/weappIntrinsicElements/elements/slider.d.mts +0 -24
  207. package/dist/dev/weappIntrinsicElements/elements/slot.d.mts +0 -10
  208. package/dist/dev/weappIntrinsicElements/elements/swiper-item.d.mts +0 -11
  209. package/dist/dev/weappIntrinsicElements/elements/swiper.d.mts +0 -40
  210. package/dist/dev/weappIntrinsicElements/elements/switch.d.mts +0 -15
  211. package/dist/dev/weappIntrinsicElements/elements/template.d.mts +0 -12
  212. package/dist/dev/weappIntrinsicElements/elements/text.d.mts +0 -15
  213. package/dist/dev/weappIntrinsicElements/elements/textarea.d.mts +0 -41
  214. package/dist/dev/weappIntrinsicElements/elements/video.d.mts +0 -72
  215. package/dist/dev/weappIntrinsicElements/elements/view.d.mts +0 -15
  216. package/dist/dev/weappIntrinsicElements/elements/voip-room.d.mts +0 -15
  217. package/dist/dev/weappIntrinsicElements/elements/web-view.d.mts +0 -14
  218. package/dist/dev/weappIntrinsicElements.d.mts +0 -114
  219. package/dist/miniprogramIntrinsicElements/base.d.mts +0 -4
  220. package/dist/miniprogramIntrinsicElements/elements/button.d.mts +0 -23
  221. package/dist/miniprogramIntrinsicElements/elements/camera.d.mts +0 -18
  222. package/dist/miniprogramIntrinsicElements/elements/canvas.d.mts +0 -16
  223. package/dist/miniprogramIntrinsicElements/elements/checkbox-group.d.mts +0 -12
  224. package/dist/miniprogramIntrinsicElements/elements/checkbox.d.mts +0 -13
  225. package/dist/miniprogramIntrinsicElements/elements/form.d.mts +0 -13
  226. package/dist/miniprogramIntrinsicElements/elements/icon.d.mts +0 -12
  227. package/dist/miniprogramIntrinsicElements/elements/image.d.mts +0 -16
  228. package/dist/miniprogramIntrinsicElements/elements/input.d.mts +0 -29
  229. package/dist/miniprogramIntrinsicElements/elements/label.d.mts +0 -11
  230. package/dist/miniprogramIntrinsicElements/elements/map.d.mts +0 -31
  231. package/dist/miniprogramIntrinsicElements/elements/match-media.d.mts +0 -13
  232. package/dist/miniprogramIntrinsicElements/elements/movable-area.d.mts +0 -9
  233. package/dist/miniprogramIntrinsicElements/elements/movable-view.d.mts +0 -26
  234. package/dist/miniprogramIntrinsicElements/elements/navigator.d.mts +0 -15
  235. package/dist/miniprogramIntrinsicElements/elements/picker-view-column.d.mts +0 -9
  236. package/dist/miniprogramIntrinsicElements/elements/picker-view.d.mts +0 -20
  237. package/dist/miniprogramIntrinsicElements/elements/picker.d.mts +0 -14
  238. package/dist/miniprogramIntrinsicElements/elements/progress.d.mts +0 -12
  239. package/dist/miniprogramIntrinsicElements/elements/radio-group.d.mts +0 -12
  240. package/dist/miniprogramIntrinsicElements/elements/radio.d.mts +0 -13
  241. package/dist/miniprogramIntrinsicElements/elements/rich-text.d.mts +0 -11
  242. package/dist/miniprogramIntrinsicElements/elements/scroll-view.d.mts +0 -22
  243. package/dist/miniprogramIntrinsicElements/elements/slider.d.mts +0 -19
  244. package/dist/miniprogramIntrinsicElements/elements/swiper-item.d.mts +0 -9
  245. package/dist/miniprogramIntrinsicElements/elements/swiper.d.mts +0 -24
  246. package/dist/miniprogramIntrinsicElements/elements/switch.d.mts +0 -14
  247. package/dist/miniprogramIntrinsicElements/elements/text.d.mts +0 -13
  248. package/dist/miniprogramIntrinsicElements/elements/textarea.d.mts +0 -23
  249. package/dist/miniprogramIntrinsicElements/elements/video.d.mts +0 -29
  250. package/dist/miniprogramIntrinsicElements/elements/view.d.mts +0 -16
  251. package/dist/miniprogramIntrinsicElements/elements/web-view.d.mts +0 -15
  252. package/dist/miniprogramIntrinsicElements.d.mts +0 -70
  253. package/dist/ttIntrinsicElements/base.d.mts +0 -4
  254. package/dist/ttIntrinsicElements/elements/ad.d.mts +0 -7
  255. package/dist/ttIntrinsicElements/elements/aweme-data.d.mts +0 -14
  256. package/dist/ttIntrinsicElements/elements/aweme-user-card.d.mts +0 -15
  257. package/dist/ttIntrinsicElements/elements/button.d.mts +0 -22
  258. package/dist/ttIntrinsicElements/elements/camera.d.mts +0 -18
  259. package/dist/ttIntrinsicElements/elements/canvas.d.mts +0 -15
  260. package/dist/ttIntrinsicElements/elements/checkbox-group.d.mts +0 -11
  261. package/dist/ttIntrinsicElements/elements/checkbox.d.mts +0 -11
  262. package/dist/ttIntrinsicElements/elements/draw-ad.d.mts +0 -15
  263. package/dist/ttIntrinsicElements/elements/form.d.mts +0 -13
  264. package/dist/ttIntrinsicElements/elements/icon.d.mts +0 -10
  265. package/dist/ttIntrinsicElements/elements/image.d.mts +0 -15
  266. package/dist/ttIntrinsicElements/elements/input.d.mts +0 -31
  267. package/dist/ttIntrinsicElements/elements/label.d.mts +0 -9
  268. package/dist/ttIntrinsicElements/elements/live-player.d.mts +0 -18
  269. package/dist/ttIntrinsicElements/elements/live-preview.d.mts +0 -12
  270. package/dist/ttIntrinsicElements/elements/map.d.mts +0 -35
  271. package/dist/ttIntrinsicElements/elements/mask.d.mts +0 -7
  272. package/dist/ttIntrinsicElements/elements/match-media.d.mts +0 -15
  273. package/dist/ttIntrinsicElements/elements/movable-area.d.mts +0 -9
  274. package/dist/ttIntrinsicElements/elements/movable-view.d.mts +0 -26
  275. package/dist/ttIntrinsicElements/elements/navigator.d.mts +0 -15
  276. package/dist/ttIntrinsicElements/elements/open-data.d.mts +0 -14
  277. package/dist/ttIntrinsicElements/elements/picker-view-column.d.mts +0 -7
  278. package/dist/ttIntrinsicElements/elements/picker-view.d.mts +0 -18
  279. package/dist/ttIntrinsicElements/elements/picker.d.mts +0 -21
  280. package/dist/ttIntrinsicElements/elements/progress.d.mts +0 -15
  281. package/dist/ttIntrinsicElements/elements/radio-group.d.mts +0 -11
  282. package/dist/ttIntrinsicElements/elements/radio.d.mts +0 -11
  283. package/dist/ttIntrinsicElements/elements/rich-text.d.mts +0 -9
  284. package/dist/ttIntrinsicElements/elements/rtc-room.d.mts +0 -12
  285. package/dist/ttIntrinsicElements/elements/scroll-view.d.mts +0 -31
  286. package/dist/ttIntrinsicElements/elements/slider.d.mts +0 -18
  287. package/dist/ttIntrinsicElements/elements/swiper-item.d.mts +0 -9
  288. package/dist/ttIntrinsicElements/elements/swiper.d.mts +0 -26
  289. package/dist/ttIntrinsicElements/elements/switch.d.mts +0 -13
  290. package/dist/ttIntrinsicElements/elements/text.d.mts +0 -11
  291. package/dist/ttIntrinsicElements/elements/textarea.d.mts +0 -33
  292. package/dist/ttIntrinsicElements/elements/video.d.mts +0 -57
  293. package/dist/ttIntrinsicElements/elements/view.d.mts +0 -14
  294. package/dist/ttIntrinsicElements/elements/web-view.d.mts +0 -14
  295. package/dist/ttIntrinsicElements.d.mts +0 -88
  296. package/dist/weappIntrinsicElements/base.d.mts +0 -4
  297. package/dist/weappIntrinsicElements/elements/ad-custom.d.mts +0 -13
  298. package/dist/weappIntrinsicElements/elements/ad.d.mts +0 -16
  299. package/dist/weappIntrinsicElements/elements/audio.d.mts +0 -20
  300. package/dist/weappIntrinsicElements/elements/block.d.mts +0 -7
  301. package/dist/weappIntrinsicElements/elements/button.d.mts +0 -41
  302. package/dist/weappIntrinsicElements/elements/camera.d.mts +0 -18
  303. package/dist/weappIntrinsicElements/elements/canvas.d.mts +0 -18
  304. package/dist/weappIntrinsicElements/elements/checkbox-group.d.mts +0 -10
  305. package/dist/weappIntrinsicElements/elements/checkbox.d.mts +0 -12
  306. package/dist/weappIntrinsicElements/elements/cover-image.d.mts +0 -13
  307. package/dist/weappIntrinsicElements/elements/cover-view.d.mts +0 -9
  308. package/dist/weappIntrinsicElements/elements/editor.d.mts +0 -22
  309. package/dist/weappIntrinsicElements/elements/form.d.mts +0 -16
  310. package/dist/weappIntrinsicElements/elements/functional-page-navigator.d.mts +0 -15
  311. package/dist/weappIntrinsicElements/elements/icon.d.mts +0 -11
  312. package/dist/weappIntrinsicElements/elements/image.d.mts +0 -18
  313. package/dist/weappIntrinsicElements/elements/import.d.mts +0 -9
  314. package/dist/weappIntrinsicElements/elements/include.d.mts +0 -9
  315. package/dist/weappIntrinsicElements/elements/input.d.mts +0 -46
  316. package/dist/weappIntrinsicElements/elements/keyboard-accessory.d.mts +0 -7
  317. package/dist/weappIntrinsicElements/elements/label.d.mts +0 -9
  318. package/dist/weappIntrinsicElements/elements/live-player.d.mts +0 -35
  319. package/dist/weappIntrinsicElements/elements/live-pusher.d.mts +0 -57
  320. package/dist/weappIntrinsicElements/elements/map.d.mts +0 -105
  321. package/dist/weappIntrinsicElements/elements/match-media.d.mts +0 -15
  322. package/dist/weappIntrinsicElements/elements/movable-area.d.mts +0 -26
  323. package/dist/weappIntrinsicElements/elements/movable-view.d.mts +0 -26
  324. package/dist/weappIntrinsicElements/elements/navigation-bar.d.mts +0 -14
  325. package/dist/weappIntrinsicElements/elements/navigator.d.mts +0 -25
  326. package/dist/weappIntrinsicElements/elements/official-account.d.mts +0 -13
  327. package/dist/weappIntrinsicElements/elements/open-data.d.mts +0 -15
  328. package/dist/weappIntrinsicElements/elements/page-container.d.mts +0 -25
  329. package/dist/weappIntrinsicElements/elements/page-meta.d.mts +0 -23
  330. package/dist/weappIntrinsicElements/elements/picker-view-column.d.mts +0 -18
  331. package/dist/weappIntrinsicElements/elements/picker-view.d.mts +0 -18
  332. package/dist/weappIntrinsicElements/elements/picker.d.mts +0 -23
  333. package/dist/weappIntrinsicElements/elements/progress.d.mts +0 -21
  334. package/dist/weappIntrinsicElements/elements/radio-group.d.mts +0 -10
  335. package/dist/weappIntrinsicElements/elements/radio.d.mts +0 -12
  336. package/dist/weappIntrinsicElements/elements/rich-text.d.mts +0 -16
  337. package/dist/weappIntrinsicElements/elements/scroll-view.d.mts +0 -63
  338. package/dist/weappIntrinsicElements/elements/share-element.d.mts +0 -16
  339. package/dist/weappIntrinsicElements/elements/slider.d.mts +0 -23
  340. package/dist/weappIntrinsicElements/elements/slot.d.mts +0 -9
  341. package/dist/weappIntrinsicElements/elements/swiper-item.d.mts +0 -10
  342. package/dist/weappIntrinsicElements/elements/swiper.d.mts +0 -39
  343. package/dist/weappIntrinsicElements/elements/switch.d.mts +0 -14
  344. package/dist/weappIntrinsicElements/elements/template.d.mts +0 -11
  345. package/dist/weappIntrinsicElements/elements/text.d.mts +0 -14
  346. package/dist/weappIntrinsicElements/elements/textarea.d.mts +0 -40
  347. package/dist/weappIntrinsicElements/elements/video.d.mts +0 -71
  348. package/dist/weappIntrinsicElements/elements/view.d.mts +0 -14
  349. package/dist/weappIntrinsicElements/elements/voip-room.d.mts +0 -14
  350. package/dist/weappIntrinsicElements/elements/web-view.d.mts +0 -13
  351. package/dist/weappIntrinsicElements.d.mts +0 -114
@@ -1,5 +1,4 @@
1
- import { AlipayIntrinsicElementBaseAttributes } from "../alipayIntrinsicElements/base.mjs";
2
- import { AlipayIntrinsicElements } from "../alipayIntrinsicElements.mjs";
1
+ import { AlipayIntrinsicElementBaseAttributes, AlipayIntrinsicElements, AlipayIntrinsicElements as AlipayIntrinsicElements$1 } from "@weapp-core/types/alipay";
3
2
  import { JSX as JSX$1, WevuJsxChild, WevuJsxElement, WevuJsxEventHandler, WevuJsxGlobalComponents, WevuJsxGlobalComponents as WevuJsxGlobalComponents$1, WevuJsxHostAttributes } from "wevu/jsx-runtime";
4
3
  //#region src/alipay/jsx-runtime.d.ts
5
4
  export declare namespace JSX {
@@ -7,7 +6,7 @@ export declare namespace JSX {
7
6
  interface ElementClass extends JSX$1.ElementClass {}
8
7
  interface ElementAttributesProperty extends JSX$1.ElementAttributesProperty {}
9
8
  interface IntrinsicAttributes extends JSX$1.IntrinsicAttributes {}
10
- interface IntrinsicElements extends WevuJsxGlobalComponents$1, AlipayIntrinsicElements {}
9
+ interface IntrinsicElements extends WevuJsxGlobalComponents$1, AlipayIntrinsicElements$1 {}
11
10
  }
12
11
  //#endregion
13
12
  export type { AlipayIntrinsicElementBaseAttributes, AlipayIntrinsicElements, WevuJsxChild, WevuJsxElement, WevuJsxEventHandler, WevuJsxGlobalComponents, WevuJsxHostAttributes };
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "7.1.0";
2
+ var version = "7.1.1";
3
3
 
4
4
  //#endregion
5
5
  export { version };
@@ -1,4 +1,4 @@
1
- import { getMiniProgramGlobalObject } from "../runtime/platform.mjs";
1
+ import { getCurrentMiniProgramTabBarPagePaths, getMiniProgramGlobalObject } from "../runtime/platform.mjs";
2
2
  import { setActiveRouter } from "./instance.mjs";
3
3
  import { DEFAULT_INITIAL_NAVIGATION_TIMEOUT, registerInitialNavigationRunner } from "./initialNavigation.mjs";
4
4
  import { installRouteStateSyncOnNativeRouter, notifyRouteStateSync } from "./routeSync.mjs";
@@ -9,7 +9,9 @@ import { resolveNamedRouteLocation } from "../routerInternal/params.mjs";
9
9
  import { mergeMatchedRouteMeta, resolveMatchedRouteRecord } from "../routerInternal/matching.mjs";
10
10
  import { warnDuplicateRouteEntries } from "../routerInternal/recordsWarnings.mjs";
11
11
  import { createNamedRouteLookup, resolveRouteOptionEntries } from "../routerInternal/records.mjs";
12
- import { cloneRouteMeta, cloneRouteParams, createRouterOptionsSnapshot, normalizeRouteRecordMatched, snapshotRouteLocation } from "../routerInternal/snapshots.mjs";
12
+ import { cloneRouteMeta, cloneRouteParams, createNativeRouteUrl, createRouterOptionsSnapshot, normalizeRouteRecordMatched, snapshotRouteLocation } from "../routerInternal/snapshots.mjs";
13
+ import { NavigationFailureType } from "./types.mjs";
14
+ import { createNavigationFailure, executeNavigationMethod } from "./navigationCore.mjs";
13
15
  import { createNavigationResultController } from "./navigationResult.mjs";
14
16
  import { resolveBackNavigationTarget, runBackNavigationGuards } from "./backNavigation.mjs";
15
17
  import { navigateWithTarget } from "./navigationTarget.mjs";
@@ -43,7 +45,7 @@ function createRouter(options = {}) {
43
45
  const routeEntries = resolveRouteOptionEntries(options);
44
46
  warnDuplicateRouteEntries(routeEntries);
45
47
  const namedRouteLookup = createNamedRouteLookup(routeEntries);
46
- const normalizedTabBarEntries = ((_options$tabBarEntrie = options.tabBarEntries) !== null && _options$tabBarEntrie !== void 0 ? _options$tabBarEntrie : []).map((path) => resolvePath(path, "")).filter(Boolean);
48
+ const normalizedTabBarEntries = ((_options$tabBarEntrie = options.tabBarEntries) !== null && _options$tabBarEntrie !== void 0 ? _options$tabBarEntrie : getCurrentMiniProgramTabBarPagePaths()).map((path) => resolvePath(path, "")).filter(Boolean);
47
49
  const tabBarPathSet = new Set(normalizedTabBarEntries);
48
50
  const routeRegistry = createRouteRegistry(namedRouteLookup);
49
51
  let managedNavigationCount = 0;
@@ -175,6 +177,17 @@ function createRouter(options = {}) {
175
177
  allowSameLocation: true
176
178
  });
177
179
  if (!isActive()) return;
180
+ if (initialNavigationMode === "blocking" && result.to && result.to.fullPath !== target.fullPath) {
181
+ const redirectedTarget = result.to;
182
+ const method = tabBarPathSet.has(redirectedTarget.path) ? nativeRouter.switchTab : nativeRouter.redirectTo;
183
+ const nativeResult = await executeNavigationMethod(method, { url: createNativeRouteUrl(redirectedTarget, routeResolveCodec.stringifyQuery) }, redirectedTarget, from);
184
+ if (nativeResult) return nativeResult;
185
+ notifyRouteStateSync({
186
+ route: redirectedTarget,
187
+ source: "router"
188
+ });
189
+ return createNavigationFailure(NavigationFailureType.cancelled, redirectedTarget, from);
190
+ }
178
191
  return navigationResultController.settleNavigationResult(result);
179
192
  });
180
193
  }
@@ -1 +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 InitialNavigationMode,\n LocationQueryRaw,\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 resolveCurrentRoute,\n resolveMatchedRouteRecord,\n resolveNamedRouteLocation,\n resolvePath,\n resolveRouteOptionEntries,\n snapshotRouteLocation,\n stringifyQuery,\n warnDuplicateRouteEntries,\n} from '../routerInternal/shared'\nimport { getMiniProgramGlobalObject } from '../runtime/platform'\nimport { resolveBackNavigationTarget, runBackNavigationGuards } from './backNavigation'\nimport { DEFAULT_INITIAL_NAVIGATION_TIMEOUT, registerInitialNavigationRunner } from './initialNavigation'\nimport { setActiveRouter } from './instance'\nimport { createNavigationApi } from './navigationApi'\nimport { createNavigationResultController } from './navigationResult'\nimport { navigateWithTarget } from './navigationTarget'\nimport { resolveRouteLocation } from './resolve'\nimport { createRouteRegistry } from './routeRegistry'\nimport { installRouteStateSyncOnNativeRouter, notifyRouteStateSync } 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 initialNavigationMode: InitialNavigationMode = options.initialNavigationMode === 'blocking' ? 'blocking' : 'eager'\n const initialNavigationTimeout = Number.isFinite(options.initialNavigationTimeout) && (options.initialNavigationTimeout ?? 0) > 0\n ? Math.max(1, Math.trunc(options.initialNavigationTimeout!))\n : DEFAULT_INITIAL_NAVIGATION_TIMEOUT\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 let activeManagedRoutePath: string | undefined\n let pendingManagedRouteSyncPath: string | undefined\n let pendingExternalRouteSyncPath: string | undefined\n const routerOptions = createRouterOptionsSnapshot(\n normalizedTabBarEntries,\n routeRegistry.getRoutes(),\n paramsMode,\n maxRedirects,\n initialNavigationMode,\n initialNavigationTimeout,\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 (managedNavigationCount > 0 || !isExternalBackSync(payload)) {\n return\n }\n\n if (pendingExternalRouteSyncPath !== undefined) {\n return\n }\n\n if (pendingManagedRouteSyncPath !== undefined) {\n const expectedPath = pendingManagedRouteSyncPath\n pendingManagedRouteSyncPath = undefined\n if (nextRoute.fullPath === expectedPath) {\n return\n }\n }\n\n if (nextRoute.fullPath === route.fullPath) {\n return\n }\n\n pendingExternalRouteSyncPath = nextRoute.fullPath\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 }).finally(() => {\n pendingExternalRouteSyncPath = undefined\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>, targetPath?: string): Promise<T> {\n const previousRoutePath = route.fullPath\n if (targetPath) {\n activeManagedRoutePath = targetPath\n }\n managedNavigationCount += 1\n try {\n const result = await navigation()\n if (route.fullPath !== previousRoutePath) {\n pendingManagedRouteSyncPath = route.fullPath\n }\n return result\n }\n finally {\n managedNavigationCount -= 1\n if (managedNavigationCount <= 0) {\n activeManagedRoutePath = undefined\n }\n }\n }\n\n function resolveManagedRoutePath(to: RouteLocationRaw): string | undefined {\n try {\n return resolveWithCodec(to, route.path).fullPath\n }\n catch {\n return undefined\n }\n }\n\n async function runInitialNavigation(\n page: Parameters<typeof resolveCurrentRoute>[1],\n query?: LocationQueryRaw,\n isActive: () => boolean = () => true,\n ) {\n return runManagedNavigation(async () => {\n const from = snapshotRouteLocation(route)\n const target = enrichRouteRecordState(resolveCurrentRoute(query, page))\n if (!target.path) {\n return undefined\n }\n if (activeManagedRoutePath === target.fullPath) {\n notifyRouteStateSync({\n route: target,\n source: 'router',\n })\n return undefined\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 executeNative: false,\n allowSameLocation: true,\n })\n if (!isActive()) {\n return undefined\n }\n return navigationResultController.settleNavigationResult(result)\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), resolveManagedRoutePath(to)),\n replace: to => runManagedNavigation(() => navigationApi.replace(to), resolveManagedRoutePath(to)),\n back: delta => runManagedNavigation(\n () => navigationApi.back(delta),\n resolveBackNavigationTarget(delta ?? 1, route, resolveWithCodec)?.fullPath,\n ),\n go: delta => runManagedNavigation(\n () => navigationApi.go(delta),\n delta < 0\n ? resolveBackNavigationTarget(Math.abs(delta), route, resolveWithCodec)?.fullPath\n : undefined,\n ),\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 registerInitialNavigationRunner(router, runInitialNavigation, initialNavigationTimeout, initialNavigationMode)\n return router\n}\n"],"mappings":"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"}
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 InitialNavigationMode,\n LocationQueryRaw,\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 createNativeRouteUrl,\n createRouterOptionsSnapshot,\n mergeMatchedRouteMeta,\n normalizeRouteRecordMatched,\n parseQuery,\n resolveCurrentRoute,\n resolveMatchedRouteRecord,\n resolveNamedRouteLocation,\n resolvePath,\n resolveRouteOptionEntries,\n snapshotRouteLocation,\n stringifyQuery,\n warnDuplicateRouteEntries,\n} from '../routerInternal/shared'\nimport { getCurrentMiniProgramTabBarPagePaths, getMiniProgramGlobalObject } from '../runtime/platform'\nimport { resolveBackNavigationTarget, runBackNavigationGuards } from './backNavigation'\nimport { DEFAULT_INITIAL_NAVIGATION_TIMEOUT, registerInitialNavigationRunner } from './initialNavigation'\nimport { setActiveRouter } from './instance'\nimport { createNavigationApi } from './navigationApi'\nimport { createNavigationFailure, executeNavigationMethod } from './navigationCore'\nimport { createNavigationResultController } from './navigationResult'\nimport { navigateWithTarget } from './navigationTarget'\nimport { resolveRouteLocation } from './resolve'\nimport { createRouteRegistry } from './routeRegistry'\nimport { installRouteStateSyncOnNativeRouter, notifyRouteStateSync } from './routeSync'\nimport { NavigationFailureType } from './types'\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 initialNavigationMode: InitialNavigationMode = options.initialNavigationMode === 'blocking' ? 'blocking' : 'eager'\n const initialNavigationTimeout = Number.isFinite(options.initialNavigationTimeout) && (options.initialNavigationTimeout ?? 0) > 0\n ? Math.max(1, Math.trunc(options.initialNavigationTimeout!))\n : DEFAULT_INITIAL_NAVIGATION_TIMEOUT\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 tabBarEntrySource = options.tabBarEntries ?? getCurrentMiniProgramTabBarPagePaths()\n const normalizedTabBarEntries = tabBarEntrySource\n .map(path => resolvePath(path, ''))\n .filter(Boolean)\n const tabBarPathSet = new Set(normalizedTabBarEntries)\n const routeRegistry = createRouteRegistry(namedRouteLookup)\n let managedNavigationCount = 0\n let activeManagedRoutePath: string | undefined\n let pendingManagedRouteSyncPath: string | undefined\n let pendingExternalRouteSyncPath: string | undefined\n const routerOptions = createRouterOptionsSnapshot(\n normalizedTabBarEntries,\n routeRegistry.getRoutes(),\n paramsMode,\n maxRedirects,\n initialNavigationMode,\n initialNavigationTimeout,\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 (managedNavigationCount > 0 || !isExternalBackSync(payload)) {\n return\n }\n\n if (pendingExternalRouteSyncPath !== undefined) {\n return\n }\n\n if (pendingManagedRouteSyncPath !== undefined) {\n const expectedPath = pendingManagedRouteSyncPath\n pendingManagedRouteSyncPath = undefined\n if (nextRoute.fullPath === expectedPath) {\n return\n }\n }\n\n if (nextRoute.fullPath === route.fullPath) {\n return\n }\n\n pendingExternalRouteSyncPath = nextRoute.fullPath\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 }).finally(() => {\n pendingExternalRouteSyncPath = undefined\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>, targetPath?: string): Promise<T> {\n const previousRoutePath = route.fullPath\n if (targetPath) {\n activeManagedRoutePath = targetPath\n }\n managedNavigationCount += 1\n try {\n const result = await navigation()\n if (route.fullPath !== previousRoutePath) {\n pendingManagedRouteSyncPath = route.fullPath\n }\n return result\n }\n finally {\n managedNavigationCount -= 1\n if (managedNavigationCount <= 0) {\n activeManagedRoutePath = undefined\n }\n }\n }\n\n function resolveManagedRoutePath(to: RouteLocationRaw): string | undefined {\n try {\n return resolveWithCodec(to, route.path).fullPath\n }\n catch {\n return undefined\n }\n }\n\n async function runInitialNavigation(\n page: Parameters<typeof resolveCurrentRoute>[1],\n query?: LocationQueryRaw,\n isActive: () => boolean = () => true,\n ) {\n return runManagedNavigation(async () => {\n const from = snapshotRouteLocation(route)\n const target = enrichRouteRecordState(resolveCurrentRoute(query, page))\n if (!target.path) {\n return undefined\n }\n if (activeManagedRoutePath === target.fullPath) {\n notifyRouteStateSync({\n route: target,\n source: 'router',\n })\n return undefined\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 executeNative: false,\n allowSameLocation: true,\n })\n if (!isActive()) {\n return undefined\n }\n if (initialNavigationMode === 'blocking' && result.to && result.to.fullPath !== target.fullPath) {\n const redirectedTarget = result.to\n const isTabBarTarget = tabBarPathSet.has(redirectedTarget.path)\n const method = isTabBarTarget ? nativeRouter.switchTab : nativeRouter.redirectTo\n const nativeResult = await executeNavigationMethod(\n method as (options: Record<string, any>) => unknown,\n { url: createNativeRouteUrl(redirectedTarget, routeResolveCodec.stringifyQuery) },\n redirectedTarget,\n from,\n )\n if (nativeResult) {\n return nativeResult\n }\n notifyRouteStateSync({\n route: redirectedTarget,\n source: 'router',\n })\n return createNavigationFailure(NavigationFailureType.cancelled, redirectedTarget, from)\n }\n return navigationResultController.settleNavigationResult(result)\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), resolveManagedRoutePath(to)),\n replace: to => runManagedNavigation(() => navigationApi.replace(to), resolveManagedRoutePath(to)),\n back: delta => runManagedNavigation(\n () => navigationApi.back(delta),\n resolveBackNavigationTarget(delta ?? 1, route, resolveWithCodec)?.fullPath,\n ),\n go: delta => runManagedNavigation(\n () => navigationApi.go(delta),\n delta < 0\n ? resolveBackNavigationTarget(Math.abs(delta), route, resolveWithCodec)?.fullPath\n : undefined,\n ),\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 registerInitialNavigationRunner(router, runInitialNavigation, initialNavigationTimeout, initialNavigationMode)\n return router\n}\n"],"mappings":"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"}
@@ -47,15 +47,12 @@ function applyRouteState(routeState, nextRoute) {
47
47
  function createRouteStateController(options = {}) {
48
48
  var _options$resolveRoute;
49
49
  const setupContext = getCurrentSetupContext();
50
- if (!setupContext) throw new Error("useRoute() 必须在 setup() 的同步阶段调用");
51
- const fallbackPage = setupContext.instance;
52
- const initialRouteControllerInstance = resolveRouteControllerInstance(fallbackPage);
50
+ const fallbackPage = (setupContext === null || setupContext === void 0 ? void 0 : setupContext.instance) && typeof setupContext.instance === "object" ? setupContext.instance : void 0;
53
51
  const resolveRoute = (_options$resolveRoute = options.resolveRoute) !== null && _options$resolveRoute !== void 0 ? _options$resolveRoute : ((route) => {
54
52
  var _getActiveRouter$reso, _getActiveRouter;
55
53
  return (_getActiveRouter$reso = (_getActiveRouter = getActiveRouter()) === null || _getActiveRouter === void 0 ? void 0 : _getActiveRouter.resolve(route)) !== null && _getActiveRouter$reso !== void 0 ? _getActiveRouter$reso : route;
56
54
  });
57
55
  const currentRoute = resolveRoute(resolveCurrentRoute(void 0, fallbackPage));
58
- const isPageController = isPageLikeInstance(initialRouteControllerInstance) || getCurrentMiniProgramPages().includes(initialRouteControllerInstance);
59
56
  const routeState = reactive({
60
57
  path: currentRoute.path,
61
58
  fullPath: currentRoute.fullPath,
@@ -72,6 +69,27 @@ function createRouteStateController(options = {}) {
72
69
  }
73
70
  applyRouteState(routeState, nextRoute);
74
71
  }
72
+ if (!fallbackPage) {
73
+ registerRouteStateSyncHandler((payload) => {
74
+ if (payload === null || payload === void 0 ? void 0 : payload.route) {
75
+ syncRoute(void 0, payload.route, payload);
76
+ return;
77
+ }
78
+ if (payload === null || payload === void 0 ? void 0 : payload.url) {
79
+ syncRoute(void 0, resolveRouteLocation(payload.url, routeState.path), payload);
80
+ return;
81
+ }
82
+ if (payload === null || payload === void 0 ? void 0 : payload.page) {
83
+ syncRoute(void 0, resolvePageRoute(payload.page), payload);
84
+ return;
85
+ }
86
+ syncRoute(void 0, void 0, payload);
87
+ });
88
+ return { route: readonly(routeState) };
89
+ }
90
+ const pageInstance = fallbackPage;
91
+ const initialRouteControllerInstance = resolveRouteControllerInstance(pageInstance);
92
+ const isPageController = isPageLikeInstance(initialRouteControllerInstance) || getCurrentMiniProgramPages().includes(initialRouteControllerInstance);
75
93
  onLoad((query) => {
76
94
  syncRoute(query);
77
95
  });
@@ -85,7 +103,7 @@ function createRouteStateController(options = {}) {
85
103
  syncRoute();
86
104
  });
87
105
  const unregisterRouteStateSync = registerRouteStateSyncHandler((payload) => {
88
- if (!shouldSyncRouteStateForInstance(fallbackPage, isPageController, payload)) return;
106
+ if (!shouldSyncRouteStateForInstance(pageInstance, isPageController, payload)) return;
89
107
  if (payload === null || payload === void 0 ? void 0 : payload.route) {
90
108
  syncRoute(void 0, payload.route, payload);
91
109
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"useRoute.mjs","names":["useNativeRouterInternal","useNativePageRouterInternal"],"sources":["../../../src/router/useRoute.ts"],"sourcesContent":["import type { MiniProgramPageLifetime } from '../runtime/types'\nimport type { SetupContextRouter } from '../runtime/types/props'\nimport type { RouteStateSyncPayload } from './routeSync'\nimport type { LocationQueryRaw, RouteLocationNormalizedLoaded } from './types'\nimport { WEVU_NATIVE_INSTANCE_KEY } from '@weapp-core/constants'\nimport { reactive, readonly } from '../reactivity'\nimport { cloneLocationQuery, cloneRouteLocationRedirectedFrom, cloneRouteMeta, cloneRouteParams, cloneRouteRecordMatchedList, resolveCurrentRoute, resolvePageRoute } from '../routerInternal/shared'\nimport { getCurrentSetupContext, onLoad, onReady, onRouteDone, onShow, onUnload } from '../runtime/hooks'\nimport { getCurrentMiniProgramPages } from '../runtime/platform'\nimport {\n useNativePageRouter as useNativePageRouterInternal,\n useNativeRouter as useNativeRouterInternal,\n} from '../runtime/vueCompat'\nimport { getActiveRouter } from './instance'\nimport { resolveRouteLocation } from './resolve'\nimport { registerRouteStateSyncHandler } from './routeSync'\n\nexport interface UseRouteOptions {\n resolveRoute?: (route: RouteLocationNormalizedLoaded) => RouteLocationNormalizedLoaded\n}\n\ninterface RouteStateControllerOptions extends UseRouteOptions {\n beforeRouteStateSync?: (\n nextRoute: RouteLocationNormalizedLoaded,\n payload: RouteStateSyncPayload,\n ) => void\n}\n\nexport interface RouteStateController {\n route: Readonly<RouteLocationNormalizedLoaded>\n}\n\nfunction isPageLikeInstance(instance: Record<string, any>): boolean {\n return typeof instance.route === 'string' || typeof instance.__route__ === 'string'\n}\n\nfunction resolveRouteControllerInstance(instance: Record<string, any>): Record<string, any> {\n const nativeInstance = instance[WEVU_NATIVE_INSTANCE_KEY]\n return nativeInstance && typeof nativeInstance === 'object'\n ? nativeInstance\n : instance\n}\n\nfunction shouldSyncRouteStateForInstance(\n instance: Record<string, any>,\n isPageController: boolean,\n payload: RouteStateSyncPayload | undefined,\n): boolean {\n if (payload?.source === 'router') {\n return true\n }\n\n // 页面级 route controller 只处理当前页面的广播,避免 DevTools 在 onUnload/onShow\n // 交错时让隐藏页面重复执行导航守卫。组件级 controller 仍接收全局同步。\n if (!isPageController) {\n return true\n }\n\n const routeControllerInstance = resolveRouteControllerInstance(instance)\n if (payload?.page) {\n return payload.page === routeControllerInstance\n }\n\n const pages = getCurrentMiniProgramPages()\n return pages[pages.length - 1] === routeControllerInstance\n}\n\nfunction applyRouteState(\n routeState: RouteLocationNormalizedLoaded,\n nextRoute: RouteLocationNormalizedLoaded,\n) {\n routeState.path = nextRoute.path\n routeState.fullPath = nextRoute.fullPath\n routeState.query = cloneLocationQuery(nextRoute.query)\n routeState.hash = nextRoute.hash\n routeState.params = cloneRouteParams(nextRoute.params)\n if (nextRoute.name === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).name\n }\n else {\n routeState.name = nextRoute.name\n }\n if (nextRoute.meta === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).meta\n }\n else {\n routeState.meta = cloneRouteMeta(nextRoute.meta)\n }\n if (nextRoute.href === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).href\n }\n else {\n routeState.href = nextRoute.href\n }\n if (nextRoute.matched === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).matched\n }\n else {\n routeState.matched = cloneRouteRecordMatchedList(nextRoute.matched)\n }\n if (nextRoute.redirectedFrom === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).redirectedFrom\n }\n else {\n routeState.redirectedFrom = cloneRouteLocationRedirectedFrom(nextRoute.redirectedFrom)\n }\n}\n\nexport function createRouteStateController(options: RouteStateControllerOptions = {}): RouteStateController {\n const setupContext = getCurrentSetupContext()\n if (!setupContext) {\n throw new Error('useRoute() 必须在 setup() 的同步阶段调用')\n }\n\n const fallbackPage = setupContext.instance\n const initialRouteControllerInstance = resolveRouteControllerInstance(fallbackPage)\n const resolveRoute = options.resolveRoute\n ?? ((route: RouteLocationNormalizedLoaded) => getActiveRouter()?.resolve(route) ?? route)\n const currentRoute = resolveRoute(resolveCurrentRoute(undefined, fallbackPage))\n const isPageController = isPageLikeInstance(initialRouteControllerInstance)\n || getCurrentMiniProgramPages().includes(initialRouteControllerInstance)\n const routeState = reactive<RouteLocationNormalizedLoaded>({\n path: currentRoute.path,\n fullPath: currentRoute.fullPath,\n query: cloneLocationQuery(currentRoute.query),\n hash: currentRoute.hash,\n params: cloneRouteParams(currentRoute.params),\n })\n applyRouteState(routeState, currentRoute)\n\n function syncRoute(\n queryOverride?: LocationQueryRaw,\n routeOverride?: RouteLocationNormalizedLoaded,\n payload?: RouteStateSyncPayload,\n ) {\n const nextRoute = routeOverride\n ? resolveRoute(routeOverride)\n : resolveRoute(resolveCurrentRoute(queryOverride, fallbackPage))\n if (payload) {\n options.beforeRouteStateSync?.(nextRoute, payload)\n }\n applyRouteState(routeState, nextRoute)\n }\n\n onLoad((query: Parameters<NonNullable<MiniProgramPageLifetime['onLoad']>>[0]) => {\n syncRoute(query as unknown as LocationQueryRaw)\n })\n onReady(() => {\n syncRoute()\n })\n onShow(() => {\n syncRoute()\n })\n onRouteDone(() => {\n syncRoute()\n })\n const unregisterRouteStateSync = registerRouteStateSyncHandler((payload) => {\n if (!shouldSyncRouteStateForInstance(fallbackPage, isPageController, payload)) {\n return\n }\n if (payload?.route) {\n syncRoute(undefined, payload.route, payload)\n return\n }\n if (payload?.url) {\n syncRoute(undefined, resolveRouteLocation(payload.url, routeState.path), payload)\n return\n }\n if (payload?.page) {\n syncRoute(undefined, resolvePageRoute(payload.page), payload)\n return\n }\n syncRoute(undefined, undefined, payload)\n })\n onUnload(() => {\n unregisterRouteStateSync()\n })\n\n return {\n route: readonly(routeState) as Readonly<RouteLocationNormalizedLoaded>,\n }\n}\n\nexport function useRoute(options: UseRouteOptions = {}): Readonly<RouteLocationNormalizedLoaded> {\n return createRouteStateController(options).route\n}\n\n/**\n * @description 获取当前组件路径语义的原生 Router\n */\nexport function useNativeRouter(): SetupContextRouter {\n return useNativeRouterInternal()\n}\n\n/**\n * @description 获取当前页面路径语义的原生 Page Router\n */\nexport function useNativePageRouter(): SetupContextRouter {\n return useNativePageRouterInternal()\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useRoute.mjs","names":["useNativeRouterInternal","useNativePageRouterInternal"],"sources":["../../../src/router/useRoute.ts"],"sourcesContent":["import type { MiniProgramPageLike } from '../routerInternal/types'\nimport type { MiniProgramPageLifetime } from '../runtime/types'\nimport type { SetupContextRouter } from '../runtime/types/props'\nimport type { RouteStateSyncPayload } from './routeSync'\nimport type { LocationQueryRaw, RouteLocationNormalizedLoaded } from './types'\nimport { WEVU_NATIVE_INSTANCE_KEY } from '@weapp-core/constants'\nimport { reactive, readonly } from '../reactivity'\nimport { cloneLocationQuery, cloneRouteLocationRedirectedFrom, cloneRouteMeta, cloneRouteParams, cloneRouteRecordMatchedList, resolveCurrentRoute, resolvePageRoute } from '../routerInternal/shared'\nimport { getCurrentSetupContext, onLoad, onReady, onRouteDone, onShow, onUnload } from '../runtime/hooks'\nimport { getCurrentMiniProgramPages } from '../runtime/platform'\nimport {\n useNativePageRouter as useNativePageRouterInternal,\n useNativeRouter as useNativeRouterInternal,\n} from '../runtime/vueCompat'\nimport { getActiveRouter } from './instance'\nimport { resolveRouteLocation } from './resolve'\nimport { registerRouteStateSyncHandler } from './routeSync'\n\nexport interface UseRouteOptions {\n resolveRoute?: (route: RouteLocationNormalizedLoaded) => RouteLocationNormalizedLoaded\n}\n\ninterface RouteStateControllerOptions extends UseRouteOptions {\n beforeRouteStateSync?: (\n nextRoute: RouteLocationNormalizedLoaded,\n payload: RouteStateSyncPayload,\n ) => void\n}\n\nexport interface RouteStateController {\n route: Readonly<RouteLocationNormalizedLoaded>\n}\n\nfunction isPageLikeInstance(instance: Record<string, any>): boolean {\n return typeof instance.route === 'string' || typeof instance.__route__ === 'string'\n}\n\nfunction resolveRouteControllerInstance(instance: Record<string, any>): Record<string, any> {\n const nativeInstance = instance[WEVU_NATIVE_INSTANCE_KEY]\n return nativeInstance && typeof nativeInstance === 'object'\n ? nativeInstance\n : instance\n}\n\nfunction shouldSyncRouteStateForInstance(\n instance: Record<string, any>,\n isPageController: boolean,\n payload: RouteStateSyncPayload | undefined,\n): boolean {\n if (payload?.source === 'router') {\n return true\n }\n\n // 页面级 route controller 只处理当前页面的广播,避免 DevTools 在 onUnload/onShow\n // 交错时让隐藏页面重复执行导航守卫。组件级 controller 仍接收全局同步。\n if (!isPageController) {\n return true\n }\n\n const routeControllerInstance = resolveRouteControllerInstance(instance)\n if (payload?.page) {\n return payload.page === routeControllerInstance\n }\n\n const pages = getCurrentMiniProgramPages()\n return pages[pages.length - 1] === routeControllerInstance\n}\n\nfunction applyRouteState(\n routeState: RouteLocationNormalizedLoaded,\n nextRoute: RouteLocationNormalizedLoaded,\n) {\n routeState.path = nextRoute.path\n routeState.fullPath = nextRoute.fullPath\n routeState.query = cloneLocationQuery(nextRoute.query)\n routeState.hash = nextRoute.hash\n routeState.params = cloneRouteParams(nextRoute.params)\n if (nextRoute.name === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).name\n }\n else {\n routeState.name = nextRoute.name\n }\n if (nextRoute.meta === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).meta\n }\n else {\n routeState.meta = cloneRouteMeta(nextRoute.meta)\n }\n if (nextRoute.href === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).href\n }\n else {\n routeState.href = nextRoute.href\n }\n if (nextRoute.matched === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).matched\n }\n else {\n routeState.matched = cloneRouteRecordMatchedList(nextRoute.matched)\n }\n if (nextRoute.redirectedFrom === undefined) {\n delete (routeState as Partial<RouteLocationNormalizedLoaded>).redirectedFrom\n }\n else {\n routeState.redirectedFrom = cloneRouteLocationRedirectedFrom(nextRoute.redirectedFrom)\n }\n}\n\nexport function createRouteStateController(options: RouteStateControllerOptions = {}): RouteStateController {\n const setupContext = getCurrentSetupContext<{ instance?: unknown }>()\n const fallbackPage = setupContext?.instance && typeof setupContext.instance === 'object'\n ? setupContext.instance as MiniProgramPageLike & Record<string, unknown>\n : undefined\n const resolveRoute = options.resolveRoute\n ?? ((route: RouteLocationNormalizedLoaded) => getActiveRouter()?.resolve(route) ?? route)\n const currentRoute = resolveRoute(resolveCurrentRoute(undefined, fallbackPage))\n const routeState = reactive<RouteLocationNormalizedLoaded>({\n path: currentRoute.path,\n fullPath: currentRoute.fullPath,\n query: cloneLocationQuery(currentRoute.query),\n hash: currentRoute.hash,\n params: cloneRouteParams(currentRoute.params),\n })\n applyRouteState(routeState, currentRoute)\n\n function syncRoute(\n queryOverride?: LocationQueryRaw,\n routeOverride?: RouteLocationNormalizedLoaded,\n payload?: RouteStateSyncPayload,\n ) {\n const nextRoute = routeOverride\n ? resolveRoute(routeOverride)\n : resolveRoute(resolveCurrentRoute(queryOverride, fallbackPage))\n if (payload) {\n options.beforeRouteStateSync?.(nextRoute, payload)\n }\n applyRouteState(routeState, nextRoute)\n }\n\n if (!fallbackPage) {\n const unregisterRouteStateSync = registerRouteStateSyncHandler((payload) => {\n if (payload?.route) {\n syncRoute(undefined, payload.route, payload)\n return\n }\n if (payload?.url) {\n syncRoute(undefined, resolveRouteLocation(payload.url, routeState.path), payload)\n return\n }\n if (payload?.page) {\n syncRoute(undefined, resolvePageRoute(payload.page), payload)\n return\n }\n syncRoute(undefined, undefined, payload)\n })\n void unregisterRouteStateSync\n return {\n route: readonly(routeState) as Readonly<RouteLocationNormalizedLoaded>,\n }\n }\n\n const pageInstance = fallbackPage\n const initialRouteControllerInstance = resolveRouteControllerInstance(pageInstance)\n const isPageController = isPageLikeInstance(initialRouteControllerInstance)\n || getCurrentMiniProgramPages().includes(initialRouteControllerInstance)\n\n onLoad((query: Parameters<NonNullable<MiniProgramPageLifetime['onLoad']>>[0]) => {\n syncRoute(query as unknown as LocationQueryRaw)\n })\n onReady(() => {\n syncRoute()\n })\n onShow(() => {\n syncRoute()\n })\n onRouteDone(() => {\n syncRoute()\n })\n const unregisterRouteStateSync = registerRouteStateSyncHandler((payload) => {\n if (!shouldSyncRouteStateForInstance(pageInstance, isPageController, payload)) {\n return\n }\n if (payload?.route) {\n syncRoute(undefined, payload.route, payload)\n return\n }\n if (payload?.url) {\n syncRoute(undefined, resolveRouteLocation(payload.url, routeState.path), payload)\n return\n }\n if (payload?.page) {\n syncRoute(undefined, resolvePageRoute(payload.page), payload)\n return\n }\n syncRoute(undefined, undefined, payload)\n })\n onUnload(() => {\n unregisterRouteStateSync()\n })\n\n return {\n route: readonly(routeState) as Readonly<RouteLocationNormalizedLoaded>,\n }\n}\n\nexport function useRoute(options: UseRouteOptions = {}): Readonly<RouteLocationNormalizedLoaded> {\n return createRouteStateController(options).route\n}\n\n/**\n * @description 获取当前组件路径语义的原生 Router\n */\nexport function useNativeRouter(): SetupContextRouter {\n return useNativeRouterInternal()\n}\n\n/**\n * @description 获取当前页面路径语义的原生 Page Router\n */\nexport function useNativePageRouter(): SetupContextRouter {\n return useNativePageRouterInternal()\n}\n"],"mappings":"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"}
@@ -85,11 +85,28 @@ function getCurrentMiniProgramGlobalRouter() {
85
85
  }
86
86
  return routerMethods;
87
87
  }
88
+ /**
89
+ * @description 读取宿主 app 配置中的 tabBar 页面路径(未带前导 `/`)。
90
+ */
91
+ function getCurrentMiniProgramTabBarPagePaths() {
92
+ const hostConfig = getCurrentMiniProgramHostConfig();
93
+ const tabBar = hostConfig === null || hostConfig === void 0 ? void 0 : hostConfig.tabBar;
94
+ if (!tabBar || typeof tabBar !== "object") return [];
95
+ if (!("list" in tabBar) || !Array.isArray(tabBar.list)) return [];
96
+ const paths = [];
97
+ for (const item of tabBar.list) {
98
+ if (!item || typeof item !== "object" || !("pagePath" in item)) continue;
99
+ const pagePath = item.pagePath;
100
+ if (typeof pagePath !== "string" || !pagePath) continue;
101
+ paths.push(pagePath);
102
+ }
103
+ return paths;
104
+ }
88
105
  function getScopedSlotHostGlobalObject() {
89
106
  var _getMiniProgramGlobal2;
90
107
  return (_getMiniProgramGlobal2 = getMiniProgramGlobalObject()) !== null && _getMiniProgramGlobal2 !== void 0 ? _getMiniProgramGlobal2 : getGlobalRuntime();
91
108
  }
92
109
 
93
110
  //#endregion
94
- export { getCurrentMiniProgramGlobalRouter, getCurrentMiniProgramHostConfig, getCurrentMiniProgramPages, getCurrentMiniProgramRuntimeCapabilities, getMiniProgramGlobalObject, getMiniProgramRuntimeConsoleWarn, getMiniProgramRuntimeGlobalObject, getScopedSlotHostGlobalObject, resolveCurrentMiniProgramPlatform, supportsCurrentMiniProgramRuntimeCapability };
111
+ export { getCurrentMiniProgramGlobalRouter, getCurrentMiniProgramHostConfig, getCurrentMiniProgramPages, getCurrentMiniProgramRuntimeCapabilities, getCurrentMiniProgramTabBarPagePaths, getMiniProgramGlobalObject, getMiniProgramRuntimeConsoleWarn, getMiniProgramRuntimeGlobalObject, getScopedSlotHostGlobalObject, resolveCurrentMiniProgramPlatform, supportsCurrentMiniProgramRuntimeCapability };
95
112
  //# sourceMappingURL=platform.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.mjs","names":[],"sources":["../../../src/runtime/platform.ts"],"sourcesContent":["import type { MiniProgramRuntimeCapabilities, MiniProgramRuntimeCapabilityName } from '@weapp-core/shared/platforms'\nimport {\n getMiniProgramPlatformByRuntimeGlobalKey,\n getMiniProgramRuntimeCapabilities,\n getMiniProgramRuntimeGlobalKey,\n getMiniProgramRuntimeGlobalKeys,\n getMiniProgramRuntimeHostConfigKey,\n resolveMiniProgramPlatform,\n supportsMiniProgramRuntimeCapability,\n} from '@weapp-core/shared/platforms'\n\ntype MiniProgramGlobal = Record<string, any>\ntype MiniProgramHostConfig = Record<string, any>\ntype MiniProgramGlobalRouterMethodName = 'switchTab' | 'reLaunch' | 'redirectTo' | 'navigateTo' | 'navigateBack'\ntype MiniProgramGlobalRouter = Record<MiniProgramGlobalRouterMethodName, (...args: any[]) => any>\ntype ImportMetaWithEnv = ImportMeta & {\n env?: {\n PLATFORM?: string\n }\n}\nconst MINI_PROGRAM_GLOBAL_ROUTER_METHODS: readonly MiniProgramGlobalRouterMethodName[] = [\n 'switchTab',\n 'reLaunch',\n 'redirectTo',\n 'navigateTo',\n 'navigateBack',\n]\n\nfunction getGlobalRuntime() {\n if (typeof globalThis === 'undefined') {\n return undefined\n }\n return globalThis as MiniProgramGlobal\n}\n\nfunction getStaticMiniProgramGlobalObject(): MiniProgramGlobal | undefined {\n if (typeof my !== 'undefined') {\n return my as MiniProgramGlobal\n }\n return undefined\n}\n\nexport function resolveCurrentMiniProgramPlatform() {\n const globalRuntime = getGlobalRuntime()\n const compiledPlatform = (import.meta as ImportMetaWithEnv).env?.PLATFORM\n\n // 优先命中编译期平台分支,便于构建阶段做 dead-code elimination。\n const resolvedCompiledPlatform = resolveMiniProgramPlatform(compiledPlatform)\n if (resolvedCompiledPlatform) {\n return resolvedCompiledPlatform\n }\n\n for (const globalKey of getMiniProgramRuntimeGlobalKeys()) {\n if (globalRuntime?.[globalKey]) {\n return getMiniProgramPlatformByRuntimeGlobalKey(globalKey)\n }\n }\n\n return undefined\n}\n\nexport function getCurrentMiniProgramRuntimeCapabilities(): MiniProgramRuntimeCapabilities {\n return getMiniProgramRuntimeCapabilities(resolveCurrentMiniProgramPlatform())\n}\n\nexport function supportsCurrentMiniProgramRuntimeCapability(capabilityName: MiniProgramRuntimeCapabilityName): boolean {\n return supportsMiniProgramRuntimeCapability(resolveCurrentMiniProgramPlatform(), capabilityName)\n}\n\nexport function getCurrentMiniProgramPages(): Array<Record<string, any>> {\n if (!supportsCurrentMiniProgramRuntimeCapability('globalPageStack')) {\n return []\n }\n const globalRuntime = getGlobalRuntime()\n const platform = resolveCurrentMiniProgramPlatform()\n const runtimeGlobalKey = platform ? getMiniProgramRuntimeGlobalKey(platform) : undefined\n const getCurrentPagesFn = (runtimeGlobalKey ? globalRuntime?.[runtimeGlobalKey]?.getCurrentPages : undefined)\n ?? getStaticMiniProgramGlobalObject()?.getCurrentPages\n ?? globalRuntime?.getCurrentPages\n if (typeof getCurrentPagesFn !== 'function') {\n return []\n }\n try {\n const pages = getCurrentPagesFn()\n return Array.isArray(pages) ? pages as Array<Record<string, any>> : []\n }\n catch {\n return []\n }\n}\n\nexport function getCurrentMiniProgramHostConfig(): MiniProgramHostConfig | undefined {\n const globalRuntime = getGlobalRuntime()\n const hostConfigKey = getMiniProgramRuntimeHostConfigKey(resolveCurrentMiniProgramPlatform())\n const hostConfig = globalRuntime?.[hostConfigKey]\n return hostConfig && typeof hostConfig === 'object' ? hostConfig as MiniProgramHostConfig : undefined\n}\n\nexport function getMiniProgramGlobalObject(platformInput?: string): MiniProgramGlobal | undefined {\n const globalRuntime = getGlobalRuntime()\n const compiledPlatform = platformInput ?? (import.meta as ImportMetaWithEnv).env?.PLATFORM\n const resolvedCompiledPlatform = resolveMiniProgramPlatform(compiledPlatform)\n\n if (resolvedCompiledPlatform) {\n const globalKey = getMiniProgramRuntimeGlobalKey(resolvedCompiledPlatform)\n return globalRuntime?.[globalKey] as MiniProgramGlobal | undefined\n ?? (resolvedCompiledPlatform === 'alipay' ? getStaticMiniProgramGlobalObject() : undefined)\n }\n\n for (const globalKey of getMiniProgramRuntimeGlobalKeys()) {\n const candidate = globalRuntime?.[globalKey]\n if (candidate) {\n return candidate as MiniProgramGlobal\n }\n }\n return undefined\n}\n\nexport function getMiniProgramRuntimeGlobalObject(): MiniProgramGlobal | undefined {\n return getMiniProgramGlobalObject() ?? getGlobalRuntime()\n}\n\nexport function getMiniProgramRuntimeConsoleWarn(): ((message: string) => void) | undefined {\n return getMiniProgramRuntimeGlobalObject()?.console?.warn\n}\n\nexport function getCurrentMiniProgramGlobalRouter(): MiniProgramGlobalRouter | undefined {\n if (!supportsCurrentMiniProgramRuntimeCapability('globalRouterApi')) {\n return undefined\n }\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (!miniProgramGlobal) {\n return undefined\n }\n const routerMethods = Object.create(null) as Partial<MiniProgramGlobalRouter>\n for (const methodName of MINI_PROGRAM_GLOBAL_ROUTER_METHODS) {\n const handler = miniProgramGlobal[methodName]\n if (typeof handler !== 'function') {\n return undefined\n }\n routerMethods[methodName] = (...args: any[]) => handler.apply(miniProgramGlobal, args)\n }\n return routerMethods as MiniProgramGlobalRouter\n}\n\nexport function getScopedSlotHostGlobalObject(): MiniProgramGlobal | undefined {\n return getMiniProgramGlobalObject() ?? getGlobalRuntime()\n}\n"],"mappings":";;;AAoBA,MAAM,qCAAmF;CACvF;CACA;CACA;CACA;CACA;AACF;AAEA,SAAS,mBAAmB;CAC1B,IAAI,OAAO,eAAe,aACxB;CAEF,OAAO;AACT;AAEA,SAAS,mCAAkE;CACzE,IAAI,OAAO,OAAO,aAChB,OAAO;AAGX;AAEA,SAAgB,oCAAoC;;CAClD,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,2BAAoB,YAAkC,iDAAK;CAGjE,MAAM,2BAA2B,2BAA2B,gBAAgB;CAC5E,IAAI,0BACF,OAAO;CAGT,KAAK,MAAM,aAAa,gCAAgC,GACtD,kEAAI,cAAgB,YAClB,OAAO,yCAAyC,SAAS;AAK/D;AAEA,SAAgB,2CAA2E;CACzF,OAAO,kCAAkC,kCAAkC,CAAC;AAC9E;AAEA,SAAgB,4CAA4C,gBAA2D;CACrH,OAAO,qCAAqC,kCAAkC,GAAG,cAAc;AACjG;AAEA,SAAgB,6BAAyD;;CACvE,IAAI,CAAC,4CAA4C,iBAAiB,GAChE,OAAO,CAAC;CAEV,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,WAAW,kCAAkC;CACnD,MAAM,mBAAmB,WAAW,+BAA+B,QAAQ,IAAI;CAC/E,MAAM,qCAAqB,kGAAmB,cAAgB,iGAAmB,kBAAkB,wEAC9F,iCAAiC,iFAAG,oHACpC,cAAe;CACpB,IAAI,OAAO,sBAAsB,YAC/B,OAAO,CAAC;CAEV,IAAI;EACF,MAAM,QAAQ,kBAAkB;EAChC,OAAO,MAAM,QAAQ,KAAK,IAAI,QAAsC,CAAC;CACvE,kBACM;EACJ,OAAO,CAAC;CACV;AACF;AAEA,SAAgB,kCAAqE;CACnF,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,gBAAgB,mCAAmC,kCAAkC,CAAC;CAC5F,MAAM,2EAAa,cAAgB;CACnC,OAAO,cAAc,OAAO,eAAe,WAAW,aAAsC;AAC9F;AAEA,SAAgB,2BAA2B,eAAuD;;CAChG,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,mBAAmB,8EAAkB,YAAkC,mDAAK;CAClF,MAAM,2BAA2B,2BAA2B,gBAAgB;CAE5E,IAAI,0BAA0B;;EAC5B,MAAM,YAAY,+BAA+B,wBAAwB;EACzE,8EAAO,cAAgB,mDACjB,6BAA6B,WAAW,iCAAiC,IAAI;CACrF;CAEA,KAAK,MAAM,aAAa,gCAAgC,GAAG;EACzD,MAAM,0EAAY,cAAgB;EAClC,IAAI,WACF,OAAO;CAEX;AAEF;AAEA,SAAgB,oCAAmE;;CACjF,gCAAO,2BAA2B,0EAAK,iBAAiB;AAC1D;AAEA,SAAgB,mCAA4E;;CAC1F,gCAAO,kCAAkC,kGAAG,uFAAS;AACvD;AAEA,SAAgB,oCAAyE;CACvF,IAAI,CAAC,4CAA4C,iBAAiB,GAChE;CAEF,MAAM,oBAAoB,2BAA2B;CACrD,IAAI,CAAC,mBACH;CAEF,MAAM,gBAAgB,OAAO,OAAO,IAAI;CACxC,KAAK,MAAM,cAAc,oCAAoC;EAC3D,MAAM,UAAU,kBAAkB;EAClC,IAAI,OAAO,YAAY,YACrB;EAEF,cAAc,eAAe,GAAG,SAAgB,QAAQ,MAAM,mBAAmB,IAAI;CACvF;CACA,OAAO;AACT;AAEA,SAAgB,gCAA+D;;CAC7E,iCAAO,2BAA2B,4EAAK,iBAAiB;AAC1D"}
1
+ {"version":3,"file":"platform.mjs","names":[],"sources":["../../../src/runtime/platform.ts"],"sourcesContent":["import type { MiniProgramRuntimeCapabilities, MiniProgramRuntimeCapabilityName } from '@weapp-core/shared/platforms'\nimport {\n getMiniProgramPlatformByRuntimeGlobalKey,\n getMiniProgramRuntimeCapabilities,\n getMiniProgramRuntimeGlobalKey,\n getMiniProgramRuntimeGlobalKeys,\n getMiniProgramRuntimeHostConfigKey,\n resolveMiniProgramPlatform,\n supportsMiniProgramRuntimeCapability,\n} from '@weapp-core/shared/platforms'\n\ntype MiniProgramGlobal = Record<string, any>\ntype MiniProgramHostConfig = Record<string, any>\ntype MiniProgramGlobalRouterMethodName = 'switchTab' | 'reLaunch' | 'redirectTo' | 'navigateTo' | 'navigateBack'\ntype MiniProgramGlobalRouter = Record<MiniProgramGlobalRouterMethodName, (...args: any[]) => any>\ntype ImportMetaWithEnv = ImportMeta & {\n env?: {\n PLATFORM?: string\n }\n}\nconst MINI_PROGRAM_GLOBAL_ROUTER_METHODS: readonly MiniProgramGlobalRouterMethodName[] = [\n 'switchTab',\n 'reLaunch',\n 'redirectTo',\n 'navigateTo',\n 'navigateBack',\n]\n\nfunction getGlobalRuntime() {\n if (typeof globalThis === 'undefined') {\n return undefined\n }\n return globalThis as MiniProgramGlobal\n}\n\nfunction getStaticMiniProgramGlobalObject(): MiniProgramGlobal | undefined {\n if (typeof my !== 'undefined') {\n return my as MiniProgramGlobal\n }\n return undefined\n}\n\nexport function resolveCurrentMiniProgramPlatform() {\n const globalRuntime = getGlobalRuntime()\n const compiledPlatform = (import.meta as ImportMetaWithEnv).env?.PLATFORM\n\n // 优先命中编译期平台分支,便于构建阶段做 dead-code elimination。\n const resolvedCompiledPlatform = resolveMiniProgramPlatform(compiledPlatform)\n if (resolvedCompiledPlatform) {\n return resolvedCompiledPlatform\n }\n\n for (const globalKey of getMiniProgramRuntimeGlobalKeys()) {\n if (globalRuntime?.[globalKey]) {\n return getMiniProgramPlatformByRuntimeGlobalKey(globalKey)\n }\n }\n\n return undefined\n}\n\nexport function getCurrentMiniProgramRuntimeCapabilities(): MiniProgramRuntimeCapabilities {\n return getMiniProgramRuntimeCapabilities(resolveCurrentMiniProgramPlatform())\n}\n\nexport function supportsCurrentMiniProgramRuntimeCapability(capabilityName: MiniProgramRuntimeCapabilityName): boolean {\n return supportsMiniProgramRuntimeCapability(resolveCurrentMiniProgramPlatform(), capabilityName)\n}\n\nexport function getCurrentMiniProgramPages(): Array<Record<string, any>> {\n if (!supportsCurrentMiniProgramRuntimeCapability('globalPageStack')) {\n return []\n }\n const globalRuntime = getGlobalRuntime()\n const platform = resolveCurrentMiniProgramPlatform()\n const runtimeGlobalKey = platform ? getMiniProgramRuntimeGlobalKey(platform) : undefined\n const getCurrentPagesFn = (runtimeGlobalKey ? globalRuntime?.[runtimeGlobalKey]?.getCurrentPages : undefined)\n ?? getStaticMiniProgramGlobalObject()?.getCurrentPages\n ?? globalRuntime?.getCurrentPages\n if (typeof getCurrentPagesFn !== 'function') {\n return []\n }\n try {\n const pages = getCurrentPagesFn()\n return Array.isArray(pages) ? pages as Array<Record<string, any>> : []\n }\n catch {\n return []\n }\n}\n\nexport function getCurrentMiniProgramHostConfig(): MiniProgramHostConfig | undefined {\n const globalRuntime = getGlobalRuntime()\n const hostConfigKey = getMiniProgramRuntimeHostConfigKey(resolveCurrentMiniProgramPlatform())\n const hostConfig = globalRuntime?.[hostConfigKey]\n return hostConfig && typeof hostConfig === 'object' ? hostConfig as MiniProgramHostConfig : undefined\n}\n\nexport function getMiniProgramGlobalObject(platformInput?: string): MiniProgramGlobal | undefined {\n const globalRuntime = getGlobalRuntime()\n const compiledPlatform = platformInput ?? (import.meta as ImportMetaWithEnv).env?.PLATFORM\n const resolvedCompiledPlatform = resolveMiniProgramPlatform(compiledPlatform)\n\n if (resolvedCompiledPlatform) {\n const globalKey = getMiniProgramRuntimeGlobalKey(resolvedCompiledPlatform)\n return globalRuntime?.[globalKey] as MiniProgramGlobal | undefined\n ?? (resolvedCompiledPlatform === 'alipay' ? getStaticMiniProgramGlobalObject() : undefined)\n }\n\n for (const globalKey of getMiniProgramRuntimeGlobalKeys()) {\n const candidate = globalRuntime?.[globalKey]\n if (candidate) {\n return candidate as MiniProgramGlobal\n }\n }\n return undefined\n}\n\nexport function getMiniProgramRuntimeGlobalObject(): MiniProgramGlobal | undefined {\n return getMiniProgramGlobalObject() ?? getGlobalRuntime()\n}\n\nexport function getMiniProgramRuntimeConsoleWarn(): ((message: string) => void) | undefined {\n return getMiniProgramRuntimeGlobalObject()?.console?.warn\n}\n\nexport function getCurrentMiniProgramGlobalRouter(): MiniProgramGlobalRouter | undefined {\n if (!supportsCurrentMiniProgramRuntimeCapability('globalRouterApi')) {\n return undefined\n }\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (!miniProgramGlobal) {\n return undefined\n }\n const routerMethods = Object.create(null) as Partial<MiniProgramGlobalRouter>\n for (const methodName of MINI_PROGRAM_GLOBAL_ROUTER_METHODS) {\n const handler = miniProgramGlobal[methodName]\n if (typeof handler !== 'function') {\n return undefined\n }\n routerMethods[methodName] = (...args: unknown[]) => handler.apply(miniProgramGlobal, args)\n }\n return routerMethods as MiniProgramGlobalRouter\n}\n\n/**\n * @description 读取宿主 app 配置中的 tabBar 页面路径(未带前导 `/`)。\n */\nexport function getCurrentMiniProgramTabBarPagePaths(): string[] {\n const hostConfig = getCurrentMiniProgramHostConfig()\n const tabBar = hostConfig?.tabBar\n if (!tabBar || typeof tabBar !== 'object') {\n return []\n }\n if (!('list' in tabBar) || !Array.isArray(tabBar.list)) {\n return []\n }\n const paths: string[] = []\n for (const item of tabBar.list) {\n if (!item || typeof item !== 'object' || !('pagePath' in item)) {\n continue\n }\n const pagePath = item.pagePath\n if (typeof pagePath !== 'string' || !pagePath) {\n continue\n }\n paths.push(pagePath)\n }\n return paths\n}\n\nexport function getScopedSlotHostGlobalObject(): MiniProgramGlobal | undefined {\n return getMiniProgramGlobalObject() ?? getGlobalRuntime()\n}\n"],"mappings":"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"}
@@ -134,8 +134,10 @@ function runRuntimeSetupPhase(options) {
134
134
  Object.keys(result).forEach((key) => {
135
135
  const val = result[key];
136
136
  if (typeof val === "function") {
137
- runtime.methods[key] = (...args) => val.apply(runtime.proxy, args);
138
- runtime.state[key] = (...args) => val.apply(runtime.proxy, args);
137
+ const bound = (...args) => val.apply(runtime.proxy, args);
138
+ runtime.methods[key] = bound;
139
+ runtime.state[key] = bound;
140
+ runtimeSetupState[key] = bound;
139
141
  methodsChanged = true;
140
142
  } else {
141
143
  if (hasTrackableSetupBinding(val)) {
@@ -1 +1 @@
1
- {"version":3,"file":"setupPhase.mjs","names":[],"sources":["../../../../../src/runtime/register/runtimeInstance/setupPhase.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n ComputedDefinitions,\n DefineAppOptions,\n DefineComponentOptions,\n InternalRuntimeState,\n MethodDefinitions,\n RuntimeInstance,\n} from '../../types'\nimport {\n WEVU_ATTRS_KEY,\n WEVU_EFFECT_SCOPE_KEY,\n WEVU_EXPOSED_KEY,\n WEVU_PROP_KEYS_KEY,\n} from '@weapp-core/constants'\nimport { effectScope, isReactive, shallowReactive, toRaw } from '../../../reactivity'\nimport { hasOwn } from '../../../utils'\nimport { normalizeEmitEventName } from '../../emit'\nimport { setCurrentInstance, setCurrentSetupContext } from '../../hooks'\nimport { hasTrackableSetupBinding } from '../../setupTracking'\nimport { runSetupFunction } from '../setup'\nimport {\n attachRuntimeSlots,\n ensureSetupContextInstance,\n normalizeEmitPayload,\n safeMarkNoSetData,\n} from './setupContext'\nimport { attachRuntimeSetupState, ensureRuntimeProps } from './utils'\n\ntype RuntimeSetupFunction<\n D extends object,\n C extends ComputedDefinitions,\n M extends MethodDefinitions,\n> = DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup']\n | DefineAppOptions<D, C, M>['setup']\n\nlet vueCompatInstanceUid = 0\n\nfunction attachVueCompatInstanceView(target: InternalRuntimeState, proxy: Record<string, any>) {\n const internal = target as Record<string, any>\n const descriptors: PropertyDescriptorMap = {\n proxy: {\n configurable: true,\n enumerable: false,\n value: proxy,\n writable: false,\n },\n $: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n uid: {\n configurable: true,\n enumerable: false,\n value: ++vueCompatInstanceUid,\n writable: false,\n },\n exposed: {\n configurable: true,\n enumerable: false,\n get: () => target[WEVU_EXPOSED_KEY],\n },\n }\n for (const [key, descriptor] of Object.entries(descriptors)) {\n try {\n Object.defineProperty(internal, key, descriptor)\n }\n catch {\n if ('value' in descriptor) {\n internal[key] = descriptor.value\n }\n }\n }\n const publicDescriptors: PropertyDescriptorMap = {\n $: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n $el: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n }\n for (const [key, descriptor] of Object.entries(publicDescriptors)) {\n try {\n Object.defineProperty(proxy, key, descriptor)\n }\n catch {\n proxy[key] = descriptor.value\n }\n }\n}\n\nfunction isInternalAttrKey(key: string) {\n return key.startsWith('__wv_')\n}\n\nexport function runRuntimeSetupPhase<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: {\n target: InternalRuntimeState\n runtime: RuntimeInstance<D, C, M>\n runtimeWithDefaults: RuntimeInstance<any, any, any>\n runtimeState: Record<string, any>\n runtimeProxy: Record<string, any>\n setup: RuntimeSetupFunction<D, C, M>\n}) {\n const {\n target,\n runtime,\n runtimeWithDefaults,\n runtimeState,\n runtimeProxy,\n setup,\n } = options\n\n // 从小程序 properties 提取 props 供 setup 使用,并复用 runtime state 上的 props 容器,\n // 避免 computed 首次求值早于 setup 时丢失依赖。\n const mpProperties = ((target as any).properties || {}) as Record<string, any>\n const props = ensureRuntimeProps(target, runtimeState, mpProperties)\n\n // 与 Vue 3 对齐:attrs = 非 props 的 attributes。\n // 在小程序场景中,attrs 来源于 instance.properties 中“未声明在 props/properties 的字段”。\n const attrs = shallowReactive(Object.create(null)) as Record<string, any>\n const declaredPropKeys = new Set(\n Array.isArray((target as any)[WEVU_PROP_KEYS_KEY])\n ? ((target as any)[WEVU_PROP_KEYS_KEY] as string[])\n : [],\n )\n const hasRuntimeStateKey = (key: string) => {\n return runtimeState != null\n && typeof runtimeState === 'object'\n && hasOwn(runtimeState as Record<string, unknown>, key)\n }\n const syncAttrsFromProperties = () => {\n const next = ((target as any).properties && typeof (target as any).properties === 'object')\n ? ((target as any).properties as Record<string, unknown>)\n : undefined\n\n for (const existingKey of Object.keys(attrs)) {\n if (\n !next\n || !hasOwn(next, existingKey)\n || isInternalAttrKey(existingKey)\n || declaredPropKeys.has(existingKey)\n || hasRuntimeStateKey(existingKey)\n ) {\n delete attrs[existingKey]\n }\n }\n\n if (!next) {\n return\n }\n\n for (const [key, value] of Object.entries(next)) {\n if (isInternalAttrKey(key) || declaredPropKeys.has(key) || hasRuntimeStateKey(key)) {\n continue\n }\n attrs[key] = value\n }\n }\n syncAttrsFromProperties()\n\n try {\n Object.defineProperty(target, WEVU_ATTRS_KEY, {\n value: attrs,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(target as any)[WEVU_ATTRS_KEY] = attrs\n }\n\n const setupInstance = ensureSetupContextInstance(target, runtimeWithDefaults)\n attachVueCompatInstanceView(target, setupInstance as Record<string, any>)\n const slots = attachRuntimeSlots(runtimeState, props)\n const setupState = runtimeWithDefaults.setupState ?? Object.create(null)\n attachRuntimeSetupState(runtimeState, setupState)\n\n const context = safeMarkNoSetData({\n // 与 Vue 3 对齐的 ctx.props\n props,\n\n // 现有运行时能力\n runtime: runtimeWithDefaults,\n state: runtimeState,\n proxy: runtimeProxy,\n bindModel: runtime.bindModel.bind(runtimeWithDefaults),\n watch: runtime.watch.bind(runtimeWithDefaults),\n instance: setupInstance,\n\n // 通过小程序 triggerEvent 派发事件,并兼容 Vue 3 的 emit(event, ...args) 形式。\n emit: (event: string, ...args: any[]) => {\n const { detail, options } = normalizeEmitPayload(args)\n const eventName = normalizeEmitEventName(event)\n setupInstance.triggerEvent(eventName, detail, options)\n },\n\n // 与 Vue 3 对齐的 expose\n expose: (exposed: Record<string, any>) => {\n target[WEVU_EXPOSED_KEY] = exposed\n },\n\n // 与 Vue 3 对齐的 attrs(小程序中为非 props 属性集合)\n attrs,\n\n // 与 Vue 3 对齐的 slots(由编译期传入的 slot 名元数据驱动)\n slots,\n }) as any\n\n // 仅在同步 setup 执行期间暴露 current instance\n const instanceScope = effectScope(true)\n target[WEVU_EFFECT_SCOPE_KEY] = instanceScope\n setCurrentInstance(target)\n setCurrentSetupContext(context)\n try {\n const result = instanceScope.run(() => runSetupFunction(setup, props, context))\n let methodsChanged = false\n if (result && typeof result === 'object') {\n const runtimeSetupState = (runtime as any).setupState && typeof (runtime as any).setupState === 'object'\n ? (isReactive((runtime as any).setupState) ? toRaw((runtime as any).setupState) : (runtime as any).setupState)\n : Object.create(null)\n Object.keys(result).forEach((key) => {\n const val = (result as any)[key]\n if (typeof val === 'function') {\n ;(runtime.methods as any)[key] = (...args: any[]) => (val as any).apply((runtime as any).proxy, args)\n ;(runtime.state as any)[key] = (...args: any[]) => (val as any).apply((runtime as any).proxy, args)\n methodsChanged = true\n }\n else {\n if (hasTrackableSetupBinding(val)) {\n ;(runtime as any).__wevu_trackSetupReactiveKey?.(key)\n }\n ;(runtime.state as any)[key] = val\n ;(runtimeSetupState as any)[key] = val\n }\n })\n }\n if (methodsChanged) {\n ;(runtime as any).__wevu_touchSetupMethodsVersion?.()\n }\n }\n finally {\n setCurrentSetupContext(undefined)\n setCurrentInstance(undefined)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"setupPhase.mjs","names":[],"sources":["../../../../../src/runtime/register/runtimeInstance/setupPhase.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n ComputedDefinitions,\n DefineAppOptions,\n DefineComponentOptions,\n InternalRuntimeState,\n MethodDefinitions,\n RuntimeInstance,\n} from '../../types'\nimport {\n WEVU_ATTRS_KEY,\n WEVU_EFFECT_SCOPE_KEY,\n WEVU_EXPOSED_KEY,\n WEVU_PROP_KEYS_KEY,\n} from '@weapp-core/constants'\nimport { effectScope, isReactive, shallowReactive, toRaw } from '../../../reactivity'\nimport { hasOwn } from '../../../utils'\nimport { normalizeEmitEventName } from '../../emit'\nimport { setCurrentInstance, setCurrentSetupContext } from '../../hooks'\nimport { hasTrackableSetupBinding } from '../../setupTracking'\nimport { runSetupFunction } from '../setup'\nimport {\n attachRuntimeSlots,\n ensureSetupContextInstance,\n normalizeEmitPayload,\n safeMarkNoSetData,\n} from './setupContext'\nimport { attachRuntimeSetupState, ensureRuntimeProps } from './utils'\n\ntype RuntimeSetupFunction<\n D extends object,\n C extends ComputedDefinitions,\n M extends MethodDefinitions,\n> = DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup']\n | DefineAppOptions<D, C, M>['setup']\n\nlet vueCompatInstanceUid = 0\n\nfunction attachVueCompatInstanceView(target: InternalRuntimeState, proxy: Record<string, any>) {\n const internal = target as Record<string, any>\n const descriptors: PropertyDescriptorMap = {\n proxy: {\n configurable: true,\n enumerable: false,\n value: proxy,\n writable: false,\n },\n $: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n uid: {\n configurable: true,\n enumerable: false,\n value: ++vueCompatInstanceUid,\n writable: false,\n },\n exposed: {\n configurable: true,\n enumerable: false,\n get: () => target[WEVU_EXPOSED_KEY],\n },\n }\n for (const [key, descriptor] of Object.entries(descriptors)) {\n try {\n Object.defineProperty(internal, key, descriptor)\n }\n catch {\n if ('value' in descriptor) {\n internal[key] = descriptor.value\n }\n }\n }\n const publicDescriptors: PropertyDescriptorMap = {\n $: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n $el: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n }\n for (const [key, descriptor] of Object.entries(publicDescriptors)) {\n try {\n Object.defineProperty(proxy, key, descriptor)\n }\n catch {\n proxy[key] = descriptor.value\n }\n }\n}\n\nfunction isInternalAttrKey(key: string) {\n return key.startsWith('__wv_')\n}\n\nexport function runRuntimeSetupPhase<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: {\n target: InternalRuntimeState\n runtime: RuntimeInstance<D, C, M>\n runtimeWithDefaults: RuntimeInstance<any, any, any>\n runtimeState: Record<string, any>\n runtimeProxy: Record<string, any>\n setup: RuntimeSetupFunction<D, C, M>\n}) {\n const {\n target,\n runtime,\n runtimeWithDefaults,\n runtimeState,\n runtimeProxy,\n setup,\n } = options\n\n // 从小程序 properties 提取 props 供 setup 使用,并复用 runtime state 上的 props 容器,\n // 避免 computed 首次求值早于 setup 时丢失依赖。\n const mpProperties = ((target as any).properties || {}) as Record<string, any>\n const props = ensureRuntimeProps(target, runtimeState, mpProperties)\n\n // 与 Vue 3 对齐:attrs = 非 props 的 attributes。\n // 在小程序场景中,attrs 来源于 instance.properties 中“未声明在 props/properties 的字段”。\n const attrs = shallowReactive(Object.create(null)) as Record<string, any>\n const declaredPropKeys = new Set(\n Array.isArray((target as any)[WEVU_PROP_KEYS_KEY])\n ? ((target as any)[WEVU_PROP_KEYS_KEY] as string[])\n : [],\n )\n const hasRuntimeStateKey = (key: string) => {\n return runtimeState != null\n && typeof runtimeState === 'object'\n && hasOwn(runtimeState as Record<string, unknown>, key)\n }\n const syncAttrsFromProperties = () => {\n const next = ((target as any).properties && typeof (target as any).properties === 'object')\n ? ((target as any).properties as Record<string, unknown>)\n : undefined\n\n for (const existingKey of Object.keys(attrs)) {\n if (\n !next\n || !hasOwn(next, existingKey)\n || isInternalAttrKey(existingKey)\n || declaredPropKeys.has(existingKey)\n || hasRuntimeStateKey(existingKey)\n ) {\n delete attrs[existingKey]\n }\n }\n\n if (!next) {\n return\n }\n\n for (const [key, value] of Object.entries(next)) {\n if (isInternalAttrKey(key) || declaredPropKeys.has(key) || hasRuntimeStateKey(key)) {\n continue\n }\n attrs[key] = value\n }\n }\n syncAttrsFromProperties()\n\n try {\n Object.defineProperty(target, WEVU_ATTRS_KEY, {\n value: attrs,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(target as any)[WEVU_ATTRS_KEY] = attrs\n }\n\n const setupInstance = ensureSetupContextInstance(target, runtimeWithDefaults)\n attachVueCompatInstanceView(target, setupInstance as Record<string, any>)\n const slots = attachRuntimeSlots(runtimeState, props)\n const setupState = runtimeWithDefaults.setupState ?? Object.create(null)\n attachRuntimeSetupState(runtimeState, setupState)\n\n const context = safeMarkNoSetData({\n // 与 Vue 3 对齐的 ctx.props\n props,\n\n // 现有运行时能力\n runtime: runtimeWithDefaults,\n state: runtimeState,\n proxy: runtimeProxy,\n bindModel: runtime.bindModel.bind(runtimeWithDefaults),\n watch: runtime.watch.bind(runtimeWithDefaults),\n instance: setupInstance,\n\n // 通过小程序 triggerEvent 派发事件,并兼容 Vue 3 的 emit(event, ...args) 形式。\n emit: (event: string, ...args: any[]) => {\n const { detail, options } = normalizeEmitPayload(args)\n const eventName = normalizeEmitEventName(event)\n setupInstance.triggerEvent(eventName, detail, options)\n },\n\n // 与 Vue 3 对齐的 expose\n expose: (exposed: Record<string, any>) => {\n target[WEVU_EXPOSED_KEY] = exposed\n },\n\n // 与 Vue 3 对齐的 attrs(小程序中为非 props 属性集合)\n attrs,\n\n // 与 Vue 3 对齐的 slots(由编译期传入的 slot 名元数据驱动)\n slots,\n }) as any\n\n // 仅在同步 setup 执行期间暴露 current instance\n const instanceScope = effectScope(true)\n target[WEVU_EFFECT_SCOPE_KEY] = instanceScope\n setCurrentInstance(target)\n setCurrentSetupContext(context)\n try {\n const result = instanceScope.run(() => runSetupFunction(setup, props, context))\n let methodsChanged = false\n if (result && typeof result === 'object') {\n const runtimeSetupState = (runtime as any).setupState && typeof (runtime as any).setupState === 'object'\n ? (isReactive((runtime as any).setupState) ? toRaw((runtime as any).setupState) : (runtime as any).setupState)\n : Object.create(null)\n Object.keys(result).forEach((key) => {\n const val = (result as any)[key]\n if (typeof val === 'function') {\n const bound = (...args: any[]) => (val as any).apply((runtime as any).proxy, args)\n ;(runtime.methods as any)[key] = bound\n ;(runtime.state as any)[key] = bound\n ;(runtimeSetupState as any)[key] = bound\n methodsChanged = true\n }\n else {\n if (hasTrackableSetupBinding(val)) {\n ;(runtime as any).__wevu_trackSetupReactiveKey?.(key)\n }\n ;(runtime.state as any)[key] = val\n ;(runtimeSetupState as any)[key] = val\n }\n })\n }\n if (methodsChanged) {\n ;(runtime as any).__wevu_touchSetupMethodsVersion?.()\n }\n }\n finally {\n setCurrentSetupContext(undefined)\n setCurrentInstance(undefined)\n }\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { AlipayIntrinsicElements } from "../alipayIntrinsicElements.mjs";
2
- import { TtIntrinsicElements } from "../ttIntrinsicElements.mjs";
3
- import { WeappIntrinsicElements } from "../weappIntrinsicElements.mjs";
4
1
  import { TemplateRefValue } from "./types.mjs";
2
+ import { AlipayIntrinsicElements } from "@weapp-core/types/alipay";
3
+ import { TtIntrinsicElements } from "@weapp-core/types/tt";
4
+ import { WeappIntrinsicElements } from "@weapp-core/types/weapp";
5
5
  //#region src/runtime/templateRefTypes.d.ts
6
6
  type MiniProgramTemplateRefTagName = keyof AlipayIntrinsicElements | keyof TtIntrinsicElements | keyof WeappIntrinsicElements;
7
7
  type MiniProgramTemplateRefElements = { [K in MiniProgramTemplateRefTagName]: TemplateRefValue; };
@@ -3,22 +3,23 @@ import "../types.mjs";
3
3
  //#region src/runtime/vueCompat/router.d.ts
4
4
  type RuntimeRouter = SetupContextRouter;
5
5
  /**
6
- * 在 setup 中获取与当前组件路径语义一致的原生 Router 对象。
6
+ * 获取与当前组件路径语义一致的原生 Router 对象。
7
7
  *
8
8
  * - 优先使用实例上的 `this.router`(组件路径语义)。
9
9
  * - 不可用时回退到 `this.pageRouter`。
10
- * - 低版本基础库再回退到宿主全局路由方法。
10
+ * - App setup 或低版本基础库再回退到宿主全局路由方法。
11
+ * - 无 setup 上下文且宿主全局路由可用时,仍可创建应用级路由器。
11
12
  *
12
13
  * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),
13
14
  * 推荐改用 `wevu/router` 子入口的 `useRouter()`。
14
15
  */
15
16
  export declare function useNativeRouter(): RuntimeRouter;
16
17
  /**
17
- * 在 setup 中获取与当前页面路径语义一致的原生 Router 对象。
18
+ * 获取与当前页面路径语义一致的原生 Router 对象。
18
19
  *
19
20
  * - 优先使用实例上的 `this.pageRouter`(页面路径语义)。
20
21
  * - 不可用时回退到 `this.router`。
21
- * - 低版本基础库再回退到宿主全局路由方法。
22
+ * - App setup 或低版本基础库再回退到宿主全局路由方法。
22
23
  *
23
24
  * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),
24
25
  * 推荐改用 `wevu/router` 子入口的 `useRouter()`。
@@ -81,23 +81,28 @@ function createScopedRuntimeRouter(rawRouter, basePath) {
81
81
  }
82
82
  function useRuntimeRouterByAccessor(primaryAccessor, fallbackAccessor, helperName) {
83
83
  const ctx = getCurrentSetupContext();
84
- if (!(ctx === null || ctx === void 0 ? void 0 : ctx.instance)) throw new Error(`${helperName}() 必须在 setup() 的同步阶段调用`);
85
- const nativeInstance = ctx.instance;
86
- const basePath = resolveRouterBasePath(nativeInstance, primaryAccessor);
87
- const primaryRouter = nativeInstance[primaryAccessor];
88
- if (isRuntimeRouter(primaryRouter)) return createScopedRuntimeRouter(primaryRouter, basePath);
89
- const fallbackRouter = nativeInstance[fallbackAccessor];
90
- if (isRuntimeRouter(fallbackRouter)) return createScopedRuntimeRouter(fallbackRouter, basePath);
84
+ const nativeInstance = (ctx === null || ctx === void 0 ? void 0 : ctx.instance) && typeof ctx.instance === "object" ? ctx.instance : void 0;
85
+ if (nativeInstance) {
86
+ const basePath = resolveRouterBasePath(nativeInstance, primaryAccessor);
87
+ const primaryRouter = nativeInstance[primaryAccessor];
88
+ if (isRuntimeRouter(primaryRouter)) return createScopedRuntimeRouter(primaryRouter, basePath);
89
+ const fallbackRouter = nativeInstance[fallbackAccessor];
90
+ if (isRuntimeRouter(fallbackRouter)) return createScopedRuntimeRouter(fallbackRouter, basePath);
91
+ const globalFallbackRouter = createGlobalRouterFallback();
92
+ if (globalFallbackRouter) return createScopedRuntimeRouter(globalFallbackRouter, basePath);
93
+ throw new Error("当前运行环境不支持 Router,请升级宿主基础库或检查平台路由能力");
94
+ }
91
95
  const globalFallbackRouter = createGlobalRouterFallback();
92
- if (globalFallbackRouter) return createScopedRuntimeRouter(globalFallbackRouter, basePath);
93
- throw new Error("当前运行环境不支持 Router,请升级宿主基础库或检查平台路由能力");
96
+ if (globalFallbackRouter) return createScopedRuntimeRouter(globalFallbackRouter);
97
+ throw new Error(`${helperName}() 必须在 setup() 的同步阶段调用`);
94
98
  }
95
99
  /**
96
- * 在 setup 中获取与当前组件路径语义一致的原生 Router 对象。
100
+ * 获取与当前组件路径语义一致的原生 Router 对象。
97
101
  *
98
102
  * - 优先使用实例上的 `this.router`(组件路径语义)。
99
103
  * - 不可用时回退到 `this.pageRouter`。
100
- * - 低版本基础库再回退到宿主全局路由方法。
104
+ * - App setup 或低版本基础库再回退到宿主全局路由方法。
105
+ * - 无 setup 上下文且宿主全局路由可用时,仍可创建应用级路由器。
101
106
  *
102
107
  * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),
103
108
  * 推荐改用 `wevu/router` 子入口的 `useRouter()`。
@@ -106,11 +111,11 @@ function useNativeRouter() {
106
111
  return useRuntimeRouterByAccessor("router", "pageRouter", "useNativeRouter");
107
112
  }
108
113
  /**
109
- * 在 setup 中获取与当前页面路径语义一致的原生 Router 对象。
114
+ * 获取与当前页面路径语义一致的原生 Router 对象。
110
115
  *
111
116
  * - 优先使用实例上的 `this.pageRouter`(页面路径语义)。
112
117
  * - 不可用时回退到 `this.router`。
113
- * - 低版本基础库再回退到宿主全局路由方法。
118
+ * - App setup 或低版本基础库再回退到宿主全局路由方法。
114
119
  *
115
120
  * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),
116
121
  * 推荐改用 `wevu/router` 子入口的 `useRouter()`。
@@ -1 +1 @@
1
- {"version":3,"file":"router.mjs","names":[],"sources":["../../../../src/runtime/vueCompat/router.ts"],"sourcesContent":["import type { SetupContextRouter } from '../types'\nimport { notifyRouteStateSync } from '../../router/routeSync'\nimport { parsePathInput } from '../../routerInternal/location'\nimport { createAbsoluteRoutePath, resolvePath, stringifyQuery } from '../../routerInternal/shared'\nimport { getCurrentSetupContext } from '../hooks'\nimport { getCurrentMiniProgramGlobalRouter } from '../platform'\n\ntype RuntimeRouter = SetupContextRouter\ntype RuntimeRouterMethodName = 'switchTab' | 'reLaunch' | 'redirectTo' | 'navigateTo' | 'navigateBack'\ntype RuntimeRouterAccessor = 'router' | 'pageRouter'\n\nconst RUNTIME_ROUTER_METHODS: RuntimeRouterMethodName[] = ['switchTab', 'reLaunch', 'redirectTo', 'navigateTo', 'navigateBack']\nconst runtimeRouterWrapperCache = new WeakMap<RuntimeRouter, Map<string, RuntimeRouter>>()\n\nfunction isRuntimeRouter(candidate: unknown): candidate is RuntimeRouter {\n if (!candidate || typeof candidate !== 'object') {\n return false\n }\n return RUNTIME_ROUTER_METHODS.every((methodName) => {\n return typeof (candidate as Record<string, any>)[methodName] === 'function'\n })\n}\n\nfunction createGlobalRouterFallback(): RuntimeRouter | undefined {\n return getCurrentMiniProgramGlobalRouter()\n}\n\nfunction resolveBasePathCandidate(candidate: unknown): string | undefined {\n if (typeof candidate !== 'string' || !candidate) {\n return undefined\n }\n const normalized = resolvePath(candidate, '')\n return normalized || undefined\n}\n\nfunction resolveRouterBasePath(\n nativeInstance: Record<string, any>,\n accessor: RuntimeRouterAccessor,\n): string | undefined {\n const candidates = accessor === 'pageRouter'\n ? [nativeInstance.route, nativeInstance.__route__, nativeInstance.is]\n : [nativeInstance.is, nativeInstance.route, nativeInstance.__route__]\n\n for (const candidate of candidates) {\n const resolved = resolveBasePathCandidate(candidate)\n if (resolved) {\n return resolved\n }\n }\n\n return undefined\n}\n\nfunction resolveScopedRouterUrl(url: string, basePath?: string): string {\n if (!basePath || (!url.startsWith('./') && !url.startsWith('../'))) {\n return url\n }\n\n const { path, query, hash } = parsePathInput(url)\n const resolvedPath = createAbsoluteRoutePath(resolvePath(path, basePath))\n const queryString = stringifyQuery(query)\n return `${resolvedPath}${queryString ? `?${queryString}` : ''}${hash}`\n}\n\nfunction createScopedRuntimeRouter(rawRouter: RuntimeRouter, basePath?: string): RuntimeRouter {\n const cacheKey = basePath ?? ''\n const cachedByBasePath = runtimeRouterWrapperCache.get(rawRouter)\n const cachedRouter = cachedByBasePath?.get(cacheKey)\n if (cachedRouter) {\n return cachedRouter\n }\n\n const scopedRouter = Object.create(null) as RuntimeRouter\n for (const methodName of RUNTIME_ROUTER_METHODS) {\n ;(scopedRouter as Record<string, any>)[methodName] = (option: Record<string, any>) => {\n const rawMethod = (rawRouter as Record<string, any>)[methodName]\n if (methodName === 'navigateBack' || !option || typeof option !== 'object') {\n return rawMethod.call(rawRouter, option)\n }\n\n const nextUrl = typeof option.url === 'string'\n ? resolveScopedRouterUrl(option.url, basePath)\n : option.url\n const originalSuccess = option.success\n const nextOption = {\n ...option,\n url: nextUrl,\n success: (...args: any[]) => {\n if (typeof nextUrl === 'string') {\n notifyRouteStateSync({\n method: methodName,\n source: 'native',\n url: nextUrl,\n })\n }\n return typeof originalSuccess === 'function'\n ? originalSuccess(...args)\n : undefined\n },\n }\n return rawMethod.call(rawRouter, nextOption)\n }\n }\n\n const nextCache = cachedByBasePath ?? new Map<string, RuntimeRouter>()\n nextCache.set(cacheKey, scopedRouter)\n runtimeRouterWrapperCache.set(rawRouter, nextCache)\n return scopedRouter\n}\n\nfunction useRuntimeRouterByAccessor(\n primaryAccessor: RuntimeRouterAccessor,\n fallbackAccessor: RuntimeRouterAccessor,\n helperName: 'useNativeRouter' | 'useNativePageRouter',\n): RuntimeRouter {\n const ctx = getCurrentSetupContext<any>()\n if (!ctx?.instance) {\n throw new Error(`${helperName}() 必须在 setup() 的同步阶段调用`)\n }\n\n const nativeInstance = ctx.instance as Record<string, any>\n const basePath = resolveRouterBasePath(nativeInstance, primaryAccessor)\n const primaryRouter = nativeInstance[primaryAccessor]\n if (isRuntimeRouter(primaryRouter)) {\n return createScopedRuntimeRouter(primaryRouter, basePath)\n }\n\n const fallbackRouter = nativeInstance[fallbackAccessor]\n if (isRuntimeRouter(fallbackRouter)) {\n return createScopedRuntimeRouter(fallbackRouter, basePath)\n }\n\n const globalFallbackRouter = createGlobalRouterFallback()\n if (globalFallbackRouter) {\n return createScopedRuntimeRouter(globalFallbackRouter, basePath)\n }\n\n throw new Error('当前运行环境不支持 Router,请升级宿主基础库或检查平台路由能力')\n}\n\n/**\n * 在 setup 中获取与当前组件路径语义一致的原生 Router 对象。\n *\n * - 优先使用实例上的 `this.router`(组件路径语义)。\n * - 不可用时回退到 `this.pageRouter`。\n * - 低版本基础库再回退到宿主全局路由方法。\n *\n * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),\n * 推荐改用 `wevu/router` 子入口的 `useRouter()`。\n */\nexport function useNativeRouter(): RuntimeRouter {\n return useRuntimeRouterByAccessor('router', 'pageRouter', 'useNativeRouter')\n}\n\n/**\n * 在 setup 中获取与当前页面路径语义一致的原生 Router 对象。\n *\n * - 优先使用实例上的 `this.pageRouter`(页面路径语义)。\n * - 不可用时回退到 `this.router`。\n * - 低版本基础库再回退到宿主全局路由方法。\n *\n * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),\n * 推荐改用 `wevu/router` 子入口的 `useRouter()`。\n */\nexport function useNativePageRouter(): RuntimeRouter {\n return useRuntimeRouterByAccessor('pageRouter', 'router', 'useNativePageRouter')\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"router.mjs","names":[],"sources":["../../../../src/runtime/vueCompat/router.ts"],"sourcesContent":["import type { SetupContextRouter } from '../types'\nimport { notifyRouteStateSync } from '../../router/routeSync'\nimport { parsePathInput } from '../../routerInternal/location'\nimport { createAbsoluteRoutePath, resolvePath, stringifyQuery } from '../../routerInternal/shared'\nimport { getCurrentSetupContext } from '../hooks'\nimport { getCurrentMiniProgramGlobalRouter } from '../platform'\n\ntype RuntimeRouter = SetupContextRouter\ntype RuntimeRouterMethodName = 'switchTab' | 'reLaunch' | 'redirectTo' | 'navigateTo' | 'navigateBack'\ntype RuntimeRouterAccessor = 'router' | 'pageRouter'\n\nconst RUNTIME_ROUTER_METHODS: RuntimeRouterMethodName[] = ['switchTab', 'reLaunch', 'redirectTo', 'navigateTo', 'navigateBack']\nconst runtimeRouterWrapperCache = new WeakMap<RuntimeRouter, Map<string, RuntimeRouter>>()\n\nfunction isRuntimeRouter(candidate: unknown): candidate is RuntimeRouter {\n if (!candidate || typeof candidate !== 'object') {\n return false\n }\n return RUNTIME_ROUTER_METHODS.every((methodName) => {\n return typeof (candidate as Record<string, any>)[methodName] === 'function'\n })\n}\n\nfunction createGlobalRouterFallback(): RuntimeRouter | undefined {\n return getCurrentMiniProgramGlobalRouter()\n}\n\nfunction resolveBasePathCandidate(candidate: unknown): string | undefined {\n if (typeof candidate !== 'string' || !candidate) {\n return undefined\n }\n const normalized = resolvePath(candidate, '')\n return normalized || undefined\n}\n\nfunction resolveRouterBasePath(\n nativeInstance: Record<string, unknown>,\n accessor: RuntimeRouterAccessor,\n): string | undefined {\n const candidates = accessor === 'pageRouter'\n ? [nativeInstance.route, nativeInstance.__route__, nativeInstance.is]\n : [nativeInstance.is, nativeInstance.route, nativeInstance.__route__]\n\n for (const candidate of candidates) {\n const resolved = resolveBasePathCandidate(candidate)\n if (resolved) {\n return resolved\n }\n }\n\n return undefined\n}\n\nfunction resolveScopedRouterUrl(url: string, basePath?: string): string {\n if (!basePath || (!url.startsWith('./') && !url.startsWith('../'))) {\n return url\n }\n\n const { path, query, hash } = parsePathInput(url)\n const resolvedPath = createAbsoluteRoutePath(resolvePath(path, basePath))\n const queryString = stringifyQuery(query)\n return `${resolvedPath}${queryString ? `?${queryString}` : ''}${hash}`\n}\n\nfunction createScopedRuntimeRouter(rawRouter: RuntimeRouter, basePath?: string): RuntimeRouter {\n const cacheKey = basePath ?? ''\n const cachedByBasePath = runtimeRouterWrapperCache.get(rawRouter)\n const cachedRouter = cachedByBasePath?.get(cacheKey)\n if (cachedRouter) {\n return cachedRouter\n }\n\n const scopedRouter = Object.create(null) as RuntimeRouter\n for (const methodName of RUNTIME_ROUTER_METHODS) {\n ;(scopedRouter as Record<string, any>)[methodName] = (option: Record<string, any>) => {\n const rawMethod = (rawRouter as Record<string, any>)[methodName]\n if (methodName === 'navigateBack' || !option || typeof option !== 'object') {\n return rawMethod.call(rawRouter, option)\n }\n\n const nextUrl = typeof option.url === 'string'\n ? resolveScopedRouterUrl(option.url, basePath)\n : option.url\n const originalSuccess = option.success\n const nextOption = {\n ...option,\n url: nextUrl,\n success: (...args: any[]) => {\n if (typeof nextUrl === 'string') {\n notifyRouteStateSync({\n method: methodName,\n source: 'native',\n url: nextUrl,\n })\n }\n return typeof originalSuccess === 'function'\n ? originalSuccess(...args)\n : undefined\n },\n }\n return rawMethod.call(rawRouter, nextOption)\n }\n }\n\n const nextCache = cachedByBasePath ?? new Map<string, RuntimeRouter>()\n nextCache.set(cacheKey, scopedRouter)\n runtimeRouterWrapperCache.set(rawRouter, nextCache)\n return scopedRouter\n}\n\nfunction useRuntimeRouterByAccessor(\n primaryAccessor: RuntimeRouterAccessor,\n fallbackAccessor: RuntimeRouterAccessor,\n helperName: 'useNativeRouter' | 'useNativePageRouter',\n): RuntimeRouter {\n const ctx = getCurrentSetupContext<Record<string, unknown>>()\n const nativeInstance = ctx?.instance && typeof ctx.instance === 'object'\n ? ctx.instance as Record<string, unknown>\n : undefined\n\n if (nativeInstance) {\n const basePath = resolveRouterBasePath(nativeInstance, primaryAccessor)\n const primaryRouter = nativeInstance[primaryAccessor]\n if (isRuntimeRouter(primaryRouter)) {\n return createScopedRuntimeRouter(primaryRouter, basePath)\n }\n\n const fallbackRouter = nativeInstance[fallbackAccessor]\n if (isRuntimeRouter(fallbackRouter)) {\n return createScopedRuntimeRouter(fallbackRouter, basePath)\n }\n\n const globalFallbackRouter = createGlobalRouterFallback()\n if (globalFallbackRouter) {\n return createScopedRuntimeRouter(globalFallbackRouter, basePath)\n }\n\n throw new Error('当前运行环境不支持 Router,请升级宿主基础库或检查平台路由能力')\n }\n\n const globalFallbackRouter = createGlobalRouterFallback()\n if (globalFallbackRouter) {\n return createScopedRuntimeRouter(globalFallbackRouter)\n }\n\n throw new Error(`${helperName}() 必须在 setup() 的同步阶段调用`)\n}\n\n/**\n * 获取与当前组件路径语义一致的原生 Router 对象。\n *\n * - 优先使用实例上的 `this.router`(组件路径语义)。\n * - 不可用时回退到 `this.pageRouter`。\n * - App setup 或低版本基础库再回退到宿主全局路由方法。\n * - 无 setup 上下文且宿主全局路由可用时,仍可创建应用级路由器。\n *\n * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),\n * 推荐改用 `wevu/router` 子入口的 `useRouter()`。\n */\nexport function useNativeRouter(): RuntimeRouter {\n return useRuntimeRouterByAccessor('router', 'pageRouter', 'useNativeRouter')\n}\n\n/**\n * 获取与当前页面路径语义一致的原生 Router 对象。\n *\n * - 优先使用实例上的 `this.pageRouter`(页面路径语义)。\n * - 不可用时回退到 `this.router`。\n * - App setup 或低版本基础库再回退到宿主全局路由方法。\n *\n * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),\n * 推荐改用 `wevu/router` 子入口的 `useRouter()`。\n */\nexport function useNativePageRouter(): RuntimeRouter {\n return useRuntimeRouterByAccessor('pageRouter', 'router', 'useNativePageRouter')\n}\n"],"mappings":"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"}
@@ -1,13 +1,12 @@
1
- import { MiniProgramIntrinsicElementBaseAttributes } from "../miniprogramIntrinsicElements/base.mjs";
2
- import { MiniProgramIntrinsicElements } from "../miniprogramIntrinsicElements.mjs";
3
1
  import { JSX as JSX$1, WevuJsxChild, WevuJsxElement, WevuJsxEventHandler, WevuJsxGlobalComponents, WevuJsxGlobalComponents as WevuJsxGlobalComponents$1, WevuJsxHostAttributes } from "wevu/jsx-runtime";
2
+ import { MiniProgramIntrinsicElementBaseAttributes, MiniProgramIntrinsicElements, MiniProgramIntrinsicElements as MiniProgramIntrinsicElements$1 } from "@weapp-core/types/miniprogram";
4
3
  //#region src/miniprogram/jsx-runtime.d.ts
5
4
  export declare namespace JSX {
6
5
  type Element = JSX$1.Element;
7
6
  interface ElementClass extends JSX$1.ElementClass {}
8
7
  interface ElementAttributesProperty extends JSX$1.ElementAttributesProperty {}
9
8
  interface IntrinsicAttributes extends JSX$1.IntrinsicAttributes {}
10
- interface IntrinsicElements extends WevuJsxGlobalComponents$1, MiniProgramIntrinsicElements {}
9
+ interface IntrinsicElements extends WevuJsxGlobalComponents$1, MiniProgramIntrinsicElements$1 {}
11
10
  }
12
11
  //#endregion
13
12
  export type { MiniProgramIntrinsicElementBaseAttributes, MiniProgramIntrinsicElements, WevuJsxChild, WevuJsxElement, WevuJsxEventHandler, WevuJsxGlobalComponents, WevuJsxHostAttributes };
package/dist/package.mjs CHANGED
@@ -1 +1 @@
1
- var e=`7.1.0`;export{e as version};
1
+ var e=`7.1.1`;export{e as version};