wevu 7.0.4 → 7.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/README.md +20 -4
  2. package/dist/alipay/jsx-runtime.d.mts +12 -0
  3. package/dist/alipay/jsx-runtime.mjs +1 -0
  4. package/dist/dev/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/defineProperty.mjs +1 -1
  5. package/dist/dev/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/toPrimitive.mjs +1 -1
  6. package/dist/dev/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/toPropertyKey.mjs +1 -1
  7. package/dist/dev/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/typeof.mjs +1 -1
  8. package/dist/dev/api/vitest/setup.d.mts +1 -0
  9. package/dist/dev/api/vitest.d.mts +1 -0
  10. package/dist/dev/api.d.mts +1 -0
  11. package/dist/dev/compiler.d.mts +1 -0
  12. package/dist/dev/fetch.d.mts +9 -0
  13. package/dist/dev/index.d.mts +72 -0
  14. package/dist/dev/index.mjs +12 -15
  15. package/dist/dev/internal-reactivity.d.mts +18 -0
  16. package/dist/dev/internal-reactivity.mjs +3 -2
  17. package/dist/dev/internal-runtime.d.mts +44 -0
  18. package/dist/dev/internal-runtime.mjs +19 -14
  19. package/dist/dev/internal-template.d.mts +2 -0
  20. package/dist/dev/jsxTypes.d.mts +9 -0
  21. package/dist/dev/macros/shared.d.mts +81 -0
  22. package/dist/dev/macros.d.mts +71 -0
  23. package/dist/dev/package.mjs +1 -1
  24. package/dist/dev/reactivity/asyncDerivation.d.mts +41 -0
  25. package/dist/dev/reactivity/asyncDerivation.mjs +130 -0
  26. package/dist/dev/reactivity/asyncDerivation.mjs.map +1 -0
  27. package/dist/dev/reactivity/computed.d.mts +21 -0
  28. package/dist/dev/reactivity/computed.mjs +2 -2
  29. package/dist/dev/reactivity/computed.mjs.map +1 -1
  30. package/dist/dev/reactivity/core.d.mts +35 -0
  31. package/dist/dev/reactivity/core.mjs +156 -32
  32. package/dist/dev/reactivity/core.mjs.map +1 -1
  33. package/dist/dev/reactivity/index.d.mts +16 -0
  34. package/dist/dev/reactivity/reactive/mutation.d.mts +21 -0
  35. package/dist/dev/reactivity/reactive/patch.d.mts +18 -0
  36. package/dist/dev/reactivity/reactive/shallow.d.mts +22 -0
  37. package/dist/dev/reactivity/reactive/shared.d.mts +4 -0
  38. package/dist/dev/reactivity/reactive.d.mts +42 -0
  39. package/dist/dev/reactivity/readonly.d.mts +27 -0
  40. package/dist/dev/reactivity/readonly.mjs.map +1 -1
  41. package/dist/dev/reactivity/ref.d.mts +27 -0
  42. package/dist/dev/reactivity/ref.mjs +1 -1
  43. package/dist/dev/reactivity/shallowRef.d.mts +19 -0
  44. package/dist/dev/reactivity/toRefs.d.mts +43 -0
  45. package/dist/dev/reactivity/traverse.d.mts +8 -0
  46. package/dist/dev/reactivity/watch/types.d.mts +43 -0
  47. package/dist/dev/reactivity/watch.d.mts +22 -0
  48. package/dist/dev/router/createRouter.d.mts +8 -0
  49. package/dist/dev/router/createRouter.mjs +16 -3
  50. package/dist/dev/router/createRouter.mjs.map +1 -1
  51. package/dist/dev/router/navigationCore.d.mts +6 -0
  52. package/dist/dev/router/resolve.d.mts +6 -0
  53. package/dist/dev/router/routeSync.d.mts +1 -0
  54. package/dist/dev/router/types.d.mts +172 -0
  55. package/dist/dev/router/useRoute.d.mts +19 -0
  56. package/dist/dev/router/useRoute.mjs +23 -5
  57. package/dist/dev/router/useRoute.mjs.map +1 -1
  58. package/dist/dev/router/useRouter.d.mts +8 -0
  59. package/dist/dev/router.d.mts +10 -0
  60. package/dist/dev/routerInternal/query.d.mts +7 -0
  61. package/dist/dev/routerInternal/types.d.mts +9 -0
  62. package/dist/dev/runtime/app/computed.mjs +2 -2
  63. package/dist/dev/runtime/app/computed.mjs.map +1 -1
  64. package/dist/dev/runtime/app/context.mjs +8 -2
  65. package/dist/dev/runtime/app/context.mjs.map +1 -1
  66. package/dist/dev/runtime/app/diagnostics.mjs +12 -0
  67. package/dist/dev/runtime/app/diagnostics.mjs.map +1 -1
  68. package/dist/dev/runtime/app/mount.mjs +31 -28
  69. package/dist/dev/runtime/app/mount.mjs.map +1 -1
  70. package/dist/dev/runtime/app/pending.d.mts +10 -0
  71. package/dist/dev/runtime/app/setData/commitTracker.d.mts +13 -0
  72. package/dist/dev/runtime/app/setData/commitTracker.mjs +265 -0
  73. package/dist/dev/runtime/app/setData/commitTracker.mjs.map +1 -0
  74. package/dist/dev/runtime/app/setData/patchScheduler.mjs +47 -51
  75. package/dist/dev/runtime/app/setData/patchScheduler.mjs.map +1 -1
  76. package/dist/dev/runtime/app/setData/scheduler.d.mts +51 -0
  77. package/dist/dev/runtime/app/setData/scheduler.mjs +98 -111
  78. package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -1
  79. package/dist/dev/runtime/app/setData/snapshot.mjs +11 -1
  80. package/dist/dev/runtime/app/setData/snapshot.mjs.map +1 -1
  81. package/dist/dev/runtime/app.d.mts +8 -0
  82. package/dist/dev/runtime/app.mjs +18 -6
  83. package/dist/dev/runtime/app.mjs.map +1 -1
  84. package/dist/dev/runtime/bindingManifest.mjs +105 -0
  85. package/dist/dev/runtime/bindingManifest.mjs.map +1 -0
  86. package/dist/dev/runtime/capabilities.d.mts +75 -0
  87. package/dist/dev/runtime/capabilities.mjs +40 -0
  88. package/dist/dev/runtime/capabilities.mjs.map +1 -0
  89. package/dist/dev/runtime/css.d.mts +14 -0
  90. package/dist/dev/runtime/defaults.d.mts +12 -0
  91. package/dist/dev/runtime/define/componentDefinition.mjs +3 -0
  92. package/dist/dev/runtime/define/componentDefinition.mjs.map +1 -1
  93. package/dist/dev/runtime/define/optionsApi.mjs +1 -1
  94. package/dist/dev/runtime/define/props.mjs +30 -60
  95. package/dist/dev/runtime/define/props.mjs.map +1 -1
  96. package/dist/dev/runtime/define/scopedSlotOptions.mjs +37 -21
  97. package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -1
  98. package/dist/dev/runtime/define.d.mts +118 -0
  99. package/dist/dev/runtime/define.mjs +32 -44
  100. package/dist/dev/runtime/define.mjs.map +1 -1
  101. package/dist/dev/runtime/diff.mjs +1 -1
  102. package/dist/dev/runtime/disposables.d.mts +31 -0
  103. package/dist/dev/runtime/elementIntersectionObserver.d.mts +26 -0
  104. package/dist/dev/runtime/features/inlineEvents.d.mts +7 -0
  105. package/dist/dev/runtime/features/inlineEvents.mjs +25 -0
  106. package/dist/dev/runtime/features/inlineEvents.mjs.map +1 -0
  107. package/dist/dev/runtime/features/layout.d.mts +7 -0
  108. package/dist/dev/runtime/features/layout.mjs +44 -0
  109. package/dist/dev/runtime/features/layout.mjs.map +1 -0
  110. package/dist/dev/runtime/features/patchStrategy.d.mts +7 -0
  111. package/dist/dev/runtime/features/patchStrategy.mjs +129 -0
  112. package/dist/dev/runtime/features/patchStrategy.mjs.map +1 -0
  113. package/dist/dev/runtime/features/publicLayout.d.mts +24 -0
  114. package/dist/dev/runtime/features/publicLayout.mjs +81 -0
  115. package/dist/dev/runtime/features/publicLayout.mjs.map +1 -0
  116. package/dist/dev/runtime/features/scopedSlots.d.mts +23 -0
  117. package/dist/dev/runtime/features/scopedSlots.mjs +88 -0
  118. package/dist/dev/runtime/features/scopedSlots.mjs.map +1 -0
  119. package/dist/dev/runtime/features/setDataHighFrequencyWarning.d.mts +7 -0
  120. package/dist/dev/runtime/features/setDataHighFrequencyWarning.mjs +15 -0
  121. package/dist/dev/runtime/features/setDataHighFrequencyWarning.mjs.map +1 -0
  122. package/dist/dev/runtime/features/templateRefs.d.mts +7 -0
  123. package/dist/dev/runtime/features/templateRefs.mjs +39 -0
  124. package/dist/dev/runtime/features/templateRefs.mjs.map +1 -0
  125. package/dist/dev/runtime/hooks/base.d.mts +27 -0
  126. package/dist/dev/runtime/hooks/register.d.mts +30 -0
  127. package/dist/dev/runtime/hooks/vue.d.mts +52 -0
  128. package/dist/dev/runtime/hooks/vue.mjs +3 -5
  129. package/dist/dev/runtime/hooks/vue.mjs.map +1 -1
  130. package/dist/dev/runtime/hooks.d.mts +4 -0
  131. package/dist/dev/runtime/index.d.mts +46 -0
  132. package/dist/dev/runtime/inlineDataset.mjs +75 -0
  133. package/dist/dev/runtime/inlineDataset.mjs.map +1 -0
  134. package/dist/dev/runtime/intersectionObserver.d.mts +14 -0
  135. package/dist/dev/runtime/jsxIsland.d.mts +37 -0
  136. package/dist/dev/runtime/jsxIsland.mjs.map +1 -1
  137. package/dist/dev/runtime/layoutBridge.d.mts +55 -0
  138. package/dist/dev/runtime/layoutBridge.mjs.map +1 -1
  139. package/dist/dev/runtime/noSetData.d.mts +5 -0
  140. package/dist/dev/runtime/pageEnvironment.d.mts +50 -0
  141. package/dist/dev/runtime/pageLayout.d.mts +25 -0
  142. package/dist/dev/runtime/pageLayout.mjs.map +1 -1
  143. package/dist/dev/runtime/pageScroll.d.mts +29 -0
  144. package/dist/dev/runtime/platform.mjs +18 -1
  145. package/dist/dev/runtime/platform.mjs.map +1 -1
  146. package/dist/dev/runtime/provide.d.mts +60 -0
  147. package/dist/dev/runtime/provideStore.d.mts +7 -0
  148. package/dist/dev/runtime/publicRuntime.d.mts +22 -0
  149. package/dist/dev/runtime/publicRuntime.mjs +91 -0
  150. package/dist/dev/runtime/publicRuntime.mjs.map +1 -0
  151. package/dist/dev/runtime/pullDownRefresh.d.mts +12 -0
  152. package/dist/dev/runtime/register/app.d.mts +14 -0
  153. package/dist/dev/runtime/register/app.mjs +7 -10
  154. package/dist/dev/runtime/register/app.mjs.map +1 -1
  155. package/dist/dev/runtime/register/component/lifecycle.mjs +22 -6
  156. package/dist/dev/runtime/register/component/lifecycle.mjs.map +1 -1
  157. package/dist/dev/runtime/register/component/methods.mjs +7 -10
  158. package/dist/dev/runtime/register/component/methods.mjs.map +1 -1
  159. package/dist/dev/runtime/register/component/options.mjs.map +1 -1
  160. package/dist/dev/runtime/register/component/registerDefinition.mjs +64 -69
  161. package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -1
  162. package/dist/dev/runtime/register/component.d.mts +17 -0
  163. package/dist/dev/runtime/register/inline.d.mts +15 -0
  164. package/dist/dev/runtime/register/inline.mjs +4 -64
  165. package/dist/dev/runtime/register/inline.mjs.map +1 -1
  166. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +1 -1
  167. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -1
  168. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +4 -6
  169. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -1
  170. package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs +26 -0
  171. package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs.map +1 -0
  172. package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -1
  173. package/dist/dev/runtime/register/runtimeInstance.d.mts +26 -0
  174. package/dist/dev/runtime/register/runtimeInstance.mjs +402 -160
  175. package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -1
  176. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs.map +1 -1
  177. package/dist/dev/runtime/register/setup.d.mts +11 -0
  178. package/dist/dev/runtime/register/snapshot.mjs +6 -10
  179. package/dist/dev/runtime/register/snapshot.mjs.map +1 -1
  180. package/dist/dev/runtime/register/watch.d.mts +12 -0
  181. package/dist/dev/runtime/register.d.mts +5 -0
  182. package/dist/dev/runtime/scopedSlots.mjs +1 -1
  183. package/dist/dev/runtime/scopedSlots.mjs.map +1 -1
  184. package/dist/dev/runtime/selectorQuery.d.mts +54 -0
  185. package/dist/dev/runtime/selectorQuery.mjs +5 -0
  186. package/dist/dev/runtime/selectorQuery.mjs.map +1 -1
  187. package/dist/dev/runtime/teardown.mjs +18 -0
  188. package/dist/dev/runtime/teardown.mjs.map +1 -0
  189. package/dist/dev/runtime/template.d.mts +6 -0
  190. package/dist/dev/runtime/templateRefTypes.d.mts +12 -0
  191. package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -1
  192. package/dist/dev/runtime/templateRefs.mjs +187 -118
  193. package/dist/dev/runtime/templateRefs.mjs.map +1 -1
  194. package/dist/dev/runtime/types/core.d.mts +35 -0
  195. package/dist/dev/runtime/types/miniprogram.d.mts +84 -0
  196. package/dist/dev/runtime/types/miniprogramHost.d.mts +45 -0
  197. package/dist/dev/runtime/types/miniprogramHostSources.d.mts +112 -0
  198. package/dist/dev/runtime/types/options.d.mts +136 -0
  199. package/dist/dev/runtime/types/props/propTypes.d.mts +79 -0
  200. package/dist/dev/runtime/types/props/router.d.mts +51 -0
  201. package/dist/dev/runtime/types/props/setup.d.mts +96 -0
  202. package/dist/dev/runtime/types/props.d.mts +4 -0
  203. package/dist/dev/runtime/types/runtime.d.mts +59 -0
  204. package/dist/dev/runtime/types/setData.d.mts +237 -0
  205. package/dist/dev/runtime/types.d.mts +29 -0
  206. package/dist/dev/runtime/uniAppHost.d.mts +8 -0
  207. package/dist/dev/runtime/updatePerformance.d.mts +13 -0
  208. package/dist/dev/runtime/use.d.mts +13 -0
  209. package/dist/dev/runtime/vueCompat/context.d.mts +8 -0
  210. package/dist/dev/runtime/vueCompat/model.d.mts +30 -0
  211. package/dist/dev/runtime/vueCompat/router.d.mts +29 -0
  212. package/dist/dev/runtime/vueCompat/router.mjs +18 -13
  213. package/dist/dev/runtime/vueCompat/router.mjs.map +1 -1
  214. package/dist/dev/runtime/vueCompat/templateRef.d.mts +9 -0
  215. package/dist/dev/runtime/vueCompat/templateRef.mjs +2 -0
  216. package/dist/dev/runtime/vueCompat/templateRef.mjs.map +1 -1
  217. package/dist/dev/runtime/vueCompat.d.mts +5 -0
  218. package/dist/dev/scheduler.d.mts +4 -0
  219. package/dist/dev/store/base.mjs +12 -18
  220. package/dist/dev/store/base.mjs.map +1 -1
  221. package/dist/dev/store/define/optionsStyle.mjs +13 -23
  222. package/dist/dev/store/define/optionsStyle.mjs.map +1 -1
  223. package/dist/dev/store/define/setupStyle.mjs +14 -24
  224. package/dist/dev/store/define/setupStyle.mjs.map +1 -1
  225. package/dist/dev/store/define/shared.mjs +44 -1
  226. package/dist/dev/store/define/shared.mjs.map +1 -1
  227. package/dist/dev/store/define.d.mts +28 -0
  228. package/dist/dev/store/define.mjs.map +1 -1
  229. package/dist/dev/store/manager.d.mts +8 -0
  230. package/dist/dev/store/storeToRefs.d.mts +13 -0
  231. package/dist/dev/store/types.d.mts +70 -0
  232. package/dist/dev/store.d.mts +5 -0
  233. package/dist/dev/version.d.mts +4 -0
  234. package/dist/dev/vue-augment.d.mts +8 -0
  235. package/dist/dev/vue-demi.d.mts +87 -0
  236. package/dist/dev/vue-demi.mjs +12 -15
  237. package/dist/dev/vue-demi.mjs.map +1 -1
  238. package/dist/dev/vue-types.d.mts +19 -0
  239. package/dist/dev/web-apis.d.mts +3 -0
  240. package/dist/index.d.mts +13 -14
  241. package/dist/index.mjs +1 -1
  242. package/dist/internal-reactivity.d.mts +2 -1
  243. package/dist/internal-reactivity.mjs +1 -1
  244. package/dist/internal-runtime.d.mts +13 -6
  245. package/dist/internal-runtime.mjs +1 -1
  246. package/dist/jsx-runtime.d.mts +47 -9
  247. package/dist/jsxTypes.d.mts +8 -0
  248. package/dist/miniprogram/jsx-runtime.d.mts +12 -0
  249. package/dist/miniprogram/jsx-runtime.mjs +1 -0
  250. package/dist/package.mjs +1 -1
  251. package/dist/reactivity/asyncDerivation.d.mts +40 -0
  252. package/dist/reactivity/asyncDerivation.mjs +1 -0
  253. package/dist/reactivity/computed.mjs +1 -1
  254. package/dist/reactivity/core.d.mts +1 -0
  255. package/dist/reactivity/core.mjs +1 -1
  256. package/dist/reactivity/index.d.mts +2 -1
  257. package/dist/reactivity/readonly.d.mts +1 -1
  258. package/dist/reactivity/ref.mjs +1 -1
  259. package/dist/router/createRouter.mjs +1 -1
  260. package/dist/router/useRoute.mjs +1 -1
  261. package/dist/runtime/app/computed.mjs +1 -1
  262. package/dist/runtime/app/context.mjs +1 -1
  263. package/dist/runtime/app/diagnostics.mjs +1 -1
  264. package/dist/runtime/app/mount.mjs +1 -1
  265. package/dist/runtime/app/setData/commitTracker.d.mts +12 -0
  266. package/dist/runtime/app/setData/commitTracker.mjs +1 -0
  267. package/dist/runtime/app/setData/patchScheduler.mjs +1 -1
  268. package/dist/runtime/app/setData/scheduler.d.mts +50 -0
  269. package/dist/runtime/app/setData/scheduler.mjs +1 -1
  270. package/dist/runtime/app/setData/snapshot.mjs +1 -1
  271. package/dist/runtime/app.mjs +1 -1
  272. package/dist/runtime/bindingManifest.mjs +1 -0
  273. package/dist/runtime/capabilities.d.mts +74 -0
  274. package/dist/runtime/capabilities.mjs +1 -0
  275. package/dist/runtime/define/componentDefinition.mjs +1 -1
  276. package/dist/runtime/define/optionsApi.mjs +1 -1
  277. package/dist/runtime/define/props.mjs +1 -1
  278. package/dist/runtime/define/scopedSlotOptions.mjs +1 -1
  279. package/dist/runtime/define.d.mts +5 -13
  280. package/dist/runtime/define.mjs +1 -1
  281. package/dist/runtime/diff.mjs +1 -1
  282. package/dist/runtime/features/inlineEvents.d.mts +6 -0
  283. package/dist/runtime/features/inlineEvents.mjs +1 -0
  284. package/dist/runtime/features/layout.d.mts +6 -0
  285. package/dist/runtime/features/layout.mjs +1 -0
  286. package/dist/runtime/features/patchStrategy.d.mts +6 -0
  287. package/dist/runtime/features/patchStrategy.mjs +1 -0
  288. package/dist/runtime/features/publicLayout.d.mts +23 -0
  289. package/dist/runtime/features/publicLayout.mjs +1 -0
  290. package/dist/runtime/features/scopedSlots.d.mts +22 -0
  291. package/dist/runtime/features/scopedSlots.mjs +1 -0
  292. package/dist/runtime/features/setDataHighFrequencyWarning.d.mts +6 -0
  293. package/dist/runtime/features/setDataHighFrequencyWarning.mjs +1 -0
  294. package/dist/runtime/features/templateRefs.d.mts +6 -0
  295. package/dist/runtime/features/templateRefs.mjs +1 -0
  296. package/dist/runtime/hooks/vue.d.mts +1 -2
  297. package/dist/runtime/hooks/vue.mjs +1 -1
  298. package/dist/runtime/index.d.mts +12 -14
  299. package/dist/runtime/inlineDataset.mjs +1 -0
  300. package/dist/runtime/jsxIsland.d.mts +2 -6
  301. package/dist/runtime/layoutBridge.d.mts +5 -9
  302. package/dist/runtime/pageLayout.d.mts +3 -4
  303. package/dist/runtime/platform.mjs +1 -1
  304. package/dist/runtime/publicRuntime.d.mts +21 -0
  305. package/dist/runtime/publicRuntime.mjs +1 -0
  306. package/dist/runtime/register/app.mjs +1 -1
  307. package/dist/runtime/register/component/lifecycle.mjs +1 -1
  308. package/dist/runtime/register/component/methods.mjs +1 -1
  309. package/dist/runtime/register/component/registerDefinition.mjs +1 -1
  310. package/dist/runtime/register/inline.mjs +1 -1
  311. package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -1
  312. package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -1
  313. package/dist/runtime/register/runtimeInstance/setupSnapshot.mjs +1 -0
  314. package/dist/runtime/register/runtimeInstance.mjs +1 -1
  315. package/dist/runtime/register/snapshot.mjs +1 -1
  316. package/dist/runtime/scopedSlots.mjs +1 -1
  317. package/dist/runtime/selectorQuery.mjs +1 -1
  318. package/dist/runtime/teardown.mjs +1 -0
  319. package/dist/runtime/templateRefTypes.d.mts +5 -2
  320. package/dist/runtime/templateRefs.mjs +1 -1
  321. package/dist/runtime/types/miniprogram.d.mts +3 -0
  322. package/dist/runtime/types/options.d.mts +2 -2
  323. package/dist/runtime/types/props.d.mts +1 -1
  324. package/dist/runtime/types/setData.d.mts +18 -1
  325. package/dist/runtime/types.d.mts +3 -3
  326. package/dist/runtime/vueCompat/router.d.mts +5 -4
  327. package/dist/runtime/vueCompat/router.mjs +1 -1
  328. package/dist/runtime/vueCompat/templateRef.mjs +1 -1
  329. package/dist/store/base.mjs +1 -1
  330. package/dist/store/define/optionsStyle.mjs +1 -1
  331. package/dist/store/define/setupStyle.mjs +1 -1
  332. package/dist/store/define/shared.mjs +1 -1
  333. package/dist/store/define.d.mts +10 -8
  334. package/dist/store/types.d.mts +4 -4
  335. package/dist/tt/jsx-runtime.d.mts +12 -0
  336. package/dist/tt/jsx-runtime.mjs +1 -0
  337. package/dist/vue-demi.d.mts +13 -14
  338. package/dist/vue-demi.mjs +1 -1
  339. package/dist/weapp/jsx-runtime.d.mts +12 -0
  340. package/dist/weapp/jsx-runtime.mjs +1 -0
  341. package/package.json +26 -22
  342. package/dist/dev/jsx-runtime.mjs +0 -1
  343. package/dist/runtime/templateRefs.d.mts +0 -10
  344. package/dist/weappIntrinsicElements/base.d.mts +0 -21
  345. package/dist/weappIntrinsicElements/elements/ad-custom.d.mts +0 -12
  346. package/dist/weappIntrinsicElements/elements/ad.d.mts +0 -15
  347. package/dist/weappIntrinsicElements/elements/audio.d.mts +0 -19
  348. package/dist/weappIntrinsicElements/elements/block.d.mts +0 -7
  349. package/dist/weappIntrinsicElements/elements/button.d.mts +0 -39
  350. package/dist/weappIntrinsicElements/elements/camera.d.mts +0 -17
  351. package/dist/weappIntrinsicElements/elements/canvas.d.mts +0 -17
  352. package/dist/weappIntrinsicElements/elements/checkbox-group.d.mts +0 -12
  353. package/dist/weappIntrinsicElements/elements/checkbox.d.mts +0 -12
  354. package/dist/weappIntrinsicElements/elements/cover-image.d.mts +0 -9
  355. package/dist/weappIntrinsicElements/elements/cover-view.d.mts +0 -9
  356. package/dist/weappIntrinsicElements/elements/editor.d.mts +0 -21
  357. package/dist/weappIntrinsicElements/elements/form.d.mts +0 -15
  358. package/dist/weappIntrinsicElements/elements/functional-page-navigator.d.mts +0 -14
  359. package/dist/weappIntrinsicElements/elements/icon.d.mts +0 -11
  360. package/dist/weappIntrinsicElements/elements/image.d.mts +0 -17
  361. package/dist/weappIntrinsicElements/elements/import.d.mts +0 -9
  362. package/dist/weappIntrinsicElements/elements/include.d.mts +0 -9
  363. package/dist/weappIntrinsicElements/elements/input.d.mts +0 -46
  364. package/dist/weappIntrinsicElements/elements/keyboard-accessory.d.mts +0 -7
  365. package/dist/weappIntrinsicElements/elements/label.d.mts +0 -9
  366. package/dist/weappIntrinsicElements/elements/live-player.d.mts +0 -34
  367. package/dist/weappIntrinsicElements/elements/live-pusher.d.mts +0 -56
  368. package/dist/weappIntrinsicElements/elements/map.d.mts +0 -104
  369. package/dist/weappIntrinsicElements/elements/match-media.d.mts +0 -15
  370. package/dist/weappIntrinsicElements/elements/movable-area.d.mts +0 -25
  371. package/dist/weappIntrinsicElements/elements/movable-view.d.mts +0 -25
  372. package/dist/weappIntrinsicElements/elements/navigation-bar.d.mts +0 -14
  373. package/dist/weappIntrinsicElements/elements/navigator.d.mts +0 -24
  374. package/dist/weappIntrinsicElements/elements/official-account.d.mts +0 -12
  375. package/dist/weappIntrinsicElements/elements/open-data.d.mts +0 -14
  376. package/dist/weappIntrinsicElements/elements/page-container.d.mts +0 -24
  377. package/dist/weappIntrinsicElements/elements/page-meta.d.mts +0 -22
  378. package/dist/weappIntrinsicElements/elements/picker-view-column.d.mts +0 -17
  379. package/dist/weappIntrinsicElements/elements/picker-view.d.mts +0 -17
  380. package/dist/weappIntrinsicElements/elements/picker.d.mts +0 -22
  381. package/dist/weappIntrinsicElements/elements/progress.d.mts +0 -20
  382. package/dist/weappIntrinsicElements/elements/radio-group.d.mts +0 -12
  383. package/dist/weappIntrinsicElements/elements/radio.d.mts +0 -12
  384. package/dist/weappIntrinsicElements/elements/rich-text.d.mts +0 -16
  385. package/dist/weappIntrinsicElements/elements/scroll-view.d.mts +0 -67
  386. package/dist/weappIntrinsicElements/elements/share-element.d.mts +0 -17
  387. package/dist/weappIntrinsicElements/elements/slider.d.mts +0 -22
  388. package/dist/weappIntrinsicElements/elements/slot.d.mts +0 -9
  389. package/dist/weappIntrinsicElements/elements/swiper-item.d.mts +0 -41
  390. package/dist/weappIntrinsicElements/elements/swiper.d.mts +0 -41
  391. package/dist/weappIntrinsicElements/elements/switch.d.mts +0 -13
  392. package/dist/weappIntrinsicElements/elements/template.d.mts +0 -11
  393. package/dist/weappIntrinsicElements/elements/text.d.mts +0 -14
  394. package/dist/weappIntrinsicElements/elements/textarea.d.mts +0 -39
  395. package/dist/weappIntrinsicElements/elements/video.d.mts +0 -70
  396. package/dist/weappIntrinsicElements/elements/view.d.mts +0 -12
  397. package/dist/weappIntrinsicElements/elements/voip-room.d.mts +0 -13
  398. package/dist/weappIntrinsicElements/elements/web-view.d.mts +0 -12
  399. package/dist/weappIntrinsicElements.d.mts +0 -153
  400. /package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/defineProperty.mjs +0 -0
  401. /package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/toPrimitive.mjs +0 -0
  402. /package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/toPropertyKey.mjs +0 -0
  403. /package/dist/_virtual/{_@oxc-project_runtime@0.148.0 → _@oxc-project_runtime@0.149.0}/helpers/esm/typeof.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"core.mjs","names":[],"sources":["../../../src/reactivity/core.ts"],"sourcesContent":["import { queueJob } from '../scheduler'\n\nexport type EffectScheduler = () => void\n\nexport type Dep = Set<ReactiveEffect>\n\nexport interface ReactiveEffect<T = any> {\n (): T\n deps: Dep[]\n scheduler?: EffectScheduler\n active: boolean\n _running: boolean\n _fn: () => T\n onStop?: () => void\n}\n\nconst targetMap = new WeakMap<object, Map<PropertyKey, Dep>>()\n\nlet activeEffect: ReactiveEffect | null = null\nconst effectStack: ReactiveEffect[] = []\n\nlet batchDepth = 0\nconst batchedEffects = new Set<ReactiveEffect>()\n\nexport function startBatch() {\n batchDepth++\n}\n\nfunction flushBatchedEffects() {\n while (batchedEffects.size) {\n const effects = [...batchedEffects]\n batchedEffects.clear()\n for (const ef of effects) {\n ef()\n }\n }\n}\n\nexport function endBatch() {\n if (batchDepth === 0) {\n return\n }\n batchDepth--\n if (batchDepth === 0) {\n flushBatchedEffects()\n }\n}\n\nexport function batch<T>(fn: () => T): T {\n startBatch()\n try {\n return fn()\n }\n finally {\n endBatch()\n }\n}\n\nfunction cleanupEffect(effect: ReactiveEffect) {\n const { deps } = effect\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect)\n }\n deps.length = 0\n}\n\nexport function stop(runner: ReactiveEffect) {\n if (!runner.active) {\n return\n }\n runner.active = false\n cleanupEffect(runner)\n runner.onStop?.()\n}\n\nexport interface EffectScope {\n active: boolean\n effects: ReactiveEffect[]\n cleanups: (() => void)[]\n run: <T>(fn: () => T) => T | undefined\n stop: () => void\n}\n\nlet activeEffectScope: EffectScopeImpl | undefined\n\nclass EffectScopeImpl implements EffectScope {\n active = true\n effects: ReactiveEffect[] = []\n cleanups: (() => void)[] = []\n private parent: EffectScopeImpl | undefined\n private scopes: EffectScopeImpl[] | undefined\n\n constructor(private detached = false) {\n if (!detached && activeEffectScope) {\n this.parent = activeEffectScope\n ;(activeEffectScope.scopes ||= []).push(this)\n }\n }\n\n run<T>(fn: () => T): T | undefined {\n if (!this.active) {\n return\n }\n const prev = activeEffectScope\n // eslint-disable-next-line ts/no-this-alias -- 允许 this 临时别名\n activeEffectScope = this\n try {\n return fn()\n }\n finally {\n activeEffectScope = prev\n }\n }\n\n stop(): void {\n if (!this.active) {\n return\n }\n this.active = false\n\n for (const effect of this.effects) {\n stop(effect)\n }\n this.effects.length = 0\n\n for (const cleanup of this.cleanups) {\n cleanup()\n }\n this.cleanups.length = 0\n\n if (this.scopes) {\n for (const scope of this.scopes) {\n scope.stop()\n }\n this.scopes.length = 0\n }\n\n if (this.parent?.scopes) {\n const index = this.parent.scopes.indexOf(this)\n if (index >= 0) {\n this.parent.scopes.splice(index, 1)\n }\n }\n this.parent = undefined\n }\n}\n\nexport function effectScope(detached = false): EffectScope {\n return new EffectScopeImpl(detached)\n}\n\nexport function getCurrentScope(): EffectScope | undefined {\n return activeEffectScope\n}\n\nexport function onScopeDispose(fn: () => void): void {\n if (activeEffectScope?.active) {\n activeEffectScope.cleanups.push(fn)\n }\n}\n\nfunction recordEffectScope(effect: ReactiveEffect) {\n if (activeEffectScope?.active) {\n activeEffectScope.effects.push(effect)\n }\n}\n\nexport interface EffectOptions {\n scheduler?: EffectScheduler\n lazy?: boolean\n onStop?: () => void\n}\n\nexport function createReactiveEffect<T>(fn: () => T, options: EffectOptions = {}): ReactiveEffect<T> {\n const effect = function reactiveEffect() {\n if (!effect.active) {\n return fn()\n }\n if (effect._running) {\n return fn()\n }\n cleanupEffect(effect)\n try {\n effect._running = true\n effectStack.push(effect)\n activeEffect = effect\n return fn()\n }\n finally {\n effectStack.pop()\n activeEffect = effectStack[effectStack.length - 1] ?? null\n effect._running = false\n }\n } as ReactiveEffect<T>\n\n effect.deps = []\n effect.scheduler = options.scheduler\n effect.onStop = options.onStop\n effect.active = true\n effect._running = false\n effect._fn = fn\n\n return effect\n}\n\nexport function effect<T = any>(fn: () => T, options: EffectOptions = {}): ReactiveEffect<T> {\n const _effect = createReactiveEffect(fn, options)\n recordEffectScope(_effect)\n if (!options.lazy) {\n _effect()\n }\n return _effect\n}\n\nexport function track(target: object, key: PropertyKey) {\n if (!activeEffect) {\n return\n }\n let depsMap = targetMap.get(target)\n if (!depsMap) {\n depsMap = new Map()\n targetMap.set(target, depsMap)\n }\n let dep = depsMap.get(key)\n if (!dep) {\n dep = new Set()\n depsMap.set(key, dep)\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect)\n activeEffect.deps.push(dep)\n }\n}\n\nfunction scheduleEffect(ef: ReactiveEffect) {\n if (ef.scheduler) {\n ef.scheduler()\n return\n }\n if (batchDepth > 0) {\n batchedEffects.add(ef)\n return\n }\n ef()\n}\n\nexport function trigger(target: object, key: PropertyKey) {\n const depsMap = targetMap.get(target)\n if (!depsMap) {\n return\n }\n const effects = depsMap.get(key)\n if (!effects) {\n return\n }\n const effectsToRun = new Set<ReactiveEffect>()\n effects.forEach((ef) => {\n if (ef !== activeEffect) {\n effectsToRun.add(ef)\n }\n })\n effectsToRun.forEach(scheduleEffect)\n}\n\nexport function trackEffects(dep: Dep) {\n if (!activeEffect) {\n return\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect)\n activeEffect.deps.push(dep)\n }\n}\n\nexport function triggerEffects(dep: Dep) {\n // 迭代时复制依赖集合,避免遍历过程中被重新加入导致死循环。\n const effectsToRun = new Set(dep)\n effectsToRun.forEach(scheduleEffect)\n}\n\n// 导出队列调度工具,供 watch/watchEffect 等高层 API 复用同一批处理逻辑\nexport { queueJob }\n"],"mappings":"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"}
