wevu 6.18.7 → 6.19.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 (585) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/defineProperty.mjs +1 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/toPrimitive.mjs +1 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/toPropertyKey.mjs +1 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/typeof.mjs +1 -0
  5. package/dist/dev/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/defineProperty.mjs +14 -0
  6. package/dist/dev/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/toPrimitive.mjs +16 -0
  7. package/dist/dev/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/toPropertyKey.mjs +11 -0
  8. package/dist/dev/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/typeof.mjs +12 -0
  9. package/dist/dev/index.mjs +48 -10
  10. package/dist/dev/internal-reactivity.mjs +15 -5
  11. package/dist/dev/internal-runtime.mjs +32 -4
  12. package/dist/dev/internal-template.mjs +1 -1
  13. package/dist/dev/package.mjs +6 -0
  14. package/dist/dev/package.mjs.map +1 -0
  15. package/dist/dev/reactivity/computed.mjs +49 -0
  16. package/dist/dev/reactivity/computed.mjs.map +1 -0
  17. package/dist/dev/reactivity/core.mjs +184 -0
  18. package/dist/dev/reactivity/core.mjs.map +1 -0
  19. package/dist/dev/reactivity/reactive/mutation.mjs +12 -0
  20. package/dist/dev/reactivity/reactive/mutation.mjs.map +1 -0
  21. package/dist/dev/{computed-BxRsUJgi.mjs → reactivity/reactive/patch.mjs} +8 -49
  22. package/dist/dev/reactivity/reactive/patch.mjs.map +1 -0
  23. package/dist/dev/reactivity/reactive/patchState.mjs +138 -0
  24. package/dist/dev/reactivity/reactive/patchState.mjs.map +1 -0
  25. package/dist/dev/reactivity/reactive/shallow.mjs +77 -0
  26. package/dist/dev/reactivity/reactive/shallow.mjs.map +1 -0
  27. package/dist/dev/reactivity/reactive/shared.mjs +40 -0
  28. package/dist/dev/reactivity/reactive/shared.mjs.map +1 -0
  29. package/dist/dev/reactivity/reactive/state.mjs +8 -0
  30. package/dist/dev/reactivity/reactive/state.mjs.map +1 -0
  31. package/dist/dev/reactivity/reactive.mjs +213 -0
  32. package/dist/dev/reactivity/reactive.mjs.map +1 -0
  33. package/dist/dev/reactivity/readonly.mjs +69 -0
  34. package/dist/dev/reactivity/readonly.mjs.map +1 -0
  35. package/dist/dev/reactivity/ref.mjs +97 -0
  36. package/dist/dev/reactivity/ref.mjs.map +1 -0
  37. package/dist/dev/reactivity/shallowRef.mjs +71 -0
  38. package/dist/dev/reactivity/shallowRef.mjs.map +1 -0
  39. package/dist/dev/{toRefs-D06VmFK2.mjs → reactivity/toRefs.mjs} +4 -3
  40. package/dist/dev/reactivity/toRefs.mjs.map +1 -0
  41. package/dist/dev/reactivity/traverse.mjs +40 -0
  42. package/dist/dev/reactivity/traverse.mjs.map +1 -0
  43. package/dist/dev/reactivity/watch/helpers.mjs +78 -0
  44. package/dist/dev/reactivity/watch/helpers.mjs.map +1 -0
  45. package/dist/dev/reactivity/watch/types.mjs +20 -0
  46. package/dist/dev/reactivity/watch/types.mjs.map +1 -0
  47. package/dist/dev/reactivity/watch.mjs +167 -0
  48. package/dist/dev/reactivity/watch.mjs.map +1 -0
  49. package/dist/dev/router/backNavigation.mjs +32 -0
  50. package/dist/dev/router/backNavigation.mjs.map +1 -0
  51. package/dist/dev/router/createRouter.mjs +179 -0
  52. package/dist/dev/router/createRouter.mjs.map +1 -0
  53. package/dist/dev/router/instance.mjs +17 -0
  54. package/dist/dev/router/instance.mjs.map +1 -0
  55. package/dist/dev/router/navigationApi.mjs +94 -0
  56. package/dist/dev/router/navigationApi.mjs.map +1 -0
  57. package/dist/dev/router/navigationCore.mjs +139 -0
  58. package/dist/dev/router/navigationCore.mjs.map +1 -0
  59. package/dist/dev/router/navigationResult.mjs +54 -0
  60. package/dist/dev/router/navigationResult.mjs.map +1 -0
  61. package/dist/dev/router/navigationTarget.mjs +122 -0
  62. package/dist/dev/router/navigationTarget.mjs.map +1 -0
  63. package/dist/dev/router/navigationTargetHelpers.mjs +38 -0
  64. package/dist/dev/router/navigationTargetHelpers.mjs.map +1 -0
  65. package/dist/dev/router/resolve.mjs +29 -0
  66. package/dist/dev/router/resolve.mjs.map +1 -0
  67. package/dist/dev/router/routeRegistry.mjs +78 -0
  68. package/dist/dev/router/routeRegistry.mjs.map +1 -0
  69. package/dist/dev/router/routeSync.mjs +72 -0
  70. package/dist/dev/router/routeSync.mjs.map +1 -0
  71. package/dist/dev/router/types.mjs +11 -0
  72. package/dist/dev/router/types.mjs.map +1 -0
  73. package/dist/dev/router/useRoute.mjs +106 -0
  74. package/dist/dev/router/useRoute.mjs.map +1 -0
  75. package/dist/dev/router/useRouter.mjs +15 -0
  76. package/dist/dev/router/useRouter.mjs.map +1 -0
  77. package/dist/dev/router.mjs +9 -1378
  78. package/dist/dev/routerInternal/location.mjs +68 -0
  79. package/dist/dev/routerInternal/location.mjs.map +1 -0
  80. package/dist/dev/routerInternal/matching.mjs +149 -0
  81. package/dist/dev/routerInternal/matching.mjs.map +1 -0
  82. package/dist/dev/routerInternal/params.mjs +95 -0
  83. package/dist/dev/routerInternal/params.mjs.map +1 -0
  84. package/dist/dev/routerInternal/path.mjs +42 -0
  85. package/dist/dev/routerInternal/path.mjs.map +1 -0
  86. package/dist/dev/routerInternal/query.mjs +113 -0
  87. package/dist/dev/routerInternal/query.mjs.map +1 -0
  88. package/dist/dev/routerInternal/records.mjs +173 -0
  89. package/dist/dev/routerInternal/records.mjs.map +1 -0
  90. package/dist/dev/routerInternal/recordsWarnings.mjs +49 -0
  91. package/dist/dev/routerInternal/recordsWarnings.mjs.map +1 -0
  92. package/dist/dev/routerInternal/snapshots.mjs +126 -0
  93. package/dist/dev/routerInternal/snapshots.mjs.map +1 -0
  94. package/dist/dev/runtime/app/computed.mjs +68 -0
  95. package/dist/dev/runtime/app/computed.mjs.map +1 -0
  96. package/dist/dev/runtime/app/context.mjs +275 -0
  97. package/dist/dev/runtime/app/context.mjs.map +1 -0
  98. package/dist/dev/runtime/app/diagnostics.mjs +34 -0
  99. package/dist/dev/runtime/app/diagnostics.mjs.map +1 -0
  100. package/dist/dev/runtime/app/mount.mjs +270 -0
  101. package/dist/dev/runtime/app/mount.mjs.map +1 -0
  102. package/dist/dev/runtime/app/pending.mjs +14 -0
  103. package/dist/dev/runtime/app/pending.mjs.map +1 -0
  104. package/dist/dev/runtime/app/setData/patchScheduler.mjs +158 -0
  105. package/dist/dev/runtime/app/setData/patchScheduler.mjs.map +1 -0
  106. package/dist/dev/runtime/app/setData/payload.mjs +161 -0
  107. package/dist/dev/runtime/app/setData/payload.mjs.map +1 -0
  108. package/dist/dev/runtime/app/setData/scheduler.mjs +313 -0
  109. package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -0
  110. package/dist/dev/runtime/app/setData/snapshot.mjs +129 -0
  111. package/dist/dev/runtime/app/setData/snapshot.mjs.map +1 -0
  112. package/dist/dev/runtime/app/setDataOptions.mjs +73 -0
  113. package/dist/dev/runtime/app/setDataOptions.mjs.map +1 -0
  114. package/dist/dev/runtime/app.mjs +93 -0
  115. package/dist/dev/runtime/app.mjs.map +1 -0
  116. package/dist/dev/runtime/bindModel.mjs +92 -0
  117. package/dist/dev/runtime/bindModel.mjs.map +1 -0
  118. package/dist/dev/runtime/defaults.mjs +61 -0
  119. package/dist/dev/runtime/defaults.mjs.map +1 -0
  120. package/dist/dev/runtime/define/initialComputed.mjs +125 -0
  121. package/dist/dev/runtime/define/initialComputed.mjs.map +1 -0
  122. package/dist/dev/runtime/define/options.mjs +169 -0
  123. package/dist/dev/runtime/define/options.mjs.map +1 -0
  124. package/dist/dev/runtime/define/optionsApi.mjs +48 -0
  125. package/dist/dev/runtime/define/optionsApi.mjs.map +1 -0
  126. package/dist/dev/runtime/define/props.mjs +194 -0
  127. package/dist/dev/runtime/define/props.mjs.map +1 -0
  128. package/dist/dev/runtime/define/scopedSlotOptions.mjs +316 -0
  129. package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -0
  130. package/dist/dev/runtime/define/setupResult.mjs +78 -0
  131. package/dist/dev/runtime/define/setupResult.mjs.map +1 -0
  132. package/dist/dev/runtime/define.mjs +142 -0
  133. package/dist/dev/runtime/define.mjs.map +1 -0
  134. package/dist/dev/runtime/diff.mjs +193 -0
  135. package/dist/dev/runtime/diff.mjs.map +1 -0
  136. package/dist/dev/runtime/disposables.mjs +81 -0
  137. package/dist/dev/runtime/disposables.mjs.map +1 -0
  138. package/dist/dev/runtime/elementIntersectionObserver.mjs +80 -0
  139. package/dist/dev/runtime/elementIntersectionObserver.mjs.map +1 -0
  140. package/dist/dev/runtime/emit.mjs +36 -0
  141. package/dist/dev/runtime/emit.mjs.map +1 -0
  142. package/dist/dev/{base-CYkvI7w8.mjs → runtime/hooks/base.mjs} +3 -140
  143. package/dist/dev/runtime/hooks/base.mjs.map +1 -0
  144. package/dist/dev/runtime/hooks/register.mjs +92 -0
  145. package/dist/dev/runtime/hooks/register.mjs.map +1 -0
  146. package/dist/dev/runtime/hooks/vue.mjs +81 -0
  147. package/dist/dev/runtime/hooks/vue.mjs.map +1 -0
  148. package/dist/dev/runtime/internal.mjs +18 -0
  149. package/dist/dev/runtime/internal.mjs.map +1 -0
  150. package/dist/dev/runtime/intersectionObserver.mjs +46 -0
  151. package/dist/dev/runtime/intersectionObserver.mjs.map +1 -0
  152. package/dist/dev/runtime/layoutBridge.mjs +303 -0
  153. package/dist/dev/runtime/layoutBridge.mjs.map +1 -0
  154. package/dist/dev/runtime/layoutComponentMatcher.mjs +11 -0
  155. package/dist/dev/runtime/layoutComponentMatcher.mjs.map +1 -0
  156. package/dist/dev/runtime/nativeBridge.mjs +21 -0
  157. package/dist/dev/runtime/nativeBridge.mjs.map +1 -0
  158. package/dist/dev/runtime/noSetData.mjs +18 -0
  159. package/dist/dev/runtime/noSetData.mjs.map +1 -0
  160. package/dist/dev/runtime/pageEnvironment.mjs +100 -0
  161. package/dist/dev/runtime/pageEnvironment.mjs.map +1 -0
  162. package/dist/dev/runtime/pageLayout.mjs +71 -0
  163. package/dist/dev/runtime/pageLayout.mjs.map +1 -0
  164. package/dist/dev/runtime/pageScroll.mjs +110 -0
  165. package/dist/dev/runtime/pageScroll.mjs.map +1 -0
  166. package/dist/dev/runtime/platform.mjs +79 -0
  167. package/dist/dev/runtime/platform.mjs.map +1 -0
  168. package/dist/dev/runtime/provide.mjs +71 -0
  169. package/dist/dev/runtime/provide.mjs.map +1 -0
  170. package/dist/dev/runtime/provideContext.mjs +101 -0
  171. package/dist/dev/runtime/provideContext.mjs.map +1 -0
  172. package/dist/dev/runtime/provideStore.mjs +18 -0
  173. package/dist/dev/runtime/provideStore.mjs.map +1 -0
  174. package/dist/dev/runtime/pullDownRefresh.mjs +24 -0
  175. package/dist/dev/runtime/pullDownRefresh.mjs.map +1 -0
  176. package/dist/dev/runtime/register/app.mjs +161 -0
  177. package/dist/dev/runtime/register/app.mjs.map +1 -0
  178. package/dist/dev/runtime/register/component/features.mjs +43 -0
  179. package/dist/dev/runtime/register/component/features.mjs.map +1 -0
  180. package/dist/dev/runtime/register/component/lifecycle/optionalHooks.mjs +64 -0
  181. package/dist/dev/runtime/register/component/lifecycle/optionalHooks.mjs.map +1 -0
  182. package/dist/dev/runtime/register/component/lifecycle/platform.mjs +96 -0
  183. package/dist/dev/runtime/register/component/lifecycle/platform.mjs.map +1 -0
  184. package/dist/dev/runtime/register/component/lifecycle.mjs +122 -0
  185. package/dist/dev/runtime/register/component/lifecycle.mjs.map +1 -0
  186. package/dist/dev/runtime/register/component/methods.mjs +82 -0
  187. package/dist/dev/runtime/register/component/methods.mjs.map +1 -0
  188. package/dist/dev/runtime/register/component/options.mjs +204 -0
  189. package/dist/dev/runtime/register/component/options.mjs.map +1 -0
  190. package/dist/dev/runtime/register/component/props.mjs +218 -0
  191. package/dist/dev/runtime/register/component/props.mjs.map +1 -0
  192. package/dist/dev/runtime/register/component/registerDefinition.mjs +290 -0
  193. package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -0
  194. package/dist/dev/runtime/register/component.mjs +129 -0
  195. package/dist/dev/runtime/register/component.mjs.map +1 -0
  196. package/dist/dev/runtime/register/inline.mjs +145 -0
  197. package/dist/dev/runtime/register/inline.mjs.map +1 -0
  198. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs +53 -0
  199. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs.map +1 -0
  200. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs +34 -0
  201. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs.map +1 -0
  202. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +230 -0
  203. package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -0
  204. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +166 -0
  205. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -0
  206. package/dist/dev/runtime/register/runtimeInstance/utils.mjs +122 -0
  207. package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -0
  208. package/dist/dev/runtime/register/runtimeInstance.mjs +441 -0
  209. package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -0
  210. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs +95 -0
  211. package/dist/dev/runtime/register/setDataFrequencyWarning.mjs.map +1 -0
  212. package/dist/dev/runtime/register/setup.mjs +22 -0
  213. package/dist/dev/runtime/register/setup.mjs.map +1 -0
  214. package/dist/dev/runtime/register/snapshot.mjs +18 -0
  215. package/dist/dev/runtime/register/snapshot.mjs.map +1 -0
  216. package/dist/dev/runtime/register/watch.mjs +57 -0
  217. package/dist/dev/runtime/register/watch.mjs.map +1 -0
  218. package/dist/dev/runtime/scopedSlots.mjs +115 -0
  219. package/dist/dev/runtime/scopedSlots.mjs.map +1 -0
  220. package/dist/dev/runtime/selectorQuery.mjs +49 -0
  221. package/dist/dev/runtime/selectorQuery.mjs.map +1 -0
  222. package/dist/dev/runtime/setupTracking.mjs +59 -0
  223. package/dist/dev/runtime/setupTracking.mjs.map +1 -0
  224. package/dist/dev/{template-n_iVr0ey.mjs → runtime/template.mjs} +7 -4
  225. package/dist/dev/runtime/template.mjs.map +1 -0
  226. package/dist/dev/runtime/templateRefs/helpers.mjs +259 -0
  227. package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -0
  228. package/dist/dev/runtime/templateRefs.mjs +162 -0
  229. package/dist/dev/runtime/templateRefs.mjs.map +1 -0
  230. package/dist/dev/runtime/uniAppHost.mjs +119 -0
  231. package/dist/dev/runtime/uniAppHost.mjs.map +1 -0
  232. package/dist/dev/runtime/updatePerformance.mjs +41 -0
  233. package/dist/dev/runtime/updatePerformance.mjs.map +1 -0
  234. package/dist/dev/runtime/use.mjs +25 -0
  235. package/dist/dev/runtime/use.mjs.map +1 -0
  236. package/dist/dev/runtime/vueCompat/context.mjs +25 -0
  237. package/dist/dev/runtime/vueCompat/context.mjs.map +1 -0
  238. package/dist/dev/runtime/vueCompat/model.mjs +119 -0
  239. package/dist/dev/runtime/vueCompat/model.mjs.map +1 -0
  240. package/dist/dev/runtime/vueCompat/router.mjs +124 -0
  241. package/dist/dev/runtime/vueCompat/router.mjs.map +1 -0
  242. package/dist/dev/runtime/vueCompat/templateRef.mjs +37 -0
  243. package/dist/dev/runtime/vueCompat/templateRef.mjs.map +1 -0
  244. package/dist/dev/scheduler.mjs +75 -0
  245. package/dist/dev/scheduler.mjs.map +1 -0
  246. package/dist/dev/store/actions.mjs +40 -0
  247. package/dist/dev/store/actions.mjs.map +1 -0
  248. package/dist/dev/store/base.mjs +56 -0
  249. package/dist/dev/store/base.mjs.map +1 -0
  250. package/dist/dev/store/define/optionsStyle.mjs +125 -0
  251. package/dist/dev/store/define/optionsStyle.mjs.map +1 -0
  252. package/dist/dev/store/define/setupStyle.mjs +145 -0
  253. package/dist/dev/store/define/setupStyle.mjs.map +1 -0
  254. package/dist/dev/store/define/shared.mjs +38 -0
  255. package/dist/dev/store/define/shared.mjs.map +1 -0
  256. package/dist/dev/store/define.mjs +23 -0
  257. package/dist/dev/store/define.mjs.map +1 -0
  258. package/dist/dev/store/manager.mjs +21 -0
  259. package/dist/dev/store/manager.mjs.map +1 -0
  260. package/dist/dev/store/storeToRefs.mjs +29 -0
  261. package/dist/dev/store/storeToRefs.mjs.map +1 -0
  262. package/dist/dev/store/utils.mjs +49 -0
  263. package/dist/dev/store/utils.mjs.map +1 -0
  264. package/dist/dev/store.mjs +3 -1
  265. package/dist/dev/utils.mjs +16 -0
  266. package/dist/dev/utils.mjs.map +1 -0
  267. package/dist/dev/version.mjs +8 -0
  268. package/dist/dev/version.mjs.map +1 -0
  269. package/dist/dev/vue-demi.mjs +48 -168
  270. package/dist/dev/vue-demi.mjs.map +1 -1
  271. package/dist/index.d.mts +71 -7
  272. package/dist/index.mjs +1 -1
  273. package/dist/internal-reactivity.d.mts +16 -2
  274. package/dist/internal-reactivity.mjs +1 -1
  275. package/dist/internal-runtime.d.mts +35 -2
  276. package/dist/internal-runtime.mjs +1 -1
  277. package/dist/internal-template.d.mts +1 -1
  278. package/dist/internal-template.mjs +1 -1
  279. package/dist/jsx-runtime.d.mts +1 -1
  280. package/dist/macros/shared.d.mts +81 -0
  281. package/dist/macros.d.mts +70 -0
  282. package/dist/package.mjs +1 -0
  283. package/dist/reactivity/computed.d.mts +21 -0
  284. package/dist/reactivity/computed.mjs +1 -0
  285. package/dist/reactivity/core.d.mts +34 -0
  286. package/dist/reactivity/core.mjs +1 -0
  287. package/dist/reactivity/index.d.mts +15 -0
  288. package/dist/reactivity/reactive/mutation.d.mts +21 -0
  289. package/dist/reactivity/reactive/mutation.mjs +1 -0
  290. package/dist/reactivity/reactive/patch.d.mts +18 -0
  291. package/dist/reactivity/reactive/patch.mjs +1 -0
  292. package/dist/reactivity/reactive/patchState.mjs +1 -0
  293. package/dist/reactivity/reactive/shallow.d.mts +22 -0
  294. package/dist/reactivity/reactive/shallow.mjs +1 -0
  295. package/dist/reactivity/reactive/shared.d.mts +4 -0
  296. package/dist/reactivity/reactive/shared.mjs +1 -0
  297. package/dist/reactivity/reactive/state.mjs +1 -0
  298. package/dist/reactivity/reactive.d.mts +41 -0
  299. package/dist/reactivity/reactive.mjs +1 -0
  300. package/dist/reactivity/readonly.d.mts +27 -0
  301. package/dist/reactivity/readonly.mjs +1 -0
  302. package/dist/reactivity/ref.d.mts +27 -0
  303. package/dist/reactivity/ref.mjs +1 -0
  304. package/dist/reactivity/shallowRef.d.mts +19 -0
  305. package/dist/reactivity/shallowRef.mjs +1 -0
  306. package/dist/reactivity/toRefs.d.mts +43 -0
  307. package/dist/reactivity/toRefs.mjs +1 -0
  308. package/dist/reactivity/traverse.d.mts +8 -0
  309. package/dist/reactivity/traverse.mjs +1 -0
  310. package/dist/reactivity/watch/helpers.mjs +1 -0
  311. package/dist/reactivity/watch/types.d.mts +43 -0
  312. package/dist/reactivity/watch/types.mjs +1 -0
  313. package/dist/reactivity/watch.d.mts +21 -0
  314. package/dist/reactivity/watch.mjs +1 -0
  315. package/dist/router/backNavigation.mjs +1 -0
  316. package/dist/router/createRouter.d.mts +8 -0
  317. package/dist/router/createRouter.mjs +1 -0
  318. package/dist/router/instance.mjs +1 -0
  319. package/dist/router/navigationApi.mjs +1 -0
  320. package/dist/router/navigationCore.d.mts +6 -0
  321. package/dist/router/navigationCore.mjs +1 -0
  322. package/dist/router/navigationResult.mjs +1 -0
  323. package/dist/router/navigationTarget.mjs +1 -0
  324. package/dist/router/navigationTargetHelpers.mjs +1 -0
  325. package/dist/router/resolve.d.mts +6 -0
  326. package/dist/router/resolve.mjs +1 -0
  327. package/dist/router/routeRegistry.mjs +1 -0
  328. package/dist/router/routeSync.d.mts +1 -0
  329. package/dist/router/routeSync.mjs +1 -0
  330. package/dist/router/types.d.mts +163 -0
  331. package/dist/router/types.mjs +1 -0
  332. package/dist/router/useRoute.d.mts +19 -0
  333. package/dist/router/useRoute.mjs +1 -0
  334. package/dist/router/useRouter.d.mts +8 -0
  335. package/dist/router/useRouter.mjs +1 -0
  336. package/dist/router.d.mts +9 -204
  337. package/dist/router.mjs +1 -1
  338. package/dist/routerInternal/location.mjs +1 -0
  339. package/dist/routerInternal/matching.mjs +1 -0
  340. package/dist/routerInternal/params.mjs +1 -0
  341. package/dist/routerInternal/path.mjs +1 -0
  342. package/dist/routerInternal/query.d.mts +7 -0
  343. package/dist/routerInternal/query.mjs +1 -0
  344. package/dist/routerInternal/records.mjs +1 -0
  345. package/dist/routerInternal/recordsWarnings.mjs +1 -0
  346. package/dist/routerInternal/snapshots.mjs +1 -0
  347. package/dist/routerInternal/types.d.mts +9 -0
  348. package/dist/runtime/app/computed.mjs +1 -0
  349. package/dist/runtime/app/context.mjs +1 -0
  350. package/dist/runtime/app/diagnostics.mjs +1 -0
  351. package/dist/runtime/app/mount.mjs +1 -0
  352. package/dist/runtime/app/pending.d.mts +10 -0
  353. package/dist/runtime/app/pending.mjs +1 -0
  354. package/dist/runtime/app/setData/patchScheduler.mjs +1 -0
  355. package/dist/runtime/app/setData/payload.mjs +1 -0
  356. package/dist/runtime/app/setData/scheduler.mjs +1 -0
  357. package/dist/runtime/app/setData/snapshot.mjs +1 -0
  358. package/dist/runtime/app/setDataOptions.mjs +1 -0
  359. package/dist/runtime/app.d.mts +8 -0
  360. package/dist/runtime/app.mjs +1 -0
  361. package/dist/runtime/bindModel.mjs +1 -0
  362. package/dist/runtime/defaults.d.mts +11 -0
  363. package/dist/runtime/defaults.mjs +1 -0
  364. package/dist/runtime/define/initialComputed.mjs +1 -0
  365. package/dist/runtime/define/options.mjs +1 -0
  366. package/dist/runtime/define/optionsApi.mjs +1 -0
  367. package/dist/runtime/define/props.mjs +1 -0
  368. package/dist/runtime/define/scopedSlotOptions.mjs +1 -0
  369. package/dist/runtime/define/setupResult.mjs +1 -0
  370. package/dist/runtime/define.d.mts +105 -0
  371. package/dist/runtime/define.mjs +1 -0
  372. package/dist/runtime/diff.mjs +1 -0
  373. package/dist/runtime/disposables.d.mts +31 -0
  374. package/dist/runtime/disposables.mjs +1 -0
  375. package/dist/runtime/elementIntersectionObserver.d.mts +26 -0
  376. package/dist/runtime/elementIntersectionObserver.mjs +1 -0
  377. package/dist/runtime/emit.mjs +1 -0
  378. package/dist/runtime/hooks/base.d.mts +27 -0
  379. package/dist/runtime/hooks/base.mjs +1 -0
  380. package/dist/runtime/hooks/register.d.mts +30 -0
  381. package/dist/runtime/hooks/register.mjs +1 -0
  382. package/dist/runtime/hooks/vue.d.mts +53 -0
  383. package/dist/runtime/hooks/vue.mjs +1 -0
  384. package/dist/runtime/hooks.d.mts +4 -0
  385. package/dist/runtime/index.d.mts +47 -0
  386. package/dist/runtime/internal.mjs +1 -0
  387. package/dist/runtime/intersectionObserver.d.mts +14 -0
  388. package/dist/runtime/intersectionObserver.mjs +1 -0
  389. package/dist/runtime/layoutBridge.d.mts +59 -0
  390. package/dist/runtime/layoutBridge.mjs +1 -0
  391. package/dist/runtime/layoutComponentMatcher.mjs +1 -0
  392. package/dist/runtime/nativeBridge.mjs +1 -0
  393. package/dist/runtime/noSetData.d.mts +5 -0
  394. package/dist/runtime/noSetData.mjs +1 -0
  395. package/dist/runtime/pageEnvironment.d.mts +50 -0
  396. package/dist/runtime/pageEnvironment.mjs +1 -0
  397. package/dist/runtime/pageLayout.d.mts +26 -0
  398. package/dist/runtime/pageLayout.mjs +1 -0
  399. package/dist/runtime/pageScroll.d.mts +29 -0
  400. package/dist/runtime/pageScroll.mjs +1 -0
  401. package/dist/runtime/platform.mjs +1 -0
  402. package/dist/runtime/provide.d.mts +59 -0
  403. package/dist/runtime/provide.mjs +1 -0
  404. package/dist/runtime/provideContext.mjs +1 -0
  405. package/dist/runtime/provideStore.d.mts +7 -0
  406. package/dist/runtime/provideStore.mjs +1 -0
  407. package/dist/runtime/pullDownRefresh.d.mts +12 -0
  408. package/dist/runtime/pullDownRefresh.mjs +1 -0
  409. package/dist/runtime/register/app.d.mts +14 -0
  410. package/dist/runtime/register/app.mjs +1 -0
  411. package/dist/runtime/register/component/features.mjs +1 -0
  412. package/dist/runtime/register/component/lifecycle/optionalHooks.mjs +1 -0
  413. package/dist/runtime/register/component/lifecycle/platform.mjs +1 -0
  414. package/dist/runtime/register/component/lifecycle.mjs +1 -0
  415. package/dist/runtime/register/component/methods.mjs +1 -0
  416. package/dist/runtime/register/component/options.mjs +1 -0
  417. package/dist/runtime/register/component/props.mjs +1 -0
  418. package/dist/runtime/register/component/registerDefinition.mjs +1 -0
  419. package/dist/runtime/register/component.d.mts +15 -0
  420. package/dist/runtime/register/component.mjs +1 -0
  421. package/dist/runtime/register/inline.d.mts +15 -0
  422. package/dist/runtime/register/inline.mjs +1 -0
  423. package/dist/runtime/register/runtimeInstance/methodBridge.mjs +1 -0
  424. package/dist/runtime/register/runtimeInstance/provideContext.mjs +1 -0
  425. package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -0
  426. package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -0
  427. package/dist/runtime/register/runtimeInstance/utils.mjs +1 -0
  428. package/dist/runtime/register/runtimeInstance.d.mts +26 -0
  429. package/dist/runtime/register/runtimeInstance.mjs +1 -0
  430. package/dist/runtime/register/setDataFrequencyWarning.mjs +1 -0
  431. package/dist/runtime/register/setup.d.mts +11 -0
  432. package/dist/runtime/register/setup.mjs +1 -0
  433. package/dist/runtime/register/snapshot.mjs +1 -0
  434. package/dist/runtime/register/watch.d.mts +12 -0
  435. package/dist/runtime/register/watch.mjs +1 -0
  436. package/dist/runtime/register.d.mts +5 -0
  437. package/dist/runtime/scopedSlots.mjs +1 -0
  438. package/dist/runtime/selectorQuery.d.mts +54 -0
  439. package/dist/runtime/selectorQuery.mjs +1 -0
  440. package/dist/runtime/setupTracking.mjs +1 -0
  441. package/dist/{template-DE8e5dj_.d.mts → runtime/template.d.mts} +1 -1
  442. package/dist/runtime/template.mjs +1 -0
  443. package/dist/runtime/templateRefTypes.d.mts +7 -0
  444. package/dist/runtime/templateRefs/helpers.mjs +1 -0
  445. package/dist/runtime/templateRefs.d.mts +11 -0
  446. package/dist/runtime/templateRefs.mjs +1 -0
  447. package/dist/runtime/types/core.d.mts +35 -0
  448. package/dist/runtime/types/miniprogram.d.mts +80 -0
  449. package/dist/runtime/types/miniprogramHost.d.mts +44 -0
  450. package/dist/runtime/types/miniprogramHostSources.d.mts +112 -0
  451. package/dist/runtime/types/options.d.mts +136 -0
  452. package/dist/runtime/types/props/propTypes.d.mts +79 -0
  453. package/dist/runtime/types/props/router.d.mts +51 -0
  454. package/dist/runtime/types/props/setup.d.mts +96 -0
  455. package/dist/runtime/types/props.d.mts +4 -0
  456. package/dist/runtime/types/runtime.d.mts +59 -0
  457. package/dist/runtime/types/setData.d.mts +220 -0
  458. package/dist/runtime/types.d.mts +28 -0
  459. package/dist/runtime/uniAppHost.d.mts +8 -0
  460. package/dist/runtime/uniAppHost.mjs +1 -0
  461. package/dist/runtime/updatePerformance.d.mts +13 -0
  462. package/dist/runtime/updatePerformance.mjs +1 -0
  463. package/dist/runtime/use.d.mts +13 -0
  464. package/dist/runtime/use.mjs +1 -0
  465. package/dist/runtime/vueCompat/context.d.mts +8 -0
  466. package/dist/runtime/vueCompat/context.mjs +1 -0
  467. package/dist/runtime/vueCompat/model.d.mts +30 -0
  468. package/dist/runtime/vueCompat/model.mjs +1 -0
  469. package/dist/runtime/vueCompat/router.d.mts +28 -0
  470. package/dist/runtime/vueCompat/router.mjs +1 -0
  471. package/dist/runtime/vueCompat/templateRef.d.mts +9 -0
  472. package/dist/runtime/vueCompat/templateRef.mjs +1 -0
  473. package/dist/runtime/vueCompat.d.mts +5 -0
  474. package/dist/scheduler.d.mts +4 -0
  475. package/dist/scheduler.mjs +1 -0
  476. package/dist/store/actions.mjs +1 -0
  477. package/dist/store/base.mjs +1 -0
  478. package/dist/store/define/optionsStyle.mjs +1 -0
  479. package/dist/store/define/setupStyle.mjs +1 -0
  480. package/dist/store/define/shared.mjs +1 -0
  481. package/dist/store/define.d.mts +26 -0
  482. package/dist/store/define.mjs +1 -0
  483. package/dist/store/manager.d.mts +8 -0
  484. package/dist/store/manager.mjs +1 -0
  485. package/dist/store/storeToRefs.d.mts +13 -0
  486. package/dist/store/storeToRefs.mjs +1 -0
  487. package/dist/store/types.d.mts +70 -0
  488. package/dist/store/utils.mjs +1 -0
  489. package/dist/store.d.mts +4 -1
  490. package/dist/store.mjs +1 -1
  491. package/dist/utils.mjs +1 -0
  492. package/dist/version.d.mts +4 -0
  493. package/dist/version.mjs +1 -0
  494. package/dist/vue-augment.d.mts +6 -0
  495. package/dist/vue-demi.d.mts +68 -10
  496. package/dist/vue-demi.mjs +1 -1
  497. package/dist/vue-types.d.mts +18 -0
  498. package/dist/weappIntrinsicElements/base.d.mts +22 -0
  499. package/dist/weappIntrinsicElements/elements/ad-custom.d.mts +13 -0
  500. package/dist/weappIntrinsicElements/elements/ad.d.mts +16 -0
  501. package/dist/weappIntrinsicElements/elements/audio.d.mts +20 -0
  502. package/dist/weappIntrinsicElements/elements/block.d.mts +8 -0
  503. package/dist/weappIntrinsicElements/elements/button.d.mts +40 -0
  504. package/dist/weappIntrinsicElements/elements/camera.d.mts +18 -0
  505. package/dist/weappIntrinsicElements/elements/canvas.d.mts +18 -0
  506. package/dist/weappIntrinsicElements/elements/checkbox-group.d.mts +13 -0
  507. package/dist/weappIntrinsicElements/elements/checkbox.d.mts +13 -0
  508. package/dist/weappIntrinsicElements/elements/cover-image.d.mts +10 -0
  509. package/dist/weappIntrinsicElements/elements/cover-view.d.mts +10 -0
  510. package/dist/weappIntrinsicElements/elements/editor.d.mts +22 -0
  511. package/dist/weappIntrinsicElements/elements/form.d.mts +16 -0
  512. package/dist/weappIntrinsicElements/elements/functional-page-navigator.d.mts +15 -0
  513. package/dist/weappIntrinsicElements/elements/icon.d.mts +12 -0
  514. package/dist/weappIntrinsicElements/elements/image.d.mts +18 -0
  515. package/dist/weappIntrinsicElements/elements/import.d.mts +10 -0
  516. package/dist/weappIntrinsicElements/elements/include.d.mts +10 -0
  517. package/dist/weappIntrinsicElements/elements/input.d.mts +47 -0
  518. package/dist/weappIntrinsicElements/elements/keyboard-accessory.d.mts +8 -0
  519. package/dist/weappIntrinsicElements/elements/label.d.mts +10 -0
  520. package/dist/weappIntrinsicElements/elements/live-player.d.mts +35 -0
  521. package/dist/weappIntrinsicElements/elements/live-pusher.d.mts +57 -0
  522. package/dist/weappIntrinsicElements/elements/map.d.mts +105 -0
  523. package/dist/weappIntrinsicElements/elements/match-media.d.mts +16 -0
  524. package/dist/weappIntrinsicElements/elements/movable-area.d.mts +26 -0
  525. package/dist/weappIntrinsicElements/elements/movable-view.d.mts +26 -0
  526. package/dist/weappIntrinsicElements/elements/navigation-bar.d.mts +15 -0
  527. package/dist/weappIntrinsicElements/elements/navigator.d.mts +25 -0
  528. package/dist/weappIntrinsicElements/elements/official-account.d.mts +13 -0
  529. package/dist/weappIntrinsicElements/elements/open-data.d.mts +15 -0
  530. package/dist/weappIntrinsicElements/elements/page-container.d.mts +25 -0
  531. package/dist/weappIntrinsicElements/elements/page-meta.d.mts +23 -0
  532. package/dist/weappIntrinsicElements/elements/picker-view-column.d.mts +18 -0
  533. package/dist/weappIntrinsicElements/elements/picker-view.d.mts +18 -0
  534. package/dist/weappIntrinsicElements/elements/picker.d.mts +23 -0
  535. package/dist/weappIntrinsicElements/elements/progress.d.mts +21 -0
  536. package/dist/weappIntrinsicElements/elements/radio-group.d.mts +13 -0
  537. package/dist/weappIntrinsicElements/elements/radio.d.mts +13 -0
  538. package/dist/weappIntrinsicElements/elements/rich-text.d.mts +17 -0
  539. package/dist/weappIntrinsicElements/elements/scroll-view.d.mts +68 -0
  540. package/dist/weappIntrinsicElements/elements/share-element.d.mts +18 -0
  541. package/dist/weappIntrinsicElements/elements/slider.d.mts +23 -0
  542. package/dist/weappIntrinsicElements/elements/slot.d.mts +10 -0
  543. package/dist/weappIntrinsicElements/elements/swiper-item.d.mts +42 -0
  544. package/dist/weappIntrinsicElements/elements/swiper.d.mts +42 -0
  545. package/dist/weappIntrinsicElements/elements/switch.d.mts +14 -0
  546. package/dist/weappIntrinsicElements/elements/template.d.mts +12 -0
  547. package/dist/weappIntrinsicElements/elements/text.d.mts +15 -0
  548. package/dist/weappIntrinsicElements/elements/textarea.d.mts +40 -0
  549. package/dist/weappIntrinsicElements/elements/video.d.mts +71 -0
  550. package/dist/weappIntrinsicElements/elements/view.d.mts +13 -0
  551. package/dist/weappIntrinsicElements/elements/voip-room.d.mts +14 -0
  552. package/dist/weappIntrinsicElements/elements/web-view.d.mts +13 -0
  553. package/dist/weappIntrinsicElements.d.mts +153 -0
  554. package/package.json +6 -6
  555. package/dist/base-BxKbbKVO.mjs +0 -1
  556. package/dist/computed-Xoi9XEUx.mjs +0 -1
  557. package/dist/dev/base-CYkvI7w8.mjs.map +0 -1
  558. package/dist/dev/computed-BxRsUJgi.mjs.map +0 -1
  559. package/dist/dev/ref-DRZC3Kc5.mjs +0 -695
  560. package/dist/dev/ref-DRZC3Kc5.mjs.map +0 -1
  561. package/dist/dev/rolldown-runtime-BUUfjzRC.mjs +0 -36
  562. package/dist/dev/router-D0JQfgyN.mjs +0 -754
  563. package/dist/dev/router-D0JQfgyN.mjs.map +0 -1
  564. package/dist/dev/router.mjs.map +0 -1
  565. package/dist/dev/store-HNsiQJ4d.mjs +0 -479
  566. package/dist/dev/store-HNsiQJ4d.mjs.map +0 -1
  567. package/dist/dev/template-n_iVr0ey.mjs.map +0 -1
  568. package/dist/dev/templateRef-BLnYcEH0.mjs +0 -6439
  569. package/dist/dev/templateRef-BLnYcEH0.mjs.map +0 -1
  570. package/dist/dev/toRefs-D06VmFK2.mjs.map +0 -1
  571. package/dist/dev/watch-jrgL5ald.mjs +0 -445
  572. package/dist/dev/watch-jrgL5ald.mjs.map +0 -1
  573. package/dist/index-BiHILcmb.d.mts +0 -1215
  574. package/dist/index-CCET_bCY.d.mts +0 -111
  575. package/dist/ref-D37CknuD.mjs +0 -1
  576. package/dist/rolldown-runtime-CenpyGzJ.mjs +0 -1
  577. package/dist/router-D4W4lEXM.mjs +0 -1
  578. package/dist/store-eHrHBQiv.mjs +0 -1
  579. package/dist/template-CNzlwH-E.mjs +0 -1
  580. package/dist/templateRef-DOTHWzZ5.mjs +0 -1
  581. package/dist/toRefs-CoytPyo0.mjs +0 -1
  582. package/dist/traverse-B4Ez44Gd.d.mts +0 -108
  583. package/dist/vue-types-B3N60cGV.d.mts +0 -757
  584. package/dist/watch-Bbd-gmEg.mjs +0 -1
  585. package/dist/weappIntrinsicElements-BgDtC53_.d.mts +0 -1257
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount.mjs","names":[],"sources":["../../../../src/runtime/app/mount.ts"],"sourcesContent":["import type { MutationRecord, WatchOptions, WatchStopHandle } from '../../reactivity'\nimport type {\n AppConfig,\n ComputedDefinitions,\n CreateAppOptions,\n ExtractComputed,\n MethodDefinitions,\n MiniProgramAdapter,\n RuntimeInstance,\n SetDataDebugInfo,\n} from '../types'\nimport {\n WEVU_ATTRS_KEY,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n WEVU_PROPS_KEY,\n WEVU_SETUP_STATE_KEY,\n} from '@weapp-core/constants'\nimport { addMutationRecorder, effect, isReactive, prelinkReactiveTree, reactive, removeMutationRecorder, shallowReactive, stop, toRaw, touchReactive, watch } from '../../reactivity'\nimport { clearPatchIndices } from '../../reactivity/reactive'\nimport { queueJob } from '../../scheduler'\nimport { hasOwn } from '../../utils'\nimport { createBindModel } from '../bindModel'\nimport { hasTrackableSetupBinding, touchSetupBinding } from '../setupTracking'\nimport { createRuntimeContext } from './context'\nimport { createDiagnosticsLogger } from './diagnostics'\nimport { createSetDataScheduler } from './setData/scheduler'\nimport { resolveSetDataOptions } from './setDataOptions'\n\nfunction createWatchStopHandle(cleanup: () => void, baseHandle?: WatchStopHandle): WatchStopHandle {\n const stopHandle = (() => {\n cleanup()\n }) as WatchStopHandle\n stopHandle.stop = () => stopHandle()\n stopHandle.pause = () => {\n baseHandle?.pause?.()\n }\n stopHandle.resume = () => {\n baseHandle?.resume?.()\n }\n return stopHandle\n}\n\ntype RuntimeInstanceWithSetupMethodsVersion<\n D extends object,\n C extends ComputedDefinitions,\n M extends MethodDefinitions,\n> = RuntimeInstance<D, C, M> & {\n __wevu_touchSetupMethodsVersion?: () => void\n __wevu_flushSetupSnapshotSync?: () => void\n __wevu_cloneLatestSnapshot?: () => Record<string, any>\n __wevu_trackSetupReactiveKey?: (key: string) => void\n}\n\nfunction resolveDataOption<D extends object>(data: CreateAppOptions<D, any, any>['data']): D {\n if (typeof data === 'function') {\n return data()\n }\n return (data ?? {}) as D\n}\n\nexport function createRuntimeMount<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: {\n data: CreateAppOptions<D, C, M>['data']\n resolvedComputed: C\n resolvedMethods: M\n appConfig: AppConfig\n setDataOptions: CreateAppOptions<D, C, M>['setData']\n}) {\n const {\n data,\n resolvedComputed,\n resolvedMethods,\n appConfig,\n setDataOptions,\n } = options\n\n return (adapter?: MiniProgramAdapter): RuntimeInstance<D, C, M> => {\n const rawState = resolveDataOption(data)\n const adapterInitialProps = (adapter as any)?.__wevu_initialProps\n // 预置 props 容器,确保编译器生成的 this.__wevuProps 回退表达式\n // 在 computed 首次求值阶段即可建立响应式依赖。\n if (rawState && typeof rawState === 'object' && !hasOwn(rawState as object, WEVU_PROPS_KEY)) {\n try {\n Object.defineProperty(rawState as object, WEVU_PROPS_KEY, {\n value: shallowReactive(Object.create(null)),\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n // 若 data 返回对象不可扩展,则跳过预置,后续由 mount 阶段兜底注入。\n }\n }\n const rawProps = rawState && typeof rawState === 'object'\n ? (rawState as any)[WEVU_PROPS_KEY]\n : undefined\n if (rawProps && typeof rawProps === 'object' && adapterInitialProps && typeof adapterInitialProps === 'object') {\n Object.assign(rawProps, adapterInitialProps)\n }\n const state = reactive(rawState)\n const setupState = reactive(Object.create(null))\n const adapterSnapshotOmitKeys = (adapter as any)?.__wevu_snapshotOmitKeys\n const deferInitialSnapshot = Boolean((adapter as any)?.__wevu_deferInitialSnapshot)\n const adapterInitialSnapshot = (adapter as any)?.__wevu_initialSnapshot\n const adapterInitialState = (adapter as any)?.__wevu_initialState\n const snapshotOmitKeys = new Set<string>(\n adapterSnapshotOmitKeys instanceof Set\n ? adapterSnapshotOmitKeys\n : Array.isArray(adapterSnapshotOmitKeys)\n ? adapterSnapshotOmitKeys\n : [],\n )\n if (rawState && typeof rawState === 'object' && !hasOwn(rawState as object, WEVU_SETUP_STATE_KEY)) {\n try {\n Object.defineProperty(rawState as object, WEVU_SETUP_STATE_KEY, {\n value: setupState,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n // 若 data 返回对象不可扩展,则跳过预置,后续由注册阶段兜底注入。\n }\n }\n if (rawState && typeof rawState === 'object' && adapterInitialState && typeof adapterInitialState === 'object') {\n for (const [key, value] of Object.entries(adapterInitialState as Record<string, unknown>)) {\n if (snapshotOmitKeys.has(key)) {\n continue\n }\n ;(rawState as Record<string, unknown>)[key] = value\n }\n }\n const computedDefs = resolvedComputed\n const methodDefs = resolvedMethods\n\n let mounted = true\n const stopHandles: WatchStopHandle[] = []\n const trackedSetupReactiveKeys = new Set<string>()\n Object.keys(state as any).forEach((key) => {\n const value = (state as any)[key]\n if (hasTrackableSetupBinding(value)) {\n trackedSetupReactiveKeys.add(key)\n }\n })\n\n const {\n includeComputed,\n setDataStrategy,\n maxPatchKeys,\n maxPayloadBytes,\n mergeSiblingThreshold,\n mergeSiblingMaxInflationRatio,\n mergeSiblingMaxParentBytes,\n mergeSiblingSkipArray,\n computedCompare,\n computedCompareMaxDepth,\n computedCompareMaxKeys,\n prelinkMaxDepth,\n prelinkMaxKeys,\n debug,\n diagnostics,\n loopWarning,\n debugWhen,\n debugSampleRate,\n elevateTopKeyThreshold,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n shouldIncludeKey,\n } = resolveSetDataOptions(setDataOptions)\n const diagnosticsLogger = createDiagnosticsLogger(diagnostics)\n const loopWarningLogger = diagnostics === 'off' && loopWarning\n ? createDiagnosticsLogger('fallback')\n : undefined\n const mergedDebug = (debug || diagnosticsLogger || loopWarningLogger)\n ? (info: SetDataDebugInfo) => {\n if (typeof debug === 'function') {\n debug(info)\n }\n diagnosticsLogger?.(info)\n if (info.reason === 'loopWarning') {\n loopWarningLogger?.(info)\n }\n }\n : undefined\n const mergedDebugWhen = diagnostics === 'always'\n ? 'always'\n : debugWhen\n\n const {\n boundMethods,\n computedRefs,\n computedSetters,\n dirtyComputedKeys,\n computedProxy,\n publicInstance,\n touchSetupMethodsVersion,\n } = createRuntimeContext({\n state,\n setupState: setupState as Record<string, any>,\n computedDefs,\n methodDefs,\n appConfig,\n includeComputed,\n setDataStrategy,\n })\n\n const currentAdapter = adapter ?? { setData: () => {} }\n const targetLabel = (currentAdapter as any).__wevu_targetLabel as string | undefined\n const stateRootRaw = toRaw(state as any) as object\n let tracker: ReturnType<typeof effect> | undefined\n const scheduler = createSetDataScheduler({\n state: state as any,\n setupState: setupState as any,\n snapshotOmitKeys,\n computedRefs,\n dirtyComputedKeys,\n includeComputed,\n setDataStrategy,\n computedCompare,\n computedCompareMaxDepth,\n computedCompareMaxKeys,\n currentAdapter,\n shouldIncludeKey,\n maxPatchKeys,\n maxPayloadBytes,\n mergeSiblingThreshold,\n mergeSiblingMaxInflationRatio,\n mergeSiblingMaxParentBytes,\n mergeSiblingSkipArray,\n elevateTopKeyThreshold,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n debug: mergedDebug,\n debugWhen: mergedDebugWhen,\n debugSampleRate,\n loopWarning,\n targetLabel,\n runTracker: () => tracker?.(),\n isMounted: () => mounted,\n initialSnapshot: adapterInitialSnapshot && typeof adapterInitialSnapshot === 'object'\n ? adapterInitialSnapshot\n : undefined,\n initialState: adapterInitialState && typeof adapterInitialState === 'object'\n ? adapterInitialState\n : undefined,\n })\n const job = () => scheduler.job(stateRootRaw)\n const mutationRecorder = (record: MutationRecord) => scheduler.mutationRecorder(record, stateRootRaw)\n\n tracker = effect(\n () => {\n // 通过根版本信号跟踪任意状态变化\n touchReactive(state as any)\n // __wevuProps / __wevuAttrs 是非枚举属性,需显式跟踪,\n // 否则 props/attrs 更新不会触发 setData 调度。\n const runtimeProps = (state as any)[WEVU_PROPS_KEY]\n if (isReactive(runtimeProps)) {\n touchReactive(runtimeProps as any)\n }\n const runtimeAttrs = (state as any)[WEVU_ATTRS_KEY]\n if (isReactive(runtimeAttrs)) {\n touchReactive(runtimeAttrs as any)\n }\n // 在 setup 返回的 ref/computedRef 变更不会提升 reactive 根版本:\n // 仅跟踪这些明确注册过的键,避免每轮 flush 扫描整份 state。\n trackedSetupReactiveKeys.forEach((key) => {\n const v = (setupState as any)[key] ?? (state as any)[key]\n // setup 返回的组合式对象常常是“普通对象 + 内含 refs/reactive”,\n // 这里递归触达内部响应式源,确保异步更新也能继续驱动 setData。\n touchSetupBinding(v)\n })\n },\n {\n lazy: true,\n scheduler: () => queueJob(job),\n },\n )\n\n if (!deferInitialSnapshot) {\n job()\n }\n\n stopHandles.push(createWatchStopHandle(() => stop(tracker)))\n if (setDataStrategy === 'patch') {\n prelinkReactiveTree(state as any, { shouldIncludeTopKey: shouldIncludeKey, maxDepth: prelinkMaxDepth, maxKeys: prelinkMaxKeys })\n addMutationRecorder(mutationRecorder)\n stopHandles.push(createWatchStopHandle(() => removeMutationRecorder(mutationRecorder)))\n stopHandles.push(createWatchStopHandle(() => clearPatchIndices(state as any)))\n }\n\n function registerWatch<T>(\n source: (() => T) | Record<string, any>,\n cb: (value: T, oldValue: T) => void,\n watchOptions?: WatchOptions,\n ): WatchStopHandle {\n const stopHandle = watch(source as any, (value: T, oldValue: T) => cb(value, oldValue), watchOptions)\n stopHandles.push(stopHandle)\n return createWatchStopHandle(() => {\n stopHandle()\n const index = stopHandles.indexOf(stopHandle)\n if (index >= 0) {\n stopHandles.splice(index, 1)\n }\n }, stopHandle)\n }\n\n const bindModel = createBindModel(\n publicInstance as any,\n state as any,\n computedRefs,\n computedSetters,\n setupState as Record<string, any>,\n )\n\n const unmount = () => {\n if (!mounted) {\n return\n }\n mounted = false\n stopHandles.forEach((handle) => {\n try {\n handle()\n }\n catch {\n // 卸载阶段忽略 stop 抛错,确保其余清理继续\n }\n })\n stopHandles.length = 0\n }\n\n const runtimeInstance: RuntimeInstance<D, C, M> = {\n get state() {\n return state\n },\n get setupState() {\n return setupState as Record<string, any>\n },\n get proxy() {\n return publicInstance\n },\n get methods() {\n return boundMethods\n },\n get computed() {\n return computedProxy as Readonly<ExtractComputed<C>>\n },\n get adapter() {\n return currentAdapter\n },\n bindModel,\n watch: registerWatch,\n snapshot: () => scheduler.snapshot(),\n unmount,\n }\n\n try {\n Object.defineProperty(runtimeInstance, '__wevu_touchSetupMethodsVersion', {\n value: touchSetupMethodsVersion,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(runtimeInstance as RuntimeInstanceWithSetupMethodsVersion<D, C, M>).__wevu_touchSetupMethodsVersion = touchSetupMethodsVersion\n }\n\n try {\n Object.defineProperty(runtimeInstance, '__wevu_flushSetupSnapshotSync', {\n value: job,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(runtimeInstance as RuntimeInstanceWithSetupMethodsVersion<D, C, M>).__wevu_flushSetupSnapshotSync = job\n }\n\n try {\n Object.defineProperty(runtimeInstance, '__wevu_cloneLatestSnapshot', {\n value: scheduler.cloneLatestSnapshot,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(runtimeInstance as RuntimeInstanceWithSetupMethodsVersion<D, C, M>).__wevu_cloneLatestSnapshot = scheduler.cloneLatestSnapshot\n }\n\n try {\n Object.defineProperty(runtimeInstance, '__wevu_trackSetupReactiveKey', {\n value: (key: string) => {\n trackedSetupReactiveKeys.add(key)\n },\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(runtimeInstance as RuntimeInstanceWithSetupMethodsVersion<D, C, M>).__wevu_trackSetupReactiveKey = (key: string) => {\n trackedSetupReactiveKeys.add(key)\n }\n }\n\n try {\n Object.defineProperty(runtimeInstance, WEVU_PROPS_DERIVED_KEYS_KEY, {\n value: snapshotOmitKeys,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(runtimeInstance as any)[WEVU_PROPS_DERIVED_KEYS_KEY] = snapshotOmitKeys\n }\n\n return runtimeInstance\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ //#region src/runtime/app/pending.ts
2
+ let pendingRuntimeAppRegistration;
3
+ function setPendingRuntimeAppRegistration(registration) {
4
+ pendingRuntimeAppRegistration = registration;
5
+ }
6
+ function takePendingRuntimeAppRegistration() {
7
+ const registration = pendingRuntimeAppRegistration;
8
+ pendingRuntimeAppRegistration = void 0;
9
+ return registration;
10
+ }
11
+
12
+ //#endregion
13
+ export { setPendingRuntimeAppRegistration, takePendingRuntimeAppRegistration };
14
+ //# sourceMappingURL=pending.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.mjs","names":[],"sources":["../../../../src/runtime/app/pending.ts"],"sourcesContent":["import type { RuntimeApp } from '../types'\n\nexport interface PendingRuntimeAppRegistration {\n app: RuntimeApp<any, any, any>\n register: () => void\n}\n\nlet pendingRuntimeAppRegistration: PendingRuntimeAppRegistration | undefined\n\nexport function setPendingRuntimeAppRegistration(registration: PendingRuntimeAppRegistration): void {\n pendingRuntimeAppRegistration = registration\n}\n\nexport function takePendingRuntimeAppRegistration(): PendingRuntimeAppRegistration | undefined {\n const registration = pendingRuntimeAppRegistration\n pendingRuntimeAppRegistration = undefined\n return registration\n}\n"],"mappings":";AAOA,IAAI;AAEJ,SAAgB,iCAAiC,cAAmD;CAClG,gCAAgC;AAClC;AAEA,SAAgB,oCAA+E;CAC7F,MAAM,eAAe;CACrB,gCAAgC;CAChC,OAAO;AACT"}
@@ -0,0 +1,158 @@
1
+ import { toPlain } from "../../diff.mjs";
2
+ import { checkPayloadSize, collapsePayload, mergeSiblingPayload } from "./payload.mjs";
3
+ import { applySnapshotUpdate, cloneSnapshotValue, isDeepEqualValue, isShallowEqualValue, normalizeSetDataValue } from "./snapshot.mjs";
4
+
5
+ //#region src/runtime/app/setData/patchScheduler.ts
6
+ function runPatchUpdate(options) {
7
+ const { state, computedRefs, dirtyComputedKeys, includeComputed, computedCompare, computedCompareMaxDepth, computedCompareMaxKeys, currentAdapter, shouldIncludeKey, maxPatchKeys, maxPayloadBytes, mergeSiblingThreshold, mergeSiblingMaxInflationRatio, mergeSiblingMaxParentBytes, mergeSiblingSkipArray, elevateTopKeyThreshold, toPlainMaxDepth, toPlainMaxKeys, includeFunctions = false, functionPaths, plainCache, plainCacheEligibility, pendingPatches, fallbackTopKeys, latestSnapshot, latestComputedSnapshot, needsFullSnapshot, emitDebug, runDiffUpdate } = options;
8
+ if (pendingPatches.size > maxPatchKeys) {
9
+ needsFullSnapshot.value = true;
10
+ const pendingCount = pendingPatches.size;
11
+ pendingPatches.clear();
12
+ dirtyComputedKeys.clear();
13
+ emitDebug({
14
+ mode: "diff",
15
+ reason: "maxPatchKeys",
16
+ pendingPatchKeys: pendingCount,
17
+ payloadKeys: 0
18
+ });
19
+ return runDiffUpdate("maxPatchKeys");
20
+ }
21
+ const seen = /* @__PURE__ */ new WeakMap();
22
+ const plainByPath = /* @__PURE__ */ new Map();
23
+ const payload = Object.create(null);
24
+ const patchEntriesRaw = [...pendingPatches.entries()];
25
+ if (Number.isFinite(elevateTopKeyThreshold) && elevateTopKeyThreshold > 0) {
26
+ const counts = /* @__PURE__ */ new Map();
27
+ for (const [path] of patchEntriesRaw) {
28
+ var _counts$get;
29
+ const top = path.split(".", 1)[0];
30
+ counts.set(top, ((_counts$get = counts.get(top)) !== null && _counts$get !== void 0 ? _counts$get : 0) + 1);
31
+ }
32
+ for (const [top, count] of counts) if (count >= elevateTopKeyThreshold) fallbackTopKeys.add(top);
33
+ }
34
+ const patchEntries = patchEntriesRaw.filter(([path]) => {
35
+ for (const topKey of fallbackTopKeys) if (path === topKey || path.startsWith(`${topKey}.`)) return false;
36
+ return true;
37
+ });
38
+ const entryMap = new Map(patchEntries);
39
+ pendingPatches.clear();
40
+ const getStateValueByPath = (path) => {
41
+ const segments = path.split(".").filter(Boolean);
42
+ let current = state;
43
+ for (const seg of segments) {
44
+ if (current == null) return current;
45
+ current = current[seg];
46
+ }
47
+ return current;
48
+ };
49
+ const getPlainByPath = (path) => {
50
+ if (plainByPath.has(path)) return plainByPath.get(path);
51
+ const value = normalizeSetDataValue(toPlain(getStateValueByPath(path), seen, {
52
+ cache: plainCache,
53
+ cacheEligibility: plainCacheEligibility,
54
+ maxDepth: toPlainMaxDepth,
55
+ maxKeys: toPlainMaxKeys,
56
+ includeFunctions,
57
+ functionPaths,
58
+ _path: path
59
+ }));
60
+ plainByPath.set(path, value);
61
+ return value;
62
+ };
63
+ if (fallbackTopKeys.size) {
64
+ for (const topKey of fallbackTopKeys) {
65
+ if (!shouldIncludeKey(topKey)) continue;
66
+ payload[topKey] = getPlainByPath(topKey);
67
+ entryMap.set(topKey, {
68
+ kind: "property",
69
+ op: "set"
70
+ });
71
+ }
72
+ fallbackTopKeys.clear();
73
+ }
74
+ for (const [path, entry] of patchEntries) {
75
+ if ((entry.kind === "array" ? "set" : entry.op) === "delete") {
76
+ payload[path] = null;
77
+ continue;
78
+ }
79
+ payload[path] = getPlainByPath(path);
80
+ }
81
+ let computedDirtyProcessed = 0;
82
+ if (includeComputed && dirtyComputedKeys.size) {
83
+ const computedPatch = Object.create(null);
84
+ const keys = [...dirtyComputedKeys];
85
+ dirtyComputedKeys.clear();
86
+ computedDirtyProcessed = keys.length;
87
+ for (const key of keys) {
88
+ if (!shouldIncludeKey(key)) continue;
89
+ const nextValue = toPlain(computedRefs[key].value, seen, {
90
+ cache: plainCache,
91
+ cacheEligibility: plainCacheEligibility,
92
+ maxDepth: toPlainMaxDepth,
93
+ maxKeys: toPlainMaxKeys,
94
+ includeFunctions,
95
+ functionPaths,
96
+ _path: key
97
+ });
98
+ const prevValue = latestComputedSnapshot[key];
99
+ if (computedCompare === "deep" ? isDeepEqualValue(prevValue, nextValue, computedCompareMaxDepth, { keys: computedCompareMaxKeys }) : computedCompare === "shallow" ? isShallowEqualValue(prevValue, nextValue) : Object.is(prevValue, nextValue)) continue;
100
+ computedPatch[key] = normalizeSetDataValue(nextValue);
101
+ latestComputedSnapshot[key] = cloneSnapshotValue(nextValue);
102
+ }
103
+ Object.assign(payload, computedPatch);
104
+ }
105
+ let collapsedPayload = collapsePayload(payload);
106
+ let mergedSiblingParents = 0;
107
+ if (mergeSiblingThreshold) {
108
+ const mergedResult = mergeSiblingPayload({
109
+ input: collapsedPayload,
110
+ entryMap,
111
+ getPlainByPath,
112
+ mergeSiblingThreshold,
113
+ mergeSiblingSkipArray,
114
+ mergeSiblingMaxParentBytes,
115
+ mergeSiblingMaxInflationRatio
116
+ });
117
+ mergedSiblingParents = mergedResult.merged;
118
+ collapsedPayload = collapsePayload(mergedResult.out);
119
+ }
120
+ const sizeCheck = checkPayloadSize(collapsedPayload, maxPayloadBytes);
121
+ const shouldFallback = sizeCheck.fallback;
122
+ emitDebug({
123
+ mode: shouldFallback ? "diff" : "patch",
124
+ reason: shouldFallback ? "maxPayloadBytes" : "patch",
125
+ pendingPatchKeys: patchEntries.length,
126
+ payloadKeys: Object.keys(collapsedPayload).length,
127
+ mergedSiblingParents: mergedSiblingParents || void 0,
128
+ computedDirtyKeys: computedDirtyProcessed || void 0,
129
+ estimatedBytes: sizeCheck.estimatedBytes,
130
+ bytes: sizeCheck.bytes
131
+ });
132
+ if (shouldFallback) {
133
+ needsFullSnapshot.value = true;
134
+ pendingPatches.clear();
135
+ dirtyComputedKeys.clear();
136
+ return runDiffUpdate("maxPayloadBytes");
137
+ }
138
+ if (!Object.keys(collapsedPayload).length) return;
139
+ for (const [path, value] of Object.entries(collapsedPayload)) {
140
+ const entry = entryMap.get(path);
141
+ if (entry) applySnapshotUpdate(latestSnapshot, path, value, entry.kind === "array" ? "set" : entry.op, { cloneValue: false });
142
+ else applySnapshotUpdate(latestSnapshot, path, value, "set", { cloneValue: false });
143
+ }
144
+ if (typeof currentAdapter.setData === "function") {
145
+ const result = currentAdapter.setData(collapsedPayload);
146
+ if (result && typeof result.then === "function") return result.catch(() => {});
147
+ }
148
+ emitDebug({
149
+ mode: "patch",
150
+ reason: "patch",
151
+ pendingPatchKeys: patchEntries.length,
152
+ payloadKeys: Object.keys(collapsedPayload).length
153
+ });
154
+ }
155
+
156
+ //#endregion
157
+ export { runPatchUpdate };
158
+ //# sourceMappingURL=patchScheduler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patchScheduler.mjs","names":[],"sources":["../../../../../src/runtime/app/setData/patchScheduler.ts"],"sourcesContent":["import type { SetDataDebugInfo } from '../../types'\nimport { toPlain } from '../../diff'\nimport { checkPayloadSize, collapsePayload, mergeSiblingPayload } from './payload'\nimport { applySnapshotUpdate, cloneSnapshotValue, isDeepEqualValue, isShallowEqualValue, normalizeSetDataValue } from './snapshot'\n\ninterface PatchEntry {\n kind: 'property' | 'array'\n op: 'set' | 'delete'\n}\n\nexport function runPatchUpdate(options: {\n state: Record<string, any>\n computedRefs: Record<string, { value: any }>\n dirtyComputedKeys: Set<string>\n includeComputed: boolean\n computedCompare: 'reference' | 'shallow' | 'deep'\n computedCompareMaxDepth: number\n computedCompareMaxKeys: number\n currentAdapter: { setData?: (payload: Record<string, any>) => void | Promise<void> }\n shouldIncludeKey: (key: string) => boolean\n maxPatchKeys: number\n maxPayloadBytes: number\n mergeSiblingThreshold: number\n mergeSiblingMaxInflationRatio: number\n mergeSiblingMaxParentBytes: number\n mergeSiblingSkipArray: boolean\n elevateTopKeyThreshold: number\n toPlainMaxDepth: number\n toPlainMaxKeys: number\n includeFunctions?: boolean\n functionPaths: string[]\n plainCache: WeakMap<object, { version: number, value: any }>\n plainCacheEligibility?: WeakMap<object, boolean>\n pendingPatches: Map<string, PatchEntry>\n fallbackTopKeys: Set<string>\n latestSnapshot: Record<string, any>\n latestComputedSnapshot: Record<string, any>\n needsFullSnapshot: { value: boolean }\n emitDebug: (info: SetDataDebugInfo) => void\n runDiffUpdate: (reason?: SetDataDebugInfo['reason']) => void | Promise<void>\n}) {\n const {\n state,\n computedRefs,\n dirtyComputedKeys,\n includeComputed,\n computedCompare,\n computedCompareMaxDepth,\n computedCompareMaxKeys,\n currentAdapter,\n shouldIncludeKey,\n maxPatchKeys,\n maxPayloadBytes,\n mergeSiblingThreshold,\n mergeSiblingMaxInflationRatio,\n mergeSiblingMaxParentBytes,\n mergeSiblingSkipArray,\n elevateTopKeyThreshold,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions = false,\n functionPaths,\n plainCache,\n plainCacheEligibility,\n pendingPatches,\n fallbackTopKeys,\n latestSnapshot,\n latestComputedSnapshot,\n needsFullSnapshot,\n emitDebug,\n runDiffUpdate,\n } = options\n\n if (pendingPatches.size > maxPatchKeys) {\n needsFullSnapshot.value = true\n const pendingCount = pendingPatches.size\n pendingPatches.clear()\n dirtyComputedKeys.clear()\n emitDebug({\n mode: 'diff',\n reason: 'maxPatchKeys',\n pendingPatchKeys: pendingCount,\n payloadKeys: 0,\n })\n return runDiffUpdate('maxPatchKeys')\n }\n\n const seen = new WeakMap<object, any>()\n const plainByPath = new Map<string, any>()\n const payload: Record<string, any> = Object.create(null)\n const patchEntriesRaw = [...pendingPatches.entries()]\n\n if (Number.isFinite(elevateTopKeyThreshold) && elevateTopKeyThreshold > 0) {\n const counts = new Map<string, number>()\n for (const [path] of patchEntriesRaw) {\n const top = path.split('.', 1)[0]\n counts.set(top, (counts.get(top) ?? 0) + 1)\n }\n for (const [top, count] of counts) {\n if (count >= elevateTopKeyThreshold) {\n fallbackTopKeys.add(top)\n }\n }\n }\n\n const patchEntries = patchEntriesRaw.filter(([path]) => {\n for (const topKey of fallbackTopKeys) {\n if (path === topKey || path.startsWith(`${topKey}.`)) {\n return false\n }\n }\n return true\n })\n const entryMap = new Map(patchEntries)\n pendingPatches.clear()\n\n const getStateValueByPath = (path: string) => {\n const segments = path.split('.').filter(Boolean)\n let current: any = state as any\n for (const seg of segments) {\n if (current == null) {\n return current\n }\n current = current[seg]\n }\n return current\n }\n\n const getPlainByPath = (path: string) => {\n if (plainByPath.has(path)) {\n return plainByPath.get(path)\n }\n const value = normalizeSetDataValue(\n toPlain(getStateValueByPath(path), seen, { cache: plainCache, cacheEligibility: plainCacheEligibility, maxDepth: toPlainMaxDepth, maxKeys: toPlainMaxKeys, includeFunctions, functionPaths, _path: path }),\n )\n plainByPath.set(path, value)\n return value\n }\n\n if (fallbackTopKeys.size) {\n for (const topKey of fallbackTopKeys) {\n if (!shouldIncludeKey(topKey)) {\n continue\n }\n payload[topKey] = getPlainByPath(topKey)\n entryMap.set(topKey, { kind: 'property', op: 'set' })\n }\n fallbackTopKeys.clear()\n }\n\n for (const [path, entry] of patchEntries) {\n const effectiveOp = entry.kind === 'array' ? 'set' : entry.op\n if (effectiveOp === 'delete') {\n payload[path] = null\n continue\n }\n payload[path] = getPlainByPath(path)\n }\n\n let computedDirtyProcessed = 0\n if (includeComputed && dirtyComputedKeys.size) {\n const computedPatch: Record<string, any> = Object.create(null)\n const keys = [...dirtyComputedKeys]\n dirtyComputedKeys.clear()\n computedDirtyProcessed = keys.length\n for (const key of keys) {\n if (!shouldIncludeKey(key)) {\n continue\n }\n const nextValue = toPlain(computedRefs[key].value, seen, { cache: plainCache, cacheEligibility: plainCacheEligibility, maxDepth: toPlainMaxDepth, maxKeys: toPlainMaxKeys, includeFunctions, functionPaths, _path: key })\n const prevValue = latestComputedSnapshot[key]\n const equal = computedCompare === 'deep'\n ? isDeepEqualValue(prevValue, nextValue, computedCompareMaxDepth, { keys: computedCompareMaxKeys })\n : computedCompare === 'shallow'\n ? isShallowEqualValue(prevValue, nextValue)\n : Object.is(prevValue, nextValue)\n if (equal) {\n continue\n }\n computedPatch[key] = normalizeSetDataValue(nextValue)\n latestComputedSnapshot[key] = cloneSnapshotValue(nextValue)\n }\n Object.assign(payload, computedPatch)\n }\n\n let collapsedPayload = collapsePayload(payload)\n let mergedSiblingParents = 0\n if (mergeSiblingThreshold) {\n const mergedResult = mergeSiblingPayload({\n input: collapsedPayload,\n entryMap,\n getPlainByPath,\n mergeSiblingThreshold,\n mergeSiblingSkipArray,\n mergeSiblingMaxParentBytes,\n mergeSiblingMaxInflationRatio,\n })\n mergedSiblingParents = mergedResult.merged\n collapsedPayload = collapsePayload(mergedResult.out)\n }\n const sizeCheck = checkPayloadSize(collapsedPayload, maxPayloadBytes)\n const shouldFallback = sizeCheck.fallback\n emitDebug({\n mode: shouldFallback ? 'diff' : 'patch',\n reason: shouldFallback ? 'maxPayloadBytes' : 'patch',\n pendingPatchKeys: patchEntries.length,\n payloadKeys: Object.keys(collapsedPayload).length,\n mergedSiblingParents: mergedSiblingParents || undefined,\n computedDirtyKeys: computedDirtyProcessed || undefined,\n estimatedBytes: sizeCheck.estimatedBytes,\n bytes: sizeCheck.bytes,\n })\n if (shouldFallback) {\n needsFullSnapshot.value = true\n pendingPatches.clear()\n dirtyComputedKeys.clear()\n return runDiffUpdate('maxPayloadBytes')\n }\n if (!Object.keys(collapsedPayload).length) {\n return\n }\n\n // 保持快照同步,确保 patch 模式可安全回退到 diff。\n for (const [path, value] of Object.entries(collapsedPayload)) {\n const entry = entryMap.get(path)\n if (entry) {\n applySnapshotUpdate(latestSnapshot, path, value, entry.kind === 'array' ? 'set' : entry.op, { cloneValue: false })\n }\n else {\n // 计算属性或 diffSnapshots 生成的顶层键。\n applySnapshotUpdate(latestSnapshot, path, value, 'set', { cloneValue: false })\n }\n }\n\n if (typeof currentAdapter.setData === 'function') {\n const result = currentAdapter.setData(collapsedPayload)\n if (result && typeof (result as Promise<any>).then === 'function') {\n return (result as Promise<void>).catch(() => {})\n }\n }\n emitDebug({\n mode: 'patch',\n reason: 'patch',\n pendingPatchKeys: patchEntries.length,\n payloadKeys: Object.keys(collapsedPayload).length,\n })\n}\n"],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { hasOwn } from "../../../utils.mjs";
2
+
3
+ //#region src/runtime/app/setData/payload.ts
4
+ function collapsePayload(input) {
5
+ const keys = Object.keys(input).sort();
6
+ if (keys.length <= 1) return input;
7
+ const out = {};
8
+ const prefixStack = [];
9
+ for (const key of keys) {
10
+ while (prefixStack.length) {
11
+ const prefix = prefixStack[prefixStack.length - 1];
12
+ if (key.startsWith(prefix)) break;
13
+ prefixStack.pop();
14
+ }
15
+ if (prefixStack.length) continue;
16
+ out[key] = input[key];
17
+ prefixStack.push(`${key}.`);
18
+ }
19
+ return out;
20
+ }
21
+ function estimateJsonSize(value, limit, seen) {
22
+ if (limit <= 0) return limit + 1;
23
+ if (value === null) return 4;
24
+ const t = typeof value;
25
+ if (t === "string") return 2 + value.length;
26
+ if (t === "number") return Number.isFinite(value) ? String(value).length : 4;
27
+ if (t === "boolean") return value ? 4 : 5;
28
+ if (t === "undefined" || t === "function" || t === "symbol") return 4;
29
+ if (t !== "object") return 4;
30
+ if (seen.has(value)) return 4;
31
+ seen.add(value);
32
+ if (Array.isArray(value)) {
33
+ let size = 2;
34
+ for (let i = 0; i < value.length; i++) {
35
+ if (i) size += 1;
36
+ size += estimateJsonSize(value[i], limit - size, seen);
37
+ if (size > limit) return size;
38
+ }
39
+ return size;
40
+ }
41
+ let size = 2;
42
+ for (const [k, v] of Object.entries(value)) {
43
+ if (size > 2) size += 1;
44
+ size += 2 + k.length + 1;
45
+ size += estimateJsonSize(v, limit - size, seen);
46
+ if (size > limit) return size;
47
+ }
48
+ return size;
49
+ }
50
+ function checkPayloadSize(payload, maxPayloadBytes) {
51
+ if (maxPayloadBytes === Number.POSITIVE_INFINITY) return {
52
+ fallback: false,
53
+ estimatedBytes: void 0,
54
+ bytes: void 0
55
+ };
56
+ const limit = maxPayloadBytes;
57
+ const keyCount = Object.keys(payload).length;
58
+ const estimated = estimateJsonSize(payload, limit + 1, /* @__PURE__ */ new WeakSet());
59
+ if (estimated > limit) return {
60
+ fallback: true,
61
+ estimatedBytes: estimated,
62
+ bytes: void 0
63
+ };
64
+ if (estimated >= limit * .85 && keyCount > 2) try {
65
+ const bytes = JSON.stringify(payload).length;
66
+ return {
67
+ fallback: bytes > limit,
68
+ estimatedBytes: estimated,
69
+ bytes
70
+ };
71
+ } catch (_unused) {
72
+ return {
73
+ fallback: false,
74
+ estimatedBytes: estimated,
75
+ bytes: void 0
76
+ };
77
+ }
78
+ return {
79
+ fallback: false,
80
+ estimatedBytes: estimated,
81
+ bytes: void 0
82
+ };
83
+ }
84
+ function mergeSiblingPayload(options) {
85
+ const { input, entryMap, getPlainByPath, mergeSiblingThreshold, mergeSiblingSkipArray, mergeSiblingMaxParentBytes, mergeSiblingMaxInflationRatio } = options;
86
+ if (!mergeSiblingThreshold) return {
87
+ out: input,
88
+ merged: 0
89
+ };
90
+ const keys = Object.keys(input);
91
+ if (keys.length < mergeSiblingThreshold) return {
92
+ out: input,
93
+ merged: 0
94
+ };
95
+ const groups = /* @__PURE__ */ new Map();
96
+ const hasDelete = /* @__PURE__ */ new Set();
97
+ for (const key of keys) {
98
+ var _groups$get;
99
+ const entry = entryMap.get(key);
100
+ if (!entry) continue;
101
+ if (input[key] === null || entry.op === "delete") {
102
+ const dot = key.lastIndexOf(".");
103
+ if (dot > 0) hasDelete.add(key.slice(0, dot));
104
+ continue;
105
+ }
106
+ const dot = key.lastIndexOf(".");
107
+ if (dot <= 0) continue;
108
+ const parent = key.slice(0, dot);
109
+ const list = (_groups$get = groups.get(parent)) !== null && _groups$get !== void 0 ? _groups$get : [];
110
+ list.push(key);
111
+ groups.set(parent, list);
112
+ }
113
+ const parents = [...groups.entries()].filter(([parent, list]) => list.length >= mergeSiblingThreshold && !hasDelete.has(parent)).sort((a, b) => b[0].split(".").length - a[0].split(".").length);
114
+ if (!parents.length) return {
115
+ out: input,
116
+ merged: 0
117
+ };
118
+ const out = {};
119
+ Object.assign(out, input);
120
+ let merged = 0;
121
+ const valueSizeCache = /* @__PURE__ */ new WeakMap();
122
+ const estimateValueSize = (value) => {
123
+ if (value && typeof value === "object") {
124
+ const cached = valueSizeCache.get(value);
125
+ if (cached !== void 0) return cached;
126
+ const size = estimateJsonSize(value, Number.POSITIVE_INFINITY, /* @__PURE__ */ new WeakSet());
127
+ valueSizeCache.set(value, size);
128
+ return size;
129
+ }
130
+ return estimateJsonSize(value, Number.POSITIVE_INFINITY, /* @__PURE__ */ new WeakSet());
131
+ };
132
+ const estimateEntryBytes = (key, value) => {
133
+ return 2 + key.length + 1 + estimateValueSize(value);
134
+ };
135
+ for (const [parent, list] of parents) {
136
+ if (hasOwn(out, parent)) continue;
137
+ const existingChildren = list.filter((k) => hasOwn(out, k));
138
+ if (existingChildren.length < mergeSiblingThreshold) continue;
139
+ const parentValue = getPlainByPath(parent);
140
+ if (mergeSiblingSkipArray && Array.isArray(parentValue)) continue;
141
+ if (mergeSiblingMaxParentBytes !== Number.POSITIVE_INFINITY) {
142
+ if (estimateEntryBytes(parent, parentValue) > mergeSiblingMaxParentBytes) continue;
143
+ }
144
+ if (mergeSiblingMaxInflationRatio !== Number.POSITIVE_INFINITY) {
145
+ let childBytes = 0;
146
+ for (const child of existingChildren) childBytes += estimateEntryBytes(child, out[child]);
147
+ if (estimateEntryBytes(parent, parentValue) > childBytes * mergeSiblingMaxInflationRatio) continue;
148
+ }
149
+ out[parent] = parentValue;
150
+ for (const child of existingChildren) delete out[child];
151
+ merged += 1;
152
+ }
153
+ return {
154
+ out,
155
+ merged
156
+ };
157
+ }
158
+
159
+ //#endregion
160
+ export { checkPayloadSize, collapsePayload, estimateJsonSize, mergeSiblingPayload };
161
+ //# sourceMappingURL=payload.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.mjs","names":[],"sources":["../../../../../src/runtime/app/setData/payload.ts"],"sourcesContent":["import { hasOwn } from '../../../utils'\n\nexport function collapsePayload(input: Record<string, any>) {\n const keys = Object.keys(input).sort()\n if (keys.length <= 1) {\n return input\n }\n // 折叠后的 payload 会直接传给原生 setData,并可能被微信开发者工具热重载脚本递归遍历。\n // 这里不能使用 Object.create(null),否则运行时内部的 o.hasOwnProperty(...) 会抛错。\n const out: Record<string, any> = {}\n const prefixStack: string[] = []\n for (const key of keys) {\n while (prefixStack.length) {\n const prefix = prefixStack[prefixStack.length - 1]!\n if (key.startsWith(prefix)) {\n break\n }\n prefixStack.pop()\n }\n if (prefixStack.length) {\n continue\n }\n out[key] = input[key]\n prefixStack.push(`${key}.`)\n }\n return out\n}\n\nexport function estimateJsonSize(\n value: any,\n limit: number,\n seen: WeakSet<object>,\n): number {\n if (limit <= 0) {\n return limit + 1\n }\n if (value === null) {\n return 4\n }\n const t = typeof value\n if (t === 'string') {\n // 粗略估算:未计入转义开销;接近阈值时再用 JSON.stringify 校验\n return 2 + value.length\n }\n if (t === 'number') {\n return Number.isFinite(value) ? String(value).length : 4 // 空值占位\n }\n if (t === 'boolean') {\n return value ? 4 : 5\n }\n if (t === 'undefined' || t === 'function' || t === 'symbol') {\n return 4 // 空值占位\n }\n if (t !== 'object') {\n return 4\n }\n\n if (seen.has(value)) {\n return 4\n }\n seen.add(value)\n\n if (Array.isArray(value)) {\n let size = 2 // []\n for (let i = 0; i < value.length; i++) {\n if (i) {\n size += 1\n }\n size += estimateJsonSize(value[i], limit - size, seen)\n if (size > limit) {\n return size\n }\n }\n return size\n }\n\n let size = 2 // {}\n for (const [k, v] of Object.entries(value)) {\n if (size > 2) {\n size += 1\n }\n // 键名部分:\n size += 2 + k.length + 1\n size += estimateJsonSize(v, limit - size, seen)\n if (size > limit) {\n return size\n }\n }\n return size\n}\n\nexport function checkPayloadSize(payload: Record<string, any>, maxPayloadBytes: number) {\n if (maxPayloadBytes === Number.POSITIVE_INFINITY) {\n return { fallback: false as const, estimatedBytes: undefined as number | undefined, bytes: undefined as number | undefined }\n }\n const limit = maxPayloadBytes\n const keyCount = Object.keys(payload).length\n const estimated = estimateJsonSize(payload, limit + 1, new WeakSet())\n if (estimated > limit) {\n return { fallback: true as const, estimatedBytes: estimated, bytes: undefined }\n }\n // 接近阈值时再用 JSON.stringify 精确判断,避免低估导致未降级\n if (estimated >= limit * 0.85 && keyCount > 2) {\n try {\n const bytes = JSON.stringify(payload).length\n return { fallback: bytes > limit, estimatedBytes: estimated, bytes }\n }\n catch {\n return { fallback: false as const, estimatedBytes: estimated, bytes: undefined }\n }\n }\n return { fallback: false as const, estimatedBytes: estimated, bytes: undefined }\n}\n\nexport function mergeSiblingPayload(options: {\n input: Record<string, any>\n entryMap: Map<string, { kind: 'property' | 'array', op: 'set' | 'delete' }>\n getPlainByPath: (path: string) => any\n mergeSiblingThreshold: number\n mergeSiblingSkipArray: boolean\n mergeSiblingMaxParentBytes: number\n mergeSiblingMaxInflationRatio: number\n}) {\n const {\n input,\n entryMap,\n getPlainByPath,\n mergeSiblingThreshold,\n mergeSiblingSkipArray,\n mergeSiblingMaxParentBytes,\n mergeSiblingMaxInflationRatio,\n } = options\n\n if (!mergeSiblingThreshold) {\n return { out: input, merged: 0 }\n }\n\n const keys = Object.keys(input)\n if (keys.length < mergeSiblingThreshold) {\n return { out: input, merged: 0 }\n }\n\n const groups = new Map<string, string[]>()\n const hasDelete = new Set<string>()\n\n for (const key of keys) {\n const entry = entryMap.get(key)\n if (!entry) {\n continue\n }\n if (input[key] === null || entry.op === 'delete') {\n const dot = key.lastIndexOf('.')\n if (dot > 0) {\n hasDelete.add(key.slice(0, dot))\n }\n continue\n }\n const dot = key.lastIndexOf('.')\n if (dot <= 0) {\n continue\n }\n const parent = key.slice(0, dot)\n const list = groups.get(parent) ?? []\n list.push(key)\n groups.set(parent, list)\n }\n\n const parents = [...groups.entries()]\n .filter(([parent, list]) => list.length >= mergeSiblingThreshold && !hasDelete.has(parent))\n .sort((a, b) => b[0].split('.').length - a[0].split('.').length)\n\n if (!parents.length) {\n return { out: input, merged: 0 }\n }\n\n // mergeSiblingPayload 的输出仍然属于对外 payload,必须保持普通对象原型。\n // 后续如果为了“纯字典”语义改成 null-prototype,会重新引入热重载兼容性问题。\n const out: Record<string, any> = {}\n Object.assign(out, input)\n\n let merged = 0\n const valueSizeCache = new WeakMap<object, number>()\n const estimateValueSize = (value: any) => {\n if (value && typeof value === 'object') {\n const cached = valueSizeCache.get(value as object)\n if (cached !== undefined) {\n return cached\n }\n const size = estimateJsonSize(value, Number.POSITIVE_INFINITY, new WeakSet())\n valueSizeCache.set(value as object, size)\n return size\n }\n return estimateJsonSize(value, Number.POSITIVE_INFINITY, new WeakSet())\n }\n const estimateEntryBytes = (key: string, value: any) => {\n // 键名部分:\n return (2 + key.length + 1) + estimateValueSize(value)\n }\n\n for (const [parent, list] of parents) {\n if (hasOwn(out, parent)) {\n continue\n }\n const existingChildren = list.filter(k => hasOwn(out, k))\n if (existingChildren.length < mergeSiblingThreshold) {\n continue\n }\n const parentValue = getPlainByPath(parent)\n if (mergeSiblingSkipArray && Array.isArray(parentValue)) {\n continue\n }\n if (mergeSiblingMaxParentBytes !== Number.POSITIVE_INFINITY) {\n const parentBytes = estimateEntryBytes(parent, parentValue)\n if (parentBytes > mergeSiblingMaxParentBytes) {\n continue\n }\n }\n if (mergeSiblingMaxInflationRatio !== Number.POSITIVE_INFINITY) {\n let childBytes = 0\n for (const child of existingChildren) {\n childBytes += estimateEntryBytes(child, out[child])\n }\n const parentBytes = estimateEntryBytes(parent, parentValue)\n if (parentBytes > childBytes * mergeSiblingMaxInflationRatio) {\n continue\n }\n }\n out[parent] = parentValue\n for (const child of existingChildren) {\n delete out[child]\n }\n merged += 1\n }\n\n return { out, merged }\n}\n"],"mappings":"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"}