wevu 7.2.1 → 7.3.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 (466) 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/api/vitest/setup.d.mts +1 -0
  7. package/dist/dev/api/vitest.d.mts +1 -0
  8. package/dist/dev/api.d.mts +1 -0
  9. package/dist/dev/compiler.d.mts +1 -0
  10. package/dist/dev/fetch.d.mts +9 -0
  11. package/dist/dev/index.d.mts +72 -0
  12. package/dist/dev/internal-reactivity.d.mts +18 -0
  13. package/dist/dev/internal-runtime.d.mts +45 -0
  14. package/dist/dev/internal-runtime.mjs +3 -2
  15. package/dist/dev/internal-template.d.mts +2 -0
  16. package/dist/dev/jsxTypes.d.mts +9 -0
  17. package/dist/dev/macros/shared.d.mts +83 -0
  18. package/dist/dev/macros.d.mts +71 -0
  19. package/dist/dev/package.mjs +1 -1
  20. package/dist/dev/reactivity/asyncDerivation.d.mts +41 -0
  21. package/dist/dev/reactivity/asyncDerivation.mjs +8 -10
  22. package/dist/dev/reactivity/asyncDerivation.mjs.map +1 -1
  23. package/dist/dev/reactivity/computed.d.mts +25 -0
  24. package/dist/dev/reactivity/core.d.mts +35 -0
  25. package/dist/dev/reactivity/core.mjs +5 -8
  26. package/dist/dev/reactivity/core.mjs.map +1 -1
  27. package/dist/dev/reactivity/index.d.mts +16 -0
  28. package/dist/dev/reactivity/reactive/mutation.d.mts +21 -0
  29. package/dist/dev/reactivity/reactive/patch.d.mts +18 -0
  30. package/dist/dev/reactivity/reactive/patch.mjs +3 -3
  31. package/dist/dev/reactivity/reactive/patch.mjs.map +1 -1
  32. package/dist/dev/reactivity/reactive/patchState.mjs +4 -8
  33. package/dist/dev/reactivity/reactive/patchState.mjs.map +1 -1
  34. package/dist/dev/reactivity/reactive/shallow.d.mts +22 -0
  35. package/dist/dev/reactivity/reactive/shared.d.mts +4 -0
  36. package/dist/dev/reactivity/reactive/shared.mjs +1 -2
  37. package/dist/dev/reactivity/reactive/shared.mjs.map +1 -1
  38. package/dist/dev/reactivity/reactive.d.mts +42 -0
  39. package/dist/dev/reactivity/reactive.mjs +5 -10
  40. package/dist/dev/reactivity/reactive.mjs.map +1 -1
  41. package/dist/dev/reactivity/readonly.d.mts +27 -0
  42. package/dist/dev/reactivity/ref.d.mts +27 -0
  43. package/dist/dev/reactivity/ref.mjs +2 -2
  44. package/dist/dev/reactivity/ref.mjs.map +1 -1
  45. package/dist/dev/reactivity/shallowRef.d.mts +19 -0
  46. package/dist/dev/reactivity/shallowRef.mjs +1 -1
  47. package/dist/dev/reactivity/shallowRef.mjs.map +1 -1
  48. package/dist/dev/reactivity/toRefs.d.mts +43 -0
  49. package/dist/dev/reactivity/traverse.d.mts +8 -0
  50. package/dist/dev/reactivity/watch/helpers.mjs +1 -1
  51. package/dist/dev/reactivity/watch/helpers.mjs.map +1 -1
  52. package/dist/dev/reactivity/watch/types.d.mts +43 -0
  53. package/dist/dev/reactivity/watch.d.mts +22 -0
  54. package/dist/dev/reactivity/watch.mjs +6 -8
  55. package/dist/dev/reactivity/watch.mjs.map +1 -1
  56. package/dist/dev/router/auto-routes.d.mts +8 -0
  57. package/dist/dev/router/createRouter.d.mts +9 -0
  58. package/dist/dev/router/createRouter.mjs +17 -24
  59. package/dist/dev/router/createRouter.mjs.map +1 -1
  60. package/dist/dev/router/initialNavigation.mjs +18 -16
  61. package/dist/dev/router/initialNavigation.mjs.map +1 -1
  62. package/dist/dev/router/instance.mjs +1 -2
  63. package/dist/dev/router/instance.mjs.map +1 -1
  64. package/dist/dev/router/navigationCore.d.mts +7 -0
  65. package/dist/dev/router/navigationCore.mjs +2 -2
  66. package/dist/dev/router/navigationCore.mjs.map +1 -1
  67. package/dist/dev/router/navigationResult.mjs +7 -10
  68. package/dist/dev/router/navigationResult.mjs.map +1 -1
  69. package/dist/dev/router/navigationTarget.mjs +1 -3
  70. package/dist/dev/router/navigationTarget.mjs.map +1 -1
  71. package/dist/dev/router/resolve.d.mts +7 -0
  72. package/dist/dev/router/resolve.mjs +3 -4
  73. package/dist/dev/router/resolve.mjs.map +1 -1
  74. package/dist/dev/router/routeRegistry.mjs +1 -1
  75. package/dist/dev/router/routeRegistry.mjs.map +1 -1
  76. package/dist/dev/router/routeSync.d.mts +2 -0
  77. package/dist/dev/router/routeSync.mjs +1 -1
  78. package/dist/dev/router/routeSync.mjs.map +1 -1
  79. package/dist/dev/router/types.d.mts +267 -0
  80. package/dist/dev/router/useRoute.d.mts +20 -0
  81. package/dist/dev/router/useRoute.mjs +12 -19
  82. package/dist/dev/router/useRoute.mjs.map +1 -1
  83. package/dist/dev/router/useRouter.d.mts +9 -0
  84. package/dist/dev/router.d.mts +26 -0
  85. package/dist/dev/routerInternal/location.d.mts +2 -0
  86. package/dist/dev/routerInternal/location.mjs +2 -3
  87. package/dist/dev/routerInternal/location.mjs.map +1 -1
  88. package/dist/dev/routerInternal/matching.d.mts +2 -0
  89. package/dist/dev/routerInternal/params.d.mts +2 -0
  90. package/dist/dev/routerInternal/params.mjs +2 -3
  91. package/dist/dev/routerInternal/params.mjs.map +1 -1
  92. package/dist/dev/routerInternal/query.d.mts +7 -0
  93. package/dist/dev/routerInternal/records.d.mts +2 -0
  94. package/dist/dev/routerInternal/records.mjs +1 -1
  95. package/dist/dev/routerInternal/records.mjs.map +1 -1
  96. package/dist/dev/routerInternal/recordsWarnings.d.mts +2 -0
  97. package/dist/dev/routerInternal/recordsWarnings.mjs +1 -2
  98. package/dist/dev/routerInternal/recordsWarnings.mjs.map +1 -1
  99. package/dist/dev/routerInternal/shared.d.mts +9 -0
  100. package/dist/dev/routerInternal/snapshots.d.mts +2 -0
  101. package/dist/dev/routerInternal/types.d.mts +9 -0
  102. package/dist/dev/runtime/app/context.mjs +13 -26
  103. package/dist/dev/runtime/app/context.mjs.map +1 -1
  104. package/dist/dev/runtime/app/diagnostics.mjs +2 -4
  105. package/dist/dev/runtime/app/diagnostics.mjs.map +1 -1
  106. package/dist/dev/runtime/app/mount.mjs +27 -33
  107. package/dist/dev/runtime/app/mount.mjs.map +1 -1
  108. package/dist/dev/runtime/app/pending.d.mts +10 -0
  109. package/dist/dev/runtime/app/setData/commitTracker.d.mts +13 -0
  110. package/dist/dev/runtime/app/setData/commitTracker.mjs +5 -9
  111. package/dist/dev/runtime/app/setData/commitTracker.mjs.map +1 -1
  112. package/dist/dev/runtime/app/setData/patchScheduler.mjs +2 -4
  113. package/dist/dev/runtime/app/setData/patchScheduler.mjs.map +1 -1
  114. package/dist/dev/runtime/app/setData/payload.mjs +2 -3
  115. package/dist/dev/runtime/app/setData/payload.mjs.map +1 -1
  116. package/dist/dev/runtime/app/setData/scheduler.d.mts +51 -0
  117. package/dist/dev/runtime/app/setData/scheduler.mjs +7 -9
  118. package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -1
  119. package/dist/dev/runtime/app/setData/snapshot.mjs +5 -6
  120. package/dist/dev/runtime/app/setData/snapshot.mjs.map +1 -1
  121. package/dist/dev/runtime/app/setDataOptions.mjs +26 -27
  122. package/dist/dev/runtime/app/setDataOptions.mjs.map +1 -1
  123. package/dist/dev/runtime/app.d.mts +8 -0
  124. package/dist/dev/runtime/app.mjs +9 -9
  125. package/dist/dev/runtime/app.mjs.map +1 -1
  126. package/dist/dev/runtime/bindingManifest.mjs +6 -14
  127. package/dist/dev/runtime/bindingManifest.mjs.map +1 -1
  128. package/dist/dev/runtime/capabilities.d.mts +78 -0
  129. package/dist/dev/runtime/capabilities.mjs.map +1 -1
  130. package/dist/dev/runtime/css.d.mts +14 -0
  131. package/dist/dev/runtime/css.mjs +4 -8
  132. package/dist/dev/runtime/css.mjs.map +1 -1
  133. package/dist/dev/runtime/defaults.d.mts +12 -0
  134. package/dist/dev/runtime/defaults.mjs +4 -4
  135. package/dist/dev/runtime/defaults.mjs.map +1 -1
  136. package/dist/dev/runtime/define/initialComputed.mjs +5 -5
  137. package/dist/dev/runtime/define/initialComputed.mjs.map +1 -1
  138. package/dist/dev/runtime/define/options.mjs +10 -12
  139. package/dist/dev/runtime/define/options.mjs.map +1 -1
  140. package/dist/dev/runtime/define/props.mjs +4 -5
  141. package/dist/dev/runtime/define/props.mjs.map +1 -1
  142. package/dist/dev/runtime/define/scopedSlotOptions.mjs +43 -61
  143. package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -1
  144. package/dist/dev/runtime/define/setupResult.mjs +17 -28
  145. package/dist/dev/runtime/define/setupResult.mjs.map +1 -1
  146. package/dist/dev/runtime/define.d.mts +118 -0
  147. package/dist/dev/runtime/define.mjs +9 -12
  148. package/dist/dev/runtime/define.mjs.map +1 -1
  149. package/dist/dev/runtime/diff.mjs +9 -11
  150. package/dist/dev/runtime/diff.mjs.map +1 -1
  151. package/dist/dev/runtime/disposables.d.mts +31 -0
  152. package/dist/dev/runtime/disposables.mjs +2 -2
  153. package/dist/dev/runtime/disposables.mjs.map +1 -1
  154. package/dist/dev/runtime/elementIntersectionObserver.d.mts +26 -0
  155. package/dist/dev/runtime/elementIntersectionObserver.mjs +16 -24
  156. package/dist/dev/runtime/elementIntersectionObserver.mjs.map +1 -1
  157. package/dist/dev/runtime/features/inlineEvents.d.mts +7 -0
  158. package/dist/dev/runtime/features/inlineEvents.mjs +2 -3
  159. package/dist/dev/runtime/features/inlineEvents.mjs.map +1 -1
  160. package/dist/dev/runtime/features/jsxIslands.d.mts +7 -0
  161. package/dist/dev/runtime/features/jsxIslands.mjs +20 -0
  162. package/dist/dev/runtime/features/jsxIslands.mjs.map +1 -0
  163. package/dist/dev/runtime/features/layout.d.mts +7 -0
  164. package/dist/dev/runtime/features/layout.mjs +2 -3
  165. package/dist/dev/runtime/features/layout.mjs.map +1 -1
  166. package/dist/dev/runtime/features/patchStrategy.d.mts +7 -0
  167. package/dist/dev/runtime/features/publicLayout.d.mts +24 -0
  168. package/dist/dev/runtime/features/publicLayout.mjs +2 -6
  169. package/dist/dev/runtime/features/publicLayout.mjs.map +1 -1
  170. package/dist/dev/runtime/features/scopedSlots.d.mts +23 -0
  171. package/dist/dev/runtime/features/scopedSlots.mjs +5 -9
  172. package/dist/dev/runtime/features/scopedSlots.mjs.map +1 -1
  173. package/dist/dev/runtime/features/setDataHighFrequencyWarning.d.mts +7 -0
  174. package/dist/dev/runtime/features/templateRefs.d.mts +7 -0
  175. package/dist/dev/runtime/features/templateRefs.mjs +1 -1
  176. package/dist/dev/runtime/features/templateRefs.mjs.map +1 -1
  177. package/dist/dev/runtime/hooks/base.d.mts +27 -0
  178. package/dist/dev/runtime/hooks/base.mjs +21 -32
  179. package/dist/dev/runtime/hooks/base.mjs.map +1 -1
  180. package/dist/dev/runtime/hooks/register.d.mts +30 -0
  181. package/dist/dev/runtime/hooks/vue.d.mts +52 -0
  182. package/dist/dev/runtime/hooks.d.mts +4 -0
  183. package/dist/dev/runtime/index.d.mts +46 -0
  184. package/dist/dev/runtime/inlineDataset.mjs +1 -2
  185. package/dist/dev/runtime/inlineDataset.mjs.map +1 -1
  186. package/dist/dev/runtime/intersectionObserver.d.mts +14 -0
  187. package/dist/dev/runtime/intersectionObserver.mjs +6 -6
  188. package/dist/dev/runtime/intersectionObserver.mjs.map +1 -1
  189. package/dist/dev/runtime/jsxIsland.d.mts +37 -0
  190. package/dist/dev/runtime/jsxIsland.mjs +16 -33
  191. package/dist/dev/runtime/jsxIsland.mjs.map +1 -1
  192. package/dist/dev/runtime/layoutBridge.d.mts +55 -0
  193. package/dist/dev/runtime/layoutBridge.mjs +32 -62
  194. package/dist/dev/runtime/layoutBridge.mjs.map +1 -1
  195. package/dist/dev/runtime/nativeBridge.mjs +1 -1
  196. package/dist/dev/runtime/nativeBridge.mjs.map +1 -1
  197. package/dist/dev/runtime/navigationLifecycle.mjs +24 -0
  198. package/dist/dev/runtime/navigationLifecycle.mjs.map +1 -0
  199. package/dist/dev/runtime/noSetData.d.mts +5 -0
  200. package/dist/dev/runtime/pageEnvironment.d.mts +50 -0
  201. package/dist/dev/runtime/pageEnvironment.mjs +15 -18
  202. package/dist/dev/runtime/pageEnvironment.mjs.map +1 -1
  203. package/dist/dev/runtime/pageLayout.d.mts +25 -0
  204. package/dist/dev/runtime/pageLayout.mjs +7 -11
  205. package/dist/dev/runtime/pageLayout.mjs.map +1 -1
  206. package/dist/dev/runtime/pageScroll.d.mts +29 -0
  207. package/dist/dev/runtime/pageScroll.mjs +2 -3
  208. package/dist/dev/runtime/pageScroll.mjs.map +1 -1
  209. package/dist/dev/runtime/platform/current.mjs +12 -0
  210. package/dist/dev/runtime/platform/current.mjs.map +1 -0
  211. package/dist/dev/runtime/platform/generic.mjs +36 -0
  212. package/dist/dev/runtime/platform/generic.mjs.map +1 -0
  213. package/dist/dev/runtime/platform/globals.mjs +29 -0
  214. package/dist/dev/runtime/platform/globals.mjs.map +1 -0
  215. package/dist/dev/runtime/platform.mjs +15 -60
  216. package/dist/dev/runtime/platform.mjs.map +1 -1
  217. package/dist/dev/runtime/provide.d.mts +60 -0
  218. package/dist/dev/runtime/provideContext.mjs +7 -9
  219. package/dist/dev/runtime/provideContext.mjs.map +1 -1
  220. package/dist/dev/runtime/provideStore.d.mts +7 -0
  221. package/dist/dev/runtime/publicRuntime.d.mts +22 -0
  222. package/dist/dev/runtime/publicRuntime.mjs +4 -0
  223. package/dist/dev/runtime/publicRuntime.mjs.map +1 -1
  224. package/dist/dev/runtime/pullDownRefresh.d.mts +12 -0
  225. package/dist/dev/runtime/pullDownRefresh.mjs +2 -4
  226. package/dist/dev/runtime/pullDownRefresh.mjs.map +1 -1
  227. package/dist/dev/runtime/register/app.d.mts +14 -0
  228. package/dist/dev/runtime/register/app.mjs +18 -19
  229. package/dist/dev/runtime/register/app.mjs.map +1 -1
  230. package/dist/dev/runtime/register/component/alipay.mjs +9 -18
  231. package/dist/dev/runtime/register/component/alipay.mjs.map +1 -1
  232. package/dist/dev/runtime/register/component/alipayRegistration.mjs +60 -0
  233. package/dist/dev/runtime/register/component/alipayRegistration.mjs.map +1 -0
  234. package/dist/dev/runtime/register/component/lifecycle/platform.mjs +8 -9
  235. package/dist/dev/runtime/register/component/lifecycle/platform.mjs.map +1 -1
  236. package/dist/dev/runtime/register/component/lifecycle.mjs +7 -12
  237. package/dist/dev/runtime/register/component/lifecycle.mjs.map +1 -1
  238. package/dist/dev/runtime/register/component/methods.mjs +13 -18
  239. package/dist/dev/runtime/register/component/methods.mjs.map +1 -1
  240. package/dist/dev/runtime/register/component/options.mjs +3 -4
  241. package/dist/dev/runtime/register/component/options.mjs.map +1 -1
  242. package/dist/dev/runtime/register/component/props.mjs +25 -31
  243. package/dist/dev/runtime/register/component/props.mjs.map +1 -1
  244. package/dist/dev/runtime/register/component/registerDefinition.mjs +18 -40
  245. package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -1
  246. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs +18 -60
  247. package/dist/dev/runtime/register/component/registerNativeDefinition.mjs.map +1 -1
  248. package/dist/dev/runtime/register/component.d.mts +17 -0
  249. package/dist/dev/runtime/register/component.mjs +3 -5
  250. package/dist/dev/runtime/register/component.mjs.map +1 -1
  251. package/dist/dev/runtime/register/inline.d.mts +15 -0
  252. package/dist/dev/runtime/register/inline.mjs +8 -10
  253. package/dist/dev/runtime/register/inline.mjs.map +1 -1
  254. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs +7 -8
  255. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs.map +1 -1
  256. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs +1 -1
  257. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs.map +1 -1
  258. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +25 -34
  259. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -1
  260. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +6 -13
  261. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -1
  262. package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs +2 -2
  263. package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs.map +1 -1
  264. package/dist/dev/runtime/register/runtimeInstance/utils.mjs +9 -9
  265. package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -1
  266. package/dist/dev/runtime/register/runtimeInstance.d.mts +26 -0
  267. package/dist/dev/runtime/register/runtimeInstance.mjs +74 -100
  268. package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -1
  269. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs +12 -15
  270. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs.map +1 -1
  271. package/dist/dev/runtime/register/setup.d.mts +11 -0
  272. package/dist/dev/runtime/register/setup.mjs +2 -3
  273. package/dist/dev/runtime/register/setup.mjs.map +1 -1
  274. package/dist/dev/runtime/register/snapshot.mjs +1 -4
  275. package/dist/dev/runtime/register/snapshot.mjs.map +1 -1
  276. package/dist/dev/runtime/register/watch.d.mts +12 -0
  277. package/dist/dev/runtime/register/watch.mjs +3 -5
  278. package/dist/dev/runtime/register/watch.mjs.map +1 -1
  279. package/dist/dev/runtime/register.d.mts +5 -0
  280. package/dist/dev/runtime/scopedSlots.mjs +14 -21
  281. package/dist/dev/runtime/scopedSlots.mjs.map +1 -1
  282. package/dist/dev/runtime/selectorQuery.d.mts +54 -0
  283. package/dist/dev/runtime/selectorQuery.mjs +5 -9
  284. package/dist/dev/runtime/selectorQuery.mjs.map +1 -1
  285. package/dist/dev/runtime/template.d.mts +6 -0
  286. package/dist/dev/runtime/template.mjs +1 -1
  287. package/dist/dev/runtime/template.mjs.map +1 -1
  288. package/dist/dev/runtime/templateRefTypes.d.mts +12 -0
  289. package/dist/dev/runtime/templateRefs/helpers.mjs +14 -24
  290. package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -1
  291. package/dist/dev/runtime/templateRefs.mjs +8 -15
  292. package/dist/dev/runtime/templateRefs.mjs.map +1 -1
  293. package/dist/dev/runtime/types/core.d.mts +35 -0
  294. package/dist/dev/runtime/types/miniprogram.d.mts +84 -0
  295. package/dist/dev/runtime/types/miniprogramHost.d.mts +45 -0
  296. package/dist/dev/runtime/types/miniprogramHostSources.d.mts +112 -0
  297. package/dist/dev/runtime/types/options.d.mts +138 -0
  298. package/dist/dev/runtime/types/props/propTypes.d.mts +79 -0
  299. package/dist/dev/runtime/types/props/router.d.mts +51 -0
  300. package/dist/dev/runtime/types/props/setup.d.mts +96 -0
  301. package/dist/dev/runtime/types/props.d.mts +4 -0
  302. package/dist/dev/runtime/types/runtime.d.mts +59 -0
  303. package/dist/dev/runtime/types/setData.d.mts +237 -0
  304. package/dist/dev/runtime/types.d.mts +29 -0
  305. package/dist/dev/runtime/uniAppHost.d.mts +8 -0
  306. package/dist/dev/runtime/uniAppHost.mjs +6 -14
  307. package/dist/dev/runtime/uniAppHost.mjs.map +1 -1
  308. package/dist/dev/runtime/updatePerformance.d.mts +13 -0
  309. package/dist/dev/runtime/updatePerformance.mjs +1 -1
  310. package/dist/dev/runtime/updatePerformance.mjs.map +1 -1
  311. package/dist/dev/runtime/use.d.mts +13 -0
  312. package/dist/dev/runtime/use.mjs +1 -1
  313. package/dist/dev/runtime/use.mjs.map +1 -1
  314. package/dist/dev/runtime/vueCompat/context.d.mts +8 -0
  315. package/dist/dev/runtime/vueCompat/context.mjs +3 -5
  316. package/dist/dev/runtime/vueCompat/context.mjs.map +1 -1
  317. package/dist/dev/runtime/vueCompat/model.d.mts +30 -0
  318. package/dist/dev/runtime/vueCompat/model.mjs +9 -13
  319. package/dist/dev/runtime/vueCompat/model.mjs.map +1 -1
  320. package/dist/dev/runtime/vueCompat/router.d.mts +29 -0
  321. package/dist/dev/runtime/vueCompat/router.mjs +4 -4
  322. package/dist/dev/runtime/vueCompat/router.mjs.map +1 -1
  323. package/dist/dev/runtime/vueCompat/templateRef.d.mts +9 -0
  324. package/dist/dev/runtime/vueCompat/templateRef.mjs +1 -1
  325. package/dist/dev/runtime/vueCompat/templateRef.mjs.map +1 -1
  326. package/dist/dev/runtime/vueCompat.d.mts +5 -0
  327. package/dist/dev/scheduler.d.mts +4 -0
  328. package/dist/dev/scheduler.mjs +3 -4
  329. package/dist/dev/scheduler.mjs.map +1 -1
  330. package/dist/dev/store/base.mjs +1 -2
  331. package/dist/dev/store/base.mjs.map +1 -1
  332. package/dist/dev/store/define/create.mjs +11 -22
  333. package/dist/dev/store/define/create.mjs.map +1 -1
  334. package/dist/dev/store/define.d.mts +8 -0
  335. package/dist/dev/store/define.mjs +1 -1
  336. package/dist/dev/store/define.mjs.map +1 -1
  337. package/dist/dev/store/manager.d.mts +16 -0
  338. package/dist/dev/store/storeToRefs.d.mts +11 -0
  339. package/dist/dev/store/types.d.mts +106 -0
  340. package/dist/dev/store/view.mjs +1 -1
  341. package/dist/dev/store/view.mjs.map +1 -1
  342. package/dist/dev/store.d.mts +5 -0
  343. package/dist/dev/version.d.mts +4 -0
  344. package/dist/dev/vue-augment.d.mts +8 -0
  345. package/dist/dev/vue-demi.d.mts +87 -0
  346. package/dist/dev/vue-types.d.mts +19 -0
  347. package/dist/dev/web-apis.d.mts +3 -0
  348. package/dist/internal-runtime.d.mts +2 -1
  349. package/dist/internal-runtime.mjs +1 -1
  350. package/dist/package.mjs +1 -1
  351. package/dist/reactivity/asyncDerivation.mjs +1 -1
  352. package/dist/reactivity/core.mjs +1 -1
  353. package/dist/reactivity/reactive/patch.mjs +1 -1
  354. package/dist/reactivity/reactive/patchState.mjs +1 -1
  355. package/dist/reactivity/reactive/shared.mjs +1 -1
  356. package/dist/reactivity/reactive.mjs +1 -1
  357. package/dist/reactivity/ref.mjs +1 -1
  358. package/dist/reactivity/shallowRef.mjs +1 -1
  359. package/dist/reactivity/watch/helpers.mjs +1 -1
  360. package/dist/reactivity/watch.mjs +1 -1
  361. package/dist/router/createRouter.mjs +1 -1
  362. package/dist/router/initialNavigation.mjs +1 -1
  363. package/dist/router/instance.mjs +1 -1
  364. package/dist/router/navigationCore.mjs +1 -1
  365. package/dist/router/navigationResult.mjs +1 -1
  366. package/dist/router/navigationTarget.mjs +1 -1
  367. package/dist/router/resolve.mjs +1 -1
  368. package/dist/router/routeRegistry.mjs +1 -1
  369. package/dist/router/routeSync.mjs +1 -1
  370. package/dist/router/useRoute.mjs +1 -1
  371. package/dist/routerInternal/location.mjs +1 -1
  372. package/dist/routerInternal/params.mjs +1 -1
  373. package/dist/routerInternal/records.mjs +1 -1
  374. package/dist/routerInternal/recordsWarnings.mjs +1 -1
  375. package/dist/runtime/app/context.mjs +1 -1
  376. package/dist/runtime/app/diagnostics.mjs +1 -1
  377. package/dist/runtime/app/mount.mjs +1 -1
  378. package/dist/runtime/app/setData/commitTracker.mjs +1 -1
  379. package/dist/runtime/app/setData/patchScheduler.mjs +1 -1
  380. package/dist/runtime/app/setData/payload.mjs +1 -1
  381. package/dist/runtime/app/setData/scheduler.mjs +1 -1
  382. package/dist/runtime/app/setData/snapshot.mjs +1 -1
  383. package/dist/runtime/app/setDataOptions.mjs +1 -1
  384. package/dist/runtime/app.mjs +1 -1
  385. package/dist/runtime/bindingManifest.mjs +1 -1
  386. package/dist/runtime/capabilities.d.mts +4 -1
  387. package/dist/runtime/css.mjs +1 -1
  388. package/dist/runtime/defaults.mjs +1 -1
  389. package/dist/runtime/define/initialComputed.mjs +1 -1
  390. package/dist/runtime/define/options.mjs +1 -1
  391. package/dist/runtime/define/props.mjs +1 -1
  392. package/dist/runtime/define/scopedSlotOptions.mjs +1 -1
  393. package/dist/runtime/define/setupResult.mjs +1 -1
  394. package/dist/runtime/define.mjs +1 -1
  395. package/dist/runtime/diff.mjs +1 -1
  396. package/dist/runtime/disposables.mjs +1 -1
  397. package/dist/runtime/elementIntersectionObserver.mjs +1 -1
  398. package/dist/runtime/features/inlineEvents.mjs +1 -1
  399. package/dist/runtime/features/jsxIslands.d.mts +6 -0
  400. package/dist/runtime/features/jsxIslands.mjs +1 -0
  401. package/dist/runtime/features/layout.mjs +1 -1
  402. package/dist/runtime/features/publicLayout.mjs +1 -1
  403. package/dist/runtime/features/scopedSlots.mjs +1 -1
  404. package/dist/runtime/features/templateRefs.mjs +1 -1
  405. package/dist/runtime/hooks/base.mjs +1 -1
  406. package/dist/runtime/inlineDataset.mjs +1 -1
  407. package/dist/runtime/intersectionObserver.mjs +1 -1
  408. package/dist/runtime/jsxIsland.mjs +1 -1
  409. package/dist/runtime/layoutBridge.mjs +1 -1
  410. package/dist/runtime/nativeBridge.mjs +1 -1
  411. package/dist/runtime/navigationLifecycle.mjs +1 -0
  412. package/dist/runtime/pageEnvironment.mjs +1 -1
  413. package/dist/runtime/pageLayout.mjs +1 -1
  414. package/dist/runtime/pageScroll.mjs +1 -1
  415. package/dist/runtime/platform/current.mjs +1 -0
  416. package/dist/runtime/platform/generic.mjs +1 -0
  417. package/dist/runtime/platform/globals.mjs +1 -0
  418. package/dist/runtime/platform.mjs +1 -1
  419. package/dist/runtime/provideContext.mjs +1 -1
  420. package/dist/runtime/publicRuntime.mjs +1 -1
  421. package/dist/runtime/pullDownRefresh.mjs +1 -1
  422. package/dist/runtime/register/app.mjs +1 -1
  423. package/dist/runtime/register/component/alipay.mjs +1 -1
  424. package/dist/runtime/register/component/alipayRegistration.mjs +1 -0
  425. package/dist/runtime/register/component/lifecycle/platform.mjs +1 -1
  426. package/dist/runtime/register/component/lifecycle.mjs +1 -1
  427. package/dist/runtime/register/component/methods.mjs +1 -1
  428. package/dist/runtime/register/component/options.mjs +1 -1
  429. package/dist/runtime/register/component/props.mjs +1 -1
  430. package/dist/runtime/register/component/registerDefinition.mjs +1 -1
  431. package/dist/runtime/register/component/registerNativeDefinition.mjs +1 -1
  432. package/dist/runtime/register/component.mjs +1 -1
  433. package/dist/runtime/register/inline.mjs +1 -1
  434. package/dist/runtime/register/runtimeInstance/methodBridge.mjs +1 -1
  435. package/dist/runtime/register/runtimeInstance/provideContext.mjs +1 -1
  436. package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -1
  437. package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -1
  438. package/dist/runtime/register/runtimeInstance/setupSnapshot.mjs +1 -1
  439. package/dist/runtime/register/runtimeInstance/utils.mjs +1 -1
  440. package/dist/runtime/register/runtimeInstance.mjs +1 -1
  441. package/dist/runtime/register/setDataFrequencyWarning.mjs +1 -1
  442. package/dist/runtime/register/setup.mjs +1 -1
  443. package/dist/runtime/register/snapshot.mjs +1 -1
  444. package/dist/runtime/register/watch.mjs +1 -1
  445. package/dist/runtime/scopedSlots.mjs +1 -1
  446. package/dist/runtime/selectorQuery.mjs +1 -1
  447. package/dist/runtime/template.mjs +1 -1
  448. package/dist/runtime/templateRefs/helpers.mjs +1 -1
  449. package/dist/runtime/templateRefs.mjs +1 -1
  450. package/dist/runtime/uniAppHost.mjs +1 -1
  451. package/dist/runtime/updatePerformance.mjs +1 -1
  452. package/dist/runtime/use.mjs +1 -1
  453. package/dist/runtime/vueCompat/context.mjs +1 -1
  454. package/dist/runtime/vueCompat/model.mjs +1 -1
  455. package/dist/runtime/vueCompat/router.mjs +1 -1
  456. package/dist/runtime/vueCompat/templateRef.mjs +1 -1
  457. package/dist/scheduler.mjs +1 -1
  458. package/dist/store/base.mjs +1 -1
  459. package/dist/store/define/create.mjs +1 -1
  460. package/dist/store/define.mjs +1 -1
  461. package/dist/store/view.mjs +1 -1
  462. package/package.json +7 -7
  463. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/defineProperty.mjs +0 -0
  464. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPrimitive.mjs +0 -0
  465. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPropertyKey.mjs +0 -0
  466. /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/typeof.mjs +0 -0
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -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":"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"}
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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"}
@@ -0,0 +1,7 @@
1
+ import { LocationQuery, LocationQueryRaw } from "../router/types.mjs";
2
+ import "../router.mjs";
3
+ //#region src/routerInternal/query.d.ts
4
+ export declare function parseQuery(search: string): LocationQuery;
5
+ export declare function stringifyQuery(query?: LocationQueryRaw | LocationQuery): string;
6
+ //#endregion
7
+ //# sourceMappingURL=query.d.mts.map
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -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":"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"}
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,OAAO,QAAQ,SAAS,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"}
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -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"}
@@ -0,0 +1,9 @@
1
+ import { RouteResolveCodec } from "./types.mjs";
2
+ import "./location.mjs";
3
+ import "./matching.mjs";
4
+ import "./params.mjs";
5
+ import { parseQuery, stringifyQuery } from "./query.mjs";
6
+ import "./records.mjs";
7
+ import "./recordsWarnings.mjs";
8
+ import "./snapshots.mjs";
9
+ export { type RouteResolveCodec, parseQuery, stringifyQuery };
@@ -0,0 +1,2 @@
1
+ import "./types.mjs";
2
+ import "../router.mjs";
@@ -0,0 +1,9 @@
1
+ import { RouteQueryParser, RouteQueryStringifier } from "../router/types.mjs";
2
+ import "../router.mjs";
3
+ //#region src/routerInternal/types.d.ts
4
+ export interface RouteResolveCodec {
5
+ parseQuery: RouteQueryParser;
6
+ stringifyQuery: RouteQueryStringifier;
7
+ }
8
+ //#endregion
9
+ //# sourceMappingURL=types.d.mts.map
@@ -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(",")}`);
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.mjs","names":[],"sources":["../../../../src/runtime/app/diagnostics.ts"],"sourcesContent":["import type { SetDataDebugInfo } from '../types'\n\nfunction isFallbackReason(reason: SetDataDebugInfo['reason']) {\n return reason !== 'patch' && reason !== 'diff'\n}\n\nexport function createDiagnosticsLogger(mode: 'off' | 'fallback' | 'always') {\n if (mode === 'off') {\n return undefined\n }\n return (info: SetDataDebugInfo) => {\n if (mode === 'fallback' && !isFallbackReason(info.reason)) {\n return\n }\n const bytes = typeof info.bytes === 'number' ? info.bytes : info.estimatedBytes\n const bytesText = typeof bytes === 'number' ? `${bytes}B` : 'unknown'\n const parts = [\n `mode=${info.mode}`,\n `reason=${info.reason}`,\n `pending=${info.pendingPatchKeys}`,\n `keys=${info.payloadKeys}`,\n `bytes=${bytesText}`,\n ]\n if (typeof info.revision === 'number') {\n parts.push(`revision=${info.revision}`)\n }\n if (typeof info.committedRevision === 'number') {\n parts.push(`committedRevision=${info.committedRevision}`)\n }\n if (typeof info.mergedSiblingParents === 'number') {\n parts.push(`mergedParents=${info.mergedSiblingParents}`)\n }\n if (typeof info.computedDirtyKeys === 'number') {\n parts.push(`computedDirty=${info.computedDirtyKeys}`)\n }\n if (typeof info.flushCount === 'number') {\n parts.push(`flushes=${info.flushCount}`)\n }\n if (typeof info.windowMs === 'number') {\n parts.push(`window=${info.windowMs}ms`)\n }\n if (info.targetLabel) {\n parts.push(`target=${info.targetLabel}`)\n }\n if (info.bindings?.length) {\n const bindings = info.bindings.map((binding) => {\n const start = binding.sourceLocation?.start\n return start\n ? `${binding.id}@${binding.sourceFile}:${start.line}:${start.column}`\n : `${binding.id}@${binding.sourceFile}`\n })\n parts.push(`bindings=${bindings.join(',')}`)\n }\n if (info.message) {\n parts.push(`message=${info.message}`)\n }\n const message = `[wevu:setData] ${parts.join(' ')}`\n if (isFallbackReason(info.reason)) {\n // eslint-disable-next-line no-console\n console.warn(message)\n return\n }\n // eslint-disable-next-line no-console\n console.info(message)\n }\n}\n"],"mappings":";AAEA,SAAS,iBAAiB,QAAoC;CAC5D,OAAO,WAAW,WAAW,WAAW;AAC1C;AAEA,SAAgB,wBAAwB,MAAqC;CAC3E,IAAI,SAAS,OACX;CAEF,QAAQ,SAA2B;;EACjC,IAAI,SAAS,cAAc,CAAC,iBAAiB,KAAK,MAAM,GACtD;EAEF,MAAM,QAAQ,OAAO,KAAK,UAAU,WAAW,KAAK,QAAQ,KAAK;EACjE,MAAM,YAAY,OAAO,UAAU,WAAW,GAAG,MAAM,KAAK;EAC5D,MAAM,QAAQ;GACZ,QAAQ,KAAK;GACb,UAAU,KAAK;GACf,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,SAAS;EACX;EACA,IAAI,OAAO,KAAK,aAAa,UAC3B,MAAM,KAAK,YAAY,KAAK,UAAU;EAExC,IAAI,OAAO,KAAK,sBAAsB,UACpC,MAAM,KAAK,qBAAqB,KAAK,mBAAmB;EAE1D,IAAI,OAAO,KAAK,yBAAyB,UACvC,MAAM,KAAK,iBAAiB,KAAK,sBAAsB;EAEzD,IAAI,OAAO,KAAK,sBAAsB,UACpC,MAAM,KAAK,iBAAiB,KAAK,mBAAmB;EAEtD,IAAI,OAAO,KAAK,eAAe,UAC7B,MAAM,KAAK,WAAW,KAAK,YAAY;EAEzC,IAAI,OAAO,KAAK,aAAa,UAC3B,MAAM,KAAK,UAAU,KAAK,SAAS,GAAG;EAExC,IAAI,KAAK,aACP,MAAM,KAAK,UAAU,KAAK,aAAa;EAEzC,sBAAI,KAAK,0EAAU,QAAQ;GACzB,MAAM,WAAW,KAAK,SAAS,KAAK,YAAY;;IAC9C,MAAM,iCAAQ,QAAQ,8FAAgB;IACtC,OAAO,QACH,GAAG,QAAQ,GAAG,GAAG,QAAQ,WAAW,GAAG,MAAM,KAAK,GAAG,MAAM,WAC3D,GAAG,QAAQ,GAAG,GAAG,QAAQ;GAC/B,CAAC;GACD,MAAM,KAAK,YAAY,SAAS,KAAK,GAAG,GAAG;EAC7C;EACA,IAAI,KAAK,SACP,MAAM,KAAK,WAAW,KAAK,SAAS;EAEtC,MAAM,UAAU,kBAAkB,MAAM,KAAK,GAAG;EAChD,IAAI,iBAAiB,KAAK,MAAM,GAAG;GAEjC,QAAQ,KAAK,OAAO;GACpB;EACF;EAEA,QAAQ,KAAK,OAAO;CACtB;AACF"}
1
+ {"version":3,"file":"diagnostics.mjs","names":[],"sources":["../../../../src/runtime/app/diagnostics.ts"],"sourcesContent":["import type { SetDataDebugInfo } from '../types'\n\nfunction isFallbackReason(reason: SetDataDebugInfo['reason']) {\n return reason !== 'patch' && reason !== 'diff'\n}\n\nexport function createDiagnosticsLogger(mode: 'off' | 'fallback' | 'always') {\n if (mode === 'off') {\n return undefined\n }\n return (info: SetDataDebugInfo) => {\n if (mode === 'fallback' && !isFallbackReason(info.reason)) {\n return\n }\n const bytes = typeof info.bytes === 'number' ? info.bytes : info.estimatedBytes\n const bytesText = typeof bytes === 'number' ? `${bytes}B` : 'unknown'\n const parts = [\n `mode=${info.mode}`,\n `reason=${info.reason}`,\n `pending=${info.pendingPatchKeys}`,\n `keys=${info.payloadKeys}`,\n `bytes=${bytesText}`,\n ]\n if (typeof info.revision === 'number') {\n parts.push(`revision=${info.revision}`)\n }\n if (typeof info.committedRevision === 'number') {\n parts.push(`committedRevision=${info.committedRevision}`)\n }\n if (typeof info.mergedSiblingParents === 'number') {\n parts.push(`mergedParents=${info.mergedSiblingParents}`)\n }\n if (typeof info.computedDirtyKeys === 'number') {\n parts.push(`computedDirty=${info.computedDirtyKeys}`)\n }\n if (typeof info.flushCount === 'number') {\n parts.push(`flushes=${info.flushCount}`)\n }\n if (typeof info.windowMs === 'number') {\n parts.push(`window=${info.windowMs}ms`)\n }\n if (info.targetLabel) {\n parts.push(`target=${info.targetLabel}`)\n }\n if (info.bindings?.length) {\n const bindings = info.bindings.map((binding) => {\n const start = binding.sourceLocation?.start\n return start\n ? `${binding.id}@${binding.sourceFile}:${start.line}:${start.column}`\n : `${binding.id}@${binding.sourceFile}`\n })\n parts.push(`bindings=${bindings.join(',')}`)\n }\n if (info.message) {\n parts.push(`message=${info.message}`)\n }\n const message = `[wevu:setData] ${parts.join(' ')}`\n if (isFallbackReason(info.reason)) {\n // eslint-disable-next-line no-console\n console.warn(message)\n return\n }\n // eslint-disable-next-line no-console\n console.info(message)\n }\n}\n"],"mappings":";AAEA,SAAS,iBAAiB,QAAoC;CAC5D,OAAO,WAAW,WAAW,WAAW;AAC1C;AAEA,SAAgB,wBAAwB,MAAqC;CAC3E,IAAI,SAAS,OACX;CAEF,QAAQ,SAA2B;EACjC,IAAI,SAAS,cAAc,CAAC,iBAAiB,KAAK,MAAM,GACtD;EAEF,MAAM,QAAQ,OAAO,KAAK,UAAU,WAAW,KAAK,QAAQ,KAAK;EACjE,MAAM,YAAY,OAAO,UAAU,WAAW,GAAG,MAAM,KAAK;EAC5D,MAAM,QAAQ;GACZ,QAAQ,KAAK;GACb,UAAU,KAAK;GACf,WAAW,KAAK;GAChB,QAAQ,KAAK;GACb,SAAS;EACX;EACA,IAAI,OAAO,KAAK,aAAa,UAC3B,MAAM,KAAK,YAAY,KAAK,UAAU;EAExC,IAAI,OAAO,KAAK,sBAAsB,UACpC,MAAM,KAAK,qBAAqB,KAAK,mBAAmB;EAE1D,IAAI,OAAO,KAAK,yBAAyB,UACvC,MAAM,KAAK,iBAAiB,KAAK,sBAAsB;EAEzD,IAAI,OAAO,KAAK,sBAAsB,UACpC,MAAM,KAAK,iBAAiB,KAAK,mBAAmB;EAEtD,IAAI,OAAO,KAAK,eAAe,UAC7B,MAAM,KAAK,WAAW,KAAK,YAAY;EAEzC,IAAI,OAAO,KAAK,aAAa,UAC3B,MAAM,KAAK,UAAU,KAAK,SAAS,GAAG;EAExC,IAAI,KAAK,aACP,MAAM,KAAK,UAAU,KAAK,aAAa;EAEzC,IAAI,KAAK,UAAU,QAAQ;GACzB,MAAM,WAAW,KAAK,SAAS,KAAK,YAAY;IAC9C,MAAM,QAAQ,QAAQ,gBAAgB;IACtC,OAAO,QACH,GAAG,QAAQ,GAAG,GAAG,QAAQ,WAAW,GAAG,MAAM,KAAK,GAAG,MAAM,WAC3D,GAAG,QAAQ,GAAG,GAAG,QAAQ;GAC/B,CAAC;GACD,MAAM,KAAK,YAAY,SAAS,KAAK,GAAG,GAAG;EAC7C;EACA,IAAI,KAAK,SACP,MAAM,KAAK,WAAW,KAAK,SAAS;EAEtC,MAAM,UAAU,kBAAkB,MAAM,KAAK,GAAG;EAChD,IAAI,iBAAiB,KAAK,MAAM,GAAG;GAEjC,QAAQ,KAAK,OAAO;GACpB;EACF;EAEA,QAAQ,KAAK,OAAO;CACtB;AACF"}