1
+ {"version":3,"file":"core.mjs","names":[],"sources":["../../../src/reactivity/core.ts"],"sourcesContent":["import { queueJob } from '../scheduler'\n\nexport type EffectScheduler = () => void\n\nexport type Dep = Set<ReactiveEffect>\n\nexport interface ReactiveEffect<T = any> {\n (): T\n deps: Dep[]\n scheduler?: EffectScheduler\n active: boolean\n _running: boolean\n _fn: () => T\n _computed?: boolean\n onStop?: () => void\n}\n\nconst targetMap = new WeakMap<object, Map<PropertyKey, Dep>>()\n\nlet activeEffect: ReactiveEffect | null = null\nconst effectStack: ReactiveEffect[] = []\nlet shouldTrack = true\nlet activeEffectScope: EffectScopeImpl | undefined\n\nlet batchDepth = 0\nlet isFlushingBatch = false\nconst batchedEffects = new Set<ReactiveEffect>()\nconst batchedCallbacks = new Set<() => void>()\n\nfunction runScheduledEffect(ef: ReactiveEffect) {\n if (!ef.active) {\n return\n }\n if (ef.scheduler) {\n const previousScope = activeEffectScope\n activeEffectScope = (ef as ScopedReactiveEffect)._scope\n try {\n ef.scheduler()\n }\n finally {\n activeEffectScope = previousScope\n }\n return\n }\n ef()\n}\n\n/** 在当前批次的同步副作用全部完成后执行包内通知。 */\nexport function queueBatchCallback(callback: () => void) {\n if (batchDepth > 0 || isFlushingBatch) {\n batchedCallbacks.add(callback)\n return\n }\n batchedCallbacks.delete(callback)\n callback()\n}\n\nexport function startBatch() {\n batchDepth++\n}\n\nfunction takeBatchedEffect(effects: Set<ReactiveEffect>): ReactiveEffect | undefined {\n const next = effects.values().next()\n if (next.done) {\n return undefined\n }\n effects.delete(next.value)\n return next.value\n}\n\nfunction flushBatchedEffects() {\n let firstError: unknown\n let hasError = false\n isFlushingBatch = true\n try {\n while (batchedEffects.size) {\n const effect = takeBatchedEffect(batchedEffects)\n if (!effect) {\n continue\n }\n try {\n runScheduledEffect(effect)\n }\n catch (error) {\n if (!hasError) {\n firstError = error\n hasError = true\n }\n }\n }\n }\n finally {\n isFlushingBatch = false\n }\n // 通知属于已完成批次之后的操作,保留订阅回调内同步变更的重入保护。\n while (batchedCallbacks.size) {\n const callback = batchedCallbacks.values().next().value!\n batchedCallbacks.delete(callback)\n try {\n callback()\n }\n catch (error) {\n if (!hasError) {\n firstError = error\n hasError = true\n }\n }\n }\n if (hasError) {\n throw firstError\n }\n}\n\nexport function endBatch() {\n if (batchDepth === 0) {\n return\n }\n batchDepth--\n if (batchDepth === 0 && !isFlushingBatch) {\n flushBatchedEffects()\n }\n}\n\nexport function batch<T>(fn: () => T): T {\n startBatch()\n try {\n return fn()\n }\n finally {\n endBatch()\n }\n}\n\nfunction cleanupEffect(effect: ReactiveEffect) {\n const { deps } = effect\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect)\n }\n deps.length = 0\n}\n\nexport function stop(runner: ReactiveEffect) {\n if (!runner.active) {\n return\n }\n runner.active = false\n cleanupEffect(runner)\n runner.onStop?.()\n}\n\nexport interface EffectScope {\n active: boolean\n effects: ReactiveEffect[]\n cleanups: (() => void)[]\n run: <T>(fn: () => T) => T | undefined\n stop: () => void\n}\n\nclass EffectScopeImpl implements EffectScope {\n active = true\n effects: ReactiveEffect[] = []\n cleanups: (() => void)[] = []\n private parent: EffectScopeImpl | undefined\n private scopes: EffectScopeImpl[] | undefined\n\n constructor(private detached = false) {\n if (!detached && activeEffectScope) {\n if (!activeEffectScope.active) {\n this.active = false\n return\n }\n this.parent = activeEffectScope\n ;(activeEffectScope.scopes ||= []).push(this)\n }\n }\n\n run<T>(fn: () => T): T | undefined {\n if (!this.active) {\n return\n }\n const prev = activeEffectScope\n // eslint-disable-next-line ts/no-this-alias -- 允许 this 临时别名\n activeEffectScope = this\n try {\n return fn()\n }\n finally {\n activeEffectScope = prev\n }\n }\n\n stop(): void {\n if (!this.active) {\n return\n }\n this.active = false\n const prev = activeEffectScope\n // eslint-disable-next-line ts/no-this-alias -- teardown 期间需要把新建 scope 绑定到当前停止中的 scope\n activeEffectScope = this\n\n let firstError: unknown\n let hasError = false\n const recordError = (error: unknown) => {\n if (hasError) {\n return\n }\n firstError = error\n hasError = true\n }\n\n try {\n const effects = this.effects.splice(0)\n for (const effect of effects) {\n try {\n stop(effect)\n }\n catch (error) {\n recordError(error)\n }\n }\n\n const cleanups = this.cleanups.splice(0)\n for (const cleanup of cleanups) {\n try {\n cleanup()\n }\n catch (error) {\n recordError(error)\n }\n }\n\n const scopes = this.scopes\n this.scopes = undefined\n if (scopes) {\n for (const scope of scopes) {\n try {\n scope.stop()\n }\n catch (error) {\n recordError(error)\n }\n }\n scopes.length = 0\n }\n }\n finally {\n if (this.parent?.scopes) {\n const index = this.parent.scopes.indexOf(this)\n if (index >= 0) {\n this.parent.scopes.splice(index, 1)\n }\n }\n this.parent = undefined\n activeEffectScope = prev\n }\n\n if (hasError) {\n throw firstError\n }\n }\n}\n\ninterface ScopedReactiveEffect<T = any> extends ReactiveEffect<T> {\n _scope: EffectScopeImpl | undefined\n}\n\nexport function effectScope(detached = false): EffectScope {\n return new EffectScopeImpl(detached)\n}\n\nexport function getCurrentScope(): EffectScope | undefined {\n return activeEffectScope\n}\n\nexport function onScopeDispose(fn: () => void): void {\n if (activeEffectScope?.active) {\n activeEffectScope.cleanups.push(fn)\n }\n}\n\n/**\n * 在不把读取记录到当前副作用的情况下执行函数。\n * 函数内部主动运行的新副作用仍会正常收集自己的依赖。\n */\nexport function runWithoutTracking<T>(fn: () => T): T {\n const previousShouldTrack = shouldTrack\n shouldTrack = false\n try {\n return fn()\n }\n finally {\n shouldTrack = previousShouldTrack\n }\n}\n\nfunction recordEffectScope(effect: ReactiveEffect) {\n if (!activeEffectScope) {\n return\n }\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(effect)\n return\n }\n stop(effect)\n}\n\nexport interface EffectOptions {\n scheduler?: EffectScheduler\n lazy?: boolean\n onStop?: () => void\n}\n\nexport function createReactiveEffect<T>(fn: () => T, options: EffectOptions = {}): ReactiveEffect<T> {\n const effect = function reactiveEffect() {\n if (!effect.active) {\n return fn()\n }\n if (effect._running) {\n return fn()\n }\n cleanupEffect(effect)\n const previousScope = activeEffectScope\n activeEffectScope = effect._scope\n const previousShouldTrack = shouldTrack\n try {\n shouldTrack = true\n effect._running = true\n effectStack.push(effect)\n activeEffect = effect\n return fn()\n }\n finally {\n effectStack.pop()\n activeEffect = effectStack[effectStack.length - 1] ?? null\n effect._running = false\n activeEffectScope = previousScope\n shouldTrack = previousShouldTrack\n }\n } as ScopedReactiveEffect<T>\n\n effect.deps = []\n effect.scheduler = options.scheduler\n effect.onStop = options.onStop\n effect.active = true\n effect._running = false\n effect._fn = fn\n effect._scope = activeEffectScope\n\n return effect\n}\n\nfunction createEffect<T>(\n fn: () => T,\n options: EffectOptions,\n computed: boolean,\n): ReactiveEffect<T> {\n const runner = createReactiveEffect(fn, options)\n runner._computed = computed\n recordEffectScope(runner)\n if (!options.lazy) {\n runner()\n }\n return runner\n}\n\nexport function effect<T = any>(fn: () => T, options: EffectOptions = {}): ReactiveEffect<T> {\n return createEffect(fn, options, false)\n}\n\nexport function createComputedEffect<T>(\n fn: () => T,\n options: EffectOptions = {},\n): ReactiveEffect<T> {\n return createEffect(fn, options, true)\n}\n\nexport function track(target: object, key: PropertyKey) {\n if (!shouldTrack || !activeEffect) {\n return\n }\n let depsMap = targetMap.get(target)\n if (!depsMap) {\n depsMap = new Map()\n targetMap.set(target, depsMap)\n }\n let dep = depsMap.get(key)\n if (!dep) {\n dep = new Set()\n depsMap.set(key, dep)\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect)\n activeEffect.deps.push(dep)\n }\n}\n\nfunction scheduleEffect(ef: ReactiveEffect) {\n if (ef._running) {\n return\n }\n // 计算属性只同步失效缓存,普通消费者仍由批处理队列合并。\n if (ef._computed) {\n runScheduledEffect(ef)\n return\n }\n if (batchDepth > 0 || isFlushingBatch) {\n batchedEffects.add(ef)\n return\n }\n runScheduledEffect(ef)\n}\n\nexport function trigger(target: object, key: PropertyKey) {\n const depsMap = targetMap.get(target)\n if (!depsMap) {\n return\n }\n const effects = depsMap.get(key)\n if (!effects) {\n return\n }\n const effectsToRun = new Set<ReactiveEffect>()\n effects.forEach((ef) => {\n if (ef !== activeEffect) {\n effectsToRun.add(ef)\n }\n })\n effectsToRun.forEach(scheduleEffect)\n}\n\nexport function trackEffects(dep: Dep) {\n if (!shouldTrack || !activeEffect) {\n return\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect)\n activeEffect.deps.push(dep)\n }\n}\n\nexport function triggerEffects(dep: Dep) {\n // 迭代时复制依赖集合,避免遍历过程中被重新加入导致死循环。\n const effectsToRun = new Set(dep)\n effectsToRun.forEach(scheduleEffect)\n}\n\n// 导出队列调度工具,供 watch/watchEffect 等高层 API 复用同一批处理逻辑\nexport { queueJob }\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { AsyncDerivation, AsyncDerivationContext, AsyncDerivationState, AsyncDerivationStatus, UseAsyncDerivationOptions, useAsyncDerivation } from "./asyncDerivation.mjs";
2
+ import { CustomRefFactory, CustomRefOptions, CustomRefSource, MaybeRef, MaybeRefOrGetter, Ref, ShallowRef, customRef, isRef, ref, toValue, unref } from "./ref.mjs";
3
+ import { ComputedGetter, ComputedRef, ComputedSetter, WritableComputedOptions, WritableComputedRef, computed } from "./computed.mjs";
4
+ import { EffectScope, batch, effect, effectScope, endBatch, getCurrentScope, onScopeDispose, startBatch, stop } from "./core.mjs";
5
+ import { MutationKind, MutationOp, MutationRecord, addMutationRecorder, removeMutationRecorder } from "./reactive/mutation.mjs";
6
+ import { PrelinkReactiveTreeOptions, prelinkReactiveTree, touchReactive } from "./reactive/patch.mjs";
7
+ import { isShallowReactive, shallowReactive } from "./reactive/shallow.mjs";
8
+ import { toRaw } from "./reactive/shared.mjs";
9
+ import { getReactiveVersion, isRaw, isReactive, markRaw, reactive } from "./reactive.mjs";
10
+ import { isProxy, isReadonly, readonly, shallowReadonly } from "./readonly.mjs";
11
+ import { isShallowRef, shallowRef, triggerRef } from "./shallowRef.mjs";
12
+ import { ToRefs, toRef, toRefs } from "./toRefs.mjs";
13
+ import { traverse } from "./traverse.mjs";
14
+ import { MapSources, MaybeUndefined, MultiWatchSources, OnCleanup, WatchCallback, WatchEffect, WatchEffectOptions, WatchMultiSources, WatchOptions, WatchScheduler, WatchSource, WatchSourceValue, WatchSources, WatchStopHandle, getDeepWatchStrategy, setDeepWatchStrategy } from "./watch/types.mjs";
15
+ import { watch, watchEffect, watchPostEffect, watchSyncEffect } from "./watch.mjs";
16
+ export { type AsyncDerivation, type AsyncDerivationContext, type AsyncDerivationState, type AsyncDerivationStatus, type ComputedGetter, type ComputedRef, type ComputedSetter, type CustomRefFactory, type CustomRefOptions, type CustomRefSource, type EffectScope, type MapSources, type MaybeRef, type MaybeRefOrGetter, type MaybeUndefined, type MultiWatchSources, type MutationKind, type MutationOp, type MutationRecord, type OnCleanup, type PrelinkReactiveTreeOptions, type Ref, type ShallowRef, type ToRefs, type UseAsyncDerivationOptions, type WatchCallback, type WatchEffect, type WatchEffectOptions, type WatchMultiSources, type WatchOptions, type WatchScheduler, type WatchSource, type WatchSourceValue, type WatchSources, type WatchStopHandle, type WritableComputedOptions, type WritableComputedRef, addMutationRecorder, batch, computed, customRef, effect, effectScope, endBatch, getCurrentScope, getDeepWatchStrategy, getReactiveVersion, isProxy, isRaw, isReactive, isReadonly, isRef, isShallowReactive, isShallowRef, markRaw, onScopeDispose, prelinkReactiveTree, reactive, readonly, ref, removeMutationRecorder, setDeepWatchStrategy, shallowReactive, shallowReadonly, shallowRef, startBatch, stop, toRaw, toRef, toRefs, toValue, touchReactive, traverse, triggerRef, unref, useAsyncDerivation, watch, watchEffect, watchPostEffect, watchSyncEffect };
@@ -0,0 +1,21 @@
1
+ //#region src/reactivity/reactive/mutation.d.ts
2
+ export type MutationOp = 'set' | 'delete';
3
+ export type MutationKind = 'property' | 'array';
4
+ export interface MutationRecord {
5
+ root: object;
6
+ kind: MutationKind;
7
+ op: MutationOp;
8
+ /**
9
+ * 点路径(例如 `a.b.c`);当路径不可靠时为 undefined。
10
+ */
11
+ path?: string;
12
+ /**
13
+ * 当路径不唯一时回退使用的顶层键列表。
14
+ */
15
+ fallbackTopKeys?: string[];
16
+ }
17
+ type MutationRecorder = (record: MutationRecord) => void;
18
+ export declare function addMutationRecorder(recorder: MutationRecorder): void;
19
+ export declare function removeMutationRecorder(recorder: MutationRecorder): void;
20
+ //#endregion
21
+ //# sourceMappingURL=mutation.d.mts.map
@@ -0,0 +1,18 @@
1
+ //#region src/reactivity/reactive/patch.d.ts
2
+ export interface PrelinkReactiveTreeOptions {
3
+ shouldIncludeTopKey?: (key: string) => boolean;
4
+ maxDepth?: number;
5
+ maxKeys?: number;
6
+ }
7
+ /**
8
+ * 预链接响应式树结构,供运行时差量路径追踪使用。
9
+ * @internal
10
+ */
11
+ export declare function prelinkReactiveTree(root: object, options?: PrelinkReactiveTreeOptions): void;
12
+ /**
13
+ * 让 effect 订阅整个对象的“版本号”,无需深度遍历即可对任何字段变化做出响应。
14
+ * @internal
15
+ */
16
+ export declare function touchReactive(target: object): void;
17
+ //#endregion
18
+ //# sourceMappingURL=patch.d.mts.map
@@ -0,0 +1,22 @@
1
+ //#region src/reactivity/reactive/shallow.d.ts
2
+ /**
3
+ * 创建一个浅层响应式代理:仅跟踪第一层属性变更,不深度递归嵌套对象。
4
+ *
5
+ * @param target 待转换的对象
6
+ * @returns 浅层响应式代理
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const state = shallowReactive({ nested: { count: 0 } })
11
+ *
12
+ * state.nested.count++ // 不会触发 effect(嵌套对象未深度代理)
13
+ * state.nested = { count: 1 } // 会触发 effect(顶层属性变更)
14
+ * ```
15
+ */
16
+ export declare function shallowReactive<T extends object>(target: T): T;
17
+ /**
18
+ * 判断一个值是否为 shallowReactive 创建的浅层响应式对象
19
+ */
20
+ export declare function isShallowReactive(value: unknown): boolean;
21
+ //#endregion
22
+ //# sourceMappingURL=shallow.d.mts.map
@@ -0,0 +1,4 @@
1
+ //#region src/reactivity/reactive/shared.d.ts
2
+ export declare function toRaw<T>(observed: T): T;
3
+ //#endregion
4
+ //# sourceMappingURL=shared.d.mts.map
@@ -0,0 +1,42 @@
1
+ import { MutationKind, MutationOp, MutationRecord, addMutationRecorder, removeMutationRecorder } from "./reactive/mutation.mjs";
2
+ import { PrelinkReactiveTreeOptions, prelinkReactiveTree, touchReactive } from "./reactive/patch.mjs";
3
+ import { isShallowReactive, shallowReactive } from "./reactive/shallow.mjs";
4
+ import { toRaw } from "./reactive/shared.mjs";
5
+ //#region src/reactivity/reactive.d.ts
6
+ /**
7
+ * 读取响应式版本号(框架内部调试能力)。
8
+ * @internal
9
+ */
10
+ export declare function getReactiveVersion(target: object): number;
11
+ export declare function reactive<T extends object>(target: T): T;
12
+ export declare function isReactive(value: unknown): boolean;
13
+ /**
14
+ * 标记对象为“原始”状态,后续不会被转换为响应式,返回原对象本身。
15
+ *
16
+ * @param value 需要标记的对象
17
+ * @returns 带有跳过标记的原对象
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const foo = markRaw({
22
+ * nested: {}
23
+ * })
24
+ *
25
+ * const state = reactive({
26
+ * foo
27
+ * })
28
+ *
29
+ * state.foo // 不是响应式对象
30
+ * ```
31
+ */
32
+ export declare function markRaw<T extends object>(value: T): T;
33
+ /**
34
+ * 判断某个值是否被标记为原始(即不应转换为响应式)。
35
+ *
36
+ * @param value 待检测的值
37
+ * @returns 若含有跳过标记则返回 true
38
+ */
39
+ export declare function isRaw(value: unknown): boolean;
40
+ //#endregion
41
+ export { type MutationKind, type MutationOp, type MutationRecord, type PrelinkReactiveTreeOptions, addMutationRecorder, isShallowReactive, prelinkReactiveTree, removeMutationRecorder, shallowReactive, toRaw, touchReactive };
42
+ //# sourceMappingURL=reactive.d.mts.map
@@ -0,0 +1,27 @@
1
+ import { Ref } from "./ref.mjs";
2
+ //#region src/reactivity/readonly.d.ts
3
+ /**
4
+ * readonly 会为对象/数组创建一个“浅层”只读代理,并为 Ref 创建只读包装。
5
+ * 选择浅层而非深层递归,是为了在小程序环境中保持实现和运行时开销最小,
6
+ * 仅阻止直接属性写入/删除,嵌套对象仍按原样透传。
7
+ */
8
+ export declare function readonly<T extends object>(target: T): Readonly<T>;
9
+ export declare function readonly<T>(target: Ref<T>): Readonly<Ref<T>>;
10
+ /**
11
+ * 与 Vue 3 的 `shallowReadonly()` 对齐。
12
+ *
13
+ * 当前 wevu 的只读语义本身就是浅层只读,因此这里直接复用同一套实现,
14
+ * 让依赖 Vue 兼容 API 的代码可以无缝迁移。
15
+ */
16
+ export declare function shallowReadonly<T extends object>(target: T): Readonly<T>;
17
+ export declare function shallowReadonly<T>(target: Ref<T>): Readonly<Ref<T>>;
18
+ /**
19
+ * 判断值是否为只读代理或只读 ref 包装。
20
+ */
21
+ export declare function isReadonly(value: unknown): boolean;
22
+ /**
23
+ * 判断值是否为响应式代理或只读代理。
24
+ */
25
+ export declare function isProxy(value: unknown): boolean;
26
+ //#endregion
27
+ //# sourceMappingURL=readonly.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"readonly.mjs","names":[],"sources":["../../../src/reactivity/readonly.ts"],"sourcesContent":["import type { Ref } from './ref'\nimport { isObject, isReactive } from './reactive'\nimport { getTargetType, ReactiveFlags, TargetType } from './reactive/shared'\nimport { isRef, markAsRef } from './ref'\n\nfunction createReadonlyWrapper(target: any): any {\n if (isRef(target)) {\n const source = target\n const readonlyRef = markAsRef({\n get value() {\n return source.value\n },\n set value(_v: any) {\n throw new Error('无法给只读 ref 赋值')\n },\n })\n Object.defineProperties(readonlyRef, {\n [ReactiveFlags.IS_READONLY]: {\n value: true,\n configurable: true,\n },\n [ReactiveFlags.RAW]: {\n value: source,\n configurable: true,\n },\n })\n return readonlyRef\n }\n if (!isObject(target)) {\n return target\n }\n if (getTargetType(target as object) === TargetType.INVALID) {\n return target\n }\n return new Proxy(target as object, {\n set() {\n throw new Error('无法在只读对象上设置属性')\n },\n deleteProperty() {\n throw new Error('无法在只读对象上删除属性')\n },\n defineProperty() {\n throw new Error('无法在只读对象上定义属性')\n },\n get(target, key, receiver) {\n if (key === ReactiveFlags.IS_READONLY) {\n return true\n }\n if (key === ReactiveFlags.RAW) {\n return target\n }\n const res = Reflect.get(target, key, receiver)\n // 仅处理顶层属性,嵌套对象维持原引用以避免深拷贝和额外代理\n return res\n },\n })\n}\n\n/**\n * readonly 会为对象/数组创建一个“浅层”只读代理,并为 Ref 创建只读包装。\n * 选择浅层而非深层递归,是为了在小程序环境中保持实现和运行时开销最小,\n * 仅阻止直接属性写入/删除,嵌套对象仍按原样透传。\n */\nexport function readonly<T extends object>(target: T): T\nexport function readonly<T>(target: Ref<T>): Readonly<Ref<T>>\nexport function readonly(target: any): any {\n return createReadonlyWrapper(target)\n}\n\n/**\n * 与 Vue 3 的 `shallowReadonly()` 对齐。\n *\n * 当前 wevu 的只读语义本身就是浅层只读,因此这里直接复用同一套实现,\n * 让依赖 Vue 兼容 API 的代码可以无缝迁移。\n */\nexport function shallowReadonly<T extends object>(target: T): Readonly<T>\nexport function shallowReadonly<T>(target: Ref<T>): Readonly<Ref<T>>\nexport function shallowReadonly(target: any): any {\n return createReadonlyWrapper(target)\n}\n\n/**\n * 判断值是否为只读代理或只读 ref 包装。\n */\nexport function isReadonly(value: unknown): boolean {\n return Boolean(value && (value as any)[ReactiveFlags.IS_READONLY])\n}\n\n/**\n * 判断值是否为响应式代理或只读代理。\n */\nexport function isProxy(value: unknown): boolean {\n return isReactive(value) || isReadonly(value)\n}\n"],"mappings":";;;;;AAKA,SAAS,sBAAsB,QAAkB;CAC/C,IAAI,MAAM,MAAM,GAAG;EACjB,MAAM,SAAS;EACf,MAAM,cAAc,UAAU;GAC5B,IAAI,QAAQ;IACV,OAAO,OAAO;GAChB;GACA,IAAI,MAAM,IAAS;IACjB,MAAM,IAAI,MAAM,cAAc;GAChC;EACF,CAAC;EACD,OAAO,iBAAiB,aAAa;uBACN;IAC3B,OAAO;IACP,cAAc;GAChB;gBACqB;IACnB,OAAO;IACP,cAAc;GAChB;EACF,CAAC;EACD,OAAO;CACT;CACA,IAAI,CAAC,SAAS,MAAM,GAClB,OAAO;CAET,IAAI,cAAc,MAAgB,SAChC,OAAO;CAET,OAAO,IAAI,MAAM,QAAkB;EACjC,MAAM;GACJ,MAAM,IAAI,MAAM,cAAc;EAChC;EACA,iBAAiB;GACf,MAAM,IAAI,MAAM,cAAc;EAChC;EACA,iBAAiB;GACf,MAAM,IAAI,MAAM,cAAc;EAChC;EACA,IAAI,QAAQ,KAAK,UAAU;GACzB,IAAI,0BACF,OAAO;GAET,IAAI,mBACF,OAAO;GAIT,OAFY,QAAQ,IAAI,QAAQ,KAAK,QAE5B;EACX;CACF,CAAC;AACH;AASA,SAAgB,SAAS,QAAkB;CACzC,OAAO,sBAAsB,MAAM;AACrC;AAUA,SAAgB,gBAAgB,QAAkB;CAChD,OAAO,sBAAsB,MAAM;AACrC;;;;AAKA,SAAgB,WAAW,OAAyB;CAClD,OAAO,QAAQ,SAAU,uBAAwC;AACnE;;;;AAKA,SAAgB,QAAQ,OAAyB;CAC/C,OAAO,WAAW,KAAK,KAAK,WAAW,KAAK;AAC9C"}
1
+ {"version":3,"file":"readonly.mjs","names":[],"sources":["../../../src/reactivity/readonly.ts"],"sourcesContent":["import type { Ref } from './ref'\nimport { isObject, isReactive } from './reactive'\nimport { getTargetType, ReactiveFlags, TargetType } from './reactive/shared'\nimport { isRef, markAsRef } from './ref'\n\nfunction createReadonlyWrapper(target: any): any {\n if (isRef(target)) {\n const source = target\n const readonlyRef = markAsRef({\n get value() {\n return source.value\n },\n set value(_v: any) {\n throw new Error('无法给只读 ref 赋值')\n },\n })\n Object.defineProperties(readonlyRef, {\n [ReactiveFlags.IS_READONLY]: {\n value: true,\n configurable: true,\n },\n [ReactiveFlags.RAW]: {\n value: source,\n configurable: true,\n },\n })\n return readonlyRef\n }\n if (!isObject(target)) {\n return target\n }\n if (getTargetType(target as object) === TargetType.INVALID) {\n return target\n }\n return new Proxy(target as object, {\n set() {\n throw new Error('无法在只读对象上设置属性')\n },\n deleteProperty() {\n throw new Error('无法在只读对象上删除属性')\n },\n defineProperty() {\n throw new Error('无法在只读对象上定义属性')\n },\n get(target, key, receiver) {\n if (key === ReactiveFlags.IS_READONLY) {\n return true\n }\n if (key === ReactiveFlags.RAW) {\n return target\n }\n const res = Reflect.get(target, key, receiver)\n // 仅处理顶层属性,嵌套对象维持原引用以避免深拷贝和额外代理\n return res\n },\n })\n}\n\n/**\n * readonly 会为对象/数组创建一个“浅层”只读代理,并为 Ref 创建只读包装。\n * 选择浅层而非深层递归,是为了在小程序环境中保持实现和运行时开销最小,\n * 仅阻止直接属性写入/删除,嵌套对象仍按原样透传。\n */\nexport function readonly<T extends object>(target: T): Readonly<T>\nexport function readonly<T>(target: Ref<T>): Readonly<Ref<T>>\nexport function readonly(target: any): any {\n return createReadonlyWrapper(target)\n}\n\n/**\n * 与 Vue 3 的 `shallowReadonly()` 对齐。\n *\n * 当前 wevu 的只读语义本身就是浅层只读,因此这里直接复用同一套实现,\n * 让依赖 Vue 兼容 API 的代码可以无缝迁移。\n */\nexport function shallowReadonly<T extends object>(target: T): Readonly<T>\nexport function shallowReadonly<T>(target: Ref<T>): Readonly<Ref<T>>\nexport function shallowReadonly(target: any): any {\n return createReadonlyWrapper(target)\n}\n\n/**\n * 判断值是否为只读代理或只读 ref 包装。\n */\nexport function isReadonly(value: unknown): boolean {\n return Boolean(value && (value as any)[ReactiveFlags.IS_READONLY])\n}\n\n/**\n * 判断值是否为响应式代理或只读代理。\n */\nexport function isProxy(value: unknown): boolean {\n return isReactive(value) || isReadonly(value)\n}\n"],"mappings":";;;;;AAKA,SAAS,sBAAsB,QAAkB;CAC/C,IAAI,MAAM,MAAM,GAAG;EACjB,MAAM,SAAS;EACf,MAAM,cAAc,UAAU;GAC5B,IAAI,QAAQ;IACV,OAAO,OAAO;GAChB;GACA,IAAI,MAAM,IAAS;IACjB,MAAM,IAAI,MAAM,cAAc;GAChC;EACF,CAAC;EACD,OAAO,iBAAiB,aAAa;uBACN;IAC3B,OAAO;IACP,cAAc;GAChB;gBACqB;IACnB,OAAO;IACP,cAAc;GAChB;EACF,CAAC;EACD,OAAO;CACT;CACA,IAAI,CAAC,SAAS,MAAM,GAClB,OAAO;CAET,IAAI,cAAc,MAAgB,SAChC,OAAO;CAET,OAAO,IAAI,MAAM,QAAkB;EACjC,MAAM;GACJ,MAAM,IAAI,MAAM,cAAc;EAChC;EACA,iBAAiB;GACf,MAAM,IAAI,MAAM,cAAc;EAChC;EACA,iBAAiB;GACf,MAAM,IAAI,MAAM,cAAc;EAChC;EACA,IAAI,QAAQ,KAAK,UAAU;GACzB,IAAI,0BACF,OAAO;GAET,IAAI,mBACF,OAAO;GAIT,OAFY,QAAQ,IAAI,QAAQ,KAAK,QAE5B;EACX;CACF,CAAC;AACH;AASA,SAAgB,SAAS,QAAkB;CACzC,OAAO,sBAAsB,MAAM;AACrC;AAUA,SAAgB,gBAAgB,QAAkB;CAChD,OAAO,sBAAsB,MAAM;AACrC;;;;AAKA,SAAgB,WAAW,OAAyB;CAClD,OAAO,QAAQ,SAAU,uBAAwC;AACnE;;;;AAKA,SAAgB,QAAQ,OAAyB;CAC/C,OAAO,WAAW,KAAK,KAAK,WAAW,KAAK;AAC9C"}
@@ -0,0 +1,27 @@
1
+ import { ComputedRef, WritableComputedRef } from "./computed.mjs";
2
+ import { Ref as Ref$1, ShallowRef as ShallowRef$1 } from "../vue-types.mjs";
3
+ //#region src/reactivity/ref.d.ts
4
+ export type Ref<T = any, S = T> = Ref$1<T, S>;
5
+ export type ShallowRef<T = any> = ShallowRef$1<T>;
6
+ export type MaybeRef<T = any> = T | Ref<T> | ShallowRef<T> | WritableComputedRef<T>;
7
+ export type MaybeRefOrGetter<T = any> = MaybeRef<T> | ComputedRef<T> | (() => T);
8
+ export declare function isRef(value: unknown): value is Ref<any>;
9
+ export declare function ref<T = any>(): Ref<T | undefined>;
10
+ export declare function ref<T>(value: T): Ref<T>;
11
+ export declare function unref<T>(value: MaybeRef<T> | ComputedRef<T>): T;
12
+ export declare function toValue<T>(source: MaybeRefOrGetter<T>): T;
13
+ /**
14
+ * 自定义 ref 工厂:用于创建可显式控制 track/trigger 的自定义 ref
15
+ */
16
+ export type CustomRefFactory<T> = (track: () => void, trigger: () => void) => {
17
+ get: () => T;
18
+ set: (value: T) => void;
19
+ };
20
+ export interface CustomRefOptions<T> {
21
+ get: () => T;
22
+ set: (value: T) => void;
23
+ }
24
+ export type CustomRefSource<T> = CustomRefFactory<T> | CustomRefOptions<T>;
25
+ export declare function customRef<T>(factory: CustomRefSource<T>, defaultValue?: T): Ref<T>;
26
+ //#endregion
27
+ //# sourceMappingURL=ref.d.mts.map
@@ -1,4 +1,4 @@
1
- import _defineProperty from "../_virtual/_@oxc-project_runtime@0.148.0/helpers/esm/defineProperty.mjs";
1
+ import _defineProperty from "../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/defineProperty.mjs";
2
2
  import { trackEffects, triggerEffects } from "./core.mjs";
3
3
  import { convertToReactive, markRaw } from "./reactive.mjs";
4
4
 
@@ -0,0 +1,19 @@
1
+ import { Ref } from "./ref.mjs";
2
+ //#region src/reactivity/shallowRef.d.ts
3
+ export declare function shallowRef<T>(value: T): Ref<T>;
4
+ export declare function shallowRef<T>(value: T, defaultValue: T): Ref<T>;
5
+ /**
6
+ * 判断传入值是否为浅层 ref。
7
+ *
8
+ * @param r 待判断的值
9
+ * @returns 若为浅层 ref 则返回 true
10
+ */
11
+ export declare function isShallowRef(r: any): r is Ref<any>;
12
+ /**
13
+ * 主动触发一次浅层 ref 的更新(无需深度比较)。
14
+ *
15
+ * @param ref 需要触发的 ref
16
+ */
17
+ export declare function triggerRef<T>(ref: Ref<T>): void;
18
+ //#endregion
19
+ //# sourceMappingURL=shallowRef.d.mts.map
@@ -0,0 +1,43 @@
1
+ import { Ref } from "./ref.mjs";
2
+ //#region src/reactivity/toRefs.d.ts
3
+ /**
4
+ * 为源响应式对象的单个属性创建 ref,可读可写并与原属性保持同步。
5
+ *
6
+ * @param object 源响应式对象
7
+ * @param key 属性名
8
+ * @returns 指向该属性的 ref
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const state = reactive({ foo: 1 })
13
+ * const fooRef = toRef(state, 'foo')
14
+ *
15
+ * fooRef.value++
16
+ * console.log(state.foo) // 2
17
+ * ```
18
+ */
19
+ export declare function toRef<T extends object, K extends keyof T>(object: T, key: K): ToRef<T[K]>;
20
+ export declare function toRef<T extends object, K extends keyof T>(object: T, key: K, defaultValue: T[K]): ToRef<T[K]>;
21
+ /**
22
+ * 将一个响应式对象转换成“同结构的普通对象”,其中每个字段都是指向原对象对应属性的 ref。
23
+ *
24
+ * @param object 待转换的响应式对象
25
+ * @returns 包含若干 ref 的普通对象
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const state = reactive({ foo: 1, bar: 2 })
30
+ * const stateAsRefs = toRefs(state)
31
+ *
32
+ * stateAsRefs.foo.value++ // 2
33
+ * state.foo // 2
34
+ * ```
35
+ */
36
+ export declare function toRefs<T extends object>(object: T): ToRefs<T>;
37
+ /**
38
+ * toRefs 返回值的类型辅助
39
+ */
40
+ type ToRef<T> = T extends Ref<any> ? T : Ref<T>;
41
+ export type ToRefs<T extends object> = { [K in keyof T]: ToRef<T[K]>; };
42
+ //#endregion
43
+ //# sourceMappingURL=toRefs.d.mts.map
@@ -0,0 +1,8 @@
1
+ //#region src/reactivity/traverse.d.ts
2
+ /**
3
+ * 深度遍历工具(框架内部依赖收集使用)。
4
+ * @internal
5
+ */
6
+ export declare function traverse(value: any, depth?: number, seen?: Map<object, number>): any;
7
+ //#endregion
8
+ //# sourceMappingURL=traverse.d.mts.map
@@ -0,0 +1,43 @@
1
+ import { Ref } from "../ref.mjs";
2
+ import { ComputedRef } from "../computed.mjs";
3
+ //#region src/reactivity/watch/types.d.ts
4
+ export type OnCleanup = (cleanupFn: () => void) => void;
5
+ export type WatchEffect = (onCleanup: OnCleanup) => void;
6
+ export type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T);
7
+ export type WatchCallback<V = any, OV = any> = (value: V, oldValue: OV, onCleanup: OnCleanup) => void;
8
+ export type WatchScheduler = (job: () => void, isFirstRun: boolean) => void;
9
+ export type MaybeUndefined<T, Immediate> = Immediate extends true ? T | undefined : T;
10
+ export type MultiWatchSources = (WatchSource<unknown> | object)[];
11
+ export type MapSources<T, Immediate> = { [K in keyof T]: T[K] extends WatchSource<infer V> ? MaybeUndefined<V, Immediate> : T[K] extends object ? MaybeUndefined<T[K], Immediate> : never; };
12
+ export type WatchSourceValue<S> = S extends WatchSource<infer V> ? V : S extends object ? S : never;
13
+ export type WatchSources<T = any> = WatchSource<T> | ReadonlyArray<WatchSource<unknown> | object> | (T extends object ? T : never);
14
+ type IsTuple<T extends ReadonlyArray<any>> = number extends T['length'] ? false : true;
15
+ export type WatchMultiSources<T extends ReadonlyArray<WatchSource<unknown> | object>> = IsTuple<T> extends true ? { [K in keyof T]: WatchSourceValue<T[K]>; } : Array<WatchSourceValue<T[number]>>;
16
+ export interface WatchEffectOptions {
17
+ flush?: 'pre' | 'post' | 'sync';
18
+ }
19
+ export interface WatchOptions<Immediate extends boolean = false> extends WatchEffectOptions {
20
+ immediate?: Immediate;
21
+ deep?: boolean | number;
22
+ once?: boolean;
23
+ scheduler?: WatchScheduler;
24
+ }
25
+ export interface WatchStopHandle {
26
+ (): void;
27
+ stop: () => void;
28
+ pause: () => void;
29
+ resume: () => void;
30
+ }
31
+ export type DeepWatchStrategy = 'version' | 'traverse';
32
+ /**
33
+ * 设置深度 watch 内部策略(测试/框架内部使用)。
34
+ * @internal
35
+ */
36
+ export declare function setDeepWatchStrategy(strategy: DeepWatchStrategy): void;
37
+ /**
38
+ * 获取深度 watch 内部策略(测试/框架内部使用)。
39
+ * @internal
40
+ */
41
+ export declare function getDeepWatchStrategy(): DeepWatchStrategy;
42
+ //#endregion
43
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1,22 @@
1
+ import { DeepWatchStrategy, MapSources, MaybeUndefined, MultiWatchSources, OnCleanup, WatchCallback, WatchEffect, WatchEffectOptions, WatchMultiSources, WatchOptions, WatchScheduler, WatchSource, WatchSourceValue, WatchSources, WatchStopHandle, getDeepWatchStrategy, setDeepWatchStrategy } from "./watch/types.mjs";
2
+ //#region src/reactivity/watch.d.ts
3
+ export declare function watch<T, Immediate extends Readonly<boolean> = false>(source: WatchSource<T>, cb: WatchCallback<T, MaybeUndefined<T, Immediate>>, options?: WatchOptions<Immediate>): WatchStopHandle;
4
+ export declare function watch<T extends object, Immediate extends Readonly<boolean> = false>(source: T extends ReadonlyArray<any> ? never : T, cb: WatchCallback<T, MaybeUndefined<T, Immediate>>, options?: WatchOptions<Immediate>): WatchStopHandle;
5
+ export declare function watch<T extends Readonly<MultiWatchSources>, Immediate extends Readonly<boolean> = false>(source: readonly [...T] | T, cb: WatchCallback<MapSources<T, false>, MapSources<T, Immediate>>, options?: WatchOptions<Immediate>): WatchStopHandle;
6
+ export declare function watch<T extends MultiWatchSources, Immediate extends Readonly<boolean> = false>(source: [...T], cb: WatchCallback<MapSources<T, false>, MapSources<T, Immediate>>, options?: WatchOptions<Immediate>): WatchStopHandle;
7
+ /**
8
+ * watchEffect 注册一个响应式副作用,可选清理函数。
9
+ * 副作用会立即执行,并在依赖变化时重新运行。
10
+ */
11
+ export declare function watchEffect(effectFn: WatchEffect, options?: WatchEffectOptions): WatchStopHandle;
12
+ /**
13
+ * 以后置刷新的方式运行副作用,与 Vue 的 `watchPostEffect()` 兼容。
14
+ */
15
+ export declare function watchPostEffect(effectFn: WatchEffect, options?: Omit<WatchEffectOptions, 'flush'>): WatchStopHandle;
16
+ /**
17
+ * 以同步刷新的方式运行副作用,与 Vue 的 `watchSyncEffect()` 兼容。
18
+ */
19
+ export declare function watchSyncEffect(effectFn: WatchEffect, options?: Omit<WatchEffectOptions, 'flush'>): WatchStopHandle;
20
+ //#endregion
21
+ export { type MapSources, type MaybeUndefined, type MultiWatchSources, type OnCleanup, type WatchCallback, type WatchEffect, type WatchEffectOptions, type WatchMultiSources, type WatchOptions, type WatchScheduler, type WatchSource, type WatchSourceValue, type WatchSources, type WatchStopHandle, getDeepWatchStrategy, setDeepWatchStrategy };
22
+ //# sourceMappingURL=watch.d.mts.map
@@ -0,0 +1,8 @@
1
+ import { RouterNavigation, UseRouterOptions } from "./types.mjs";
2
+ //#region src/router/createRouter.d.ts
3
+ /**
4
+ * @description 创建高阶路由导航器(对齐 Vue Router 的 createRouter 心智)
5
+ */
6
+ export declare function createRouter(options?: UseRouterOptions): RouterNavigation;
7
+ //#endregion
8
+ //# sourceMappingURL=createRouter.d.mts.map
@@ -1,4 +1,4 @@
1
- import { getMiniProgramGlobalObject } from "../runtime/platform.mjs";
1
+ import { getCurrentMiniProgramTabBarPagePaths, getMiniProgramGlobalObject } from "../runtime/platform.mjs";
2
2
  import { setActiveRouter } from "./instance.mjs";
3
3
  import { DEFAULT_INITIAL_NAVIGATION_TIMEOUT, registerInitialNavigationRunner } from "./initialNavigation.mjs";
4
4
  import { installRouteStateSyncOnNativeRouter, notifyRouteStateSync } from "./routeSync.mjs";
@@ -9,7 +9,9 @@ import { resolveNamedRouteLocation } from "../routerInternal/params.mjs";
9
9
  import { mergeMatchedRouteMeta, resolveMatchedRouteRecord } from "../routerInternal/matching.mjs";
10
10
  import { warnDuplicateRouteEntries } from "../routerInternal/recordsWarnings.mjs";
11
11
  import { createNamedRouteLookup, resolveRouteOptionEntries } from "../routerInternal/records.mjs";
12
- import { cloneRouteMeta, cloneRouteParams, createRouterOptionsSnapshot, normalizeRouteRecordMatched, snapshotRouteLocation } from "../routerInternal/snapshots.mjs";
12
+ import { cloneRouteMeta, cloneRouteParams, createNativeRouteUrl, createRouterOptionsSnapshot, normalizeRouteRecordMatched, snapshotRouteLocation } from "../routerInternal/snapshots.mjs";
13
+ import { NavigationFailureType } from "./types.mjs";
14
+ import { createNavigationFailure, executeNavigationMethod } from "./navigationCore.mjs";
13
15
  import { createNavigationResultController } from "./navigationResult.mjs";
14
16
  import { resolveBackNavigationTarget, runBackNavigationGuards } from "./backNavigation.mjs";
15
17
  import { navigateWithTarget } from "./navigationTarget.mjs";
@@ -43,7 +45,7 @@ function createRouter(options = {}) {
43
45
  const routeEntries = resolveRouteOptionEntries(options);
44
46
  warnDuplicateRouteEntries(routeEntries);
45
47
  const namedRouteLookup = createNamedRouteLookup(routeEntries);
46
- const normalizedTabBarEntries = ((_options$tabBarEntrie = options.tabBarEntries) !== null && _options$tabBarEntrie !== void 0 ? _options$tabBarEntrie : []).map((path) => resolvePath(path, "")).filter(Boolean);
48
+ const normalizedTabBarEntries = ((_options$tabBarEntrie = options.tabBarEntries) !== null && _options$tabBarEntrie !== void 0 ? _options$tabBarEntrie : getCurrentMiniProgramTabBarPagePaths()).map((path) => resolvePath(path, "")).filter(Boolean);
47
49
  const tabBarPathSet = new Set(normalizedTabBarEntries);
48
50
  const routeRegistry = createRouteRegistry(namedRouteLookup);
49
51
  let managedNavigationCount = 0;
@@ -175,6 +177,17 @@ function createRouter(options = {}) {
175
177
  allowSameLocation: true
176
178
  });
177
179
  if (!isActive()) return;
180
+ if (initialNavigationMode === "blocking" && result.to && result.to.fullPath !== target.fullPath) {
181
+ const redirectedTarget = result.to;
182
+ const method = tabBarPathSet.has(redirectedTarget.path) ? nativeRouter.switchTab : nativeRouter.redirectTo;
183
+ const nativeResult = await executeNavigationMethod(method, { url: createNativeRouteUrl(redirectedTarget, routeResolveCodec.stringifyQuery) }, redirectedTarget, from);
184
+ if (nativeResult) return nativeResult;
185
+ notifyRouteStateSync({
186
+ route: redirectedTarget,
187
+ source: "router"
188
+ });
189
+ return createNavigationFailure(NavigationFailureType.cancelled, redirectedTarget, from);
190
+ }
178
191
  return navigationResultController.settleNavigationResult(result);
179
192
  });
