wevu 7.2.2 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/README.md +6 -0
  2. package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/defineProperty.mjs +1 -1
  3. package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPrimitive.mjs +1 -1
  4. package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPropertyKey.mjs +1 -1
  5. package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/typeof.mjs +1 -1
  6. package/dist/dev/internal-runtime.d.mts +2 -1
  7. package/dist/dev/internal-runtime.mjs +3 -2
  8. package/dist/dev/package.mjs +1 -1
  9. package/dist/dev/reactivity/asyncDerivation.mjs +8 -10
  10. package/dist/dev/reactivity/asyncDerivation.mjs.map +1 -1
  11. package/dist/dev/reactivity/core.mjs +5 -8
  12. package/dist/dev/reactivity/core.mjs.map +1 -1
  13. package/dist/dev/reactivity/reactive/patch.mjs +3 -3
  14. package/dist/dev/reactivity/reactive/patch.mjs.map +1 -1
  15. package/dist/dev/reactivity/reactive/patchState.mjs +4 -8
  16. package/dist/dev/reactivity/reactive/patchState.mjs.map +1 -1
  17. package/dist/dev/reactivity/reactive/shared.mjs +1 -2
  18. package/dist/dev/reactivity/reactive/shared.mjs.map +1 -1
  19. package/dist/dev/reactivity/reactive.mjs +5 -10
  20. package/dist/dev/reactivity/reactive.mjs.map +1 -1
  21. package/dist/dev/reactivity/ref.mjs +2 -2
  22. package/dist/dev/reactivity/ref.mjs.map +1 -1
  23. package/dist/dev/reactivity/shallowRef.mjs +1 -1
  24. package/dist/dev/reactivity/shallowRef.mjs.map +1 -1
  25. package/dist/dev/reactivity/watch/helpers.mjs +1 -1
  26. package/dist/dev/reactivity/watch/helpers.mjs.map +1 -1
  27. package/dist/dev/reactivity/watch.mjs +6 -8
  28. package/dist/dev/reactivity/watch.mjs.map +1 -1
  29. package/dist/dev/router/createRouter.mjs +17 -24
  30. package/dist/dev/router/createRouter.mjs.map +1 -1
  31. package/dist/dev/router/initialNavigation.mjs +22 -17
  32. package/dist/dev/router/initialNavigation.mjs.map +1 -1
  33. package/dist/dev/router/instance.mjs +1 -2
  34. package/dist/dev/router/instance.mjs.map +1 -1
  35. package/dist/dev/router/navigationCore.mjs +2 -2
  36. package/dist/dev/router/navigationCore.mjs.map +1 -1
  37. package/dist/dev/router/navigationResult.mjs +7 -10
  38. package/dist/dev/router/navigationResult.mjs.map +1 -1
  39. package/dist/dev/router/navigationTarget.mjs +1 -3
  40. package/dist/dev/router/navigationTarget.mjs.map +1 -1
  41. package/dist/dev/router/resolve.mjs +3 -4
  42. package/dist/dev/router/resolve.mjs.map +1 -1
  43. package/dist/dev/router/routeRegistry.mjs +1 -1
  44. package/dist/dev/router/routeRegistry.mjs.map +1 -1
  45. package/dist/dev/router/routeSync.mjs +1 -1
  46. package/dist/dev/router/routeSync.mjs.map +1 -1
  47. package/dist/dev/router/scrollRestoration/adapters.d.mts +8 -0
  48. package/dist/dev/router/scrollRestoration/adapters.mjs +86 -0
  49. package/dist/dev/router/scrollRestoration/adapters.mjs.map +1 -0
  50. package/dist/dev/router/scrollRestoration/controller.d.mts +8 -0
  51. package/dist/dev/router/scrollRestoration/controller.mjs +148 -0
  52. package/dist/dev/router/scrollRestoration/controller.mjs.map +1 -0
  53. package/dist/dev/router/scrollRestoration/host.d.mts +3 -0
  54. package/dist/dev/router/scrollRestoration/host.mjs +76 -0
  55. package/dist/dev/router/scrollRestoration/host.mjs.map +1 -0
  56. package/dist/dev/router/scrollRestoration/index.d.mts +9 -0
  57. package/dist/dev/router/scrollRestoration/index.mjs +156 -0
  58. package/dist/dev/router/scrollRestoration/index.mjs.map +1 -0
  59. package/dist/dev/router/scrollRestoration/types.d.mts +61 -0
  60. package/dist/dev/router/useRoute.mjs +12 -19
  61. package/dist/dev/router/useRoute.mjs.map +1 -1
  62. package/dist/dev/router.d.mts +5 -1
  63. package/dist/dev/router.mjs +4 -1
  64. package/dist/dev/routerInternal/location.mjs +2 -3
  65. package/dist/dev/routerInternal/location.mjs.map +1 -1
  66. package/dist/dev/routerInternal/params.mjs +2 -3
  67. package/dist/dev/routerInternal/params.mjs.map +1 -1
  68. package/dist/dev/routerInternal/records.mjs +1 -1
  69. package/dist/dev/routerInternal/records.mjs.map +1 -1
  70. package/dist/dev/routerInternal/recordsWarnings.mjs +1 -2
  71. package/dist/dev/routerInternal/recordsWarnings.mjs.map +1 -1
  72. package/dist/dev/runtime/app/context.mjs +13 -26
  73. package/dist/dev/runtime/app/context.mjs.map +1 -1
  74. package/dist/dev/runtime/app/diagnostics.mjs +2 -4
  75. package/dist/dev/runtime/app/diagnostics.mjs.map +1 -1
  76. package/dist/dev/runtime/app/mount.mjs +27 -33
  77. package/dist/dev/runtime/app/mount.mjs.map +1 -1
  78. package/dist/dev/runtime/app/setData/commitTracker.mjs +5 -9
  79. package/dist/dev/runtime/app/setData/commitTracker.mjs.map +1 -1
  80. package/dist/dev/runtime/app/setData/patchScheduler.mjs +2 -4
  81. package/dist/dev/runtime/app/setData/patchScheduler.mjs.map +1 -1
  82. package/dist/dev/runtime/app/setData/payload.mjs +2 -3
  83. package/dist/dev/runtime/app/setData/payload.mjs.map +1 -1
  84. package/dist/dev/runtime/app/setData/scheduler.mjs +7 -9
  85. package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -1
  86. package/dist/dev/runtime/app/setData/snapshot.mjs +5 -6
  87. package/dist/dev/runtime/app/setData/snapshot.mjs.map +1 -1
  88. package/dist/dev/runtime/app/setDataOptions.mjs +26 -27
  89. package/dist/dev/runtime/app/setDataOptions.mjs.map +1 -1
  90. package/dist/dev/runtime/app.mjs +9 -9
  91. package/dist/dev/runtime/app.mjs.map +1 -1
  92. package/dist/dev/runtime/bindingManifest.mjs +6 -14
  93. package/dist/dev/runtime/bindingManifest.mjs.map +1 -1
  94. package/dist/dev/runtime/capabilities.d.mts +4 -1
  95. package/dist/dev/runtime/capabilities.mjs.map +1 -1
  96. package/dist/dev/runtime/css.mjs +4 -8
  97. package/dist/dev/runtime/css.mjs.map +1 -1
  98. package/dist/dev/runtime/defaults.mjs +4 -4
  99. package/dist/dev/runtime/defaults.mjs.map +1 -1
  100. package/dist/dev/runtime/define/initialComputed.mjs +5 -5
  101. package/dist/dev/runtime/define/initialComputed.mjs.map +1 -1
  102. package/dist/dev/runtime/define/options.mjs +10 -12
  103. package/dist/dev/runtime/define/options.mjs.map +1 -1
  104. package/dist/dev/runtime/define/props.mjs +4 -5
  105. package/dist/dev/runtime/define/props.mjs.map +1 -1
  106. package/dist/dev/runtime/define/scopedSlotOptions.mjs +43 -61
  107. package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -1
  108. package/dist/dev/runtime/define/setupResult.mjs +17 -28
  109. package/dist/dev/runtime/define/setupResult.mjs.map +1 -1
  110. package/dist/dev/runtime/define.mjs +9 -12
  111. package/dist/dev/runtime/define.mjs.map +1 -1
  112. package/dist/dev/runtime/diff.mjs +9 -11
  113. package/dist/dev/runtime/diff.mjs.map +1 -1
  114. package/dist/dev/runtime/disposables.mjs +2 -2
  115. package/dist/dev/runtime/disposables.mjs.map +1 -1
  116. package/dist/dev/runtime/elementIntersectionObserver.mjs +16 -24
  117. package/dist/dev/runtime/elementIntersectionObserver.mjs.map +1 -1
  118. package/dist/dev/runtime/features/inlineEvents.mjs +2 -3
  119. package/dist/dev/runtime/features/inlineEvents.mjs.map +1 -1
  120. package/dist/dev/runtime/features/jsxIslands.d.mts +7 -0
  121. package/dist/dev/runtime/features/jsxIslands.mjs +20 -0
  122. package/dist/dev/runtime/features/jsxIslands.mjs.map +1 -0
  123. package/dist/dev/runtime/features/layout.mjs +2 -3
  124. package/dist/dev/runtime/features/layout.mjs.map +1 -1
  125. package/dist/dev/runtime/features/publicLayout.mjs +2 -6
  126. package/dist/dev/runtime/features/publicLayout.mjs.map +1 -1
  127. package/dist/dev/runtime/features/scopedSlots.mjs +5 -9
  128. package/dist/dev/runtime/features/scopedSlots.mjs.map +1 -1
  129. package/dist/dev/runtime/features/templateRefs.mjs +1 -1
  130. package/dist/dev/runtime/features/templateRefs.mjs.map +1 -1
  131. package/dist/dev/runtime/hooks/base.mjs +20 -43
  132. package/dist/dev/runtime/hooks/base.mjs.map +1 -1
  133. package/dist/dev/runtime/hooks/pageScroll.mjs +41 -0
  134. package/dist/dev/runtime/hooks/pageScroll.mjs.map +1 -0
  135. package/dist/dev/runtime/hooks/register.mjs +2 -1
  136. package/dist/dev/runtime/hooks/register.mjs.map +1 -1
  137. package/dist/dev/runtime/inlineDataset.mjs +1 -2
  138. package/dist/dev/runtime/inlineDataset.mjs.map +1 -1
  139. package/dist/dev/runtime/intersectionObserver.mjs +6 -6
  140. package/dist/dev/runtime/intersectionObserver.mjs.map +1 -1
  141. package/dist/dev/runtime/jsxIsland.mjs +16 -33
  142. package/dist/dev/runtime/jsxIsland.mjs.map +1 -1
  143. package/dist/dev/runtime/layoutBridge.mjs +32 -62
  144. package/dist/dev/runtime/layoutBridge.mjs.map +1 -1
  145. package/dist/dev/runtime/nativeBridge.mjs +1 -1
  146. package/dist/dev/runtime/nativeBridge.mjs.map +1 -1
  147. package/dist/dev/runtime/navigationLifecycle.mjs +24 -0
  148. package/dist/dev/runtime/navigationLifecycle.mjs.map +1 -0
  149. package/dist/dev/runtime/pageEnvironment.mjs +15 -18
  150. package/dist/dev/runtime/pageEnvironment.mjs.map +1 -1
  151. package/dist/dev/runtime/pageLayout.mjs +7 -11
  152. package/dist/dev/runtime/pageLayout.mjs.map +1 -1
  153. package/dist/dev/runtime/pageScroll.mjs +2 -3
  154. package/dist/dev/runtime/pageScroll.mjs.map +1 -1
  155. package/dist/dev/runtime/platform/current.mjs +12 -0
  156. package/dist/dev/runtime/platform/current.mjs.map +1 -0
  157. package/dist/dev/runtime/platform/generic.mjs +36 -0
  158. package/dist/dev/runtime/platform/generic.mjs.map +1 -0
  159. package/dist/dev/runtime/platform/globals.mjs +29 -0
  160. package/dist/dev/runtime/platform/globals.mjs.map +1 -0
  161. package/dist/dev/runtime/platform.mjs +15 -60
  162. package/dist/dev/runtime/platform.mjs.map +1 -1
  163. package/dist/dev/runtime/provideContext.mjs +7 -9
  164. package/dist/dev/runtime/provideContext.mjs.map +1 -1
  165. package/dist/dev/runtime/publicRuntime.mjs +4 -0
  166. package/dist/dev/runtime/publicRuntime.mjs.map +1 -1
  167. package/dist/dev/runtime/pullDownRefresh.mjs +2 -4
  168. package/dist/dev/runtime/pullDownRefresh.mjs.map +1 -1
  169. package/dist/dev/runtime/register/app.mjs +18 -19
  170. package/dist/dev/runtime/register/app.mjs.map +1 -1
  171. package/dist/dev/runtime/register/component/alipay.mjs +9 -18
  172. package/dist/dev/runtime/register/component/alipay.mjs.map +1 -1
  173. package/dist/dev/runtime/register/component/alipayRegistration.mjs +60 -0
  174. package/dist/dev/runtime/register/component/alipayRegistration.mjs.map +1 -0
  175. package/dist/dev/runtime/register/component/lifecycle/optionalHooks.mjs +2 -5
  176. package/dist/dev/runtime/register/component/lifecycle/optionalHooks.mjs.map +1 -1
  177. package/dist/dev/runtime/register/component/lifecycle/platform.mjs +13 -26
  178. package/dist/dev/runtime/register/component/lifecycle/platform.mjs.map +1 -1
  179. package/dist/dev/runtime/register/component/lifecycle.mjs +7 -12
  180. package/dist/dev/runtime/register/component/lifecycle.mjs.map +1 -1
  181. package/dist/dev/runtime/register/component/methods.mjs +13 -18
  182. package/dist/dev/runtime/register/component/methods.mjs.map +1 -1
  183. package/dist/dev/runtime/register/component/options.mjs +3 -4
  184. package/dist/dev/runtime/register/component/options.mjs.map +1 -1
  185. package/dist/dev/runtime/register/component/props.mjs +25 -31
  186. package/dist/dev/runtime/register/component/props.mjs.map +1 -1
  187. package/dist/dev/runtime/register/component/registerDefinition.mjs +21 -40
  188. package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -1
  189. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs +18 -60
  190. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs.map +1 -1
  191. package/dist/dev/runtime/register/component.mjs +3 -5
  192. package/dist/dev/runtime/register/component.mjs.map +1 -1
  193. package/dist/dev/runtime/register/inline.mjs +8 -10
  194. package/dist/dev/runtime/register/inline.mjs.map +1 -1
  195. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs +7 -8
  196. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs.map +1 -1
  197. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs +1 -1
  198. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs.map +1 -1
  199. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +25 -34
  200. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -1
  201. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +13 -15
  202. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -1
  203. package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs +2 -2
  204. package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs.map +1 -1
  205. package/dist/dev/runtime/register/runtimeInstance/utils.mjs +9 -9
  206. package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -1
  207. package/dist/dev/runtime/register/runtimeInstance.mjs +74 -100
  208. package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -1
  209. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs +12 -15
  210. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs.map +1 -1
  211. package/dist/dev/runtime/register/setup.mjs +2 -3
  212. package/dist/dev/runtime/register/setup.mjs.map +1 -1
  213. package/dist/dev/runtime/register/snapshot.mjs +1 -4
  214. package/dist/dev/runtime/register/snapshot.mjs.map +1 -1
  215. package/dist/dev/runtime/register/watch.mjs +3 -5
  216. package/dist/dev/runtime/register/watch.mjs.map +1 -1
  217. package/dist/dev/runtime/scopedSlots.mjs +14 -21
  218. package/dist/dev/runtime/scopedSlots.mjs.map +1 -1
  219. package/dist/dev/runtime/selectorQuery.mjs +5 -9
  220. package/dist/dev/runtime/selectorQuery.mjs.map +1 -1
  221. package/dist/dev/runtime/template.mjs +1 -1
  222. package/dist/dev/runtime/template.mjs.map +1 -1
  223. package/dist/dev/runtime/templateRefs/helpers.mjs +14 -24
  224. package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -1
  225. package/dist/dev/runtime/templateRefs.mjs +8 -15
  226. package/dist/dev/runtime/templateRefs.mjs.map +1 -1
  227. package/dist/dev/runtime/uniAppHost.mjs +6 -14
  228. package/dist/dev/runtime/uniAppHost.mjs.map +1 -1
  229. package/dist/dev/runtime/updatePerformance.mjs +1 -1
  230. package/dist/dev/runtime/updatePerformance.mjs.map +1 -1
  231. package/dist/dev/runtime/use.mjs +1 -1
  232. package/dist/dev/runtime/use.mjs.map +1 -1
  233. package/dist/dev/runtime/vueCompat/context.mjs +3 -5
  234. package/dist/dev/runtime/vueCompat/context.mjs.map +1 -1
  235. package/dist/dev/runtime/vueCompat/model.mjs +9 -13
  236. package/dist/dev/runtime/vueCompat/model.mjs.map +1 -1
  237. package/dist/dev/runtime/vueCompat/router.mjs +4 -4
  238. package/dist/dev/runtime/vueCompat/router.mjs.map +1 -1
  239. package/dist/dev/runtime/vueCompat/templateRef.mjs +1 -1
  240. package/dist/dev/runtime/vueCompat/templateRef.mjs.map +1 -1
  241. package/dist/dev/scheduler.mjs +3 -4
  242. package/dist/dev/scheduler.mjs.map +1 -1
  243. package/dist/dev/store/base.mjs +1 -2
  244. package/dist/dev/store/base.mjs.map +1 -1
  245. package/dist/dev/store/define/create.mjs +11 -22
  246. package/dist/dev/store/define/create.mjs.map +1 -1
  247. package/dist/dev/store/define.mjs +1 -1
  248. package/dist/dev/store/define.mjs.map +1 -1
  249. package/dist/dev/store/view.mjs +1 -1
  250. package/dist/dev/store/view.mjs.map +1 -1
  251. package/dist/internal-runtime.d.mts +2 -1
  252. package/dist/internal-runtime.mjs +1 -1
  253. package/dist/package.mjs +1 -1
  254. package/dist/reactivity/asyncDerivation.mjs +1 -1
  255. package/dist/reactivity/core.mjs +1 -1
  256. package/dist/reactivity/reactive/patch.mjs +1 -1
  257. package/dist/reactivity/reactive/patchState.mjs +1 -1
  258. package/dist/reactivity/reactive/shared.mjs +1 -1
  259. package/dist/reactivity/reactive.mjs +1 -1
  260. package/dist/reactivity/ref.mjs +1 -1
  261. package/dist/reactivity/shallowRef.mjs +1 -1
  262. package/dist/reactivity/watch/helpers.mjs +1 -1
  263. package/dist/reactivity/watch.mjs +1 -1
  264. package/dist/router/createRouter.mjs +1 -1
  265. package/dist/router/initialNavigation.mjs +1 -1
  266. package/dist/router/instance.mjs +1 -1
  267. package/dist/router/navigationCore.mjs +1 -1
  268. package/dist/router/navigationResult.mjs +1 -1
  269. package/dist/router/navigationTarget.mjs +1 -1
  270. package/dist/router/resolve.mjs +1 -1
  271. package/dist/router/routeRegistry.mjs +1 -1
  272. package/dist/router/routeSync.mjs +1 -1
  273. package/dist/router/scrollRestoration/adapters.d.mts +7 -0
  274. package/dist/router/scrollRestoration/adapters.mjs +1 -0
  275. package/dist/router/scrollRestoration/controller.d.mts +7 -0
  276. package/dist/router/scrollRestoration/controller.mjs +1 -0
  277. package/dist/router/scrollRestoration/host.d.mts +3 -0
  278. package/dist/router/scrollRestoration/host.mjs +1 -0
  279. package/dist/router/scrollRestoration/index.d.mts +8 -0
  280. package/dist/router/scrollRestoration/index.mjs +1 -0
  281. package/dist/router/scrollRestoration/types.d.mts +60 -0
  282. package/dist/router/useRoute.mjs +1 -1
  283. package/dist/router.d.mts +5 -1
  284. package/dist/router.mjs +1 -1
  285. package/dist/routerInternal/location.mjs +1 -1
  286. package/dist/routerInternal/params.mjs +1 -1
  287. package/dist/routerInternal/records.mjs +1 -1
  288. package/dist/routerInternal/recordsWarnings.mjs +1 -1
  289. package/dist/runtime/app/context.mjs +1 -1
  290. package/dist/runtime/app/diagnostics.mjs +1 -1
  291. package/dist/runtime/app/mount.mjs +1 -1
  292. package/dist/runtime/app/setData/commitTracker.mjs +1 -1
  293. package/dist/runtime/app/setData/patchScheduler.mjs +1 -1
  294. package/dist/runtime/app/setData/payload.mjs +1 -1
  295. package/dist/runtime/app/setData/scheduler.mjs +1 -1
  296. package/dist/runtime/app/setData/snapshot.mjs +1 -1
  297. package/dist/runtime/app/setDataOptions.mjs +1 -1
  298. package/dist/runtime/app.mjs +1 -1
  299. package/dist/runtime/bindingManifest.mjs +1 -1
  300. package/dist/runtime/capabilities.d.mts +4 -1
  301. package/dist/runtime/css.mjs +1 -1
  302. package/dist/runtime/defaults.mjs +1 -1
  303. package/dist/runtime/define/initialComputed.mjs +1 -1
  304. package/dist/runtime/define/options.mjs +1 -1
  305. package/dist/runtime/define/props.mjs +1 -1
  306. package/dist/runtime/define/scopedSlotOptions.mjs +1 -1
  307. package/dist/runtime/define/setupResult.mjs +1 -1
  308. package/dist/runtime/define.mjs +1 -1
  309. package/dist/runtime/diff.mjs +1 -1
  310. package/dist/runtime/disposables.mjs +1 -1
  311. package/dist/runtime/elementIntersectionObserver.mjs +1 -1
  312. package/dist/runtime/features/inlineEvents.mjs +1 -1
  313. package/dist/runtime/features/jsxIslands.d.mts +6 -0
  314. package/dist/runtime/features/jsxIslands.mjs +1 -0
  315. package/dist/runtime/features/layout.mjs +1 -1
  316. package/dist/runtime/features/publicLayout.mjs +1 -1
  317. package/dist/runtime/features/scopedSlots.mjs +1 -1
  318. package/dist/runtime/features/templateRefs.mjs +1 -1
  319. package/dist/runtime/hooks/base.mjs +1 -1
  320. package/dist/runtime/hooks/pageScroll.mjs +1 -0
  321. package/dist/runtime/hooks/register.mjs +1 -1
  322. package/dist/runtime/inlineDataset.mjs +1 -1
  323. package/dist/runtime/intersectionObserver.mjs +1 -1
  324. package/dist/runtime/jsxIsland.mjs +1 -1
  325. package/dist/runtime/layoutBridge.mjs +1 -1
  326. package/dist/runtime/nativeBridge.mjs +1 -1
  327. package/dist/runtime/navigationLifecycle.mjs +1 -0
  328. package/dist/runtime/pageEnvironment.mjs +1 -1
  329. package/dist/runtime/pageLayout.mjs +1 -1
  330. package/dist/runtime/pageScroll.mjs +1 -1
  331. package/dist/runtime/platform/current.mjs +1 -0
  332. package/dist/runtime/platform/generic.mjs +1 -0
  333. package/dist/runtime/platform/globals.mjs +1 -0
  334. package/dist/runtime/platform.mjs +1 -1
  335. package/dist/runtime/provideContext.mjs +1 -1
  336. package/dist/runtime/publicRuntime.mjs +1 -1
  337. package/dist/runtime/pullDownRefresh.mjs +1 -1
  338. package/dist/runtime/register/app.mjs +1 -1
  339. package/dist/runtime/register/component/alipay.mjs +1 -1
  340. package/dist/runtime/register/component/alipayRegistration.mjs +1 -0
  341. package/dist/runtime/register/component/lifecycle/optionalHooks.mjs +1 -1
  342. package/dist/runtime/register/component/lifecycle/platform.mjs +1 -1
  343. package/dist/runtime/register/component/lifecycle.mjs +1 -1
  344. package/dist/runtime/register/component/methods.mjs +1 -1
  345. package/dist/runtime/register/component/options.mjs +1 -1
  346. package/dist/runtime/register/component/props.mjs +1 -1
  347. package/dist/runtime/register/component/registerDefinition.mjs +1 -1
  348. package/dist/runtime/register/component/registerNativeDefinition.mjs +1 -1
  349. package/dist/runtime/register/component.mjs +1 -1
  350. package/dist/runtime/register/inline.mjs +1 -1
  351. package/dist/runtime/register/runtimeInstance/methodBridge.mjs +1 -1
  352. package/dist/runtime/register/runtimeInstance/provideContext.mjs +1 -1
  353. package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -1
  354. package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -1
  355. package/dist/runtime/register/runtimeInstance/setupSnapshot.mjs +1 -1
  356. package/dist/runtime/register/runtimeInstance/utils.mjs +1 -1
  357. package/dist/runtime/register/runtimeInstance.mjs +1 -1
  358. package/dist/runtime/register/setDataFrequencyWarning.mjs +1 -1
  359. package/dist/runtime/register/setup.mjs +1 -1
  360. package/dist/runtime/register/snapshot.mjs +1 -1
  361. package/dist/runtime/register/watch.mjs +1 -1
  362. package/dist/runtime/scopedSlots.mjs +1 -1
  363. package/dist/runtime/selectorQuery.mjs +1 -1
  364. package/dist/runtime/template.mjs +1 -1
  365. package/dist/runtime/templateRefs/helpers.mjs +1 -1
  366. package/dist/runtime/templateRefs.mjs +1 -1
  367. package/dist/runtime/uniAppHost.mjs +1 -1
  368. package/dist/runtime/updatePerformance.mjs +1 -1
  369. package/dist/runtime/use.mjs +1 -1
  370. package/dist/runtime/vueCompat/context.mjs +1 -1
  371. package/dist/runtime/vueCompat/model.mjs +1 -1
  372. package/dist/runtime/vueCompat/router.mjs +1 -1
  373. package/dist/runtime/vueCompat/templateRef.mjs +1 -1
  374. package/dist/scheduler.mjs +1 -1
  375. package/dist/store/base.mjs +1 -1
  376. package/dist/store/define/create.mjs +1 -1
  377. package/dist/store/define.mjs +1 -1
  378. package/dist/store/view.mjs +1 -1
  379. package/package.json +7 -7
  380. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/defineProperty.mjs +0 -0
  381. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPrimitive.mjs +0 -0
  382. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPropertyKey.mjs +0 -0
  383. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/typeof.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useRoute.mjs","names":["runtimeOptions","useNativeRouterInternal","useNativePageRouterInternal"],"sources":["../../../src/router/useRoute.ts"],"sourcesContent":["import type { WevuNamedRouteMap } from '../router'\nimport 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<TRouteMap extends object = WevuNamedRouteMap> {\n resolveRoute?: (\n route: RouteLocationNormalizedLoaded<TRouteMap>,\n ) => RouteLocationNormalizedLoaded<TRouteMap>\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<TRouteMap extends object = WevuNamedRouteMap>(\n options: UseRouteOptions<NoInfer<TRouteMap>> = {},\n): Readonly<RouteLocationNormalizedLoaded<TRouteMap>> {\n // 路由表泛型只收窄公开快照;状态同步仍复用同一个运行时控制器。\n const runtimeOptions = options as unknown as UseRouteOptions\n const route = createRouteStateController(runtimeOptions).route\n return route as unknown as Readonly<RouteLocationNormalizedLoaded<TRouteMap>>\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":["runtimeOptions","useNativeRouterInternal","useNativePageRouterInternal"],"sources":["../../../src/router/useRoute.ts"],"sourcesContent":["import type { WevuNamedRouteMap } from '../router'\nimport 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<TRouteMap extends object = WevuNamedRouteMap> {\n resolveRoute?: (\n route: RouteLocationNormalizedLoaded<TRouteMap>,\n ) => RouteLocationNormalizedLoaded<TRouteMap>\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<TRouteMap extends object = WevuNamedRouteMap>(\n options: UseRouteOptions<NoInfer<TRouteMap>> = {},\n): Readonly<RouteLocationNormalizedLoaded<TRouteMap>> {\n // 路由表泛型只收窄公开快照;状态同步仍复用同一个运行时控制器。\n const runtimeOptions = options as unknown as UseRouteOptions\n const route = createRouteStateController(runtimeOptions).route\n return route as unknown as Readonly<RouteLocationNormalizedLoaded<TRouteMap>>\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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"}
@@ -6,6 +6,10 @@ import { AddRoute, InitialNavigationMode, LocationQuery, LocationQueryRaw, Locat
6
6
  import { createRouter } from "./router/createRouter.mjs";
7
7
  import { createNavigationFailure, isNavigationFailure } from "./router/navigationCore.mjs";
8
8
  import { resolveRouteLocation } from "./router/resolve.mjs";
9
+ import { ScrollRestorationContext, ScrollRestorationController, ScrollRestorationHandle, ScrollRestorationOptions, ScrollRestorationRegistrationOptions, ScrollViewRestorationHandle, UseScrollRestorationOptions } from "./router/scrollRestoration/types.mjs";
10
+ import { usePageScrollRestoration, useScrollViewRestoration } from "./router/scrollRestoration/adapters.mjs";
11
+ import { createScrollRestoration } from "./router/scrollRestoration/controller.mjs";
12
+ import { useScrollRestoration } from "./router/scrollRestoration/index.mjs";
9
13
  import { UseRouteOptions, useNativePageRouter, useNativeRouter, useRoute } from "./router/useRoute.mjs";
10
14
  import { useRouter } from "./router/useRouter.mjs";
11
15
  import { StaticPageDeclaration, StaticPageDeclaration as StaticPageDeclaration$1, StaticRouteValue } from "@wevu/compiler/page-route";
@@ -22,5 +26,5 @@ export interface WevuNamedRouteMap {}
22
26
  */
23
27
  export declare function definePage(route: StaticPageDeclaration$1): void;
24
28
  //#endregion
25
- export { type AddRoute, type InitialNavigationMode, type LocationQuery, type LocationQueryRaw, type LocationQueryValue, type LocationQueryValueRaw, type NamedRouteRecord, type NamedRoutes, type NavigationAfterEach, type NavigationAfterEachContext, type NavigationErrorContext, type NavigationErrorHandler, type NavigationFailure, NavigationFailureType, type NavigationFailureTypeValue, type NavigationGuard, type NavigationGuardContext, type NavigationGuardResult, type NavigationMode, type NavigationRedirect, type RouteLocationNamedRaw, type RouteLocationNormalizedByName, type RouteLocationNormalizedLoaded, type RouteLocationRaw, type RouteLocationRedirectedFrom, type RouteMeta, type RouteParamValue, type RouteParamValueRaw, type RouteParams, type RouteParamsMode, type RouteParamsRaw, type RouteQueryParser, type RouteQueryStringifier, type RouteRecordInput, type RouteRecordMatched, type RouteRecordRaw, type RouteRecordRedirect, type RouterNavigateToOption, type RouterNavigation, type RouterReLaunchOption, type RouterRedirectToOption, type RouterResolve, type RouterSwitchTabOption, type SetupContextRouter, type StaticPageDeclaration, type StaticRouteValue, type TypedRouterTabBarUrl, type TypedRouterUrl, type UseRouteOptions, type UseRouterOptions, type WevuAutoRoute, type WevuBroadRouteMap, type WevuNamedRouteDefinition, type WevuNamedRouteMeta, type WevuNamedRoutePath, type WevuRouteName, type WevuTypedRouterRouteMap, createNavigationFailure, createRouter, isNavigationFailure, parseQuery, resolveRouteLocation, stringifyQuery, useNativePageRouter, useNativeRouter, useRoute, useRouter };
29
+ export { type AddRoute, type InitialNavigationMode, type LocationQuery, type LocationQueryRaw, type LocationQueryValue, type LocationQueryValueRaw, type NamedRouteRecord, type NamedRoutes, type NavigationAfterEach, type NavigationAfterEachContext, type NavigationErrorContext, type NavigationErrorHandler, type NavigationFailure, NavigationFailureType, type NavigationFailureTypeValue, type NavigationGuard, type NavigationGuardContext, type NavigationGuardResult, type NavigationMode, type NavigationRedirect, type RouteLocationNamedRaw, type RouteLocationNormalizedByName, type RouteLocationNormalizedLoaded, type RouteLocationRaw, type RouteLocationRedirectedFrom, type RouteMeta, type RouteParamValue, type RouteParamValueRaw, type RouteParams, type RouteParamsMode, type RouteParamsRaw, type RouteQueryParser, type RouteQueryStringifier, type RouteRecordInput, type RouteRecordMatched, type RouteRecordRaw, type RouteRecordRedirect, type RouterNavigateToOption, type RouterNavigation, type RouterReLaunchOption, type RouterRedirectToOption, type RouterResolve, type RouterSwitchTabOption, type ScrollRestorationContext, type ScrollRestorationController, type ScrollRestorationHandle, type ScrollRestorationOptions, type ScrollRestorationRegistrationOptions, type ScrollViewRestorationHandle, type SetupContextRouter, type StaticPageDeclaration, type StaticRouteValue, type TypedRouterTabBarUrl, type TypedRouterUrl, type UseRouteOptions, type UseRouterOptions, type UseScrollRestorationOptions, type WevuAutoRoute, type WevuBroadRouteMap, type WevuNamedRouteDefinition, type WevuNamedRouteMeta, type WevuNamedRoutePath, type WevuRouteName, type WevuTypedRouterRouteMap, createNavigationFailure, createRouter, createScrollRestoration, isNavigationFailure, parseQuery, resolveRouteLocation, stringifyQuery, useNativePageRouter, useNativeRouter, usePageScrollRestoration, useRoute, useRouter, useScrollRestoration, useScrollViewRestoration };
26
30
  //# sourceMappingURL=router.d.mts.map
@@ -4,6 +4,9 @@ import { createNavigationFailure, isNavigationFailure } from "./router/navigatio
4
4
  import { resolveRouteLocation } from "./router/resolve.mjs";
5
5
  import { useNativePageRouter, useNativeRouter, useRoute } from "./router/useRoute.mjs";
6
6
  import { createRouter } from "./router/createRouter.mjs";
7
+ import { createScrollRestoration } from "./router/scrollRestoration/controller.mjs";
8
+ import { useScrollRestoration } from "./router/scrollRestoration/index.mjs";
9
+ import { usePageScrollRestoration, useScrollViewRestoration } from "./router/scrollRestoration/adapters.mjs";
7
10
  import { useRouter } from "./router/useRouter.mjs";
8
11
 
9
- export { NavigationFailureType, createNavigationFailure, createRouter, isNavigationFailure, parseQuery, resolveRouteLocation, stringifyQuery, useNativePageRouter, useNativeRouter, useRoute, useRouter };
12
+ export { NavigationFailureType, createNavigationFailure, createRouter, createScrollRestoration, isNavigationFailure, parseQuery, resolveRouteLocation, stringifyQuery, useNativePageRouter, useNativeRouter, usePageScrollRestoration, useRoute, useRouter, useScrollRestoration, useScrollViewRestoration };
@@ -41,7 +41,7 @@ function createRouteLocation(path, query, hash = "", name, params = {}, queryStr
41
41
  return location;
42
42
  }
43
43
  function hasPageRoute(page) {
44
- return typeof (page === null || page === void 0 ? void 0 : page.route) === "string" && page.route.length > 0 || typeof (page === null || page === void 0 ? void 0 : page.__route__) === "string" && page.__route__.length > 0;
44
+ return typeof page?.route === "string" && page.route.length > 0 || typeof page?.__route__ === "string" && page.__route__.length > 0;
45
45
  }
46
46
  function getCurrentMiniProgramPage(fallbackPage) {
47
47
  const pages = getCurrentMiniProgramPages();
@@ -53,10 +53,9 @@ function getCurrentMiniProgramPage(fallbackPage) {
53
53
  return hasPageRoute(currentPageInstance) ? currentPageInstance : fallbackPage;
54
54
  }
55
55
  function resolvePageRoute(page, queryOverride) {
56
- var _page$options;
57
56
  if (!page) return createRouteLocation("", {});
58
57
  const rawPath = typeof page.route === "string" ? page.route : typeof page.__route__ === "string" ? page.__route__ : "";
59
- const querySource = queryOverride !== null && queryOverride !== void 0 ? queryOverride : (_page$options = page.options) !== null && _page$options !== void 0 ? _page$options : {};
58
+ const querySource = queryOverride ?? page.options ?? {};
60
59
  return createRouteLocation(rawPath, normalizeQuery(querySource), "", void 0, {});
61
60
  }
62
61
  function resolveCurrentRoute(queryOverride, fallbackPage) {
@@ -1 +1 @@
1
- {"version":3,"file":"location.mjs","names":[],"sources":["../../../src/routerInternal/location.ts"],"sourcesContent":["import type {\n LocationQuery,\n LocationQueryRaw,\n RouteLocationNormalizedLoaded,\n RouteParams,\n RouteQueryStringifier,\n} from '../router'\nimport type { MiniProgramPageLike, RouteResolveCodec } from './types'\nimport { getCurrentMiniProgramPages } from '../runtime/platform'\nimport { getCurrentPageInstance } from '../runtime/register/component/lifecycle/platform'\nimport { createAbsoluteRoutePath, resolvePath } from './path'\nimport { normalizeHash, normalizeQuery, parseQuery, stringifyQuery } from './query'\n\nconst DEFAULT_ROUTE_RESOLVE_CODEC: RouteResolveCodec = {\n parseQuery,\n stringifyQuery,\n}\n\nexport function parsePathInput(\n input: string,\n codec: RouteResolveCodec = DEFAULT_ROUTE_RESOLVE_CODEC,\n): { path: string, query: LocationQuery, hash: string } {\n const hashIndex = input.indexOf('#')\n const withoutHash = hashIndex >= 0 ? input.slice(0, hashIndex) : input\n const hash = hashIndex >= 0 ? normalizeHash(input.slice(hashIndex + 1)) : ''\n const queryIndex = withoutHash.indexOf('?')\n\n if (queryIndex < 0) {\n return {\n path: withoutHash,\n query: {},\n hash,\n }\n }\n\n return {\n path: withoutHash.slice(0, queryIndex),\n query: normalizeQuery(codec.parseQuery(withoutHash.slice(queryIndex + 1))),\n hash,\n }\n}\n\nexport function createRouteLocation(\n path: string,\n query: LocationQuery,\n hash = '',\n name?: string,\n params: RouteParams = {},\n queryStringifier: RouteQueryStringifier = stringifyQuery,\n): RouteLocationNormalizedLoaded {\n const normalizedPath = resolvePath(path, '')\n const queryString = queryStringifier(query)\n const fullPathBase = createAbsoluteRoutePath(normalizedPath)\n const normalizedHash = normalizeHash(hash)\n const fullPath = queryString ? `${fullPathBase}?${queryString}` : fullPathBase\n const location: RouteLocationNormalizedLoaded = {\n path: normalizedPath,\n fullPath: normalizedHash ? `${fullPath}${normalizedHash}` : fullPath,\n query,\n hash: normalizedHash,\n params,\n }\n if (name !== undefined) {\n location.name = name\n }\n\n return location\n}\n\nfunction hasPageRoute(page: MiniProgramPageLike | undefined): page is MiniProgramPageLike {\n return (typeof page?.route === 'string' && page.route.length > 0)\n || (typeof page?.__route__ === 'string' && page.__route__.length > 0)\n}\n\nfunction getCurrentMiniProgramPage(fallbackPage?: MiniProgramPageLike): MiniProgramPageLike | undefined {\n const pages = getCurrentMiniProgramPages() as MiniProgramPageLike[]\n if (Array.isArray(pages) && pages.length > 0) {\n const currentPage = pages[pages.length - 1]\n if (hasPageRoute(currentPage)) {\n return currentPage\n }\n }\n\n const currentPageInstance = getCurrentPageInstance() as MiniProgramPageLike | undefined\n return hasPageRoute(currentPageInstance) ? currentPageInstance : fallbackPage\n}\n\nexport function resolvePageRoute(\n page: MiniProgramPageLike | undefined,\n queryOverride?: LocationQueryRaw,\n): RouteLocationNormalizedLoaded {\n if (!page) {\n return createRouteLocation('', {})\n }\n\n const rawPath = typeof page.route === 'string'\n ? page.route\n : typeof page.__route__ === 'string'\n ? page.__route__\n : ''\n\n const querySource = queryOverride ?? ((page.options ?? {}) as LocationQueryRaw)\n const query = normalizeQuery(querySource)\n return createRouteLocation(rawPath, query, '', undefined, {})\n}\n\nexport function resolveCurrentRoute(\n queryOverride?: LocationQueryRaw,\n fallbackPage?: MiniProgramPageLike,\n): RouteLocationNormalizedLoaded {\n const currentPage = getCurrentMiniProgramPage(fallbackPage)\n return resolvePageRoute(currentPage, queryOverride)\n}\n"],"mappings":";;;;;;AAaA,MAAM,8BAAiD;CACrD;CACA;AACF;AAEA,SAAgB,eACd,OACA,QAA2B,6BAC2B;CACtD,MAAM,YAAY,MAAM,QAAQ,GAAG;CACnC,MAAM,cAAc,aAAa,IAAI,MAAM,MAAM,GAAG,SAAS,IAAI;CACjE,MAAM,OAAO,aAAa,IAAI,cAAc,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;CAC1E,MAAM,aAAa,YAAY,QAAQ,GAAG;CAE1C,IAAI,aAAa,GACf,OAAO;EACL,MAAM;EACN,OAAO,CAAC;EACR;CACF;CAGF,OAAO;EACL,MAAM,YAAY,MAAM,GAAG,UAAU;EACrC,OAAO,eAAe,MAAM,WAAW,YAAY,MAAM,aAAa,CAAC,CAAC,CAAC;EACzE;CACF;AACF;AAEA,SAAgB,oBACd,MACA,OACA,OAAO,IACP,MACA,SAAsB,CAAC,GACvB,mBAA0C,gBACX;CAC/B,MAAM,iBAAiB,YAAY,MAAM,EAAE;CAC3C,MAAM,cAAc,iBAAiB,KAAK;CAC1C,MAAM,eAAe,wBAAwB,cAAc;CAC3D,MAAM,iBAAiB,cAAc,IAAI;CACzC,MAAM,WAAW,cAAc,GAAG,aAAa,GAAG,gBAAgB;CAClE,MAAM,WAA0C;EAC9C,MAAM;EACN,UAAU,iBAAiB,GAAG,WAAW,mBAAmB;EAC5D;EACA,MAAM;EACN;CACF;CACA,IAAI,SAAS,QACX,SAAS,OAAO;CAGlB,OAAO;AACT;AAEA,SAAS,aAAa,MAAoE;CACxF,OAAQ,oDAAO,KAAM,WAAU,YAAY,KAAK,MAAM,SAAS,KACzD,oDAAO,KAAM,eAAc,YAAY,KAAK,UAAU,SAAS;AACvE;AAEA,SAAS,0BAA0B,cAAqE;CACtG,MAAM,QAAQ,2BAA2B;CACzC,IAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,GAAG;EAC5C,MAAM,cAAc,MAAM,MAAM,SAAS;EACzC,IAAI,aAAa,WAAW,GAC1B,OAAO;CAEX;CAEA,MAAM,sBAAsB,uBAAuB;CACnD,OAAO,aAAa,mBAAmB,IAAI,sBAAsB;AACnE;AAEA,SAAgB,iBACd,MACA,eAC+B;;CAC/B,IAAI,CAAC,MACH,OAAO,oBAAoB,IAAI,CAAC,CAAC;CAGnC,MAAM,UAAU,OAAO,KAAK,UAAU,WAClC,KAAK,QACL,OAAO,KAAK,cAAc,WACxB,KAAK,YACL;CAEN,MAAM,cAAc,sFAAmB,KAAK,gEAAW,CAAC;CAExD,OAAO,oBAAoB,SADb,eAAe,WACW,GAAG,IAAI,QAAW,CAAC,CAAC;AAC9D;AAEA,SAAgB,oBACd,eACA,cAC+B;CAE/B,OAAO,iBADa,0BAA0B,YACZ,GAAG,aAAa;AACpD"}
1
+ {"version":3,"file":"location.mjs","names":[],"sources":["../../../src/routerInternal/location.ts"],"sourcesContent":["import type {\n LocationQuery,\n LocationQueryRaw,\n RouteLocationNormalizedLoaded,\n RouteParams,\n RouteQueryStringifier,\n} from '../router'\nimport type { MiniProgramPageLike, RouteResolveCodec } from './types'\nimport { getCurrentMiniProgramPages } from '../runtime/platform'\nimport { getCurrentPageInstance } from '../runtime/register/component/lifecycle/platform'\nimport { createAbsoluteRoutePath, resolvePath } from './path'\nimport { normalizeHash, normalizeQuery, parseQuery, stringifyQuery } from './query'\n\nconst DEFAULT_ROUTE_RESOLVE_CODEC: RouteResolveCodec = {\n parseQuery,\n stringifyQuery,\n}\n\nexport function parsePathInput(\n input: string,\n codec: RouteResolveCodec = DEFAULT_ROUTE_RESOLVE_CODEC,\n): { path: string, query: LocationQuery, hash: string } {\n const hashIndex = input.indexOf('#')\n const withoutHash = hashIndex >= 0 ? input.slice(0, hashIndex) : input\n const hash = hashIndex >= 0 ? normalizeHash(input.slice(hashIndex + 1)) : ''\n const queryIndex = withoutHash.indexOf('?')\n\n if (queryIndex < 0) {\n return {\n path: withoutHash,\n query: {},\n hash,\n }\n }\n\n return {\n path: withoutHash.slice(0, queryIndex),\n query: normalizeQuery(codec.parseQuery(withoutHash.slice(queryIndex + 1))),\n hash,\n }\n}\n\nexport function createRouteLocation(\n path: string,\n query: LocationQuery,\n hash = '',\n name?: string,\n params: RouteParams = {},\n queryStringifier: RouteQueryStringifier = stringifyQuery,\n): RouteLocationNormalizedLoaded {\n const normalizedPath = resolvePath(path, '')\n const queryString = queryStringifier(query)\n const fullPathBase = createAbsoluteRoutePath(normalizedPath)\n const normalizedHash = normalizeHash(hash)\n const fullPath = queryString ? `${fullPathBase}?${queryString}` : fullPathBase\n const location: RouteLocationNormalizedLoaded = {\n path: normalizedPath,\n fullPath: normalizedHash ? `${fullPath}${normalizedHash}` : fullPath,\n query,\n hash: normalizedHash,\n params,\n }\n if (name !== undefined) {\n location.name = name\n }\n\n return location\n}\n\nfunction hasPageRoute(page: MiniProgramPageLike | undefined): page is MiniProgramPageLike {\n return (typeof page?.route === 'string' && page.route.length > 0)\n || (typeof page?.__route__ === 'string' && page.__route__.length > 0)\n}\n\nfunction getCurrentMiniProgramPage(fallbackPage?: MiniProgramPageLike): MiniProgramPageLike | undefined {\n const pages = getCurrentMiniProgramPages() as MiniProgramPageLike[]\n if (Array.isArray(pages) && pages.length > 0) {\n const currentPage = pages[pages.length - 1]\n if (hasPageRoute(currentPage)) {\n return currentPage\n }\n }\n\n const currentPageInstance = getCurrentPageInstance() as MiniProgramPageLike | undefined\n return hasPageRoute(currentPageInstance) ? currentPageInstance : fallbackPage\n}\n\nexport function resolvePageRoute(\n page: MiniProgramPageLike | undefined,\n queryOverride?: LocationQueryRaw,\n): RouteLocationNormalizedLoaded {\n if (!page) {\n return createRouteLocation('', {})\n }\n\n const rawPath = typeof page.route === 'string'\n ? page.route\n : typeof page.__route__ === 'string'\n ? page.__route__\n : ''\n\n const querySource = queryOverride ?? ((page.options ?? {}) as LocationQueryRaw)\n const query = normalizeQuery(querySource)\n return createRouteLocation(rawPath, query, '', undefined, {})\n}\n\nexport function resolveCurrentRoute(\n queryOverride?: LocationQueryRaw,\n fallbackPage?: MiniProgramPageLike,\n): RouteLocationNormalizedLoaded {\n const currentPage = getCurrentMiniProgramPage(fallbackPage)\n return resolvePageRoute(currentPage, queryOverride)\n}\n"],"mappings":";;;;;;AAaA,MAAM,8BAAiD;CACrD;CACA;AACF;AAEA,SAAgB,eACd,OACA,QAA2B,6BAC2B;CACtD,MAAM,YAAY,MAAM,QAAQ,GAAG;CACnC,MAAM,cAAc,aAAa,IAAI,MAAM,MAAM,GAAG,SAAS,IAAI;CACjE,MAAM,OAAO,aAAa,IAAI,cAAc,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;CAC1E,MAAM,aAAa,YAAY,QAAQ,GAAG;CAE1C,IAAI,aAAa,GACf,OAAO;EACL,MAAM;EACN,OAAO,CAAC;EACR;CACF;CAGF,OAAO;EACL,MAAM,YAAY,MAAM,GAAG,UAAU;EACrC,OAAO,eAAe,MAAM,WAAW,YAAY,MAAM,aAAa,CAAC,CAAC,CAAC;EACzE;CACF;AACF;AAEA,SAAgB,oBACd,MACA,OACA,OAAO,IACP,MACA,SAAsB,CAAC,GACvB,mBAA0C,gBACX;CAC/B,MAAM,iBAAiB,YAAY,MAAM,EAAE;CAC3C,MAAM,cAAc,iBAAiB,KAAK;CAC1C,MAAM,eAAe,wBAAwB,cAAc;CAC3D,MAAM,iBAAiB,cAAc,IAAI;CACzC,MAAM,WAAW,cAAc,GAAG,aAAa,GAAG,gBAAgB;CAClE,MAAM,WAA0C;EAC9C,MAAM;EACN,UAAU,iBAAiB,GAAG,WAAW,mBAAmB;EAC5D;EACA,MAAM;EACN;CACF;CACA,IAAI,SAAS,QACX,SAAS,OAAO;CAGlB,OAAO;AACT;AAEA,SAAS,aAAa,MAAoE;CACxF,OAAQ,OAAO,MAAM,UAAU,YAAY,KAAK,MAAM,SAAS,KACzD,OAAO,MAAM,cAAc,YAAY,KAAK,UAAU,SAAS;AACvE;AAEA,SAAS,0BAA0B,cAAqE;CACtG,MAAM,QAAQ,2BAA2B;CACzC,IAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,GAAG;EAC5C,MAAM,cAAc,MAAM,MAAM,SAAS;EACzC,IAAI,aAAa,WAAW,GAC1B,OAAO;CAEX;CAEA,MAAM,sBAAsB,uBAAuB;CACnD,OAAO,aAAa,mBAAmB,IAAI,sBAAsB;AACnE;AAEA,SAAgB,iBACd,MACA,eAC+B;CAC/B,IAAI,CAAC,MACH,OAAO,oBAAoB,IAAI,CAAC,CAAC;CAGnC,MAAM,UAAU,OAAO,KAAK,UAAU,WAClC,KAAK,QACL,OAAO,KAAK,cAAc,WACxB,KAAK,YACL;CAEN,MAAM,cAAc,iBAAmB,KAAK,WAAW,CAAC;CAExD,OAAO,oBAAoB,SADb,eAAe,WACW,GAAG,IAAI,QAAW,CAAC,CAAC;AAC9D;AAEA,SAAgB,oBACd,eACA,cAC+B;CAE/B,OAAO,iBADa,0BAA0B,YACZ,GAAG,aAAa;AACpD"}
@@ -3,12 +3,11 @@ import { normalizeRouteParams } from "./query.mjs";
3
3
  //#region src/routerInternal/params.ts
4
4
  const PATH_PARAM_TOKEN_RE = /^:(\w+)(?:\([^)]*\))?([+*?])?$/;
5
5
  function parsePathParamToken(segment) {
6
- var _match$;
7
6
  const match = PATH_PARAM_TOKEN_RE.exec(segment);
8
7
  if (!match) return;
9
8
  return {
10
9
  key: match[1],
11
- modifier: (_match$ = match[2]) !== null && _match$ !== void 0 ? _match$ : ""
10
+ modifier: match[2] ?? ""
12
11
  };
13
12
  }
14
13
  function normalizePathParamValues(value) {
@@ -22,7 +21,7 @@ function stringifyPathParamSegment(value) {
22
21
  function decodeRouteParamSegment(value) {
23
22
  try {
24
23
  return decodeURIComponent(value);
25
- } catch (_unused) {
24
+ } catch {
26
25
  return value;
27
26
  }
28
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"params.mjs","names":[],"sources":["../../../src/routerInternal/params.ts"],"sourcesContent":["import type {\n RouteLocationRaw,\n RouteParams,\n RouteParamsMode,\n RouteParamValue,\n} from '../router'\nimport type {\n NamedRouteLookup,\n NamedRoutePathResolveResult,\n PathParamToken,\n} from './types'\nimport { normalizeRouteParams } from './query'\n\nconst PATH_PARAM_TOKEN_RE = /^:(\\w+)(?:\\([^)]*\\))?([+*?])?$/\n\nexport function parsePathParamToken(segment: string): PathParamToken | undefined {\n const match = PATH_PARAM_TOKEN_RE.exec(segment)\n if (!match) {\n return undefined\n }\n\n return {\n key: match[1],\n modifier: (match[2] ?? '') as PathParamToken['modifier'],\n }\n}\n\nfunction normalizePathParamValues(value: RouteParamValue | RouteParamValue[] | undefined): RouteParamValue[] {\n if (value === undefined) {\n return []\n }\n if (Array.isArray(value)) {\n return value\n }\n return [value]\n}\n\nfunction stringifyPathParamSegment(value: RouteParamValue): string {\n return encodeURIComponent(value)\n}\n\nexport function decodeRouteParamSegment(value: string): string {\n try {\n return decodeURIComponent(value)\n }\n catch {\n return value\n }\n}\n\nfunction resolveNamedRoutePath(pathTemplate: string, params: RouteParams, routeName: string): NamedRoutePathResolveResult {\n const resolvedSegments: string[] = []\n const consumedKeys = new Set<string>()\n for (const rawSegment of pathTemplate.split('/')) {\n if (!rawSegment) {\n continue\n }\n\n const token = parsePathParamToken(rawSegment)\n if (!token) {\n resolvedSegments.push(rawSegment)\n continue\n }\n\n const values = normalizePathParamValues(params[token.key])\n if (token.modifier === '') {\n if (values.length !== 1) {\n throw new Error(`Missing required param \"${token.key}\" for named route \"${routeName}\"`)\n }\n consumedKeys.add(token.key)\n resolvedSegments.push(stringifyPathParamSegment(values[0]))\n continue\n }\n\n if (token.modifier === '?') {\n if (values.length === 0) {\n continue\n }\n if (values.length > 1) {\n throw new Error(`Param \"${token.key}\" for named route \"${routeName}\" must be a single value`)\n }\n consumedKeys.add(token.key)\n resolvedSegments.push(stringifyPathParamSegment(values[0]))\n continue\n }\n\n if (token.modifier === '+') {\n if (values.length === 0) {\n throw new Error(`Missing required repeatable param \"${token.key}\" for named route \"${routeName}\"`)\n }\n consumedKeys.add(token.key)\n for (const value of values) {\n resolvedSegments.push(stringifyPathParamSegment(value))\n }\n continue\n }\n\n if (values.length > 0) {\n consumedKeys.add(token.key)\n }\n for (const value of values) {\n resolvedSegments.push(stringifyPathParamSegment(value))\n }\n }\n\n return {\n path: resolvedSegments.join('/'),\n consumedKeys,\n }\n}\n\nfunction hasNonEmptyRouteParamValue(value: RouteParamValue | RouteParamValue[] | undefined): boolean {\n if (value === undefined) {\n return false\n }\n if (Array.isArray(value)) {\n return value.length > 0\n }\n return true\n}\n\nfunction assertNoUnexpectedNamedRouteParams(\n params: RouteParams,\n consumedKeys: ReadonlySet<string>,\n routeName: string,\n) {\n const unexpectedKeys = Object.keys(params)\n .filter(key => !consumedKeys.has(key))\n .filter(key => hasNonEmptyRouteParamValue(params[key]))\n\n if (unexpectedKeys.length === 0) {\n return\n }\n\n throw new Error(`Unexpected params for named route \"${routeName}\": ${unexpectedKeys.join(', ')}`)\n}\n\nexport function resolveNamedRouteLocation(\n to: Exclude<RouteLocationRaw, string>,\n lookup: NamedRouteLookup,\n paramsMode: RouteParamsMode,\n): Exclude<RouteLocationRaw, string> {\n const routeName = to.name\n if (typeof routeName !== 'string' || !routeName) {\n return to\n }\n if (to.path !== undefined || to.fullPath !== undefined) {\n return to\n }\n\n const routeRecord = lookup.recordByName.get(routeName)\n if (!routeRecord) {\n throw new Error(`Named route \"${routeName}\" is not defined in createRouter({ routes | namedRoutes })`)\n }\n\n const params = to.params\n ? normalizeRouteParams(to.params)\n : {}\n const resolvedResult = resolveNamedRoutePath(routeRecord.path, params, routeName)\n if (paramsMode === 'strict') {\n assertNoUnexpectedNamedRouteParams(params, resolvedResult.consumedKeys, routeName)\n }\n\n return {\n ...to,\n path: resolvedResult.path ? `/${resolvedResult.path}` : '/',\n params,\n }\n}\n"],"mappings":";;;AAaA,MAAM,sBAAsB;AAE5B,SAAgB,oBAAoB,SAA6C;;CAC/E,MAAM,QAAQ,oBAAoB,KAAK,OAAO;CAC9C,IAAI,CAAC,OACH;CAGF,OAAO;EACL,KAAK,MAAM;EACX,qBAAW,MAAM,+CAAM;CACzB;AACF;AAEA,SAAS,yBAAyB,OAA2E;CAC3G,IAAI,UAAU,QACZ,OAAO,CAAC;CAEV,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO;CAET,OAAO,CAAC,KAAK;AACf;AAEA,SAAS,0BAA0B,OAAgC;CACjE,OAAO,mBAAmB,KAAK;AACjC;AAEA,SAAgB,wBAAwB,OAAuB;CAC7D,IAAI;EACF,OAAO,mBAAmB,KAAK;CACjC,kBACM;EACJ,OAAO;CACT;AACF;AAEA,SAAS,sBAAsB,cAAsB,QAAqB,WAAgD;CACxH,MAAM,mBAA6B,CAAC;CACpC,MAAM,+BAAe,IAAI,IAAY;CACrC,KAAK,MAAM,cAAc,aAAa,MAAM,GAAG,GAAG;EAChD,IAAI,CAAC,YACH;EAGF,MAAM,QAAQ,oBAAoB,UAAU;EAC5C,IAAI,CAAC,OAAO;GACV,iBAAiB,KAAK,UAAU;GAChC;EACF;EAEA,MAAM,SAAS,yBAAyB,OAAO,MAAM,IAAI;EACzD,IAAI,MAAM,aAAa,IAAI;GACzB,IAAI,OAAO,WAAW,GACpB,MAAM,IAAI,MAAM,2BAA2B,MAAM,IAAI,qBAAqB,UAAU,EAAE;GAExF,aAAa,IAAI,MAAM,GAAG;GAC1B,iBAAiB,KAAK,0BAA0B,OAAO,EAAE,CAAC;GAC1D;EACF;EAEA,IAAI,MAAM,aAAa,KAAK;GAC1B,IAAI,OAAO,WAAW,GACpB;GAEF,IAAI,OAAO,SAAS,GAClB,MAAM,IAAI,MAAM,UAAU,MAAM,IAAI,qBAAqB,UAAU,yBAAyB;GAE9F,aAAa,IAAI,MAAM,GAAG;GAC1B,iBAAiB,KAAK,0BAA0B,OAAO,EAAE,CAAC;GAC1D;EACF;EAEA,IAAI,MAAM,aAAa,KAAK;GAC1B,IAAI,OAAO,WAAW,GACpB,MAAM,IAAI,MAAM,sCAAsC,MAAM,IAAI,qBAAqB,UAAU,EAAE;GAEnG,aAAa,IAAI,MAAM,GAAG;GAC1B,KAAK,MAAM,SAAS,QAClB,iBAAiB,KAAK,0BAA0B,KAAK,CAAC;GAExD;EACF;EAEA,IAAI,OAAO,SAAS,GAClB,aAAa,IAAI,MAAM,GAAG;EAE5B,KAAK,MAAM,SAAS,QAClB,iBAAiB,KAAK,0BAA0B,KAAK,CAAC;CAE1D;CAEA,OAAO;EACL,MAAM,iBAAiB,KAAK,GAAG;EAC/B;CACF;AACF;AAEA,SAAS,2BAA2B,OAAiE;CACnG,IAAI,UAAU,QACZ,OAAO;CAET,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,MAAM,SAAS;CAExB,OAAO;AACT;AAEA,SAAS,mCACP,QACA,cACA,WACA;CACA,MAAM,iBAAiB,OAAO,KAAK,MAAM,CAAC,CACvC,QAAO,QAAO,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,CACrC,QAAO,QAAO,2BAA2B,OAAO,IAAI,CAAC;CAExD,IAAI,eAAe,WAAW,GAC5B;CAGF,MAAM,IAAI,MAAM,sCAAsC,UAAU,KAAK,eAAe,KAAK,IAAI,GAAG;AAClG;AAEA,SAAgB,0BACd,IACA,QACA,YACmC;CACnC,MAAM,YAAY,GAAG;CACrB,IAAI,OAAO,cAAc,YAAY,CAAC,WACpC,OAAO;CAET,IAAI,GAAG,SAAS,UAAa,GAAG,aAAa,QAC3C,OAAO;CAGT,MAAM,cAAc,OAAO,aAAa,IAAI,SAAS;CACrD,IAAI,CAAC,aACH,MAAM,IAAI,MAAM,gBAAgB,UAAU,2DAA2D;CAGvG,MAAM,SAAS,GAAG,SACd,qBAAqB,GAAG,MAAM,IAC9B,CAAC;CACL,MAAM,iBAAiB,sBAAsB,YAAY,MAAM,QAAQ,SAAS;CAChF,IAAI,eAAe,UACjB,mCAAmC,QAAQ,eAAe,cAAc,SAAS;CAGnF,OAAO;EACL,GAAG;EACH,MAAM,eAAe,OAAO,IAAI,eAAe,SAAS;EACxD;CACF;AACF"}
1
+ {"version":3,"file":"params.mjs","names":[],"sources":["../../../src/routerInternal/params.ts"],"sourcesContent":["import type {\n RouteLocationRaw,\n RouteParams,\n RouteParamsMode,\n RouteParamValue,\n} from '../router'\nimport type {\n NamedRouteLookup,\n NamedRoutePathResolveResult,\n PathParamToken,\n} from './types'\nimport { normalizeRouteParams } from './query'\n\nconst PATH_PARAM_TOKEN_RE = /^:(\\w+)(?:\\([^)]*\\))?([+*?])?$/\n\nexport function parsePathParamToken(segment: string): PathParamToken | undefined {\n const match = PATH_PARAM_TOKEN_RE.exec(segment)\n if (!match) {\n return undefined\n }\n\n return {\n key: match[1],\n modifier: (match[2] ?? '') as PathParamToken['modifier'],\n }\n}\n\nfunction normalizePathParamValues(value: RouteParamValue | RouteParamValue[] | undefined): RouteParamValue[] {\n if (value === undefined) {\n return []\n }\n if (Array.isArray(value)) {\n return value\n }\n return [value]\n}\n\nfunction stringifyPathParamSegment(value: RouteParamValue): string {\n return encodeURIComponent(value)\n}\n\nexport function decodeRouteParamSegment(value: string): string {\n try {\n return decodeURIComponent(value)\n }\n catch {\n return value\n }\n}\n\nfunction resolveNamedRoutePath(pathTemplate: string, params: RouteParams, routeName: string): NamedRoutePathResolveResult {\n const resolvedSegments: string[] = []\n const consumedKeys = new Set<string>()\n for (const rawSegment of pathTemplate.split('/')) {\n if (!rawSegment) {\n continue\n }\n\n const token = parsePathParamToken(rawSegment)\n if (!token) {\n resolvedSegments.push(rawSegment)\n continue\n }\n\n const values = normalizePathParamValues(params[token.key])\n if (token.modifier === '') {\n if (values.length !== 1) {\n throw new Error(`Missing required param \"${token.key}\" for named route \"${routeName}\"`)\n }\n consumedKeys.add(token.key)\n resolvedSegments.push(stringifyPathParamSegment(values[0]))\n continue\n }\n\n if (token.modifier === '?') {\n if (values.length === 0) {\n continue\n }\n if (values.length > 1) {\n throw new Error(`Param \"${token.key}\" for named route \"${routeName}\" must be a single value`)\n }\n consumedKeys.add(token.key)\n resolvedSegments.push(stringifyPathParamSegment(values[0]))\n continue\n }\n\n if (token.modifier === '+') {\n if (values.length === 0) {\n throw new Error(`Missing required repeatable param \"${token.key}\" for named route \"${routeName}\"`)\n }\n consumedKeys.add(token.key)\n for (const value of values) {\n resolvedSegments.push(stringifyPathParamSegment(value))\n }\n continue\n }\n\n if (values.length > 0) {\n consumedKeys.add(token.key)\n }\n for (const value of values) {\n resolvedSegments.push(stringifyPathParamSegment(value))\n }\n }\n\n return {\n path: resolvedSegments.join('/'),\n consumedKeys,\n }\n}\n\nfunction hasNonEmptyRouteParamValue(value: RouteParamValue | RouteParamValue[] | undefined): boolean {\n if (value === undefined) {\n return false\n }\n if (Array.isArray(value)) {\n return value.length > 0\n }\n return true\n}\n\nfunction assertNoUnexpectedNamedRouteParams(\n params: RouteParams,\n consumedKeys: ReadonlySet<string>,\n routeName: string,\n) {\n const unexpectedKeys = Object.keys(params)\n .filter(key => !consumedKeys.has(key))\n .filter(key => hasNonEmptyRouteParamValue(params[key]))\n\n if (unexpectedKeys.length === 0) {\n return\n }\n\n throw new Error(`Unexpected params for named route \"${routeName}\": ${unexpectedKeys.join(', ')}`)\n}\n\nexport function resolveNamedRouteLocation(\n to: Exclude<RouteLocationRaw, string>,\n lookup: NamedRouteLookup,\n paramsMode: RouteParamsMode,\n): Exclude<RouteLocationRaw, string> {\n const routeName = to.name\n if (typeof routeName !== 'string' || !routeName) {\n return to\n }\n if (to.path !== undefined || to.fullPath !== undefined) {\n return to\n }\n\n const routeRecord = lookup.recordByName.get(routeName)\n if (!routeRecord) {\n throw new Error(`Named route \"${routeName}\" is not defined in createRouter({ routes | namedRoutes })`)\n }\n\n const params = to.params\n ? normalizeRouteParams(to.params)\n : {}\n const resolvedResult = resolveNamedRoutePath(routeRecord.path, params, routeName)\n if (paramsMode === 'strict') {\n assertNoUnexpectedNamedRouteParams(params, resolvedResult.consumedKeys, routeName)\n }\n\n return {\n ...to,\n path: resolvedResult.path ? `/${resolvedResult.path}` : '/',\n params,\n }\n}\n"],"mappings":"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"}
@@ -70,7 +70,7 @@ function flattenNamedRouteRecords(records, parentPath, parentName, parentAliasPa
70
70
  continue;
71
71
  }
72
72
  if (typeof record.path !== "string" || !record.path) {
73
- const routeName = typeof (record === null || record === void 0 ? void 0 : record.name) === "string" ? record.name.trim() : "";
73
+ const routeName = typeof record?.name === "string" ? record.name.trim() : "";
74
74
  warnRouteConfig(`ignored route record "${routeName}" at ${routeConfigPath}: route path is required`);
75
75
  continue;
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"records.mjs","names":[],"sources":["../../../src/routerInternal/records.ts"],"sourcesContent":["import type {\n NamedRoutes,\n NavigationGuard,\n RouteRecordInput,\n RouteRecordRaw,\n UseRouterOptions,\n} from '../router'\nimport type {\n FlattenedRouteRecordSeed,\n NamedRouteLookup,\n RouteOptionSource,\n RouteRecordNormalized,\n} from './types'\nimport { createAbsoluteRoutePath, isDynamicRoutePath, resolvePath } from './path'\nimport { warnRouteConfig } from './recordsWarnings'\n\nfunction normalizeBeforeEnterGuards(beforeEnter?: RouteRecordRaw['beforeEnter']): readonly NavigationGuard[] {\n if (!beforeEnter) {\n return []\n }\n if (Array.isArray(beforeEnter)) {\n return beforeEnter as readonly NavigationGuard[]\n }\n return [beforeEnter as NavigationGuard]\n}\n\nfunction resolveRouteRecordName(\n route: RouteRecordInput,\n normalizedPath: string,\n source: RouteOptionSource = 'namedRoutes',\n): string {\n if (typeof route.name === 'string' && route.name.trim()) {\n return route.name.trim()\n }\n\n if (source === 'routes') {\n return normalizedPath || '/'\n }\n\n return ''\n}\n\nfunction normalizeRouteRecordAliasPaths(\n alias: RouteRecordRaw['alias'],\n normalizedPath: string,\n): readonly string[] {\n if (!alias) {\n return []\n }\n const aliasList = Array.isArray(alias)\n ? alias\n : [alias]\n\n const normalizedAliasPaths: string[] = []\n for (const aliasPath of aliasList) {\n if (typeof aliasPath !== 'string') {\n continue\n }\n const normalizedAliasPath = resolvePath(aliasPath, '')\n if (!normalizedAliasPath || normalizedAliasPath === normalizedPath) {\n continue\n }\n if (!normalizedAliasPaths.includes(normalizedAliasPath)) {\n normalizedAliasPaths.push(normalizedAliasPath)\n }\n }\n\n return normalizedAliasPaths\n}\n\nexport function normalizeRouteRecordRaw(\n route: RouteRecordInput,\n parentName?: string,\n source: RouteOptionSource = 'namedRoutes',\n): RouteRecordNormalized | undefined {\n const normalizedPath = resolvePath(route.path, '')\n if (!normalizedPath && route.path !== '/') {\n return undefined\n }\n\n const routeName = resolveRouteRecordName(route, normalizedPath, source)\n if (!routeName) {\n return undefined\n }\n const aliasPaths = normalizeRouteRecordAliasPaths(route.alias, normalizedPath)\n\n return {\n name: routeName,\n path: normalizedPath,\n aliasPaths,\n parentName,\n meta: route.meta,\n beforeEnterGuards: normalizeBeforeEnterGuards(route.beforeEnter),\n redirect: route.redirect,\n }\n}\n\nfunction normalizeNestedRoutePath(path: string, parentPath?: string): string {\n if (!parentPath || path.startsWith('/')) {\n return resolvePath(path, '')\n }\n return resolvePath(`${createAbsoluteRoutePath(parentPath)}/${path}`, '')\n}\n\nfunction normalizeAliasInputList(alias: RouteRecordRaw['alias']): string[] {\n if (!alias) {\n return []\n }\n if (Array.isArray(alias)) {\n return alias.filter((item): item is string => typeof item === 'string' && item.length > 0)\n }\n return typeof alias === 'string' && alias.length > 0\n ? [alias]\n : []\n}\n\nfunction mergeAliasPaths(aliasPaths: readonly string[]): string[] {\n const mergedAliasPaths: string[] = []\n for (const aliasPath of aliasPaths) {\n if (!aliasPath || mergedAliasPaths.includes(aliasPath)) {\n continue\n }\n mergedAliasPaths.push(aliasPath)\n }\n return mergedAliasPaths\n}\n\nexport function createRouteRecordAliasValue(aliasPaths: readonly string[]): RouteRecordRaw['alias'] {\n if (aliasPaths.length === 0) {\n return undefined\n }\n if (aliasPaths.length === 1) {\n return createAbsoluteRoutePath(aliasPaths[0])\n }\n return aliasPaths.map(aliasPath => createAbsoluteRoutePath(aliasPath))\n}\n\nexport function flattenNamedRouteRecords(\n records: readonly RouteRecordInput[],\n parentPath?: string,\n parentName?: string,\n parentAliasPaths: readonly string[] = [],\n source?: RouteOptionSource,\n pathPrefix = 'namedRoutes',\n ancestorRecords: ReadonlySet<RouteRecordInput> = new Set<RouteRecordInput>(),\n): FlattenedRouteRecordSeed[] {\n const flattenedRecords: FlattenedRouteRecordSeed[] = []\n\n for (const [index, record] of records.entries()) {\n const routeConfigPath = `${pathPrefix}[${index}]`\n if (ancestorRecords.has(record)) {\n warnRouteConfig(`ignored route record at ${routeConfigPath}: detected circular children reference`)\n continue\n }\n\n if (typeof record.path !== 'string' || !record.path) {\n const routeName = typeof record?.name === 'string'\n ? record.name.trim()\n : ''\n warnRouteConfig(`ignored route record \"${routeName}\" at ${routeConfigPath}: route path is required`)\n continue\n }\n\n const normalizedPath = normalizeNestedRoutePath(record.path, parentPath)\n const routeName = resolveRouteRecordName(record, normalizedPath, source)\n if (!routeName) {\n warnRouteConfig(`ignored route record at ${routeConfigPath}: route name is required`)\n continue\n }\n const normalizedDirectAliasPaths: string[] = []\n const directAliasByNormalizedPath = new Map<string, string>()\n for (const rawAliasPath of normalizeAliasInputList(record.alias)) {\n const normalizedAliasPath = normalizeNestedRoutePath(rawAliasPath, parentPath)\n if (!normalizedAliasPath) {\n continue\n }\n if (normalizedAliasPath === normalizedPath) {\n warnRouteConfig(`ignored alias \"${createAbsoluteRoutePath(normalizedAliasPath)}\" for route \"${routeName}\" at ${routeConfigPath}: alias is same as route path`)\n continue\n }\n\n const duplicateAliasPath = directAliasByNormalizedPath.get(normalizedAliasPath)\n if (duplicateAliasPath) {\n warnRouteConfig(\n `ignored duplicate alias \"${createAbsoluteRoutePath(normalizedAliasPath)}\" for route \"${routeName}\" at ${routeConfigPath}: already declared by \"${duplicateAliasPath}\"`,\n )\n continue\n }\n\n directAliasByNormalizedPath.set(normalizedAliasPath, rawAliasPath)\n normalizedDirectAliasPaths.push(normalizedAliasPath)\n }\n const normalizedInheritedAliasPaths = record.path.startsWith('/')\n ? []\n : parentAliasPaths\n .map(parentAliasPath => normalizeNestedRoutePath(record.path, parentAliasPath))\n .filter(Boolean)\n .filter(aliasPath => aliasPath !== normalizedPath)\n const normalizedAliasPaths = mergeAliasPaths([\n ...normalizedDirectAliasPaths,\n ...normalizedInheritedAliasPaths,\n ])\n const normalizedRecord: RouteRecordRaw = {\n name: routeName,\n path: normalizedPath ? createAbsoluteRoutePath(normalizedPath) : '/',\n alias: createRouteRecordAliasValue(normalizedAliasPaths),\n meta: record.meta,\n beforeEnter: record.beforeEnter,\n redirect: record.redirect,\n }\n flattenedRecords.push({\n route: normalizedRecord,\n parentName,\n source,\n })\n\n if (Array.isArray(record.children) && record.children.length > 0) {\n const nextAncestorRecords = new Set(ancestorRecords)\n nextAncestorRecords.add(record)\n flattenedRecords.push(\n ...flattenNamedRouteRecords(\n record.children,\n normalizedPath,\n routeName,\n normalizedAliasPaths,\n source,\n `${routeConfigPath}.children`,\n nextAncestorRecords,\n ),\n )\n }\n }\n\n return flattenedRecords\n}\n\nfunction normalizeNamedRouteEntries(\n namedRoutes?: NamedRoutes | readonly RouteRecordInput[],\n source: RouteOptionSource = 'namedRoutes',\n): FlattenedRouteRecordSeed[] {\n if (!namedRoutes) {\n return []\n }\n\n if (Array.isArray(namedRoutes)) {\n return flattenNamedRouteRecords(namedRoutes, undefined, undefined, [], source, source)\n }\n\n const normalizedEntries: FlattenedRouteRecordSeed[] = []\n for (const [rawName, rawPath] of Object.entries(namedRoutes)) {\n const routeName = typeof rawName === 'string'\n ? rawName.trim()\n : ''\n if (!routeName) {\n warnRouteConfig(`ignored route record at ${source}: route name is required`)\n continue\n }\n if (typeof rawPath !== 'string' || !rawPath) {\n warnRouteConfig(`ignored route record \"${routeName}\" at ${source}: route path is required`)\n continue\n }\n normalizedEntries.push({\n route: {\n name: routeName,\n path: rawPath,\n },\n source,\n })\n }\n\n return normalizedEntries\n}\n\nexport function resolveRouteOptionEntries(options: UseRouterOptions): FlattenedRouteRecordSeed[] {\n return [\n ...normalizeNamedRouteEntries(options.routes, 'routes'),\n ...normalizeNamedRouteEntries(options.namedRoutes, 'namedRoutes'),\n ]\n}\n\nexport function createNamedRouteNameByStaticPath(recordByName: ReadonlyMap<string, RouteRecordNormalized>): Map<string, string> {\n const nameByStaticPath = new Map<string, string>()\n for (const [name, record] of recordByName.entries()) {\n if (!isDynamicRoutePath(record.path) && !nameByStaticPath.has(record.path)) {\n nameByStaticPath.set(record.path, name)\n }\n for (const aliasPath of record.aliasPaths) {\n if (!isDynamicRoutePath(aliasPath) && !nameByStaticPath.has(aliasPath)) {\n nameByStaticPath.set(aliasPath, name)\n }\n }\n }\n return nameByStaticPath\n}\n\nexport function createNamedRouteLookup(routeEntries: readonly FlattenedRouteRecordSeed[]): NamedRouteLookup {\n const recordByName = new Map<string, RouteRecordNormalized>()\n\n for (const routeRecord of routeEntries) {\n const normalizedRecord = normalizeRouteRecordRaw(\n routeRecord.route,\n routeRecord.parentName,\n routeRecord.source,\n )\n if (!normalizedRecord) {\n continue\n }\n recordByName.set(normalizedRecord.name, normalizedRecord)\n }\n\n return {\n recordByName,\n nameByStaticPath: createNamedRouteNameByStaticPath(recordByName),\n }\n}\n"],"mappings":";;;;AAgBA,SAAS,2BAA2B,aAAyE;CAC3G,IAAI,CAAC,aACH,OAAO,CAAC;CAEV,IAAI,MAAM,QAAQ,WAAW,GAC3B,OAAO;CAET,OAAO,CAAC,WAA8B;AACxC;AAEA,SAAS,uBACP,OACA,gBACA,SAA4B,eACpB;CACR,IAAI,OAAO,MAAM,SAAS,YAAY,MAAM,KAAK,KAAK,GACpD,OAAO,MAAM,KAAK,KAAK;CAGzB,IAAI,WAAW,UACb,OAAO,kBAAkB;CAG3B,OAAO;AACT;AAEA,SAAS,+BACP,OACA,gBACmB;CACnB,IAAI,CAAC,OACH,OAAO,CAAC;CAEV,MAAM,YAAY,MAAM,QAAQ,KAAK,IACjC,QACA,CAAC,KAAK;CAEV,MAAM,uBAAiC,CAAC;CACxC,KAAK,MAAM,aAAa,WAAW;EACjC,IAAI,OAAO,cAAc,UACvB;EAEF,MAAM,sBAAsB,YAAY,WAAW,EAAE;EACrD,IAAI,CAAC,uBAAuB,wBAAwB,gBAClD;EAEF,IAAI,CAAC,qBAAqB,SAAS,mBAAmB,GACpD,qBAAqB,KAAK,mBAAmB;CAEjD;CAEA,OAAO;AACT;AAEA,SAAgB,wBACd,OACA,YACA,SAA4B,eACO;CACnC,MAAM,iBAAiB,YAAY,MAAM,MAAM,EAAE;CACjD,IAAI,CAAC,kBAAkB,MAAM,SAAS,KACpC;CAGF,MAAM,YAAY,uBAAuB,OAAO,gBAAgB,MAAM;CACtE,IAAI,CAAC,WACH;CAIF,OAAO;EACL,MAAM;EACN,MAAM;EACN,YALiB,+BAA+B,MAAM,OAAO,cAKpD;EACT;EACA,MAAM,MAAM;EACZ,mBAAmB,2BAA2B,MAAM,WAAW;EAC/D,UAAU,MAAM;CAClB;AACF;AAEA,SAAS,yBAAyB,MAAc,YAA6B;CAC3E,IAAI,CAAC,cAAc,KAAK,WAAW,GAAG,GACpC,OAAO,YAAY,MAAM,EAAE;CAE7B,OAAO,YAAY,GAAG,wBAAwB,UAAU,EAAE,GAAG,QAAQ,EAAE;AACzE;AAEA,SAAS,wBAAwB,OAA0C;CACzE,IAAI,CAAC,OACH,OAAO,CAAC;CAEV,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,MAAM,QAAQ,SAAyB,OAAO,SAAS,YAAY,KAAK,SAAS,CAAC;CAE3F,OAAO,OAAO,UAAU,YAAY,MAAM,SAAS,IAC/C,CAAC,KAAK,IACN,CAAC;AACP;AAEA,SAAS,gBAAgB,YAAyC;CAChE,MAAM,mBAA6B,CAAC;CACpC,KAAK,MAAM,aAAa,YAAY;EAClC,IAAI,CAAC,aAAa,iBAAiB,SAAS,SAAS,GACnD;EAEF,iBAAiB,KAAK,SAAS;CACjC;CACA,OAAO;AACT;AAEA,SAAgB,4BAA4B,YAAwD;CAClG,IAAI,WAAW,WAAW,GACxB;CAEF,IAAI,WAAW,WAAW,GACxB,OAAO,wBAAwB,WAAW,EAAE;CAE9C,OAAO,WAAW,KAAI,cAAa,wBAAwB,SAAS,CAAC;AACvE;AAEA,SAAgB,yBACd,SACA,YACA,YACA,mBAAsC,CAAC,GACvC,QACA,aAAa,eACb,kCAAiD,IAAI,IAAsB,GAC/C;CAC5B,MAAM,mBAA+C,CAAC;CAEtD,KAAK,MAAM,CAAC,OAAO,WAAW,QAAQ,QAAQ,GAAG;EAC/C,MAAM,kBAAkB,GAAG,WAAW,GAAG,MAAM;EAC/C,IAAI,gBAAgB,IAAI,MAAM,GAAG;GAC/B,gBAAgB,2BAA2B,gBAAgB,uCAAuC;GAClG;EACF;EAEA,IAAI,OAAO,OAAO,SAAS,YAAY,CAAC,OAAO,MAAM;GACnD,MAAM,YAAY,wDAAO,OAAQ,UAAS,WACtC,OAAO,KAAK,KAAK,IACjB;GACJ,gBAAgB,yBAAyB,UAAU,OAAO,gBAAgB,yBAAyB;GACnG;EACF;EAEA,MAAM,iBAAiB,yBAAyB,OAAO,MAAM,UAAU;EACvE,MAAM,YAAY,uBAAuB,QAAQ,gBAAgB,MAAM;EACvE,IAAI,CAAC,WAAW;GACd,gBAAgB,2BAA2B,gBAAgB,yBAAyB;GACpF;EACF;EACA,MAAM,6BAAuC,CAAC;EAC9C,MAAM,8CAA8B,IAAI,IAAoB;EAC5D,KAAK,MAAM,gBAAgB,wBAAwB,OAAO,KAAK,GAAG;GAChE,MAAM,sBAAsB,yBAAyB,cAAc,UAAU;GAC7E,IAAI,CAAC,qBACH;GAEF,IAAI,wBAAwB,gBAAgB;IAC1C,gBAAgB,kBAAkB,wBAAwB,mBAAmB,EAAE,eAAe,UAAU,OAAO,gBAAgB,8BAA8B;IAC7J;GACF;GAEA,MAAM,qBAAqB,4BAA4B,IAAI,mBAAmB;GAC9E,IAAI,oBAAoB;IACtB,gBACE,4BAA4B,wBAAwB,mBAAmB,EAAE,eAAe,UAAU,OAAO,gBAAgB,yBAAyB,mBAAmB,EACvK;IACA;GACF;GAEA,4BAA4B,IAAI,qBAAqB,YAAY;GACjE,2BAA2B,KAAK,mBAAmB;EACrD;EACA,MAAM,gCAAgC,OAAO,KAAK,WAAW,GAAG,IAC5D,CAAC,IACD,iBACG,KAAI,oBAAmB,yBAAyB,OAAO,MAAM,eAAe,CAAC,CAAC,CAC9E,OAAO,OAAO,CAAC,CACf,QAAO,cAAa,cAAc,cAAc;EACvD,MAAM,uBAAuB,gBAAgB,CAC3C,GAAG,4BACH,GAAG,6BACL,CAAC;EACD,MAAM,mBAAmC;GACvC,MAAM;GACN,MAAM,iBAAiB,wBAAwB,cAAc,IAAI;GACjE,OAAO,4BAA4B,oBAAoB;GACvD,MAAM,OAAO;GACb,aAAa,OAAO;GACpB,UAAU,OAAO;EACnB;EACA,iBAAiB,KAAK;GACpB,OAAO;GACP;GACA;EACF,CAAC;EAED,IAAI,MAAM,QAAQ,OAAO,QAAQ,KAAK,OAAO,SAAS,SAAS,GAAG;GAChE,MAAM,sBAAsB,IAAI,IAAI,eAAe;GACnD,oBAAoB,IAAI,MAAM;GAC9B,iBAAiB,KACf,GAAG,yBACD,OAAO,UACP,gBACA,WACA,sBACA,QACA,GAAG,gBAAgB,YACnB,mBACF,CACF;EACF;CACF;CAEA,OAAO;AACT;AAEA,SAAS,2BACP,aACA,SAA4B,eACA;CAC5B,IAAI,CAAC,aACH,OAAO,CAAC;CAGV,IAAI,MAAM,QAAQ,WAAW,GAC3B,OAAO,yBAAyB,aAAa,QAAW,QAAW,CAAC,GAAG,QAAQ,MAAM;CAGvF,MAAM,oBAAgD,CAAC;CACvD,KAAK,MAAM,CAAC,SAAS,YAAY,OAAO,QAAQ,WAAW,GAAG;EAC5D,MAAM,YAAY,OAAO,YAAY,WACjC,QAAQ,KAAK,IACb;EACJ,IAAI,CAAC,WAAW;GACd,gBAAgB,2BAA2B,OAAO,yBAAyB;GAC3E;EACF;EACA,IAAI,OAAO,YAAY,YAAY,CAAC,SAAS;GAC3C,gBAAgB,yBAAyB,UAAU,OAAO,OAAO,yBAAyB;GAC1F;EACF;EACA,kBAAkB,KAAK;GACrB,OAAO;IACL,MAAM;IACN,MAAM;GACR;GACA;EACF,CAAC;CACH;CAEA,OAAO;AACT;AAEA,SAAgB,0BAA0B,SAAuD;CAC/F,OAAO,CACL,GAAG,2BAA2B,QAAQ,QAAQ,QAAQ,GACtD,GAAG,2BAA2B,QAAQ,aAAa,aAAa,CAClE;AACF;AAEA,SAAgB,iCAAiC,cAA+E;CAC9H,MAAM,mCAAmB,IAAI,IAAoB;CACjD,KAAK,MAAM,CAAC,MAAM,WAAW,aAAa,QAAQ,GAAG;EACnD,IAAI,CAAC,mBAAmB,OAAO,IAAI,KAAK,CAAC,iBAAiB,IAAI,OAAO,IAAI,GACvE,iBAAiB,IAAI,OAAO,MAAM,IAAI;EAExC,KAAK,MAAM,aAAa,OAAO,YAC7B,IAAI,CAAC,mBAAmB,SAAS,KAAK,CAAC,iBAAiB,IAAI,SAAS,GACnE,iBAAiB,IAAI,WAAW,IAAI;CAG1C;CACA,OAAO;AACT;AAEA,SAAgB,uBAAuB,cAAqE;CAC1G,MAAM,+BAAe,IAAI,IAAmC;CAE5D,KAAK,MAAM,eAAe,cAAc;EACtC,MAAM,mBAAmB,wBACvB,YAAY,OACZ,YAAY,YACZ,YAAY,MACd;EACA,IAAI,CAAC,kBACH;EAEF,aAAa,IAAI,iBAAiB,MAAM,gBAAgB;CAC1D;CAEA,OAAO;EACL;EACA,kBAAkB,iCAAiC,YAAY;CACjE;AACF"}
1
+ {"version":3,"file":"records.mjs","names":[],"sources":["../../../src/routerInternal/records.ts"],"sourcesContent":["import type {\n NamedRoutes,\n NavigationGuard,\n RouteRecordInput,\n RouteRecordRaw,\n UseRouterOptions,\n} from '../router'\nimport type {\n FlattenedRouteRecordSeed,\n NamedRouteLookup,\n RouteOptionSource,\n RouteRecordNormalized,\n} from './types'\nimport { createAbsoluteRoutePath, isDynamicRoutePath, resolvePath } from './path'\nimport { warnRouteConfig } from './recordsWarnings'\n\nfunction normalizeBeforeEnterGuards(beforeEnter?: RouteRecordRaw['beforeEnter']): readonly NavigationGuard[] {\n if (!beforeEnter) {\n return []\n }\n if (Array.isArray(beforeEnter)) {\n return beforeEnter as readonly NavigationGuard[]\n }\n return [beforeEnter as NavigationGuard]\n}\n\nfunction resolveRouteRecordName(\n route: RouteRecordInput,\n normalizedPath: string,\n source: RouteOptionSource = 'namedRoutes',\n): string {\n if (typeof route.name === 'string' && route.name.trim()) {\n return route.name.trim()\n }\n\n if (source === 'routes') {\n return normalizedPath || '/'\n }\n\n return ''\n}\n\nfunction normalizeRouteRecordAliasPaths(\n alias: RouteRecordRaw['alias'],\n normalizedPath: string,\n): readonly string[] {\n if (!alias) {\n return []\n }\n const aliasList = Array.isArray(alias)\n ? alias\n : [alias]\n\n const normalizedAliasPaths: string[] = []\n for (const aliasPath of aliasList) {\n if (typeof aliasPath !== 'string') {\n continue\n }\n const normalizedAliasPath = resolvePath(aliasPath, '')\n if (!normalizedAliasPath || normalizedAliasPath === normalizedPath) {\n continue\n }\n if (!normalizedAliasPaths.includes(normalizedAliasPath)) {\n normalizedAliasPaths.push(normalizedAliasPath)\n }\n }\n\n return normalizedAliasPaths\n}\n\nexport function normalizeRouteRecordRaw(\n route: RouteRecordInput,\n parentName?: string,\n source: RouteOptionSource = 'namedRoutes',\n): RouteRecordNormalized | undefined {\n const normalizedPath = resolvePath(route.path, '')\n if (!normalizedPath && route.path !== '/') {\n return undefined\n }\n\n const routeName = resolveRouteRecordName(route, normalizedPath, source)\n if (!routeName) {\n return undefined\n }\n const aliasPaths = normalizeRouteRecordAliasPaths(route.alias, normalizedPath)\n\n return {\n name: routeName,\n path: normalizedPath,\n aliasPaths,\n parentName,\n meta: route.meta,\n beforeEnterGuards: normalizeBeforeEnterGuards(route.beforeEnter),\n redirect: route.redirect,\n }\n}\n\nfunction normalizeNestedRoutePath(path: string, parentPath?: string): string {\n if (!parentPath || path.startsWith('/')) {\n return resolvePath(path, '')\n }\n return resolvePath(`${createAbsoluteRoutePath(parentPath)}/${path}`, '')\n}\n\nfunction normalizeAliasInputList(alias: RouteRecordRaw['alias']): string[] {\n if (!alias) {\n return []\n }\n if (Array.isArray(alias)) {\n return alias.filter((item): item is string => typeof item === 'string' && item.length > 0)\n }\n return typeof alias === 'string' && alias.length > 0\n ? [alias]\n : []\n}\n\nfunction mergeAliasPaths(aliasPaths: readonly string[]): string[] {\n const mergedAliasPaths: string[] = []\n for (const aliasPath of aliasPaths) {\n if (!aliasPath || mergedAliasPaths.includes(aliasPath)) {\n continue\n }\n mergedAliasPaths.push(aliasPath)\n }\n return mergedAliasPaths\n}\n\nexport function createRouteRecordAliasValue(aliasPaths: readonly string[]): RouteRecordRaw['alias'] {\n if (aliasPaths.length === 0) {\n return undefined\n }\n if (aliasPaths.length === 1) {\n return createAbsoluteRoutePath(aliasPaths[0])\n }\n return aliasPaths.map(aliasPath => createAbsoluteRoutePath(aliasPath))\n}\n\nexport function flattenNamedRouteRecords(\n records: readonly RouteRecordInput[],\n parentPath?: string,\n parentName?: string,\n parentAliasPaths: readonly string[] = [],\n source?: RouteOptionSource,\n pathPrefix = 'namedRoutes',\n ancestorRecords: ReadonlySet<RouteRecordInput> = new Set<RouteRecordInput>(),\n): FlattenedRouteRecordSeed[] {\n const flattenedRecords: FlattenedRouteRecordSeed[] = []\n\n for (const [index, record] of records.entries()) {\n const routeConfigPath = `${pathPrefix}[${index}]`\n if (ancestorRecords.has(record)) {\n warnRouteConfig(`ignored route record at ${routeConfigPath}: detected circular children reference`)\n continue\n }\n\n if (typeof record.path !== 'string' || !record.path) {\n const routeName = typeof record?.name === 'string'\n ? record.name.trim()\n : ''\n warnRouteConfig(`ignored route record \"${routeName}\" at ${routeConfigPath}: route path is required`)\n continue\n }\n\n const normalizedPath = normalizeNestedRoutePath(record.path, parentPath)\n const routeName = resolveRouteRecordName(record, normalizedPath, source)\n if (!routeName) {\n warnRouteConfig(`ignored route record at ${routeConfigPath}: route name is required`)\n continue\n }\n const normalizedDirectAliasPaths: string[] = []\n const directAliasByNormalizedPath = new Map<string, string>()\n for (const rawAliasPath of normalizeAliasInputList(record.alias)) {\n const normalizedAliasPath = normalizeNestedRoutePath(rawAliasPath, parentPath)\n if (!normalizedAliasPath) {\n continue\n }\n if (normalizedAliasPath === normalizedPath) {\n warnRouteConfig(`ignored alias \"${createAbsoluteRoutePath(normalizedAliasPath)}\" for route \"${routeName}\" at ${routeConfigPath}: alias is same as route path`)\n continue\n }\n\n const duplicateAliasPath = directAliasByNormalizedPath.get(normalizedAliasPath)\n if (duplicateAliasPath) {\n warnRouteConfig(\n `ignored duplicate alias \"${createAbsoluteRoutePath(normalizedAliasPath)}\" for route \"${routeName}\" at ${routeConfigPath}: already declared by \"${duplicateAliasPath}\"`,\n )\n continue\n }\n\n directAliasByNormalizedPath.set(normalizedAliasPath, rawAliasPath)\n normalizedDirectAliasPaths.push(normalizedAliasPath)\n }\n const normalizedInheritedAliasPaths = record.path.startsWith('/')\n ? []\n : parentAliasPaths\n .map(parentAliasPath => normalizeNestedRoutePath(record.path, parentAliasPath))\n .filter(Boolean)\n .filter(aliasPath => aliasPath !== normalizedPath)\n const normalizedAliasPaths = mergeAliasPaths([\n ...normalizedDirectAliasPaths,\n ...normalizedInheritedAliasPaths,\n ])\n const normalizedRecord: RouteRecordRaw = {\n name: routeName,\n path: normalizedPath ? createAbsoluteRoutePath(normalizedPath) : '/',\n alias: createRouteRecordAliasValue(normalizedAliasPaths),\n meta: record.meta,\n beforeEnter: record.beforeEnter,\n redirect: record.redirect,\n }\n flattenedRecords.push({\n route: normalizedRecord,\n parentName,\n source,\n })\n\n if (Array.isArray(record.children) && record.children.length > 0) {\n const nextAncestorRecords = new Set(ancestorRecords)\n nextAncestorRecords.add(record)\n flattenedRecords.push(\n ...flattenNamedRouteRecords(\n record.children,\n normalizedPath,\n routeName,\n normalizedAliasPaths,\n source,\n `${routeConfigPath}.children`,\n nextAncestorRecords,\n ),\n )\n }\n }\n\n return flattenedRecords\n}\n\nfunction normalizeNamedRouteEntries(\n namedRoutes?: NamedRoutes | readonly RouteRecordInput[],\n source: RouteOptionSource = 'namedRoutes',\n): FlattenedRouteRecordSeed[] {\n if (!namedRoutes) {\n return []\n }\n\n if (Array.isArray(namedRoutes)) {\n return flattenNamedRouteRecords(namedRoutes, undefined, undefined, [], source, source)\n }\n\n const normalizedEntries: FlattenedRouteRecordSeed[] = []\n for (const [rawName, rawPath] of Object.entries(namedRoutes)) {\n const routeName = typeof rawName === 'string'\n ? rawName.trim()\n : ''\n if (!routeName) {\n warnRouteConfig(`ignored route record at ${source}: route name is required`)\n continue\n }\n if (typeof rawPath !== 'string' || !rawPath) {\n warnRouteConfig(`ignored route record \"${routeName}\" at ${source}: route path is required`)\n continue\n }\n normalizedEntries.push({\n route: {\n name: routeName,\n path: rawPath,\n },\n source,\n })\n }\n\n return normalizedEntries\n}\n\nexport function resolveRouteOptionEntries(options: UseRouterOptions): FlattenedRouteRecordSeed[] {\n return [\n ...normalizeNamedRouteEntries(options.routes, 'routes'),\n ...normalizeNamedRouteEntries(options.namedRoutes, 'namedRoutes'),\n ]\n}\n\nexport function createNamedRouteNameByStaticPath(recordByName: ReadonlyMap<string, RouteRecordNormalized>): Map<string, string> {\n const nameByStaticPath = new Map<string, string>()\n for (const [name, record] of recordByName.entries()) {\n if (!isDynamicRoutePath(record.path) && !nameByStaticPath.has(record.path)) {\n nameByStaticPath.set(record.path, name)\n }\n for (const aliasPath of record.aliasPaths) {\n if (!isDynamicRoutePath(aliasPath) && !nameByStaticPath.has(aliasPath)) {\n nameByStaticPath.set(aliasPath, name)\n }\n }\n }\n return nameByStaticPath\n}\n\nexport function createNamedRouteLookup(routeEntries: readonly FlattenedRouteRecordSeed[]): NamedRouteLookup {\n const recordByName = new Map<string, RouteRecordNormalized>()\n\n for (const routeRecord of routeEntries) {\n const normalizedRecord = normalizeRouteRecordRaw(\n routeRecord.route,\n routeRecord.parentName,\n routeRecord.source,\n )\n if (!normalizedRecord) {\n continue\n }\n recordByName.set(normalizedRecord.name, normalizedRecord)\n }\n\n return {\n recordByName,\n nameByStaticPath: createNamedRouteNameByStaticPath(recordByName),\n }\n}\n"],"mappings":"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"}
@@ -28,10 +28,9 @@ function warnDuplicateRouteEntries(routeEntries) {
28
28
  const latestRouteInfoByName = /* @__PURE__ */ new Map();
29
29
  const duplicateMessages = [];
30
30
  for (const routeEntry of routeEntries) {
31
- var _routeEntry$source;
32
31
  const routeName = typeof routeEntry.route.name === "string" ? routeEntry.route.name.trim() : "";
33
32
  if (!routeName) continue;
34
- const currentSource = (_routeEntry$source = routeEntry.source) !== null && _routeEntry$source !== void 0 ? _routeEntry$source : "namedRoutes";
33
+ const currentSource = routeEntry.source ?? "namedRoutes";
35
34
  const currentPath = formatRoutePathForWarning(routeEntry.route.path);
36
35
  const previousInfo = latestRouteInfoByName.get(routeName);
37
36
  if (previousInfo) duplicateMessages.push(`"${routeName}" (${previousInfo.source}:${previousInfo.path} -> ${currentSource}:${currentPath})`);
@@ -1 +1 @@
1
- {"version":3,"file":"recordsWarnings.mjs","names":[],"sources":["../../../src/routerInternal/recordsWarnings.ts"],"sourcesContent":["import type { RouteRecordRaw } from '../router'\nimport type { FlattenedRouteRecordSeed, RouteOptionSource } from './types'\nimport { createAbsoluteRoutePath, resolvePath } from './path'\n\nexport function warnRouteConfig(message: string): void {\n // eslint-disable-next-line no-console\n if (typeof console === 'undefined' || typeof console.warn !== 'function') {\n return\n }\n // eslint-disable-next-line no-console\n console.warn(`[wevu/router] ${message}`)\n}\n\nfunction formatRoutePathForWarning(path: string): string {\n const normalizedPath = resolvePath(path, '')\n if (!normalizedPath) {\n return '/'\n }\n return createAbsoluteRoutePath(normalizedPath)\n}\n\nfunction hasCircularChildrenReference(\n routeRecord: RouteRecordRaw,\n ancestorRecords: ReadonlySet<RouteRecordRaw> = new Set<RouteRecordRaw>(),\n): boolean {\n if (ancestorRecords.has(routeRecord)) {\n return true\n }\n\n if (!Array.isArray(routeRecord.children) || routeRecord.children.length === 0) {\n return false\n }\n\n const nextAncestorRecords = new Set(ancestorRecords)\n nextAncestorRecords.add(routeRecord)\n for (const childRecord of routeRecord.children) {\n if (hasCircularChildrenReference(childRecord, nextAncestorRecords)) {\n return true\n }\n }\n\n return false\n}\n\nexport function assertValidAddRouteInput(routeRecord: RouteRecordRaw): void {\n const routeName = typeof routeRecord.name === 'string'\n ? routeRecord.name.trim()\n : ''\n if (!routeName) {\n throw new Error('Route name is required when adding a named route')\n }\n if (typeof routeRecord.path !== 'string' || !routeRecord.path) {\n throw new Error(`Route path is required when adding named route \"${routeName}\"`)\n }\n if (hasCircularChildrenReference(routeRecord)) {\n throw new Error(`Circular children reference detected when adding named route \"${routeName}\"`)\n }\n}\n\nexport function warnDuplicateRouteEntries(routeEntries: readonly FlattenedRouteRecordSeed[]): void {\n const latestRouteInfoByName = new Map<string, { source: RouteOptionSource, path: string }>()\n const duplicateMessages: string[] = []\n\n for (const routeEntry of routeEntries) {\n const routeName = typeof routeEntry.route.name === 'string'\n ? routeEntry.route.name.trim()\n : ''\n if (!routeName) {\n continue\n }\n\n const currentSource = routeEntry.source ?? 'namedRoutes'\n const currentPath = formatRoutePathForWarning(routeEntry.route.path)\n const previousInfo = latestRouteInfoByName.get(routeName)\n if (previousInfo) {\n duplicateMessages.push(`\"${routeName}\" (${previousInfo.source}:${previousInfo.path} -> ${currentSource}:${currentPath})`)\n }\n latestRouteInfoByName.set(routeName, {\n source: currentSource,\n path: currentPath,\n })\n }\n\n if (duplicateMessages.length === 0) {\n return\n }\n\n warnRouteConfig(`duplicate route names detected, later entries override earlier ones: ${duplicateMessages.join(', ')}`)\n}\n"],"mappings":";;;AAIA,SAAgB,gBAAgB,SAAuB;CAErD,IAAI,OAAO,YAAY,eAAe,OAAO,QAAQ,SAAS,YAC5D;CAGF,QAAQ,KAAK,iBAAiB,SAAS;AACzC;AAEA,SAAS,0BAA0B,MAAsB;CACvD,MAAM,iBAAiB,YAAY,MAAM,EAAE;CAC3C,IAAI,CAAC,gBACH,OAAO;CAET,OAAO,wBAAwB,cAAc;AAC/C;AAEA,SAAS,6BACP,aACA,kCAA+C,IAAI,IAAoB,GAC9D;CACT,IAAI,gBAAgB,IAAI,WAAW,GACjC,OAAO;CAGT,IAAI,CAAC,MAAM,QAAQ,YAAY,QAAQ,KAAK,YAAY,SAAS,WAAW,GAC1E,OAAO;CAGT,MAAM,sBAAsB,IAAI,IAAI,eAAe;CACnD,oBAAoB,IAAI,WAAW;CACnC,KAAK,MAAM,eAAe,YAAY,UACpC,IAAI,6BAA6B,aAAa,mBAAmB,GAC/D,OAAO;CAIX,OAAO;AACT;AAEA,SAAgB,yBAAyB,aAAmC;CAC1E,MAAM,YAAY,OAAO,YAAY,SAAS,WAC1C,YAAY,KAAK,KAAK,IACtB;CACJ,IAAI,CAAC,WACH,MAAM,IAAI,MAAM,kDAAkD;CAEpE,IAAI,OAAO,YAAY,SAAS,YAAY,CAAC,YAAY,MACvD,MAAM,IAAI,MAAM,mDAAmD,UAAU,EAAE;CAEjF,IAAI,6BAA6B,WAAW,GAC1C,MAAM,IAAI,MAAM,iEAAiE,UAAU,EAAE;AAEjG;AAEA,SAAgB,0BAA0B,cAAyD;CACjG,MAAM,wCAAwB,IAAI,IAAyD;CAC3F,MAAM,oBAA8B,CAAC;CAErC,KAAK,MAAM,cAAc,cAAc;;EACrC,MAAM,YAAY,OAAO,WAAW,MAAM,SAAS,WAC/C,WAAW,MAAM,KAAK,KAAK,IAC3B;EACJ,IAAI,CAAC,WACH;EAGF,MAAM,sCAAgB,WAAW,yEAAU;EAC3C,MAAM,cAAc,0BAA0B,WAAW,MAAM,IAAI;EACnE,MAAM,eAAe,sBAAsB,IAAI,SAAS;EACxD,IAAI,cACF,kBAAkB,KAAK,IAAI,UAAU,KAAK,aAAa,OAAO,GAAG,aAAa,KAAK,MAAM,cAAc,GAAG,YAAY,EAAE;EAE1H,sBAAsB,IAAI,WAAW;GACnC,QAAQ;GACR,MAAM;EACR,CAAC;CACH;CAEA,IAAI,kBAAkB,WAAW,GAC/B;CAGF,gBAAgB,wEAAwE,kBAAkB,KAAK,IAAI,GAAG;AACxH"}
1
+ {"version":3,"file":"recordsWarnings.mjs","names":[],"sources":["../../../src/routerInternal/recordsWarnings.ts"],"sourcesContent":["import type { RouteRecordRaw } from '../router'\nimport type { FlattenedRouteRecordSeed, RouteOptionSource } from './types'\nimport { createAbsoluteRoutePath, resolvePath } from './path'\n\nexport function warnRouteConfig(message: string): void {\n // eslint-disable-next-line no-console\n if (typeof console === 'undefined' || typeof console.warn !== 'function') {\n return\n }\n // eslint-disable-next-line no-console\n console.warn(`[wevu/router] ${message}`)\n}\n\nfunction formatRoutePathForWarning(path: string): string {\n const normalizedPath = resolvePath(path, '')\n if (!normalizedPath) {\n return '/'\n }\n return createAbsoluteRoutePath(normalizedPath)\n}\n\nfunction hasCircularChildrenReference(\n routeRecord: RouteRecordRaw,\n ancestorRecords: ReadonlySet<RouteRecordRaw> = new Set<RouteRecordRaw>(),\n): boolean {\n if (ancestorRecords.has(routeRecord)) {\n return true\n }\n\n if (!Array.isArray(routeRecord.children) || routeRecord.children.length === 0) {\n return false\n }\n\n const nextAncestorRecords = new Set(ancestorRecords)\n nextAncestorRecords.add(routeRecord)\n for (const childRecord of routeRecord.children) {\n if (hasCircularChildrenReference(childRecord, nextAncestorRecords)) {\n return true\n }\n }\n\n return false\n}\n\nexport function assertValidAddRouteInput(routeRecord: RouteRecordRaw): void {\n const routeName = typeof routeRecord.name === 'string'\n ? routeRecord.name.trim()\n : ''\n if (!routeName) {\n throw new Error('Route name is required when adding a named route')\n }\n if (typeof routeRecord.path !== 'string' || !routeRecord.path) {\n throw new Error(`Route path is required when adding named route \"${routeName}\"`)\n }\n if (hasCircularChildrenReference(routeRecord)) {\n throw new Error(`Circular children reference detected when adding named route \"${routeName}\"`)\n }\n}\n\nexport function warnDuplicateRouteEntries(routeEntries: readonly FlattenedRouteRecordSeed[]): void {\n const latestRouteInfoByName = new Map<string, { source: RouteOptionSource, path: string }>()\n const duplicateMessages: string[] = []\n\n for (const routeEntry of routeEntries) {\n const routeName = typeof routeEntry.route.name === 'string'\n ? routeEntry.route.name.trim()\n : ''\n if (!routeName) {\n continue\n }\n\n const currentSource = routeEntry.source ?? 'namedRoutes'\n const currentPath = formatRoutePathForWarning(routeEntry.route.path)\n const previousInfo = latestRouteInfoByName.get(routeName)\n if (previousInfo) {\n duplicateMessages.push(`\"${routeName}\" (${previousInfo.source}:${previousInfo.path} -> ${currentSource}:${currentPath})`)\n }\n latestRouteInfoByName.set(routeName, {\n source: currentSource,\n path: currentPath,\n })\n }\n\n if (duplicateMessages.length === 0) {\n return\n }\n\n warnRouteConfig(`duplicate route names detected, later entries override earlier ones: ${duplicateMessages.join(', ')}`)\n}\n"],"mappings":";;;AAIA,SAAgB,gBAAgB,SAAuB;CAErD,IAAI,OAAO,YAAY,eAAe,OAAO,QAAQ,SAAS,YAC5D;CAGF,QAAQ,KAAK,iBAAiB,SAAS;AACzC;AAEA,SAAS,0BAA0B,MAAsB;CACvD,MAAM,iBAAiB,YAAY,MAAM,EAAE;CAC3C,IAAI,CAAC,gBACH,OAAO;CAET,OAAO,wBAAwB,cAAc;AAC/C;AAEA,SAAS,6BACP,aACA,kCAA+C,IAAI,IAAoB,GAC9D;CACT,IAAI,gBAAgB,IAAI,WAAW,GACjC,OAAO;CAGT,IAAI,CAAC,MAAM,QAAQ,YAAY,QAAQ,KAAK,YAAY,SAAS,WAAW,GAC1E,OAAO;CAGT,MAAM,sBAAsB,IAAI,IAAI,eAAe;CACnD,oBAAoB,IAAI,WAAW;CACnC,KAAK,MAAM,eAAe,YAAY,UACpC,IAAI,6BAA6B,aAAa,mBAAmB,GAC/D,OAAO;CAIX,OAAO;AACT;AAEA,SAAgB,yBAAyB,aAAmC;CAC1E,MAAM,YAAY,OAAO,YAAY,SAAS,WAC1C,YAAY,KAAK,KAAK,IACtB;CACJ,IAAI,CAAC,WACH,MAAM,IAAI,MAAM,kDAAkD;CAEpE,IAAI,OAAO,YAAY,SAAS,YAAY,CAAC,YAAY,MACvD,MAAM,IAAI,MAAM,mDAAmD,UAAU,EAAE;CAEjF,IAAI,6BAA6B,WAAW,GAC1C,MAAM,IAAI,MAAM,iEAAiE,UAAU,EAAE;AAEjG;AAEA,SAAgB,0BAA0B,cAAyD;CACjG,MAAM,wCAAwB,IAAI,IAAyD;CAC3F,MAAM,oBAA8B,CAAC;CAErC,KAAK,MAAM,cAAc,cAAc;EACrC,MAAM,YAAY,OAAO,WAAW,MAAM,SAAS,WAC/C,WAAW,MAAM,KAAK,KAAK,IAC3B;EACJ,IAAI,CAAC,WACH;EAGF,MAAM,gBAAgB,WAAW,UAAU;EAC3C,MAAM,cAAc,0BAA0B,WAAW,MAAM,IAAI;EACnE,MAAM,eAAe,sBAAsB,IAAI,SAAS;EACxD,IAAI,cACF,kBAAkB,KAAK,IAAI,UAAU,KAAK,aAAa,OAAO,GAAG,aAAa,KAAK,MAAM,cAAc,GAAG,YAAY,EAAE;EAE1H,sBAAsB,IAAI,WAAW;GACnC,QAAQ;GACR,MAAM;EACR,CAAC;CACH;CAEA,IAAI,kBAAkB,WAAW,GAC/B;CAGF,gBAAgB,wEAAwE,kBAAkB,KAAK,IAAI,GAAG;AACxH"}
@@ -21,7 +21,7 @@ function createRuntimeContext(options) {
21
21
  const resolveNativeInstance = (target, receiver) => {
22
22
  const rawTarget = toRaw(target);
23
23
  const runtimeRef = rawTarget[WEVU_RUNTIME_KEY];
24
- const runtimeProxy = runtimeRef === null || runtimeRef === void 0 ? void 0 : runtimeRef.proxy;
24
+ const runtimeProxy = runtimeRef?.proxy;
25
25
  const isBridgeMethod = (candidate, methodName) => {
26
26
  const candidateMethod = candidate[methodName];
27
27
  return isNativeBridgeMethod(candidateMethod);
@@ -34,7 +34,7 @@ function createRuntimeContext(options) {
34
34
  };
35
35
  const directNative = rawTarget[WEVU_NATIVE_INSTANCE_KEY];
36
36
  if (isValidNativeCandidate(directNative)) return directNative;
37
- const runtimeNative = runtimeRef === null || runtimeRef === void 0 ? void 0 : runtimeRef.instance;
37
+ const runtimeNative = runtimeRef?.instance;
38
38
  if (isValidNativeCandidate(runtimeNative)) return runtimeNative;
39
39
  };
40
40
  const installNativeMethodBridge = (methodName) => {
@@ -52,9 +52,8 @@ function createRuntimeContext(options) {
52
52
  const seen = /* @__PURE__ */ new Set();
53
53
  let current = nativeInstance;
54
54
  while (current && !seen.has(current)) {
55
- var _current$WEVU_RUNTIME;
56
55
  seen.add(current);
57
- const globalProperties = (_current$WEVU_RUNTIME = current[WEVU_RUNTIME_APP_KEY]) === null || _current$WEVU_RUNTIME === void 0 || (_current$WEVU_RUNTIME = _current$WEVU_RUNTIME.config) === null || _current$WEVU_RUNTIME === void 0 ? void 0 : _current$WEVU_RUNTIME.globalProperties;
56
+ const globalProperties = current[WEVU_RUNTIME_APP_KEY]?.config?.globalProperties;
58
57
  if (globalProperties && hasOwn(globalProperties, key)) return {
59
58
  found: true,
60
59
  value: globalProperties[key]
@@ -63,14 +62,12 @@ function createRuntimeContext(options) {
63
62
  }
64
63
  const getAppFn = typeof globalThis !== "undefined" ? globalThis.getApp : void 0;
65
64
  if (typeof getAppFn === "function") try {
66
- var _rootAppInstance$WEVU;
67
- const rootAppInstance = getAppFn();
68
- const globalProperties = rootAppInstance === null || rootAppInstance === void 0 || (_rootAppInstance$WEVU = rootAppInstance[WEVU_RUNTIME_APP_KEY]) === null || _rootAppInstance$WEVU === void 0 || (_rootAppInstance$WEVU = _rootAppInstance$WEVU.config) === null || _rootAppInstance$WEVU === void 0 ? void 0 : _rootAppInstance$WEVU.globalProperties;
65
+ const globalProperties = getAppFn()?.[WEVU_RUNTIME_APP_KEY]?.config?.globalProperties;
69
66
  if (globalProperties && hasOwn(globalProperties, key)) return {
70
67
  found: true,
71
68
  value: globalProperties[key]
72
69
  };
73
- } catch (_unused) {}
70
+ } catch {}
74
71
  return {
75
72
  found: false,
76
73
  value: void 0
@@ -80,7 +77,6 @@ function createRuntimeContext(options) {
80
77
  const selectOwnerComponent = nativeInstance && Reflect.get(nativeInstance, "selectOwnerComponent");
81
78
  if (typeof selectOwnerComponent !== "function") return;
82
79
  try {
83
- var _ref, _owner$WEVU_RUNTIME_K, _owner$WEVU_RUNTIME_K2, _owner$__wevu;
84
80
  const owner = selectOwnerComponent.call(nativeInstance);
85
81
  if (!owner || typeof owner !== "object") return;
86
82
  const resolvePublicInstance = Reflect.get(owner, WEVU_RESOLVE_PUBLIC_INSTANCE_METHOD);
@@ -88,8 +84,8 @@ function createRuntimeContext(options) {
88
84
  const publicInstance = resolvePublicInstance.call(owner);
89
85
  if (publicInstance) return publicInstance;
90
86
  }
91
- return (_ref = (_owner$WEVU_RUNTIME_K = (_owner$WEVU_RUNTIME_K2 = owner[WEVU_RUNTIME_KEY]) === null || _owner$WEVU_RUNTIME_K2 === void 0 ? void 0 : _owner$WEVU_RUNTIME_K2.proxy) !== null && _owner$WEVU_RUNTIME_K !== void 0 ? _owner$WEVU_RUNTIME_K : (_owner$__wevu = owner.__wevu) === null || _owner$__wevu === void 0 ? void 0 : _owner$__wevu.proxy) !== null && _ref !== void 0 ? _ref : owner;
92
- } catch (_unused2) {
87
+ return owner[WEVU_RUNTIME_KEY]?.proxy ?? owner.__wevu?.proxy ?? owner;
88
+ } catch {
93
89
  return;
94
90
  }
95
91
  };
@@ -130,19 +126,12 @@ function createRuntimeContext(options) {
130
126
  return value;
131
127
  };
132
128
  if (key === "$delete") return (object, property) => Reflect.deleteProperty(object, property);
133
- if (key === "$slots") {
134
- var _rawTarget$$slots;
135
- return (_rawTarget$$slots = toRaw(target).$slots) !== null && _rawTarget$$slots !== void 0 ? _rawTarget$$slots : Object.freeze(Object.create(null));
136
- }
137
- if (key === "$refs") {
138
- var _rawTarget$$refs;
139
- return (_rawTarget$$refs = toRaw(target).$refs) !== null && _rawTarget$$refs !== void 0 ? _rawTarget$$refs : Object.create(null);
140
- }
129
+ if (key === "$slots") return toRaw(target).$slots ?? Object.freeze(Object.create(null));
130
+ if (key === "$refs") return toRaw(target).$refs ?? Object.create(null);
141
131
  if (key === "$parent") return resolveParentPublicInstance(resolveNativeInstance(target, receiver));
142
132
  if (key === "$options") {
143
- var _ref2, _nativeInstance$WEVU_;
144
133
  const nativeInstance = resolveNativeInstance(target, receiver);
145
- return { name: (_ref2 = (_nativeInstance$WEVU_ = nativeInstance === null || nativeInstance === void 0 ? void 0 : nativeInstance[WEVU_COMPONENT_NAME_KEY]) !== null && _nativeInstance$WEVU_ !== void 0 ? _nativeInstance$WEVU_ : nativeInstance === null || nativeInstance === void 0 ? void 0 : nativeInstance.name) !== null && _ref2 !== void 0 ? _ref2 : nativeInstance === null || nativeInstance === void 0 ? void 0 : nativeInstance.is };
134
+ return { name: nativeInstance?.[WEVU_COMPONENT_NAME_KEY] ?? nativeInstance?.name ?? nativeInstance?.is };
146
135
  }
147
136
  if (hasOwn(instanceFields, key)) return Reflect.get(instanceFields, key);
148
137
  if (hasOwn(boundMethods, key)) return boundMethods[key];
@@ -178,13 +167,12 @@ function createRuntimeContext(options) {
178
167
  }
179
168
  if (hasOwn(instanceFields, key)) return Reflect.set(instanceFields, key, value);
180
169
  if (Reflect.has(target, key)) {
181
- var _WEVU_PROPS_KEY;
182
170
  const existingValue = Reflect.get(target, key, receiver);
183
171
  if (isRef(existingValue) && !isRef(value)) {
184
172
  existingValue.value = value;
185
173
  return true;
186
174
  }
187
- if (hasOwn((_WEVU_PROPS_KEY = target[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : {}, key)) return Reflect.set(setupState, key, value, receiver);
175
+ if (hasOwn(target[WEVU_PROPS_KEY] ?? {}, key)) return Reflect.set(setupState, key, value, receiver);
188
176
  return Reflect.set(target, key, value, receiver);
189
177
  }
190
178
  return Reflect.set(instanceFields, key, value);
@@ -257,10 +245,9 @@ function createRuntimeContext(options) {
257
245
  const definition = computedDefs[key];
258
246
  if (typeof definition === "function") computedRefs[key] = createTrackedComputed(key, () => definition.call(publicInstance));
259
247
  else {
260
- var _definition$get, _definition$set;
261
- const getter = (_definition$get = definition.get) === null || _definition$get === void 0 ? void 0 : _definition$get.bind(publicInstance);
248
+ const getter = definition.get?.bind(publicInstance);
262
249
  if (!getter) throw new Error(`计算属性 "${key}" 需要提供 getter`);
263
- const setter = (_definition$set = definition.set) === null || _definition$set === void 0 ? void 0 : _definition$set.bind(publicInstance);
250
+ const setter = definition.set?.bind(publicInstance);
264
251
  if (setter) {
265
252
  computedSetters[key] = setter;
266
253
  computedRefs[key] = createTrackedComputed(key, getter, setter);
@@ -1 +1 @@
1
- {"version":3,"file":"context.mjs","names":[],"sources":["../../../../src/runtime/app/context.ts"],"sourcesContent":["import type { WritableComputedOptions } from '../../reactivity'\nimport type { AppConfig, ComponentPublicInstance, ComputedDefinitions, ExtractMethods, MethodDefinitions } from '../types'\nimport {\n WEVU_COMPONENT_NAME_KEY,\n WEVU_HOST_COMMIT_PROMISE_KEY,\n WEVU_INLINE_MAP_KEY,\n WEVU_NATIVE_INSTANCE_KEY,\n WEVU_PARENT_INSTANCE_KEY,\n WEVU_PROPS_KEY,\n WEVU_RESOLVE_PUBLIC_INSTANCE_METHOD,\n WEVU_RUNTIME_APP_KEY,\n WEVU_RUNTIME_KEY,\n} from '@weapp-core/constants'\nimport { isRef, ref, toRaw } from '../../reactivity'\nimport { nextTick } from '../../scheduler'\nimport { hasOwn } from '../../utils'\nimport { normalizeEmitEventName, normalizeEmitPayload } from '../emit'\nimport { setComputedValue } from '../internal'\nimport { isNativeBridgeMethod, markNativeBridgeMethod } from '../nativeBridge'\nimport { createComputedAccessors } from './computed'\n\nexport function createRuntimeContext<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: {\n state: D\n setupState: Record<string, any>\n computedDefs: C\n methodDefs: M\n appConfig: AppConfig\n includeComputed: boolean\n setDataStrategy: 'diff' | 'patch'\n}) {\n const {\n state,\n setupState,\n computedDefs,\n methodDefs,\n appConfig,\n includeComputed,\n setDataStrategy,\n } = options\n\n const boundMethods = {} as ExtractMethods<M>\n const {\n computedRefs,\n computedSetters,\n dirtyComputedKeys,\n createTrackedComputed,\n computedProxy,\n } = createComputedAccessors({ includeComputed, setDataStrategy })\n const setupMethodVersion = ref(0)\n const instanceFields = Object.create(null) as Record<PropertyKey, any>\n\n const resolveNativeInstance = (target: object, receiver: object) => {\n const rawTarget = toRaw(target as any) as Record<string, any>\n const runtimeRef = rawTarget[WEVU_RUNTIME_KEY]\n const runtimeProxy = runtimeRef?.proxy as Record<string, any> | undefined\n const isBridgeMethod = (\n candidate: object,\n methodName: 'triggerEvent' | 'createSelectorQuery' | 'createIntersectionObserver' | 'setData',\n ) => {\n const candidateMethod = (candidate as any)[methodName]\n return isNativeBridgeMethod(candidateMethod)\n }\n const isValidNativeCandidate = (candidate: unknown) => {\n if (!candidate || typeof candidate !== 'object') {\n return false\n }\n if (candidate === target || candidate === receiver || candidate === runtimeProxy) {\n return false\n }\n if (\n isBridgeMethod(candidate, 'triggerEvent')\n || isBridgeMethod(candidate, 'createSelectorQuery')\n || isBridgeMethod(candidate, 'createIntersectionObserver')\n || isBridgeMethod(candidate, 'setData')\n ) {\n return false\n }\n return true\n }\n const directNative = rawTarget[WEVU_NATIVE_INSTANCE_KEY]\n if (isValidNativeCandidate(directNative)) {\n return directNative as object\n }\n const runtimeNative = runtimeRef?.instance\n if (isValidNativeCandidate(runtimeNative)) {\n return runtimeNative as object\n }\n return undefined\n }\n\n const installNativeMethodBridge = (methodName: string) => {\n if (hasOwn(boundMethods, methodName)) {\n return\n }\n const bridge = (...args: any[]) => {\n const nativeInstance = resolveNativeInstance(state as object, state as object)\n if (!nativeInstance) {\n return undefined\n }\n const nativeMethod = Reflect.get(nativeInstance, methodName)\n if (typeof nativeMethod === 'function') {\n return nativeMethod.apply(nativeInstance, args)\n }\n return undefined\n }\n markNativeBridgeMethod(bridge)\n ;(boundMethods as any)[methodName] = bridge\n }\n\n const resolveGlobalProperty = (nativeInstance: object | undefined, key: string) => {\n const seen = new Set<object>()\n let current = nativeInstance as Record<string, any> | undefined\n while (current && !seen.has(current)) {\n seen.add(current)\n const globalProperties = current[WEVU_RUNTIME_APP_KEY]?.config?.globalProperties\n if (globalProperties && hasOwn(globalProperties, key)) {\n return { found: true, value: globalProperties[key] }\n }\n current = current[WEVU_PARENT_INSTANCE_KEY]\n }\n\n const getAppFn = typeof globalThis !== 'undefined'\n ? (globalThis as Record<string, any>).getApp\n : undefined\n if (typeof getAppFn === 'function') {\n try {\n const rootAppInstance = getAppFn()\n const globalProperties = rootAppInstance?.[WEVU_RUNTIME_APP_KEY]?.config?.globalProperties\n if (globalProperties && hasOwn(globalProperties, key)) {\n return { found: true, value: globalProperties[key] }\n }\n }\n catch {\n // App 尚未初始化时保持普通属性回退语义。\n }\n }\n return { found: false, value: undefined }\n }\n\n const resolveParentPublicInstance = (nativeInstance: object | undefined) => {\n const selectOwnerComponent = nativeInstance && Reflect.get(nativeInstance, 'selectOwnerComponent')\n if (typeof selectOwnerComponent !== 'function') {\n return undefined\n }\n try {\n const owner = selectOwnerComponent.call(nativeInstance)\n if (!owner || typeof owner !== 'object') {\n return undefined\n }\n const resolvePublicInstance = Reflect.get(owner, WEVU_RESOLVE_PUBLIC_INSTANCE_METHOD)\n if (typeof resolvePublicInstance === 'function') {\n const publicInstance = resolvePublicInstance.call(owner)\n if (publicInstance) {\n return publicInstance\n }\n }\n return owner[WEVU_RUNTIME_KEY]?.proxy ?? owner.__wevu?.proxy ?? owner\n }\n catch {\n return undefined\n }\n }\n\n const publicInstance = new Proxy(state as ComponentPublicInstance<D, C, M>, {\n get(target, key, receiver) {\n if (typeof key === 'string') {\n // setup 返回的方法会在运行时后置注入,读取版本号可确保相关 computed 在方法注入后失效重算。\n void setupMethodVersion.value\n if (hasOwn(setupState, key)) {\n return Reflect.get(setupState, key, receiver)\n }\n if (key === 'props') {\n const props = (target as any)[WEVU_PROPS_KEY]\n if (props && typeof props === 'object') {\n return props\n }\n }\n if (key === '$props') {\n const props = (target as any)[WEVU_PROPS_KEY]\n if (props && typeof props === 'object') {\n return props\n }\n }\n const props = (target as any)[WEVU_PROPS_KEY]\n if (props && typeof props === 'object' && hasOwn(props, key)) {\n return Reflect.get(props, key)\n }\n if (key === 'data') {\n return state\n }\n if (key === '$state') {\n return state\n }\n if (key === '$computed') {\n return computedProxy\n }\n if (key === '$emit') {\n return (eventName: string, ...args: any[]) => {\n const nativeInstance = resolveNativeInstance(target as object, receiver as object)\n const triggerEvent = nativeInstance && Reflect.get(nativeInstance, 'triggerEvent')\n if (typeof triggerEvent !== 'function') {\n return undefined\n }\n const { detail, options } = normalizeEmitPayload(args)\n return triggerEvent.call(nativeInstance, normalizeEmitEventName(eventName), detail, options)\n }\n }\n if (key === '$nextTick') {\n return async <T>(fn?: () => T) => {\n await nextTick()\n const nativeInstance = resolveNativeInstance(target as object, receiver as object)\n const hostCommit = nativeInstance && Reflect.get(nativeInstance, WEVU_HOST_COMMIT_PROMISE_KEY)\n if (\n hostCommit\n && (typeof hostCommit === 'object' || typeof hostCommit === 'function')\n && 'then' in hostCommit\n && typeof hostCommit.then === 'function'\n ) {\n await hostCommit\n }\n if (fn) {\n return fn.call(publicInstance)\n }\n }\n }\n if (key === '$set') {\n return (object: Record<PropertyKey, any>, property: PropertyKey, value: any) => {\n Reflect.set(object, property, value)\n return value\n }\n }\n if (key === '$delete') {\n return (object: Record<PropertyKey, any>, property: PropertyKey) => Reflect.deleteProperty(object, property)\n }\n if (key === '$slots') {\n const rawTarget = toRaw(target as any) as Record<string, any>\n return rawTarget.$slots ?? Object.freeze(Object.create(null))\n }\n if (key === '$refs') {\n const rawTarget = toRaw(target as any) as Record<string, any>\n return rawTarget.$refs ?? Object.create(null)\n }\n if (key === '$parent') {\n return resolveParentPublicInstance(resolveNativeInstance(target as object, receiver as object))\n }\n if (key === '$options') {\n const nativeInstance = resolveNativeInstance(target as object, receiver as object) as Record<string, any> | undefined\n return {\n name: nativeInstance?.[WEVU_COMPONENT_NAME_KEY] ?? nativeInstance?.name ?? nativeInstance?.is,\n }\n }\n if (hasOwn(instanceFields, key)) {\n return Reflect.get(instanceFields, key)\n }\n if (hasOwn(boundMethods, key)) {\n return boundMethods[key as keyof ExtractMethods<M>]\n }\n if ((computedRefs as any)[key]) {\n return (computedRefs as any)[key].value\n }\n if (hasOwn(appConfig.globalProperties, key)) {\n return (appConfig.globalProperties as any)[key]\n }\n const globalProperty = resolveGlobalProperty(\n resolveNativeInstance(target as object, receiver as object),\n key,\n )\n if (globalProperty.found) {\n return globalProperty.value\n }\n }\n if (!Reflect.has(target, key)) {\n const nativeInstance = resolveNativeInstance(target as object, receiver as object)\n if (nativeInstance && Reflect.has(nativeInstance, key)) {\n const nativeValue = Reflect.get(nativeInstance, key)\n if (typeof nativeValue === 'function') {\n return nativeValue.bind(nativeInstance)\n }\n return nativeValue\n }\n }\n const targetValue = Reflect.get(target, key, receiver)\n if (typeof key === 'string' && hasOwn(setupState, key)) {\n return Reflect.get(setupState, key, receiver)\n }\n return targetValue\n },\n set(target, key, value, receiver) {\n if (typeof key === 'string' && (computedRefs as any)[key]) {\n setComputedValue(computedSetters, key, value)\n return true\n }\n if (hasOwn(setupState, key)) {\n const existingValue = Reflect.get(setupState, key, receiver)\n if (isRef(existingValue) && !isRef(value)) {\n existingValue.value = value\n return true\n }\n return Reflect.set(setupState, key, value, receiver)\n }\n if (hasOwn(instanceFields, key)) {\n return Reflect.set(instanceFields, key, value)\n }\n if (Reflect.has(target, key)) {\n const existingValue = Reflect.get(target, key, receiver)\n if (isRef(existingValue) && !isRef(value)) {\n existingValue.value = value\n return true\n }\n if (hasOwn((target as any)[WEVU_PROPS_KEY] ?? {}, key)) {\n return Reflect.set(setupState, key, value, receiver)\n }\n return Reflect.set(target, key, value, receiver)\n }\n return Reflect.set(instanceFields, key, value)\n },\n has(target, key) {\n if (\n key === 'data'\n || key === '$emit'\n || key === '$nextTick'\n || key === '$set'\n || key === '$delete'\n || key === '$slots'\n || key === '$refs'\n || key === '$parent'\n || key === '$options'\n ) {\n return true\n }\n if (typeof key === 'string' && (hasOwn(setupState, key) || (computedRefs as any)[key] || hasOwn(boundMethods, key))) {\n return true\n }\n if (hasOwn(instanceFields, key)) {\n return true\n }\n const nativeInstance = resolveNativeInstance(target as object, target as object)\n if (typeof key === 'string' && resolveGlobalProperty(nativeInstance, key).found) {\n return true\n }\n if (nativeInstance && Reflect.has(nativeInstance, key)) {\n return true\n }\n return Reflect.has(target, key)\n },\n ownKeys(target) {\n const keys = new Set<string | symbol>()\n Reflect.ownKeys(target).forEach((key) => {\n keys.add(key as string | symbol)\n })\n Reflect.ownKeys(setupState).forEach((key) => {\n keys.add(key as string | symbol)\n })\n Reflect.ownKeys(instanceFields).forEach(key => keys.add(key))\n Object.keys(boundMethods).forEach(key => keys.add(key))\n Object.keys(computedRefs).forEach(key => keys.add(key))\n return [...keys]\n },\n getOwnPropertyDescriptor(target, key) {\n if (typeof key === 'string' && hasOwn(setupState, key)) {\n return Object.getOwnPropertyDescriptor(setupState, key)\n }\n if (hasOwn(instanceFields, key)) {\n return Object.getOwnPropertyDescriptor(instanceFields, key)\n }\n if (Reflect.has(target, key)) {\n return Object.getOwnPropertyDescriptor(target, key)\n }\n if (typeof key === 'string') {\n if (key === 'data') {\n return {\n configurable: true,\n enumerable: false,\n get() {\n return state\n },\n }\n }\n if ((computedRefs as any)[key]) {\n return {\n configurable: true,\n enumerable: true,\n get() {\n return (computedRefs as any)[key].value\n },\n set(value: any) {\n setComputedValue(computedSetters, key, value)\n },\n }\n }\n if (hasOwn(boundMethods, key)) {\n return {\n configurable: true,\n enumerable: false,\n value: boundMethods[key as keyof ExtractMethods<M>],\n }\n }\n }\n return undefined\n },\n })\n\n Object.keys(methodDefs).forEach((key) => {\n const handler = (methodDefs as any)[key]\n if (typeof handler === 'function') {\n ;(boundMethods as any)[key] = (...args: any[]) => handler.apply(publicInstance, args)\n return\n }\n if (key === WEVU_INLINE_MAP_KEY && handler && typeof handler === 'object') {\n ;(boundMethods as any)[key] = handler\n }\n })\n\n installNativeMethodBridge('triggerEvent')\n installNativeMethodBridge('createSelectorQuery')\n installNativeMethodBridge('createIntersectionObserver')\n installNativeMethodBridge('setData')\n\n Object.keys(computedDefs).forEach((key) => {\n const definition = (computedDefs as any)[key] as ((this: any) => any) | WritableComputedOptions<any>\n if (typeof definition === 'function') {\n computedRefs[key] = createTrackedComputed(key, () => (definition as any).call(publicInstance))\n }\n else {\n const getter = definition.get?.bind(publicInstance)\n if (!getter) {\n throw new Error(`计算属性 \"${key}\" 需要提供 getter`)\n }\n const setter = definition.set?.bind(publicInstance)\n if (setter) {\n computedSetters[key] = setter\n computedRefs[key] = createTrackedComputed(key, getter, setter)\n }\n else {\n computedRefs[key] = createTrackedComputed(key, getter)\n }\n }\n })\n\n return {\n boundMethods,\n computedRefs,\n computedSetters,\n dirtyComputedKeys,\n computedProxy,\n publicInstance,\n touchSetupMethodsVersion() {\n setupMethodVersion.value += 1\n },\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"context.mjs","names":[],"sources":["../../../../src/runtime/app/context.ts"],"sourcesContent":["import type { WritableComputedOptions } from '../../reactivity'\nimport type { AppConfig, ComponentPublicInstance, ComputedDefinitions, ExtractMethods, MethodDefinitions } from '../types'\nimport {\n WEVU_COMPONENT_NAME_KEY,\n WEVU_HOST_COMMIT_PROMISE_KEY,\n WEVU_INLINE_MAP_KEY,\n WEVU_NATIVE_INSTANCE_KEY,\n WEVU_PARENT_INSTANCE_KEY,\n WEVU_PROPS_KEY,\n WEVU_RESOLVE_PUBLIC_INSTANCE_METHOD,\n WEVU_RUNTIME_APP_KEY,\n WEVU_RUNTIME_KEY,\n} from '@weapp-core/constants'\nimport { isRef, ref, toRaw } from '../../reactivity'\nimport { nextTick } from '../../scheduler'\nimport { hasOwn } from '../../utils'\nimport { normalizeEmitEventName, normalizeEmitPayload } from '../emit'\nimport { setComputedValue } from '../internal'\nimport { isNativeBridgeMethod, markNativeBridgeMethod } from '../nativeBridge'\nimport { createComputedAccessors } from './computed'\n\nexport function createRuntimeContext<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: {\n state: D\n setupState: Record<string, any>\n computedDefs: C\n methodDefs: M\n appConfig: AppConfig\n includeComputed: boolean\n setDataStrategy: 'diff' | 'patch'\n}) {\n const {\n state,\n setupState,\n computedDefs,\n methodDefs,\n appConfig,\n includeComputed,\n setDataStrategy,\n } = options\n\n const boundMethods = {} as ExtractMethods<M>\n const {\n computedRefs,\n computedSetters,\n dirtyComputedKeys,\n createTrackedComputed,\n computedProxy,\n } = createComputedAccessors({ includeComputed, setDataStrategy })\n const setupMethodVersion = ref(0)\n const instanceFields = Object.create(null) as Record<PropertyKey, any>\n\n const resolveNativeInstance = (target: object, receiver: object) => {\n const rawTarget = toRaw(target as any) as Record<string, any>\n const runtimeRef = rawTarget[WEVU_RUNTIME_KEY]\n const runtimeProxy = runtimeRef?.proxy as Record<string, any> | undefined\n const isBridgeMethod = (\n candidate: object,\n methodName: 'triggerEvent' | 'createSelectorQuery' | 'createIntersectionObserver' | 'setData',\n ) => {\n const candidateMethod = (candidate as any)[methodName]\n return isNativeBridgeMethod(candidateMethod)\n }\n const isValidNativeCandidate = (candidate: unknown) => {\n if (!candidate || typeof candidate !== 'object') {\n return false\n }\n if (candidate === target || candidate === receiver || candidate === runtimeProxy) {\n return false\n }\n if (\n isBridgeMethod(candidate, 'triggerEvent')\n || isBridgeMethod(candidate, 'createSelectorQuery')\n || isBridgeMethod(candidate, 'createIntersectionObserver')\n || isBridgeMethod(candidate, 'setData')\n ) {\n return false\n }\n return true\n }\n const directNative = rawTarget[WEVU_NATIVE_INSTANCE_KEY]\n if (isValidNativeCandidate(directNative)) {\n return directNative as object\n }\n const runtimeNative = runtimeRef?.instance\n if (isValidNativeCandidate(runtimeNative)) {\n return runtimeNative as object\n }\n return undefined\n }\n\n const installNativeMethodBridge = (methodName: string) => {\n if (hasOwn(boundMethods, methodName)) {\n return\n }\n const bridge = (...args: any[]) => {\n const nativeInstance = resolveNativeInstance(state as object, state as object)\n if (!nativeInstance) {\n return undefined\n }\n const nativeMethod = Reflect.get(nativeInstance, methodName)\n if (typeof nativeMethod === 'function') {\n return nativeMethod.apply(nativeInstance, args)\n }\n return undefined\n }\n markNativeBridgeMethod(bridge)\n ;(boundMethods as any)[methodName] = bridge\n }\n\n const resolveGlobalProperty = (nativeInstance: object | undefined, key: string) => {\n const seen = new Set<object>()\n let current = nativeInstance as Record<string, any> | undefined\n while (current && !seen.has(current)) {\n seen.add(current)\n const globalProperties = current[WEVU_RUNTIME_APP_KEY]?.config?.globalProperties\n if (globalProperties && hasOwn(globalProperties, key)) {\n return { found: true, value: globalProperties[key] }\n }\n current = current[WEVU_PARENT_INSTANCE_KEY]\n }\n\n const getAppFn = typeof globalThis !== 'undefined'\n ? (globalThis as Record<string, any>).getApp\n : undefined\n if (typeof getAppFn === 'function') {\n try {\n const rootAppInstance = getAppFn()\n const globalProperties = rootAppInstance?.[WEVU_RUNTIME_APP_KEY]?.config?.globalProperties\n if (globalProperties && hasOwn(globalProperties, key)) {\n return { found: true, value: globalProperties[key] }\n }\n }\n catch {\n // App 尚未初始化时保持普通属性回退语义。\n }\n }\n return { found: false, value: undefined }\n }\n\n const resolveParentPublicInstance = (nativeInstance: object | undefined) => {\n const selectOwnerComponent = nativeInstance && Reflect.get(nativeInstance, 'selectOwnerComponent')\n if (typeof selectOwnerComponent !== 'function') {\n return undefined\n }\n try {\n const owner = selectOwnerComponent.call(nativeInstance)\n if (!owner || typeof owner !== 'object') {\n return undefined\n }\n const resolvePublicInstance = Reflect.get(owner, WEVU_RESOLVE_PUBLIC_INSTANCE_METHOD)\n if (typeof resolvePublicInstance === 'function') {\n const publicInstance = resolvePublicInstance.call(owner)\n if (publicInstance) {\n return publicInstance\n }\n }\n return owner[WEVU_RUNTIME_KEY]?.proxy ?? owner.__wevu?.proxy ?? owner\n }\n catch {\n return undefined\n }\n }\n\n const publicInstance = new Proxy(state as ComponentPublicInstance<D, C, M>, {\n get(target, key, receiver) {\n if (typeof key === 'string') {\n // setup 返回的方法会在运行时后置注入,读取版本号可确保相关 computed 在方法注入后失效重算。\n void setupMethodVersion.value\n if (hasOwn(setupState, key)) {\n return Reflect.get(setupState, key, receiver)\n }\n if (key === 'props') {\n const props = (target as any)[WEVU_PROPS_KEY]\n if (props && typeof props === 'object') {\n return props\n }\n }\n if (key === '$props') {\n const props = (target as any)[WEVU_PROPS_KEY]\n if (props && typeof props === 'object') {\n return props\n }\n }\n const props = (target as any)[WEVU_PROPS_KEY]\n if (props && typeof props === 'object' && hasOwn(props, key)) {\n return Reflect.get(props, key)\n }\n if (key === 'data') {\n return state\n }\n if (key === '$state') {\n return state\n }\n if (key === '$computed') {\n return computedProxy\n }\n if (key === '$emit') {\n return (eventName: string, ...args: any[]) => {\n const nativeInstance = resolveNativeInstance(target as object, receiver as object)\n const triggerEvent = nativeInstance && Reflect.get(nativeInstance, 'triggerEvent')\n if (typeof triggerEvent !== 'function') {\n return undefined\n }\n const { detail, options } = normalizeEmitPayload(args)\n return triggerEvent.call(nativeInstance, normalizeEmitEventName(eventName), detail, options)\n }\n }\n if (key === '$nextTick') {\n return async <T>(fn?: () => T) => {\n await nextTick()\n const nativeInstance = resolveNativeInstance(target as object, receiver as object)\n const hostCommit = nativeInstance && Reflect.get(nativeInstance, WEVU_HOST_COMMIT_PROMISE_KEY)\n if (\n hostCommit\n && (typeof hostCommit === 'object' || typeof hostCommit === 'function')\n && 'then' in hostCommit\n && typeof hostCommit.then === 'function'\n ) {\n await hostCommit\n }\n if (fn) {\n return fn.call(publicInstance)\n }\n }\n }\n if (key === '$set') {\n return (object: Record<PropertyKey, any>, property: PropertyKey, value: any) => {\n Reflect.set(object, property, value)\n return value\n }\n }\n if (key === '$delete') {\n return (object: Record<PropertyKey, any>, property: PropertyKey) => Reflect.deleteProperty(object, property)\n }\n if (key === '$slots') {\n const rawTarget = toRaw(target as any) as Record<string, any>\n return rawTarget.$slots ?? Object.freeze(Object.create(null))\n }\n if (key === '$refs') {\n const rawTarget = toRaw(target as any) as Record<string, any>\n return rawTarget.$refs ?? Object.create(null)\n }\n if (key === '$parent') {\n return resolveParentPublicInstance(resolveNativeInstance(target as object, receiver as object))\n }\n if (key === '$options') {\n const nativeInstance = resolveNativeInstance(target as object, receiver as object) as Record<string, any> | undefined\n return {\n name: nativeInstance?.[WEVU_COMPONENT_NAME_KEY] ?? nativeInstance?.name ?? nativeInstance?.is,\n }\n }\n if (hasOwn(instanceFields, key)) {\n return Reflect.get(instanceFields, key)\n }\n if (hasOwn(boundMethods, key)) {\n return boundMethods[key as keyof ExtractMethods<M>]\n }\n if ((computedRefs as any)[key]) {\n return (computedRefs as any)[key].value\n }\n if (hasOwn(appConfig.globalProperties, key)) {\n return (appConfig.globalProperties as any)[key]\n }\n const globalProperty = resolveGlobalProperty(\n resolveNativeInstance(target as object, receiver as object),\n key,\n )\n if (globalProperty.found) {\n return globalProperty.value\n }\n }\n if (!Reflect.has(target, key)) {\n const nativeInstance = resolveNativeInstance(target as object, receiver as object)\n if (nativeInstance && Reflect.has(nativeInstance, key)) {\n const nativeValue = Reflect.get(nativeInstance, key)\n if (typeof nativeValue === 'function') {\n return nativeValue.bind(nativeInstance)\n }\n return nativeValue\n }\n }\n const targetValue = Reflect.get(target, key, receiver)\n if (typeof key === 'string' && hasOwn(setupState, key)) {\n return Reflect.get(setupState, key, receiver)\n }\n return targetValue\n },\n set(target, key, value, receiver) {\n if (typeof key === 'string' && (computedRefs as any)[key]) {\n setComputedValue(computedSetters, key, value)\n return true\n }\n if (hasOwn(setupState, key)) {\n const existingValue = Reflect.get(setupState, key, receiver)\n if (isRef(existingValue) && !isRef(value)) {\n existingValue.value = value\n return true\n }\n return Reflect.set(setupState, key, value, receiver)\n }\n if (hasOwn(instanceFields, key)) {\n return Reflect.set(instanceFields, key, value)\n }\n if (Reflect.has(target, key)) {\n const existingValue = Reflect.get(target, key, receiver)\n if (isRef(existingValue) && !isRef(value)) {\n existingValue.value = value\n return true\n }\n if (hasOwn((target as any)[WEVU_PROPS_KEY] ?? {}, key)) {\n return Reflect.set(setupState, key, value, receiver)\n }\n return Reflect.set(target, key, value, receiver)\n }\n return Reflect.set(instanceFields, key, value)\n },\n has(target, key) {\n if (\n key === 'data'\n || key === '$emit'\n || key === '$nextTick'\n || key === '$set'\n || key === '$delete'\n || key === '$slots'\n || key === '$refs'\n || key === '$parent'\n || key === '$options'\n ) {\n return true\n }\n if (typeof key === 'string' && (hasOwn(setupState, key) || (computedRefs as any)[key] || hasOwn(boundMethods, key))) {\n return true\n }\n if (hasOwn(instanceFields, key)) {\n return true\n }\n const nativeInstance = resolveNativeInstance(target as object, target as object)\n if (typeof key === 'string' && resolveGlobalProperty(nativeInstance, key).found) {\n return true\n }\n if (nativeInstance && Reflect.has(nativeInstance, key)) {\n return true\n }\n return Reflect.has(target, key)\n },\n ownKeys(target) {\n const keys = new Set<string | symbol>()\n Reflect.ownKeys(target).forEach((key) => {\n keys.add(key as string | symbol)\n })\n Reflect.ownKeys(setupState).forEach((key) => {\n keys.add(key as string | symbol)\n })\n Reflect.ownKeys(instanceFields).forEach(key => keys.add(key))\n Object.keys(boundMethods).forEach(key => keys.add(key))\n Object.keys(computedRefs).forEach(key => keys.add(key))\n return [...keys]\n },\n getOwnPropertyDescriptor(target, key) {\n if (typeof key === 'string' && hasOwn(setupState, key)) {\n return Object.getOwnPropertyDescriptor(setupState, key)\n }\n if (hasOwn(instanceFields, key)) {\n return Object.getOwnPropertyDescriptor(instanceFields, key)\n }\n if (Reflect.has(target, key)) {\n return Object.getOwnPropertyDescriptor(target, key)\n }\n if (typeof key === 'string') {\n if (key === 'data') {\n return {\n configurable: true,\n enumerable: false,\n get() {\n return state\n },\n }\n }\n if ((computedRefs as any)[key]) {\n return {\n configurable: true,\n enumerable: true,\n get() {\n return (computedRefs as any)[key].value\n },\n set(value: any) {\n setComputedValue(computedSetters, key, value)\n },\n }\n }\n if (hasOwn(boundMethods, key)) {\n return {\n configurable: true,\n enumerable: false,\n value: boundMethods[key as keyof ExtractMethods<M>],\n }\n }\n }\n return undefined\n },\n })\n\n Object.keys(methodDefs).forEach((key) => {\n const handler = (methodDefs as any)[key]\n if (typeof handler === 'function') {\n ;(boundMethods as any)[key] = (...args: any[]) => handler.apply(publicInstance, args)\n return\n }\n if (key === WEVU_INLINE_MAP_KEY && handler && typeof handler === 'object') {\n ;(boundMethods as any)[key] = handler\n }\n })\n\n installNativeMethodBridge('triggerEvent')\n installNativeMethodBridge('createSelectorQuery')\n installNativeMethodBridge('createIntersectionObserver')\n installNativeMethodBridge('setData')\n\n Object.keys(computedDefs).forEach((key) => {\n const definition = (computedDefs as any)[key] as ((this: any) => any) | WritableComputedOptions<any>\n if (typeof definition === 'function') {\n computedRefs[key] = createTrackedComputed(key, () => (definition as any).call(publicInstance))\n }\n else {\n const getter = definition.get?.bind(publicInstance)\n if (!getter) {\n throw new Error(`计算属性 \"${key}\" 需要提供 getter`)\n }\n const setter = definition.set?.bind(publicInstance)\n if (setter) {\n computedSetters[key] = setter\n computedRefs[key] = createTrackedComputed(key, getter, setter)\n }\n else {\n computedRefs[key] = createTrackedComputed(key, getter)\n }\n }\n })\n\n return {\n boundMethods,\n computedRefs,\n computedSetters,\n dirtyComputedKeys,\n computedProxy,\n publicInstance,\n touchSetupMethodsVersion() {\n setupMethodVersion.value += 1\n },\n }\n}\n"],"mappings":"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"}
@@ -5,7 +5,6 @@ function isFallbackReason(reason) {
5
5
  function createDiagnosticsLogger(mode) {
6
6
  if (mode === "off") return;
7
7
  return (info) => {
8
- var _info$bindings;
9
8
  if (mode === "fallback" && !isFallbackReason(info.reason)) return;
10
9
  const bytes = typeof info.bytes === "number" ? info.bytes : info.estimatedBytes;
11
10
  const bytesText = typeof bytes === "number" ? `${bytes}B` : "unknown";
@@ -23,10 +22,9 @@ function createDiagnosticsLogger(mode) {
23
22
  if (typeof info.flushCount === "number") parts.push(`flushes=${info.flushCount}`);
24
23
  if (typeof info.windowMs === "number") parts.push(`window=${info.windowMs}ms`);
25
24
  if (info.targetLabel) parts.push(`target=${info.targetLabel}`);
26
- if ((_info$bindings = info.bindings) === null || _info$bindings === void 0 ? void 0 : _info$bindings.length) {
25
+ if (info.bindings?.length) {
27
26
  const bindings = info.bindings.map((binding) => {
28
- var _binding$sourceLocati;
29
- const start = (_binding$sourceLocati = binding.sourceLocation) === null || _binding$sourceLocati === void 0 ? void 0 : _binding$sourceLocati.start;
27
+ const start = binding.sourceLocation?.start;
30
28
  return start ? `${binding.id}@${binding.sourceFile}:${start.line}:${start.column}` : `${binding.id}@${binding.sourceFile}`;
31
29
  });
32
30
  parts.push(`bindings=${bindings.join(",")}`);