180
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createRouter.mjs","names":[],"sources":["../../../src/router/createRouter.ts"],"sourcesContent":["import type { RouteResolveCodec } from '../routerInternal/shared'\nimport type { NavigationRunResult } from './navigationResult'\nimport type { RouteStateSyncPayload } from './routeSync'\nimport type {\n InitialNavigationMode,\n LocationQueryRaw,\n NavigationAfterEach,\n NavigationErrorHandler,\n NavigationGuard,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n RouterNavigation,\n UseRouterOptions,\n} from './types'\nimport {\n cloneRouteMeta,\n cloneRouteParams,\n createNamedRouteLookup,\n createRouterOptionsSnapshot,\n mergeMatchedRouteMeta,\n normalizeRouteRecordMatched,\n parseQuery,\n resolveCurrentRoute,\n resolveMatchedRouteRecord,\n resolveNamedRouteLocation,\n resolvePath,\n resolveRouteOptionEntries,\n snapshotRouteLocation,\n stringifyQuery,\n warnDuplicateRouteEntries,\n} from '../routerInternal/shared'\nimport { getMiniProgramGlobalObject } from '../runtime/platform'\nimport { resolveBackNavigationTarget, runBackNavigationGuards } from './backNavigation'\nimport { DEFAULT_INITIAL_NAVIGATION_TIMEOUT, registerInitialNavigationRunner } from './initialNavigation'\nimport { setActiveRouter } from './instance'\nimport { createNavigationApi } from './navigationApi'\nimport { createNavigationResultController } from './navigationResult'\nimport { navigateWithTarget } from './navigationTarget'\nimport { resolveRouteLocation } from './resolve'\nimport { createRouteRegistry } from './routeRegistry'\nimport { installRouteStateSyncOnNativeRouter, notifyRouteStateSync } from './routeSync'\nimport { createRouteStateController, useNativeRouter } from './useRoute'\n\n/**\n * @description 创建高阶路由导航器(对齐 Vue Router 的 createRouter 心智)\n */\nexport function createRouter(options: UseRouterOptions = {}): RouterNavigation {\n const nativeRouter = useNativeRouter()\n installRouteStateSyncOnNativeRouter(getMiniProgramGlobalObject())\n const beforeEachGuards = new Set<NavigationGuard>()\n const beforeResolveGuards = new Set<NavigationGuard>()\n const afterEachHooks = new Set<NavigationAfterEach>()\n const errorHandlers = new Set<NavigationErrorHandler>()\n const maxRedirects = options.maxRedirects ?? 10\n const initialNavigationMode: InitialNavigationMode = options.initialNavigationMode === 'blocking' ? 'blocking' : 'eager'\n const initialNavigationTimeout = Number.isFinite(options.initialNavigationTimeout) && (options.initialNavigationTimeout ?? 0) > 0\n ? Math.max(1, Math.trunc(options.initialNavigationTimeout!))\n : DEFAULT_INITIAL_NAVIGATION_TIMEOUT\n const paramsMode = options.paramsMode ?? 'loose'\n const rejectOnError = options.rejectOnError ?? true\n const routeResolveCodec: RouteResolveCodec = {\n parseQuery: options.parseQuery ?? parseQuery,\n stringifyQuery: options.stringifyQuery ?? stringifyQuery,\n }\n const readyPromise = Promise.resolve()\n const routeEntries = resolveRouteOptionEntries(options)\n warnDuplicateRouteEntries(routeEntries)\n const namedRouteLookup = createNamedRouteLookup(routeEntries)\n const normalizedTabBarEntries = (options.tabBarEntries ?? [])\n .map(path => resolvePath(path, ''))\n .filter(Boolean)\n const tabBarPathSet = new Set(normalizedTabBarEntries)\n const routeRegistry = createRouteRegistry(namedRouteLookup)\n let managedNavigationCount = 0\n let activeManagedRoutePath: string | undefined\n let pendingManagedRouteSyncPath: string | undefined\n let pendingExternalRouteSyncPath: string | undefined\n const routerOptions = createRouterOptionsSnapshot(\n normalizedTabBarEntries,\n routeRegistry.getRoutes(),\n paramsMode,\n maxRedirects,\n initialNavigationMode,\n initialNavigationTimeout,\n routeResolveCodec,\n rejectOnError,\n )\n\n function enrichRouteRecordState(routeLocation: RouteLocationNormalizedLoaded): RouteLocationNormalizedLoaded {\n const resolved = { ...routeLocation }\n resolved.href = resolved.fullPath\n const matchedResult = resolveMatchedRouteRecord(resolved, namedRouteLookup)\n if (matchedResult) {\n const matchedRecord = matchedResult.record\n if (resolved.name === undefined) {\n resolved.name = matchedRecord.name\n }\n const mergedRouteMeta = mergeMatchedRouteMeta(matchedResult.matchedRecords)\n if (mergedRouteMeta !== undefined) {\n resolved.meta = cloneRouteMeta(mergedRouteMeta)\n }\n if (matchedResult.params && Object.keys(resolved.params).length === 0) {\n resolved.params = cloneRouteParams(matchedResult.params)\n }\n resolved.matched = matchedResult.matchedRecords.map((record, index, records) => {\n const leafMatchedPath = index === records.length - 1\n ? matchedResult.matchedPath\n : undefined\n return normalizeRouteRecordMatched(record, leafMatchedPath)\n })\n }\n else {\n resolved.matched = []\n }\n return resolved\n }\n\n function resolveWithCodec(to: RouteLocationRaw, currentPath: string): RouteLocationNormalizedLoaded {\n const rawTo = typeof to === 'string'\n ? to\n : resolveNamedRouteLocation(to, namedRouteLookup, paramsMode)\n return enrichRouteRecordState(resolveRouteLocation(rawTo, currentPath, routeResolveCodec))\n }\n\n let route: Readonly<RouteLocationNormalizedLoaded>\n let emitObservedNavigationAfterEach: ((result: NavigationRunResult) => Promise<void>) | undefined\n\n function isExternalBackSync(payload: RouteStateSyncPayload): boolean {\n return payload.source === 'page'\n || (payload.source === 'native' && payload.method === 'navigateBack')\n }\n\n function beforeRouteStateSync(\n nextRoute: RouteLocationNormalizedLoaded,\n payload: RouteStateSyncPayload,\n ) {\n if (managedNavigationCount > 0 || !isExternalBackSync(payload)) {\n return\n }\n\n if (pendingExternalRouteSyncPath !== undefined) {\n return\n }\n\n if (pendingManagedRouteSyncPath !== undefined) {\n const expectedPath = pendingManagedRouteSyncPath\n pendingManagedRouteSyncPath = undefined\n if (nextRoute.fullPath === expectedPath) {\n return\n }\n }\n\n if (nextRoute.fullPath === route.fullPath) {\n return\n }\n\n pendingExternalRouteSyncPath = nextRoute.fullPath\n const from = snapshotRouteLocation(route)\n void runBackNavigationGuards({\n target: nextRoute,\n from,\n nativeRouter,\n beforeEachGuards,\n beforeResolveGuards,\n resolveWithCodec,\n }).then((result) => {\n return emitObservedNavigationAfterEach?.(result)\n }).finally(() => {\n pendingExternalRouteSyncPath = undefined\n })\n }\n\n const routeController = createRouteStateController({\n beforeRouteStateSync,\n resolveRoute: enrichRouteRecordState,\n })\n route = routeController.route\n\n function resolve(to: RouteLocationRaw): RouteLocationNormalizedLoaded {\n return resolveWithCodec(to, route.path)\n }\n\n const navigationResultController = createNavigationResultController({\n afterEachHooks,\n errorHandlers,\n nativeRouter,\n rejectOnError,\n })\n emitObservedNavigationAfterEach = navigationResultController.emitNavigationAfterEach\n\n const navigationApi = createNavigationApi({\n nativeRouter,\n route,\n routeResolveCodec,\n namedRouteLookup,\n beforeEachGuards,\n beforeResolveGuards,\n maxRedirects,\n tabBarPathSet,\n resolveWithCodec,\n settleNavigationResult: navigationResultController.settleNavigationResult,\n })\n\n async function runManagedNavigation<T>(navigation: () => Promise<T>, targetPath?: string): Promise<T> {\n const previousRoutePath = route.fullPath\n if (targetPath) {\n activeManagedRoutePath = targetPath\n }\n managedNavigationCount += 1\n try {\n const result = await navigation()\n if (route.fullPath !== previousRoutePath) {\n pendingManagedRouteSyncPath = route.fullPath\n }\n return result\n }\n finally {\n managedNavigationCount -= 1\n if (managedNavigationCount <= 0) {\n activeManagedRoutePath = undefined\n }\n }\n }\n\n function resolveManagedRoutePath(to: RouteLocationRaw): string | undefined {\n try {\n return resolveWithCodec(to, route.path).fullPath\n }\n catch {\n return undefined\n }\n }\n\n async function runInitialNavigation(\n page: Parameters<typeof resolveCurrentRoute>[1],\n query?: LocationQueryRaw,\n isActive: () => boolean = () => true,\n ) {\n return runManagedNavigation(async () => {\n const from = snapshotRouteLocation(route)\n const target = enrichRouteRecordState(resolveCurrentRoute(query, page))\n if (!target.path) {\n return undefined\n }\n if (activeManagedRoutePath === target.fullPath) {\n notifyRouteStateSync({\n route: target,\n source: 'router',\n })\n return undefined\n }\n const result = await navigateWithTarget({\n mode: 'push',\n target,\n from,\n nativeRouter,\n routeResolveCodec,\n namedRouteLookup,\n beforeEachGuards,\n beforeResolveGuards,\n maxRedirects,\n tabBarPathSet,\n resolveWithCodec,\n executeNative: false,\n allowSameLocation: true,\n })\n if (!isActive()) {\n return undefined\n }\n return navigationResultController.settleNavigationResult(result)\n })\n }\n\n function beforeEach(guard: NavigationGuard): () => void {\n beforeEachGuards.add(guard)\n return () => {\n beforeEachGuards.delete(guard)\n }\n }\n\n function beforeResolve(guard: NavigationGuard): () => void {\n beforeResolveGuards.add(guard)\n return () => {\n beforeResolveGuards.delete(guard)\n }\n }\n\n function afterEach(hook: NavigationAfterEach): () => void {\n afterEachHooks.add(hook)\n return () => {\n afterEachHooks.delete(hook)\n }\n }\n\n function onError(handler: NavigationErrorHandler): () => void {\n errorHandlers.add(handler)\n return () => {\n errorHandlers.delete(handler)\n }\n }\n\n const router: RouterNavigation = {\n nativeRouter,\n options: routerOptions,\n currentRoute: route,\n install(app?: unknown): void {\n setActiveRouter(router)\n const globalProperties = (app as { config?: { globalProperties?: Record<string, unknown> } } | undefined)?.config?.globalProperties\n if (globalProperties) {\n globalProperties.$router = router\n }\n },\n resolve,\n isReady(): Promise<void> {\n return readyPromise\n },\n push: to => runManagedNavigation(() => navigationApi.push(to), resolveManagedRoutePath(to)),\n replace: to => runManagedNavigation(() => navigationApi.replace(to), resolveManagedRoutePath(to)),\n back: delta => runManagedNavigation(\n () => navigationApi.back(delta),\n resolveBackNavigationTarget(delta ?? 1, route, resolveWithCodec)?.fullPath,\n ),\n go: delta => runManagedNavigation(\n () => navigationApi.go(delta),\n delta < 0\n ? resolveBackNavigationTarget(Math.abs(delta), route, resolveWithCodec)?.fullPath\n : undefined,\n ),\n forward: () => runManagedNavigation(() => navigationApi.forward()),\n hasRoute: routeRegistry.hasRoute,\n getRoutes: routeRegistry.getRoutes,\n addRoute: routeRegistry.addRoute,\n removeRoute: routeRegistry.removeRoute,\n clearRoutes: routeRegistry.clearRoutes,\n beforeEach,\n beforeResolve,\n afterEach,\n onError,\n }\n\n setActiveRouter(router)\n registerInitialNavigationRunner(router, runInitialNavigation, initialNavigationTimeout, initialNavigationMode)\n return router\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"createRouter.mjs","names":[],"sources":["../../../src/router/createRouter.ts"],"sourcesContent":["import type { RouteResolveCodec } from '../routerInternal/shared'\nimport type { NavigationRunResult } from './navigationResult'\nimport type { RouteStateSyncPayload } from './routeSync'\nimport type {\n InitialNavigationMode,\n LocationQueryRaw,\n NavigationAfterEach,\n NavigationErrorHandler,\n NavigationGuard,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n RouterNavigation,\n UseRouterOptions,\n} from './types'\nimport {\n cloneRouteMeta,\n cloneRouteParams,\n createNamedRouteLookup,\n createNativeRouteUrl,\n createRouterOptionsSnapshot,\n mergeMatchedRouteMeta,\n normalizeRouteRecordMatched,\n parseQuery,\n resolveCurrentRoute,\n resolveMatchedRouteRecord,\n resolveNamedRouteLocation,\n resolvePath,\n resolveRouteOptionEntries,\n snapshotRouteLocation,\n stringifyQuery,\n warnDuplicateRouteEntries,\n} from '../routerInternal/shared'\nimport { getCurrentMiniProgramTabBarPagePaths, getMiniProgramGlobalObject } from '../runtime/platform'\nimport { resolveBackNavigationTarget, runBackNavigationGuards } from './backNavigation'\nimport { DEFAULT_INITIAL_NAVIGATION_TIMEOUT, registerInitialNavigationRunner } from './initialNavigation'\nimport { setActiveRouter } from './instance'\nimport { createNavigationApi } from './navigationApi'\nimport { createNavigationFailure, executeNavigationMethod } from './navigationCore'\nimport { createNavigationResultController } from './navigationResult'\nimport { navigateWithTarget } from './navigationTarget'\nimport { resolveRouteLocation } from './resolve'\nimport { createRouteRegistry } from './routeRegistry'\nimport { installRouteStateSyncOnNativeRouter, notifyRouteStateSync } from './routeSync'\nimport { NavigationFailureType } from './types'\nimport { createRouteStateController, useNativeRouter } from './useRoute'\n\n/**\n * @description 创建高阶路由导航器(对齐 Vue Router 的 createRouter 心智)\n */\nexport function createRouter(options: UseRouterOptions = {}): RouterNavigation {\n const nativeRouter = useNativeRouter()\n installRouteStateSyncOnNativeRouter(getMiniProgramGlobalObject())\n const beforeEachGuards = new Set<NavigationGuard>()\n const beforeResolveGuards = new Set<NavigationGuard>()\n const afterEachHooks = new Set<NavigationAfterEach>()\n const errorHandlers = new Set<NavigationErrorHandler>()\n const maxRedirects = options.maxRedirects ?? 10\n const initialNavigationMode: InitialNavigationMode = options.initialNavigationMode === 'blocking' ? 'blocking' : 'eager'\n const initialNavigationTimeout = Number.isFinite(options.initialNavigationTimeout) && (options.initialNavigationTimeout ?? 0) > 0\n ? Math.max(1, Math.trunc(options.initialNavigationTimeout!))\n : DEFAULT_INITIAL_NAVIGATION_TIMEOUT\n const paramsMode = options.paramsMode ?? 'loose'\n const rejectOnError = options.rejectOnError ?? true\n const routeResolveCodec: RouteResolveCodec = {\n parseQuery: options.parseQuery ?? parseQuery,\n stringifyQuery: options.stringifyQuery ?? stringifyQuery,\n }\n const readyPromise = Promise.resolve()\n const routeEntries = resolveRouteOptionEntries(options)\n warnDuplicateRouteEntries(routeEntries)\n const namedRouteLookup = createNamedRouteLookup(routeEntries)\n const tabBarEntrySource = options.tabBarEntries ?? getCurrentMiniProgramTabBarPagePaths()\n const normalizedTabBarEntries = tabBarEntrySource\n .map(path => resolvePath(path, ''))\n .filter(Boolean)\n const tabBarPathSet = new Set(normalizedTabBarEntries)\n const routeRegistry = createRouteRegistry(namedRouteLookup)\n let managedNavigationCount = 0\n let activeManagedRoutePath: string | undefined\n let pendingManagedRouteSyncPath: string | undefined\n let pendingExternalRouteSyncPath: string | undefined\n const routerOptions = createRouterOptionsSnapshot(\n normalizedTabBarEntries,\n routeRegistry.getRoutes(),\n paramsMode,\n maxRedirects,\n initialNavigationMode,\n initialNavigationTimeout,\n routeResolveCodec,\n rejectOnError,\n )\n\n function enrichRouteRecordState(routeLocation: RouteLocationNormalizedLoaded): RouteLocationNormalizedLoaded {\n const resolved = { ...routeLocation }\n resolved.href = resolved.fullPath\n const matchedResult = resolveMatchedRouteRecord(resolved, namedRouteLookup)\n if (matchedResult) {\n const matchedRecord = matchedResult.record\n if (resolved.name === undefined) {\n resolved.name = matchedRecord.name\n }\n const mergedRouteMeta = mergeMatchedRouteMeta(matchedResult.matchedRecords)\n if (mergedRouteMeta !== undefined) {\n resolved.meta = cloneRouteMeta(mergedRouteMeta)\n }\n if (matchedResult.params && Object.keys(resolved.params).length === 0) {\n resolved.params = cloneRouteParams(matchedResult.params)\n }\n resolved.matched = matchedResult.matchedRecords.map((record, index, records) => {\n const leafMatchedPath = index === records.length - 1\n ? matchedResult.matchedPath\n : undefined\n return normalizeRouteRecordMatched(record, leafMatchedPath)\n })\n }\n else {\n resolved.matched = []\n }\n return resolved\n }\n\n function resolveWithCodec(to: RouteLocationRaw, currentPath: string): RouteLocationNormalizedLoaded {\n const rawTo = typeof to === 'string'\n ? to\n : resolveNamedRouteLocation(to, namedRouteLookup, paramsMode)\n return enrichRouteRecordState(resolveRouteLocation(rawTo, currentPath, routeResolveCodec))\n }\n\n let route: Readonly<RouteLocationNormalizedLoaded>\n let emitObservedNavigationAfterEach: ((result: NavigationRunResult) => Promise<void>) | undefined\n\n function isExternalBackSync(payload: RouteStateSyncPayload): boolean {\n return payload.source === 'page'\n || (payload.source === 'native' && payload.method === 'navigateBack')\n }\n\n function beforeRouteStateSync(\n nextRoute: RouteLocationNormalizedLoaded,\n payload: RouteStateSyncPayload,\n ) {\n if (managedNavigationCount > 0 || !isExternalBackSync(payload)) {\n return\n }\n\n if (pendingExternalRouteSyncPath !== undefined) {\n return\n }\n\n if (pendingManagedRouteSyncPath !== undefined) {\n const expectedPath = pendingManagedRouteSyncPath\n pendingManagedRouteSyncPath = undefined\n if (nextRoute.fullPath === expectedPath) {\n return\n }\n }\n\n if (nextRoute.fullPath === route.fullPath) {\n return\n }\n\n pendingExternalRouteSyncPath = nextRoute.fullPath\n const from = snapshotRouteLocation(route)\n void runBackNavigationGuards({\n target: nextRoute,\n from,\n nativeRouter,\n beforeEachGuards,\n beforeResolveGuards,\n resolveWithCodec,\n }).then((result) => {\n return emitObservedNavigationAfterEach?.(result)\n }).finally(() => {\n pendingExternalRouteSyncPath = undefined\n })\n }\n\n const routeController = createRouteStateController({\n beforeRouteStateSync,\n resolveRoute: enrichRouteRecordState,\n })\n route = routeController.route\n\n function resolve(to: RouteLocationRaw): RouteLocationNormalizedLoaded {\n return resolveWithCodec(to, route.path)\n }\n\n const navigationResultController = createNavigationResultController({\n afterEachHooks,\n errorHandlers,\n nativeRouter,\n rejectOnError,\n })\n emitObservedNavigationAfterEach = navigationResultController.emitNavigationAfterEach\n\n const navigationApi = createNavigationApi({\n nativeRouter,\n route,\n routeResolveCodec,\n namedRouteLookup,\n beforeEachGuards,\n beforeResolveGuards,\n maxRedirects,\n tabBarPathSet,\n resolveWithCodec,\n settleNavigationResult: navigationResultController.settleNavigationResult,\n })\n\n async function runManagedNavigation<T>(navigation: () => Promise<T>, targetPath?: string): Promise<T> {\n const previousRoutePath = route.fullPath\n if (targetPath) {\n activeManagedRoutePath = targetPath\n }\n managedNavigationCount += 1\n try {\n const result = await navigation()\n if (route.fullPath !== previousRoutePath) {\n pendingManagedRouteSyncPath = route.fullPath\n }\n return result\n }\n finally {\n managedNavigationCount -= 1\n if (managedNavigationCount <= 0) {\n activeManagedRoutePath = undefined\n }\n }\n }\n\n function resolveManagedRoutePath(to: RouteLocationRaw): string | undefined {\n try {\n return resolveWithCodec(to, route.path).fullPath\n }\n catch {\n return undefined\n }\n }\n\n async function runInitialNavigation(\n page: Parameters<typeof resolveCurrentRoute>[1],\n query?: LocationQueryRaw,\n isActive: () => boolean = () => true,\n ) {\n return runManagedNavigation(async () => {\n const from = snapshotRouteLocation(route)\n const target = enrichRouteRecordState(resolveCurrentRoute(query, page))\n if (!target.path) {\n return undefined\n }\n if (activeManagedRoutePath === target.fullPath) {\n notifyRouteStateSync({\n route: target,\n source: 'router',\n })\n return undefined\n }\n const result = await navigateWithTarget({\n mode: 'push',\n target,\n from,\n nativeRouter,\n routeResolveCodec,\n namedRouteLookup,\n beforeEachGuards,\n beforeResolveGuards,\n maxRedirects,\n tabBarPathSet,\n resolveWithCodec,\n executeNative: false,\n allowSameLocation: true,\n })\n if (!isActive()) {\n return undefined\n }\n if (initialNavigationMode === 'blocking' && result.to && result.to.fullPath !== target.fullPath) {\n const redirectedTarget = result.to\n const isTabBarTarget = tabBarPathSet.has(redirectedTarget.path)\n const method = isTabBarTarget ? nativeRouter.switchTab : nativeRouter.redirectTo\n const nativeResult = await executeNavigationMethod(\n method as (options: Record<string, any>) => unknown,\n { url: createNativeRouteUrl(redirectedTarget, routeResolveCodec.stringifyQuery) },\n redirectedTarget,\n from,\n )\n if (nativeResult) {\n return nativeResult\n }\n notifyRouteStateSync({\n route: redirectedTarget,\n source: 'router',\n })\n return createNavigationFailure(NavigationFailureType.cancelled, redirectedTarget, from)\n }\n return navigationResultController.settleNavigationResult(result)\n })\n }\n\n function beforeEach(guard: NavigationGuard): () => void {\n beforeEachGuards.add(guard)\n return () => {\n beforeEachGuards.delete(guard)\n }\n }\n\n function beforeResolve(guard: NavigationGuard): () => void {\n beforeResolveGuards.add(guard)\n return () => {\n beforeResolveGuards.delete(guard)\n }\n }\n\n function afterEach(hook: NavigationAfterEach): () => void {\n afterEachHooks.add(hook)\n return () => {\n afterEachHooks.delete(hook)\n }\n }\n\n function onError(handler: NavigationErrorHandler): () => void {\n errorHandlers.add(handler)\n return () => {\n errorHandlers.delete(handler)\n }\n }\n\n const router: RouterNavigation = {\n nativeRouter,\n options: routerOptions,\n currentRoute: route,\n install(app?: unknown): void {\n setActiveRouter(router)\n const globalProperties = (app as { config?: { globalProperties?: Record<string, unknown> } } | undefined)?.config?.globalProperties\n if (globalProperties) {\n globalProperties.$router = router\n }\n },\n resolve,\n isReady(): Promise<void> {\n return readyPromise\n },\n push: to => runManagedNavigation(() => navigationApi.push(to), resolveManagedRoutePath(to)),\n replace: to => runManagedNavigation(() => navigationApi.replace(to), resolveManagedRoutePath(to)),\n back: delta => runManagedNavigation(\n () => navigationApi.back(delta),\n resolveBackNavigationTarget(delta ?? 1, route, resolveWithCodec)?.fullPath,\n ),\n go: delta => runManagedNavigation(\n () => navigationApi.go(delta),\n delta < 0\n ? resolveBackNavigationTarget(Math.abs(delta), route, resolveWithCodec)?.fullPath\n : undefined,\n ),\n forward: () => runManagedNavigation(() => navigationApi.forward()),\n hasRoute: routeRegistry.hasRoute,\n getRoutes: routeRegistry.getRoutes,\n addRoute: routeRegistry.addRoute,\n removeRoute: routeRegistry.removeRoute,\n clearRoutes: routeRegistry.clearRoutes,\n beforeEach,\n beforeResolve,\n afterEach,\n onError,\n }\n\n setActiveRouter(router)\n registerInitialNavigationRunner(router, runInitialNavigation, initialNavigationTimeout, initialNavigationMode)\n return router\n}\n"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { NavigationFailure, NavigationFailureTypeValue, RouteLocationNormalizedLoaded } from "./types.mjs";
2
+ //#region src/router/navigationCore.d.ts
3
+ export declare function createNavigationFailure(type: NavigationFailureTypeValue, to?: RouteLocationNormalizedLoaded, from?: RouteLocationNormalizedLoaded, cause?: unknown): NavigationFailure;
4
+ export declare function isNavigationFailure(error: unknown, type?: NavigationFailureTypeValue): error is NavigationFailure;
5
+ //#endregion
6
+ //# sourceMappingURL=navigationCore.d.mts.map
@@ -0,0 +1,6 @@
1
+ import { RouteResolveCodec } from "../routerInternal/types.mjs";
2
+ import { RouteLocationNormalizedLoaded, RouteLocationRaw } from "./types.mjs";
3
+ //#region src/router/resolve.d.ts
4
+ export declare function resolveRouteLocation(to: RouteLocationRaw, currentPath?: string, codec?: RouteResolveCodec): RouteLocationNormalizedLoaded;
5
+ //#endregion
6
+ //# sourceMappingURL=resolve.d.mts.map
@@ -0,0 +1 @@
1
+ import "./types.mjs";