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,41 @@
1
+ import { getCurrentInstance } from "./hooks/base.mjs";
2
+ import { onDetached, onUnload } from "./hooks/register.mjs";
3
+
4
+ //#region src/runtime/updatePerformance.ts
5
+ function resolveUpdatePerformanceSetter(instance) {
6
+ const nativeInstance = instance;
7
+ const candidate = nativeInstance.setUpdatePerformanceListener;
8
+ if (typeof candidate !== "function") return;
9
+ return (listener) => {
10
+ candidate.call(nativeInstance, listener);
11
+ };
12
+ }
13
+ /**
14
+ * 在 setup 中注册更新性能监听,并在卸载时自动清理。
15
+ *
16
+ * - 底层能力:`instance.setUpdatePerformanceListener(listener)`。
17
+ * - 清理策略:卸载时回传 `undefined` 作为监听器,平台不支持时静默降级。
18
+ */
19
+ function useUpdatePerformanceListener(listener) {
20
+ const instance = getCurrentInstance();
21
+ if (!instance) throw new Error("useUpdatePerformanceListener() 必须在 setup() 的同步阶段调用");
22
+ if (typeof listener !== "function") throw new TypeError("useUpdatePerformanceListener() 需要传入监听函数");
23
+ const setListener = resolveUpdatePerformanceSetter(instance);
24
+ if (!setListener) throw new Error("当前实例不支持 setUpdatePerformanceListener,请检查基础库版本或组件上下文");
25
+ setListener(listener);
26
+ let stopped = false;
27
+ const stop = () => {
28
+ if (stopped) return;
29
+ stopped = true;
30
+ try {
31
+ setListener(void 0);
32
+ } catch (_unused) {}
33
+ };
34
+ onUnload(stop);
35
+ onDetached(stop);
36
+ return stop;
37
+ }
38
+
39
+ //#endregion
40
+ export { useUpdatePerformanceListener };
41
+ //# sourceMappingURL=updatePerformance.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updatePerformance.mjs","names":[],"sources":["../../../src/runtime/updatePerformance.ts"],"sourcesContent":["import type { InternalRuntimeState } from './types'\nimport { getCurrentInstance, onDetached, onUnload } from './hooks'\n\nexport type UpdatePerformanceListenerResult = Record<string, any>\nexport type UpdatePerformanceListener = (result: UpdatePerformanceListenerResult) => void\nexport type UseUpdatePerformanceListenerStopHandle = () => void\n\nfunction resolveUpdatePerformanceSetter(\n instance: InternalRuntimeState,\n): ((listener?: UpdatePerformanceListener) => void) | undefined {\n const nativeInstance = instance as Record<string, any>\n const candidate = nativeInstance.setUpdatePerformanceListener\n if (typeof candidate !== 'function') {\n return undefined\n }\n return (listener?: UpdatePerformanceListener) => {\n candidate.call(nativeInstance, listener)\n }\n}\n\n/**\n * 在 setup 中注册更新性能监听,并在卸载时自动清理。\n *\n * - 底层能力:`instance.setUpdatePerformanceListener(listener)`。\n * - 清理策略:卸载时回传 `undefined` 作为监听器,平台不支持时静默降级。\n */\nexport function useUpdatePerformanceListener(\n listener: UpdatePerformanceListener,\n): UseUpdatePerformanceListenerStopHandle {\n const instance = getCurrentInstance()\n if (!instance) {\n throw new Error('useUpdatePerformanceListener() 必须在 setup() 的同步阶段调用')\n }\n if (typeof listener !== 'function') {\n throw new TypeError('useUpdatePerformanceListener() 需要传入监听函数')\n }\n\n const setListener = resolveUpdatePerformanceSetter(instance)\n if (!setListener) {\n throw new Error('当前实例不支持 setUpdatePerformanceListener,请检查基础库版本或组件上下文')\n }\n\n setListener(listener)\n\n let stopped = false\n const stop = () => {\n if (stopped) {\n return\n }\n stopped = true\n try {\n setListener(undefined)\n }\n catch {\n // 忽略平台差异导致的清理异常,避免影响卸载流程\n }\n }\n\n onUnload(stop)\n onDetached(stop)\n\n return stop\n}\n"],"mappings":";;;;AAOA,SAAS,+BACP,UAC8D;CAC9D,MAAM,iBAAiB;CACvB,MAAM,YAAY,eAAe;CACjC,IAAI,OAAO,cAAc,YACvB;CAEF,QAAQ,aAAyC;EAC/C,UAAU,KAAK,gBAAgB,QAAQ;CACzC;AACF;;;;;;;AAQA,SAAgB,6BACd,UACwC;CACxC,MAAM,WAAW,mBAAmB;CACpC,IAAI,CAAC,UACH,MAAM,IAAI,MAAM,oDAAoD;CAEtE,IAAI,OAAO,aAAa,YACtB,MAAM,IAAI,UAAU,yCAAyC;CAG/D,MAAM,cAAc,+BAA+B,QAAQ;CAC3D,IAAI,CAAC,aACH,MAAM,IAAI,MAAM,qDAAqD;CAGvE,YAAY,QAAQ;CAEpB,IAAI,UAAU;CACd,MAAM,aAAa;EACjB,IAAI,SACF;EAEF,UAAU;EACV,IAAI;GACF,YAAY,MAAS;EACvB,kBACM,CAEN;CACF;CAEA,SAAS,IAAI;CACb,WAAW,IAAI;CAEf,OAAO;AACT"}
@@ -0,0 +1,25 @@
1
+ import { getCurrentInstance } from "./hooks/base.mjs";
2
+ import { WEVU_IS_APP_INSTANCE_KEY, WEVU_RUNTIME_APP_KEY } from "@weapp-core/constants";
3
+
4
+ //#region src/runtime/use.ts
5
+ function resolveCurrentRuntimeApp() {
6
+ const instance = getCurrentInstance();
7
+ if ((instance === null || instance === void 0 ? void 0 : instance[WEVU_IS_APP_INSTANCE_KEY]) && instance[WEVU_RUNTIME_APP_KEY]) return instance[WEVU_RUNTIME_APP_KEY];
8
+ throw new Error("defineAppSetup() / use() 只能在 app setup 上下文中调用");
9
+ }
10
+ /**
11
+ * 在 `app` 级 `setup()` 中显式获取运行时 app,提供与 `app.use()` / `app.provide()` 对齐的 SFC 写法。
12
+ */
13
+ function defineAppSetup(setup) {
14
+ return setup(resolveCurrentRuntimeApp());
15
+ }
16
+ /**
17
+ * 在 `app` 级 `setup()` 中安装插件,提供与 `app.use()` 对齐的 SFC 调用方式。
18
+ */
19
+ function use(plugin, ...options) {
20
+ return resolveCurrentRuntimeApp().use(plugin, ...options);
21
+ }
22
+
23
+ //#endregion
24
+ export { defineAppSetup, use };
25
+ //# sourceMappingURL=use.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.mjs","names":[],"sources":["../../../src/runtime/use.ts"],"sourcesContent":["import type { RuntimeApp, WevuPlugin } from './types'\nimport {\n WEVU_IS_APP_INSTANCE_KEY,\n WEVU_RUNTIME_APP_KEY,\n} from '@weapp-core/constants'\nimport { getCurrentInstance } from './hooks'\n\nfunction resolveCurrentRuntimeApp(): RuntimeApp<any, any, any> {\n const instance = getCurrentInstance() as {\n [WEVU_IS_APP_INSTANCE_KEY]?: boolean\n [WEVU_RUNTIME_APP_KEY]?: RuntimeApp<any, any, any>\n } | undefined\n\n if (instance?.[WEVU_IS_APP_INSTANCE_KEY] && instance[WEVU_RUNTIME_APP_KEY]) {\n return instance[WEVU_RUNTIME_APP_KEY]\n }\n\n throw new Error('defineAppSetup() / use() 只能在 app setup 上下文中调用')\n}\n\n/**\n * 在 `app` 级 `setup()` 中显式获取运行时 app,提供与 `app.use()` / `app.provide()` 对齐的 SFC 写法。\n */\nexport function defineAppSetup<T>(setup: (app: RuntimeApp<any, any, any>) => T): T {\n return setup(resolveCurrentRuntimeApp())\n}\n\n/**\n * 在 `app` 级 `setup()` 中安装插件,提供与 `app.use()` 对齐的 SFC 调用方式。\n */\nexport function use(plugin: WevuPlugin, ...options: any[]) {\n return resolveCurrentRuntimeApp().use(plugin, ...options)\n}\n"],"mappings":";;;;AAOA,SAAS,2BAAsD;CAC7D,MAAM,WAAW,mBAAmB;CAKpC,yDAAI,SAAW,8BAA6B,SAAS,uBACnD,OAAO,SAAS;CAGlB,MAAM,IAAI,MAAM,+CAA+C;AACjE;;;;AAKA,SAAgB,eAAkB,OAAiD;CACjF,OAAO,MAAM,yBAAyB,CAAC;AACzC;;;;AAKA,SAAgB,IAAI,QAAoB,GAAG,SAAgB;CACzD,OAAO,yBAAyB,CAAC,CAAC,IAAI,QAAQ,GAAG,OAAO;AAC1D"}
@@ -0,0 +1,25 @@
1
+ import { getCurrentSetupContext } from "../hooks/base.mjs";
2
+
3
+ //#region src/runtime/vueCompat/context.ts
4
+ const EMPTY_SETUP_SLOTS = Object.freeze(Object.create(null));
5
+ function useAttrs() {
6
+ var _ctx$attrs;
7
+ const ctx = getCurrentSetupContext();
8
+ if (!ctx) throw new Error("useAttrs() 必须在 setup() 的同步阶段调用");
9
+ return (_ctx$attrs = ctx.attrs) !== null && _ctx$attrs !== void 0 ? _ctx$attrs : {};
10
+ }
11
+ function useSlots() {
12
+ var _ctx$slots;
13
+ const ctx = getCurrentSetupContext();
14
+ if (!ctx) throw new Error("useSlots() 必须在 setup() 的同步阶段调用");
15
+ return (_ctx$slots = ctx.slots) !== null && _ctx$slots !== void 0 ? _ctx$slots : EMPTY_SETUP_SLOTS;
16
+ }
17
+ function useNativeInstance() {
18
+ const ctx = getCurrentSetupContext();
19
+ if (!(ctx === null || ctx === void 0 ? void 0 : ctx.instance)) throw new Error("useNativeInstance() 必须在 setup() 的同步阶段调用");
20
+ return ctx.instance;
21
+ }
22
+
23
+ //#endregion
24
+ export { useAttrs, useNativeInstance, useSlots };
25
+ //# sourceMappingURL=context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.mjs","names":[],"sources":["../../../../src/runtime/vueCompat/context.ts"],"sourcesContent":["import type { SetupContextNativeInstance } from '../types'\nimport { getCurrentSetupContext } from '../hooks'\n\nconst EMPTY_SETUP_SLOTS = Object.freeze(Object.create(null)) as Record<string, never>\n\nexport function useAttrs(): Record<string, any> {\n const ctx = getCurrentSetupContext<any>()\n if (!ctx) {\n throw new Error('useAttrs() 必须在 setup() 的同步阶段调用')\n }\n return ctx.attrs ?? {}\n}\n\nexport function useSlots(): Record<string, any> {\n const ctx = getCurrentSetupContext<any>()\n if (!ctx) {\n throw new Error('useSlots() 必须在 setup() 的同步阶段调用')\n }\n // 小程序场景通过编译期 slot 名元数据恢复可枚举 slots 对象。\n return ctx.slots ?? EMPTY_SETUP_SLOTS\n}\n\nexport function useNativeInstance(): SetupContextNativeInstance {\n const ctx = getCurrentSetupContext<any>()\n if (!ctx?.instance) {\n throw new Error('useNativeInstance() 必须在 setup() 的同步阶段调用')\n }\n return ctx.instance as SetupContextNativeInstance\n}\n"],"mappings":";;;AAGA,MAAM,oBAAoB,OAAO,OAAO,OAAO,OAAO,IAAI,CAAC;AAE3D,SAAgB,WAAgC;;CAC9C,MAAM,MAAM,uBAA4B;CACxC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,gCAAgC;CAElD,qBAAO,IAAI,wDAAS,CAAC;AACvB;AAEA,SAAgB,WAAgC;;CAC9C,MAAM,MAAM,uBAA4B;CACxC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,gCAAgC;CAGlD,qBAAO,IAAI,wDAAS;AACtB;AAEA,SAAgB,oBAAgD;CAC9D,MAAM,MAAM,uBAA4B;CACxC,IAAI,4CAAC,IAAK,WACR,MAAM,IAAI,MAAM,yCAAyC;CAE3D,OAAO,IAAI;AACb"}
@@ -0,0 +1,119 @@
1
+ import { customRef } from "../../reactivity/ref.mjs";
2
+ import { getCurrentInstance, getCurrentSetupContext } from "../hooks/base.mjs";
3
+ import { capitalize } from "../../utils.mjs";
4
+
5
+ //#region src/runtime/vueCompat/model.ts
6
+ const EMPTY_MODEL_MODIFIERS = Object.freeze(Object.create(null));
7
+ function resolveModelModifiers(props, name) {
8
+ const key = name === "modelValue" ? "modelModifiers" : `${name}Modifiers`;
9
+ const modifiers = props === null || props === void 0 ? void 0 : props[key];
10
+ if (!modifiers || typeof modifiers !== "object") return EMPTY_MODEL_MODIFIERS;
11
+ return modifiers;
12
+ }
13
+ function attachModelTuple(model, getModifiers) {
14
+ const tupleModel = model;
15
+ try {
16
+ Object.defineProperty(tupleModel, Symbol.iterator, {
17
+ configurable: true,
18
+ value: () => {
19
+ let index = 0;
20
+ return { next: () => {
21
+ if (index === 0) {
22
+ index += 1;
23
+ return {
24
+ value: tupleModel,
25
+ done: false
26
+ };
27
+ }
28
+ if (index === 1) {
29
+ index += 1;
30
+ return {
31
+ value: getModifiers(),
32
+ done: false
33
+ };
34
+ }
35
+ return {
36
+ value: void 0,
37
+ done: true
38
+ };
39
+ } };
40
+ }
41
+ });
42
+ } catch (_unused) {}
43
+ return tupleModel;
44
+ }
45
+ function useModel(props, name, options = {}) {
46
+ const ctx = getCurrentSetupContext();
47
+ if (!ctx) throw new Error("useModel() 必须在 setup() 的同步阶段调用");
48
+ const emit = ctx.emit;
49
+ const eventName = `update:${name}`;
50
+ const getModifiers = () => resolveModelModifiers(props, name);
51
+ return attachModelTuple(customRef({
52
+ get: () => {
53
+ const rawValue = props === null || props === void 0 ? void 0 : props[name];
54
+ if (!options.get) return rawValue;
55
+ return options.get(rawValue, getModifiers());
56
+ },
57
+ set: (value) => {
58
+ const nextValue = options.set ? options.set(value, getModifiers()) : value;
59
+ emit === null || emit === void 0 || emit(eventName, nextValue);
60
+ }
61
+ }), getModifiers);
62
+ }
63
+ function useBindModel(defaultOptions) {
64
+ const instance = getCurrentInstance();
65
+ if (!(instance === null || instance === void 0 ? void 0 : instance.__wevu) || typeof instance.__wevu.bindModel !== "function") throw new Error("useBindModel() 必须在 setup() 的同步阶段调用");
66
+ const rawBindModel = instance.__wevu.bindModel.bind(instance.__wevu);
67
+ const bindModel = ((path, options) => {
68
+ if (!defaultOptions) return rawBindModel(path, options);
69
+ const merged = {
70
+ ...defaultOptions,
71
+ ...options
72
+ };
73
+ return rawBindModel(path, merged);
74
+ });
75
+ bindModel.model = (path, options) => bindModel(path).model(options);
76
+ bindModel.value = (path, options) => {
77
+ var _merged$valueProp;
78
+ const merged = {
79
+ ...defaultOptions,
80
+ ...options
81
+ };
82
+ const valueProp = (_merged$valueProp = merged === null || merged === void 0 ? void 0 : merged.valueProp) !== null && _merged$valueProp !== void 0 ? _merged$valueProp : "value";
83
+ return bindModel.model(path, options)[valueProp];
84
+ };
85
+ bindModel.on = (path, options) => {
86
+ var _merged$event;
87
+ const merged = {
88
+ ...defaultOptions,
89
+ ...options
90
+ };
91
+ const eventName = (_merged$event = merged === null || merged === void 0 ? void 0 : merged.event) !== null && _merged$event !== void 0 ? _merged$event : "input";
92
+ const handlerKey = `on${capitalize(eventName)}`;
93
+ return bindModel.model(path, options)[handlerKey];
94
+ };
95
+ return bindModel;
96
+ }
97
+ /**
98
+ * useChangeModel 返回以 change 事件为默认更新事件的 model 绑定助手。
99
+ */
100
+ function useChangeModel() {
101
+ const bindModel = useBindModel({ event: "change" });
102
+ return function changeModel(path, options) {
103
+ return bindModel.model(path, options);
104
+ };
105
+ }
106
+ function mergeModels(a, b) {
107
+ if (a == null) return b;
108
+ if (b == null) return a;
109
+ if (Array.isArray(a) && Array.isArray(b)) return [.../* @__PURE__ */ new Set([...a, ...b])];
110
+ if (typeof a === "object" && typeof b === "object") return {
111
+ ...a,
112
+ ...b
113
+ };
114
+ return b;
115
+ }
116
+
117
+ //#endregion
118
+ export { mergeModels, useBindModel, useChangeModel, useModel };
119
+ //# sourceMappingURL=model.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.mjs","names":[],"sources":["../../../../src/runtime/vueCompat/model.ts"],"sourcesContent":["import type { Ref } from '../../reactivity'\nimport type {\n ModelBinding,\n ModelBindingOptions,\n ModelBindingPayload,\n} from '../types'\nimport { customRef } from '../../reactivity/ref'\nimport { capitalize } from '../../utils'\nimport { getCurrentInstance, getCurrentSetupContext } from '../hooks'\n\nexport type ModelModifiers<M extends PropertyKey = string> = Record<M, true | undefined>\nexport type ModelRef<T, M extends PropertyKey = string, G = T, S = T> = Ref<G, S> & [ModelRef<T, M, G, S>, ModelModifiers<M>]\n\nexport interface UseModelOptions<T, M extends PropertyKey = string, G = T, S = T> {\n get?: (value: T, modifiers: ModelModifiers<M>) => G\n set?: (value: S, modifiers: ModelModifiers<M>) => T\n}\n\nconst EMPTY_MODEL_MODIFIERS = Object.freeze(Object.create(null)) as ModelModifiers<any>\n\nfunction resolveModelModifiers<M extends PropertyKey = string>(\n props: Record<string, any>,\n name: string,\n): ModelModifiers<M> {\n const key = name === 'modelValue' ? 'modelModifiers' : `${name}Modifiers`\n const modifiers = props?.[key]\n if (!modifiers || typeof modifiers !== 'object') {\n return EMPTY_MODEL_MODIFIERS as ModelModifiers<M>\n }\n return modifiers as ModelModifiers<M>\n}\n\nfunction attachModelTuple<T, M extends PropertyKey = string, G = T, S = T>(\n model: Ref<G, S>,\n getModifiers: () => ModelModifiers<M>,\n): ModelRef<T, M, G, S> {\n const tupleModel = model as ModelRef<T, M, G, S>\n try {\n Object.defineProperty(tupleModel, Symbol.iterator, {\n configurable: true,\n value: () => {\n let index = 0\n return {\n next: () => {\n if (index === 0) {\n index += 1\n return { value: tupleModel, done: false }\n }\n if (index === 1) {\n index += 1\n return { value: getModifiers(), done: false }\n }\n return { value: undefined, done: true }\n },\n }\n },\n })\n }\n catch {\n // 忽略 defineProperty 失败场景,降级为普通 Ref 返回\n }\n return tupleModel\n}\n\nexport function useModel<T = any, M extends PropertyKey = string>(\n props: Record<string, any>,\n name: string,\n): ModelRef<T, M, T, T>\nexport function useModel<T = any, M extends PropertyKey = string, G = T, S = T>(\n props: Record<string, any>,\n name: string,\n options: UseModelOptions<T, M, G, S>,\n): ModelRef<T, M, G, S>\nexport function useModel<T = any, M extends PropertyKey = string, G = T, S = T>(\n props: Record<string, any>,\n name: string,\n options: UseModelOptions<T, M, G, S> = {},\n): ModelRef<T, M, G, S> {\n const ctx = getCurrentSetupContext<any>()\n if (!ctx) {\n throw new Error('useModel() 必须在 setup() 的同步阶段调用')\n }\n\n const emit: ((event: string, ...args: any[]) => void) | undefined = ctx.emit\n const eventName = `update:${name}`\n const getModifiers = () => resolveModelModifiers<M>(props, name)\n const model = customRef<G>({\n get: () => {\n const rawValue = (props as any)?.[name] as T\n if (!options.get) {\n return rawValue as unknown as G\n }\n return options.get(rawValue, getModifiers())\n },\n set: (value: G) => {\n const nextValue = options.set\n ? options.set(value as unknown as S, getModifiers())\n : (value as unknown as T)\n emit?.(eventName, nextValue)\n },\n })\n return attachModelTuple<T, M, G, S>(model, getModifiers)\n}\n\n/**\n * useBindModel 返回绑定到当前运行时实例的 bindModel。\n * 该方法必须在 setup() 的同步阶段调用。\n */\ntype BindModelWithHelper<\n DefaultEvent extends string = 'input',\n DefaultValueProp extends string = 'value',\n> = (<T = any>(path: string, options?: ModelBindingOptions<T>) => ModelBinding<T>) & {\n model: <T = any, Event extends string = DefaultEvent, ValueProp extends string = DefaultValueProp, Formatted = T>(\n path: string,\n options?: ModelBindingOptions<T, Event, ValueProp, Formatted>,\n ) => ModelBindingPayload<T, Event, ValueProp, Formatted>\n value: <T = any, Event extends string = DefaultEvent, ValueProp extends string = DefaultValueProp, Formatted = T>(\n path: string,\n options?: ModelBindingOptions<T, Event, ValueProp, Formatted>,\n ) => Formatted\n on: <T = any, Event extends string = DefaultEvent, ValueProp extends string = DefaultValueProp, Formatted = T>(\n path: string,\n options?: ModelBindingOptions<T, Event, ValueProp, Formatted>,\n ) => (event: any) => void\n}\n\nexport function useBindModel<\n DefaultEvent extends string = 'input',\n DefaultValueProp extends string = 'value',\n>(defaultOptions?: ModelBindingOptions<any, DefaultEvent, DefaultValueProp, any>) {\n const instance = getCurrentInstance()\n if (!instance?.__wevu || typeof instance.__wevu.bindModel !== 'function') {\n throw new Error('useBindModel() 必须在 setup() 的同步阶段调用')\n }\n const rawBindModel = instance.__wevu.bindModel.bind(instance.__wevu) as <T = any>(\n path: string,\n options?: ModelBindingOptions<T>,\n ) => ModelBinding<T>\n const bindModel: BindModelWithHelper<DefaultEvent, DefaultValueProp> = (<T = any>(path: string, options?: ModelBindingOptions<T>) => {\n if (!defaultOptions) {\n return rawBindModel(path, options)\n }\n const merged = {\n ...(defaultOptions as ModelBindingOptions<T, DefaultEvent, DefaultValueProp, any>),\n ...(options as ModelBindingOptions<T, DefaultEvent, DefaultValueProp, any>),\n } as ModelBindingOptions<T>\n return rawBindModel(path, merged)\n }) as BindModelWithHelper<DefaultEvent, DefaultValueProp>\n\n bindModel.model = (path, options) => bindModel(path).model(options)\n bindModel.value = (path, options) => {\n const merged = { ...defaultOptions, ...options } as ModelBindingOptions<any>\n const valueProp = merged?.valueProp ?? 'value'\n const payload = bindModel.model(path, options) as Record<string, any>\n return payload[valueProp]\n }\n bindModel.on = (path, options) => {\n const merged = { ...defaultOptions, ...options } as ModelBindingOptions<any>\n const eventName = merged?.event ?? 'input'\n const handlerKey = `on${capitalize(eventName)}`\n const payload = bindModel.model(path, options) as Record<string, any>\n return payload[handlerKey]\n }\n\n return bindModel\n}\n\n/**\n * useChangeModel 返回以 change 事件为默认更新事件的 model 绑定助手。\n */\nexport function useChangeModel() {\n const bindModel = useBindModel({ event: 'change' })\n\n return function changeModel<T = any, ValueProp extends string = 'value', Formatted = T>(\n path: string,\n options?: ModelBindingOptions<T, 'change', ValueProp, Formatted>,\n ): ModelBindingPayload<T, 'change', ValueProp, Formatted> {\n return bindModel.model<T, 'change', ValueProp, Formatted>(path, options)\n }\n}\n\nexport function mergeModels<T>(a: T, b: T): T {\n if (a == null) {\n return b\n }\n if (b == null) {\n return a\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n return [...new Set([...a, ...b])] as any\n }\n if (typeof a === 'object' && typeof b === 'object') {\n return { ...(a as any), ...(b as any) }\n }\n return b\n}\n"],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import { getCurrentMiniProgramGlobalRouter } from "../platform.mjs";
2
+ import { getCurrentSetupContext } from "../hooks/base.mjs";
3
+ import { notifyRouteStateSync } from "../../router/routeSync.mjs";
4
+ import { createAbsoluteRoutePath, resolvePath } from "../../routerInternal/path.mjs";
5
+ import { stringifyQuery } from "../../routerInternal/query.mjs";
6
+ import { parsePathInput } from "../../routerInternal/location.mjs";
7
+
8
+ //#region src/runtime/vueCompat/router.ts
9
+ const RUNTIME_ROUTER_METHODS = [
10
+ "switchTab",
11
+ "reLaunch",
12
+ "redirectTo",
13
+ "navigateTo",
14
+ "navigateBack"
15
+ ];
16
+ const runtimeRouterWrapperCache = /* @__PURE__ */ new WeakMap();
17
+ function isRuntimeRouter(candidate) {
18
+ if (!candidate || typeof candidate !== "object") return false;
19
+ return RUNTIME_ROUTER_METHODS.every((methodName) => {
20
+ return typeof candidate[methodName] === "function";
21
+ });
22
+ }
23
+ function createGlobalRouterFallback() {
24
+ return getCurrentMiniProgramGlobalRouter();
25
+ }
26
+ function resolveBasePathCandidate(candidate) {
27
+ if (typeof candidate !== "string" || !candidate) return;
28
+ return resolvePath(candidate, "") || void 0;
29
+ }
30
+ function resolveRouterBasePath(nativeInstance, accessor) {
31
+ const candidates = accessor === "pageRouter" ? [
32
+ nativeInstance.route,
33
+ nativeInstance.__route__,
34
+ nativeInstance.is
35
+ ] : [
36
+ nativeInstance.is,
37
+ nativeInstance.route,
38
+ nativeInstance.__route__
39
+ ];
40
+ for (const candidate of candidates) {
41
+ const resolved = resolveBasePathCandidate(candidate);
42
+ if (resolved) return resolved;
43
+ }
44
+ }
45
+ function resolveScopedRouterUrl(url, basePath) {
46
+ if (!basePath || !url.startsWith("./") && !url.startsWith("../")) return url;
47
+ const { path, query, hash } = parsePathInput(url);
48
+ const resolvedPath = createAbsoluteRoutePath(resolvePath(path, basePath));
49
+ const queryString = stringifyQuery(query);
50
+ return `${resolvedPath}${queryString ? `?${queryString}` : ""}${hash}`;
51
+ }
52
+ function createScopedRuntimeRouter(rawRouter, basePath) {
53
+ const cacheKey = basePath !== null && basePath !== void 0 ? basePath : "";
54
+ const cachedByBasePath = runtimeRouterWrapperCache.get(rawRouter);
55
+ const cachedRouter = cachedByBasePath === null || cachedByBasePath === void 0 ? void 0 : cachedByBasePath.get(cacheKey);
56
+ if (cachedRouter) return cachedRouter;
57
+ const scopedRouter = Object.create(null);
58
+ for (const methodName of RUNTIME_ROUTER_METHODS) scopedRouter[methodName] = (option) => {
59
+ const rawMethod = rawRouter[methodName];
60
+ if (methodName === "navigateBack" || !option || typeof option !== "object") return rawMethod.call(rawRouter, option);
61
+ const nextUrl = typeof option.url === "string" ? resolveScopedRouterUrl(option.url, basePath) : option.url;
62
+ const originalSuccess = option.success;
63
+ const nextOption = {
64
+ ...option,
65
+ url: nextUrl,
66
+ success: (...args) => {
67
+ if (typeof nextUrl === "string") notifyRouteStateSync({
68
+ method: methodName,
69
+ source: "native",
70
+ url: nextUrl
71
+ });
72
+ return typeof originalSuccess === "function" ? originalSuccess(...args) : void 0;
73
+ }
74
+ };
75
+ return rawMethod.call(rawRouter, nextOption);
76
+ };
77
+ const nextCache = cachedByBasePath !== null && cachedByBasePath !== void 0 ? cachedByBasePath : /* @__PURE__ */ new Map();
78
+ nextCache.set(cacheKey, scopedRouter);
79
+ runtimeRouterWrapperCache.set(rawRouter, nextCache);
80
+ return scopedRouter;
81
+ }
82
+ function useRuntimeRouterByAccessor(primaryAccessor, fallbackAccessor, helperName) {
83
+ const ctx = getCurrentSetupContext();
84
+ if (!(ctx === null || ctx === void 0 ? void 0 : ctx.instance)) throw new Error(`${helperName}() 必须在 setup() 的同步阶段调用`);
85
+ const nativeInstance = ctx.instance;
86
+ const basePath = resolveRouterBasePath(nativeInstance, primaryAccessor);
87
+ const primaryRouter = nativeInstance[primaryAccessor];
88
+ if (isRuntimeRouter(primaryRouter)) return createScopedRuntimeRouter(primaryRouter, basePath);
89
+ const fallbackRouter = nativeInstance[fallbackAccessor];
90
+ if (isRuntimeRouter(fallbackRouter)) return createScopedRuntimeRouter(fallbackRouter, basePath);
91
+ const globalFallbackRouter = createGlobalRouterFallback();
92
+ if (globalFallbackRouter) return createScopedRuntimeRouter(globalFallbackRouter, basePath);
93
+ throw new Error("当前运行环境不支持 Router,请升级宿主基础库或检查平台路由能力");
94
+ }
95
+ /**
96
+ * 在 setup 中获取与当前组件路径语义一致的原生 Router 对象。
97
+ *
98
+ * - 优先使用实例上的 `this.router`(组件路径语义)。
99
+ * - 不可用时回退到 `this.pageRouter`。
100
+ * - 低版本基础库再回退到宿主全局路由方法。
101
+ *
102
+ * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),
103
+ * 推荐改用 `wevu/router` 子入口的 `useRouter()`。
104
+ */
105
+ function useNativeRouter() {
106
+ return useRuntimeRouterByAccessor("router", "pageRouter", "useNativeRouter");
107
+ }
108
+ /**
109
+ * 在 setup 中获取与当前页面路径语义一致的原生 Router 对象。
110
+ *
111
+ * - 优先使用实例上的 `this.pageRouter`(页面路径语义)。
112
+ * - 不可用时回退到 `this.router`。
113
+ * - 低版本基础库再回退到宿主全局路由方法。
114
+ *
115
+ * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),
116
+ * 推荐改用 `wevu/router` 子入口的 `useRouter()`。
117
+ */
118
+ function useNativePageRouter() {
119
+ return useRuntimeRouterByAccessor("pageRouter", "router", "useNativePageRouter");
120
+ }
121
+
122
+ //#endregion
123
+ export { useNativePageRouter, useNativeRouter };
124
+ //# sourceMappingURL=router.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.mjs","names":[],"sources":["../../../../src/runtime/vueCompat/router.ts"],"sourcesContent":["import type { SetupContextRouter } from '../types'\nimport { notifyRouteStateSync } from '../../router/routeSync'\nimport { parsePathInput } from '../../routerInternal/location'\nimport { createAbsoluteRoutePath, resolvePath, stringifyQuery } from '../../routerInternal/shared'\nimport { getCurrentSetupContext } from '../hooks'\nimport { getCurrentMiniProgramGlobalRouter } from '../platform'\n\ntype RuntimeRouter = SetupContextRouter\ntype RuntimeRouterMethodName = 'switchTab' | 'reLaunch' | 'redirectTo' | 'navigateTo' | 'navigateBack'\ntype RuntimeRouterAccessor = 'router' | 'pageRouter'\n\nconst RUNTIME_ROUTER_METHODS: RuntimeRouterMethodName[] = ['switchTab', 'reLaunch', 'redirectTo', 'navigateTo', 'navigateBack']\nconst runtimeRouterWrapperCache = new WeakMap<RuntimeRouter, Map<string, RuntimeRouter>>()\n\nfunction isRuntimeRouter(candidate: unknown): candidate is RuntimeRouter {\n if (!candidate || typeof candidate !== 'object') {\n return false\n }\n return RUNTIME_ROUTER_METHODS.every((methodName) => {\n return typeof (candidate as Record<string, any>)[methodName] === 'function'\n })\n}\n\nfunction createGlobalRouterFallback(): RuntimeRouter | undefined {\n return getCurrentMiniProgramGlobalRouter()\n}\n\nfunction resolveBasePathCandidate(candidate: unknown): string | undefined {\n if (typeof candidate !== 'string' || !candidate) {\n return undefined\n }\n const normalized = resolvePath(candidate, '')\n return normalized || undefined\n}\n\nfunction resolveRouterBasePath(\n nativeInstance: Record<string, any>,\n accessor: RuntimeRouterAccessor,\n): string | undefined {\n const candidates = accessor === 'pageRouter'\n ? [nativeInstance.route, nativeInstance.__route__, nativeInstance.is]\n : [nativeInstance.is, nativeInstance.route, nativeInstance.__route__]\n\n for (const candidate of candidates) {\n const resolved = resolveBasePathCandidate(candidate)\n if (resolved) {\n return resolved\n }\n }\n\n return undefined\n}\n\nfunction resolveScopedRouterUrl(url: string, basePath?: string): string {\n if (!basePath || (!url.startsWith('./') && !url.startsWith('../'))) {\n return url\n }\n\n const { path, query, hash } = parsePathInput(url)\n const resolvedPath = createAbsoluteRoutePath(resolvePath(path, basePath))\n const queryString = stringifyQuery(query)\n return `${resolvedPath}${queryString ? `?${queryString}` : ''}${hash}`\n}\n\nfunction createScopedRuntimeRouter(rawRouter: RuntimeRouter, basePath?: string): RuntimeRouter {\n const cacheKey = basePath ?? ''\n const cachedByBasePath = runtimeRouterWrapperCache.get(rawRouter)\n const cachedRouter = cachedByBasePath?.get(cacheKey)\n if (cachedRouter) {\n return cachedRouter\n }\n\n const scopedRouter = Object.create(null) as RuntimeRouter\n for (const methodName of RUNTIME_ROUTER_METHODS) {\n ;(scopedRouter as Record<string, any>)[methodName] = (option: Record<string, any>) => {\n const rawMethod = (rawRouter as Record<string, any>)[methodName]\n if (methodName === 'navigateBack' || !option || typeof option !== 'object') {\n return rawMethod.call(rawRouter, option)\n }\n\n const nextUrl = typeof option.url === 'string'\n ? resolveScopedRouterUrl(option.url, basePath)\n : option.url\n const originalSuccess = option.success\n const nextOption = {\n ...option,\n url: nextUrl,\n success: (...args: any[]) => {\n if (typeof nextUrl === 'string') {\n notifyRouteStateSync({\n method: methodName,\n source: 'native',\n url: nextUrl,\n })\n }\n return typeof originalSuccess === 'function'\n ? originalSuccess(...args)\n : undefined\n },\n }\n return rawMethod.call(rawRouter, nextOption)\n }\n }\n\n const nextCache = cachedByBasePath ?? new Map<string, RuntimeRouter>()\n nextCache.set(cacheKey, scopedRouter)\n runtimeRouterWrapperCache.set(rawRouter, nextCache)\n return scopedRouter\n}\n\nfunction useRuntimeRouterByAccessor(\n primaryAccessor: RuntimeRouterAccessor,\n fallbackAccessor: RuntimeRouterAccessor,\n helperName: 'useNativeRouter' | 'useNativePageRouter',\n): RuntimeRouter {\n const ctx = getCurrentSetupContext<any>()\n if (!ctx?.instance) {\n throw new Error(`${helperName}() 必须在 setup() 的同步阶段调用`)\n }\n\n const nativeInstance = ctx.instance as Record<string, any>\n const basePath = resolveRouterBasePath(nativeInstance, primaryAccessor)\n const primaryRouter = nativeInstance[primaryAccessor]\n if (isRuntimeRouter(primaryRouter)) {\n return createScopedRuntimeRouter(primaryRouter, basePath)\n }\n\n const fallbackRouter = nativeInstance[fallbackAccessor]\n if (isRuntimeRouter(fallbackRouter)) {\n return createScopedRuntimeRouter(fallbackRouter, basePath)\n }\n\n const globalFallbackRouter = createGlobalRouterFallback()\n if (globalFallbackRouter) {\n return createScopedRuntimeRouter(globalFallbackRouter, basePath)\n }\n\n throw new Error('当前运行环境不支持 Router,请升级宿主基础库或检查平台路由能力')\n}\n\n/**\n * 在 setup 中获取与当前组件路径语义一致的原生 Router 对象。\n *\n * - 优先使用实例上的 `this.router`(组件路径语义)。\n * - 不可用时回退到 `this.pageRouter`。\n * - 低版本基础库再回退到宿主全局路由方法。\n *\n * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),\n * 推荐改用 `wevu/router` 子入口的 `useRouter()`。\n */\nexport function useNativeRouter(): RuntimeRouter {\n return useRuntimeRouterByAccessor('router', 'pageRouter', 'useNativeRouter')\n}\n\n/**\n * 在 setup 中获取与当前页面路径语义一致的原生 Router 对象。\n *\n * - 优先使用实例上的 `this.pageRouter`(页面路径语义)。\n * - 不可用时回退到 `this.router`。\n * - 低版本基础库再回退到宿主全局路由方法。\n *\n * 如需更贴近 Vue Router 的高阶能力(导航守卫、失败类型、统一解析),\n * 推荐改用 `wevu/router` 子入口的 `useRouter()`。\n */\nexport function useNativePageRouter(): RuntimeRouter {\n return useRuntimeRouterByAccessor('pageRouter', 'router', 'useNativePageRouter')\n}\n"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { shallowRef } from "../../reactivity/shallowRef.mjs";
2
+ import { getCurrentInstance } from "../hooks/base.mjs";
3
+ import { WEVU_TEMPLATE_REF_MAP_KEY } from "@weapp-core/constants";
4
+
5
+ //#region src/runtime/vueCompat/templateRef.ts
6
+ function ensureTemplateRefMap(target) {
7
+ const existing = target[WEVU_TEMPLATE_REF_MAP_KEY];
8
+ if (existing) return existing;
9
+ const next = /* @__PURE__ */ new Map();
10
+ try {
11
+ Object.defineProperty(target, WEVU_TEMPLATE_REF_MAP_KEY, {
12
+ value: next,
13
+ configurable: true,
14
+ enumerable: false,
15
+ writable: false
16
+ });
17
+ } catch (_unused) {
18
+ target[WEVU_TEMPLATE_REF_MAP_KEY] = next;
19
+ }
20
+ return next;
21
+ }
22
+ function useTemplateRef(name) {
23
+ const instance = getCurrentInstance();
24
+ if (!instance) throw new Error("useTemplateRef() 必须在 setup() 的同步阶段调用");
25
+ const normalized = typeof name === "string" ? name.trim() : "";
26
+ if (!normalized) throw new Error("useTemplateRef() 需要传入有效的模板 ref 名称");
27
+ const map = ensureTemplateRefMap(instance);
28
+ const existing = map.get(normalized);
29
+ if (existing) return existing;
30
+ const target = shallowRef(null);
31
+ map.set(normalized, target);
32
+ return target;
33
+ }
34
+
35
+ //#endregion
36
+ export { useTemplateRef };
37
+ //# sourceMappingURL=templateRef.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateRef.mjs","names":[],"sources":["../../../../src/runtime/vueCompat/templateRef.ts"],"sourcesContent":["import type { Ref, ShallowRef } from '../../reactivity'\nimport type { InternalRuntimeState, TemplateRefs } from '../types'\nimport { WEVU_TEMPLATE_REF_MAP_KEY } from '@weapp-core/constants'\nimport { shallowRef } from '../../reactivity'\nimport { getCurrentInstance } from '../hooks'\n\ntype TemplateRefMap = Map<string, Ref<any>>\n\nfunction ensureTemplateRefMap(target: InternalRuntimeState): TemplateRefMap {\n const existing = (target as any)[WEVU_TEMPLATE_REF_MAP_KEY] as TemplateRefMap | undefined\n if (existing) {\n return existing\n }\n const next = new Map<string, Ref<any>>()\n try {\n Object.defineProperty(target, WEVU_TEMPLATE_REF_MAP_KEY, {\n value: next,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(target as any)[WEVU_TEMPLATE_REF_MAP_KEY] = next\n }\n return next\n}\n\nexport type TemplateRef<T = unknown> = Readonly<ShallowRef<T | null>>\n\nexport function useTemplateRef<K extends keyof TemplateRefs>(name: K): TemplateRef<TemplateRefs[K]>\nexport function useTemplateRef<T = unknown>(name: string): TemplateRef<T>\nexport function useTemplateRef<T = unknown>(name: string): TemplateRef<T> {\n const instance = getCurrentInstance()\n if (!instance) {\n throw new Error('useTemplateRef() 必须在 setup() 的同步阶段调用')\n }\n const normalized = typeof name === 'string' ? name.trim() : ''\n if (!normalized) {\n throw new Error('useTemplateRef() 需要传入有效的模板 ref 名称')\n }\n const map = ensureTemplateRefMap(instance)\n const existing = map.get(normalized)\n if (existing) {\n return existing as TemplateRef<T>\n }\n const target = shallowRef<T | null>(null)\n map.set(normalized, target)\n return target as TemplateRef<T>\n}\n"],"mappings":";;;;;AAQA,SAAS,qBAAqB,QAA8C;CAC1E,MAAM,WAAY,OAAe;CACjC,IAAI,UACF,OAAO;CAET,MAAM,uBAAO,IAAI,IAAsB;CACvC,IAAI;EACF,OAAO,eAAe,QAAQ,2BAA2B;GACvD,OAAO;GACP,cAAc;GACd,YAAY;GACZ,UAAU;EACZ,CAAC;CACH,kBACM;EACH,AAAC,OAAe,6BAA6B;CAChD;CACA,OAAO;AACT;AAMA,SAAgB,eAA4B,MAA8B;CACxE,MAAM,WAAW,mBAAmB;CACpC,IAAI,CAAC,UACH,MAAM,IAAI,MAAM,sCAAsC;CAExD,MAAM,aAAa,OAAO,SAAS,WAAW,KAAK,KAAK,IAAI;CAC5D,IAAI,CAAC,YACH,MAAM,IAAI,MAAM,mCAAmC;CAErD,MAAM,MAAM,qBAAqB,QAAQ;CACzC,MAAM,WAAW,IAAI,IAAI,UAAU;CACnC,IAAI,UACF,OAAO;CAET,MAAM,SAAS,WAAqB,IAAI;CACxC,IAAI,IAAI,YAAY,MAAM;CAC1B,OAAO;AACT"}
@@ -0,0 +1,75 @@
1
+ //#region src/scheduler.ts
2
+ const resolvedPromise = Promise.resolve();
3
+ const jobQueue = /* @__PURE__ */ new Set();
4
+ const deferredJobQueue = /* @__PURE__ */ new Set();
5
+ let isFlushing = false;
6
+ let isFlushPending = false;
7
+ let flushedJobs;
8
+ let currentFlushPromise;
9
+ function flushJobs() {
10
+ isFlushPending = false;
11
+ isFlushing = true;
12
+ flushedJobs = /* @__PURE__ */ new Set();
13
+ let shouldFlushDeferred = false;
14
+ let hasError = false;
15
+ let firstError;
16
+ const pendingJobs = [];
17
+ try {
18
+ jobQueue.forEach((job) => {
19
+ flushedJobs === null || flushedJobs === void 0 || flushedJobs.add(job);
20
+ try {
21
+ const result = job();
22
+ if (result && typeof result.then === "function") pendingJobs.push(result);
23
+ } catch (error) {
24
+ if (!hasError) {
25
+ hasError = true;
26
+ firstError = error;
27
+ }
28
+ }
29
+ });
30
+ } finally {
31
+ jobQueue.clear();
32
+ flushedJobs = void 0;
33
+ isFlushing = false;
34
+ if (deferredJobQueue.size) {
35
+ deferredJobQueue.forEach((job) => jobQueue.add(job));
36
+ deferredJobQueue.clear();
37
+ isFlushPending = true;
38
+ shouldFlushDeferred = true;
39
+ }
40
+ }
41
+ if (pendingJobs.length || shouldFlushDeferred) return Promise.all(pendingJobs).then(() => shouldFlushDeferred ? flushJobs() : void 0).then(() => {
42
+ if (hasError) throw firstError;
43
+ }, (error) => {
44
+ throw hasError ? firstError : error;
45
+ });
46
+ if (hasError) throw firstError;
47
+ }
48
+ function queueFlush() {
49
+ const flushPromise = resolvedPromise.then(flushJobs);
50
+ currentFlushPromise = flushPromise;
51
+ const clearCurrentFlushPromise = () => {
52
+ if (currentFlushPromise === flushPromise) currentFlushPromise = void 0;
53
+ };
54
+ flushPromise.then(clearCurrentFlushPromise, clearCurrentFlushPromise);
55
+ }
56
+ function queueJob(job) {
57
+ if (isFlushing && (flushedJobs === null || flushedJobs === void 0 ? void 0 : flushedJobs.has(job))) {
58
+ deferredJobQueue.add(job);
59
+ return;
60
+ }
61
+ jobQueue.add(job);
62
+ if (!isFlushing && !isFlushPending) {
63
+ isFlushPending = true;
64
+ queueFlush();
65
+ }
66
+ }
67
+ function nextTick(fn) {
68
+ var _currentFlushPromise;
69
+ const promise = (_currentFlushPromise = currentFlushPromise) !== null && _currentFlushPromise !== void 0 ? _currentFlushPromise : resolvedPromise;
70
+ return fn ? promise.then(fn) : promise;
71
+ }
72
+
73
+ //#endregion
74
+ export { nextTick, queueJob };
75
+ //# sourceMappingURL=scheduler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.mjs","names":[],"sources":["../../src/scheduler.ts"],"sourcesContent":["const resolvedPromise: Promise<void> = Promise.resolve()\n\ntype Job = () => void | PromiseLike<void>\n\nconst jobQueue = new Set<Job>()\nconst deferredJobQueue = new Set<Job>()\nlet isFlushing = false\nlet isFlushPending = false\nlet flushedJobs: Set<Job> | undefined\nlet currentFlushPromise: Promise<void> | undefined\n\nfunction flushJobs(): void | Promise<void> {\n isFlushPending = false\n isFlushing = true\n flushedJobs = new Set()\n let shouldFlushDeferred = false\n let hasError = false\n let firstError: unknown\n const pendingJobs: PromiseLike<void>[] = []\n try {\n jobQueue.forEach((job) => {\n flushedJobs?.add(job)\n try {\n const result = job()\n if (result && typeof result.then === 'function') {\n pendingJobs.push(result)\n }\n }\n catch (error) {\n if (!hasError) {\n hasError = true\n firstError = error\n }\n }\n })\n }\n finally {\n jobQueue.clear()\n flushedJobs = undefined\n isFlushing = false\n if (deferredJobQueue.size) {\n deferredJobQueue.forEach(job => jobQueue.add(job))\n deferredJobQueue.clear()\n isFlushPending = true\n shouldFlushDeferred = true\n }\n }\n if (pendingJobs.length || shouldFlushDeferred) {\n return Promise.all(pendingJobs)\n .then(() => shouldFlushDeferred ? flushJobs() : undefined)\n .then(\n () => {\n if (hasError) {\n throw firstError\n }\n },\n (error: unknown) => {\n throw hasError ? firstError : error\n },\n )\n }\n if (hasError) {\n throw firstError\n }\n}\n\nfunction queueFlush() {\n const flushPromise = resolvedPromise.then(flushJobs)\n currentFlushPromise = flushPromise\n const clearCurrentFlushPromise = () => {\n if (currentFlushPromise === flushPromise) {\n currentFlushPromise = undefined\n }\n }\n void flushPromise.then(clearCurrentFlushPromise, clearCurrentFlushPromise)\n}\n\nexport function queueJob(job: Job) {\n if (isFlushing && flushedJobs?.has(job)) {\n deferredJobQueue.add(job)\n return\n }\n jobQueue.add(job)\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true\n queueFlush()\n }\n}\n\nexport function nextTick<T>(fn?: () => T): Promise<T> {\n const promise = currentFlushPromise ?? resolvedPromise\n return fn ? promise.then(fn) : (promise as unknown as Promise<T>)\n}\n"],"mappings":";AAAA,MAAM,kBAAiC,QAAQ,QAAQ;AAIvD,MAAM,2BAAW,IAAI,IAAS;AAC9B,MAAM,mCAAmB,IAAI,IAAS;AACtC,IAAI,aAAa;AACjB,IAAI,iBAAiB;AACrB,IAAI;AACJ,IAAI;AAEJ,SAAS,YAAkC;CACzC,iBAAiB;CACjB,aAAa;CACb,8BAAc,IAAI,IAAI;CACtB,IAAI,sBAAsB;CAC1B,IAAI,WAAW;CACf,IAAI;CACJ,MAAM,cAAmC,CAAC;CAC1C,IAAI;EACF,SAAS,SAAS,QAAQ;GACxB,8DAAa,IAAI,GAAG;GACpB,IAAI;IACF,MAAM,SAAS,IAAI;IACnB,IAAI,UAAU,OAAO,OAAO,SAAS,YACnC,YAAY,KAAK,MAAM;GAE3B,SACO,OAAO;IACZ,IAAI,CAAC,UAAU;KACb,WAAW;KACX,aAAa;IACf;GACF;EACF,CAAC;CACH,UACQ;EACN,SAAS,MAAM;EACf,cAAc;EACd,aAAa;EACb,IAAI,iBAAiB,MAAM;GACzB,iBAAiB,SAAQ,QAAO,SAAS,IAAI,GAAG,CAAC;GACjD,iBAAiB,MAAM;GACvB,iBAAiB;GACjB,sBAAsB;EACxB;CACF;CACA,IAAI,YAAY,UAAU,qBACxB,OAAO,QAAQ,IAAI,WAAW,CAAC,CAC5B,WAAW,sBAAsB,UAAU,IAAI,MAAS,CAAC,CACzD,WACO;EACJ,IAAI,UACF,MAAM;CAEV,IACC,UAAmB;EAClB,MAAM,WAAW,aAAa;CAChC,CACF;CAEJ,IAAI,UACF,MAAM;AAEV;AAEA,SAAS,aAAa;CACpB,MAAM,eAAe,gBAAgB,KAAK,SAAS;CACnD,sBAAsB;CACtB,MAAM,iCAAiC;EACrC,IAAI,wBAAwB,cAC1B,sBAAsB;CAE1B;CACA,AAAK,aAAa,KAAK,0BAA0B,wBAAwB;AAC3E;AAEA,SAAgB,SAAS,KAAU;CACjC,IAAI,yEAAc,YAAa,IAAI,GAAG,IAAG;EACvC,iBAAiB,IAAI,GAAG;EACxB;CACF;CACA,SAAS,IAAI,GAAG;CAChB,IAAI,CAAC,cAAc,CAAC,gBAAgB;EAClC,iBAAiB;EACjB,WAAW;CACb;AACF;AAEA,SAAgB,SAAY,IAA0B;;CACpD,MAAM,kCAAU,0FAAuB;CACvC,OAAO,KAAK,QAAQ,KAAK,EAAE,IAAK;AAClC"}
@@ -0,0 +1,40 @@
1
+ //#region src/store/actions.ts
2
+ function wrapAction(store, name, action, actionSubs) {
3
+ return function wrapped(...args) {
4
+ const afterCbs = [];
5
+ const errorCbs = [];
6
+ const after = (cb) => afterCbs.push(cb);
7
+ const onError = (cb) => errorCbs.push(cb);
8
+ actionSubs.forEach((sub) => {
9
+ try {
10
+ sub({
11
+ name,
12
+ store,
13
+ args,
14
+ after,
15
+ onError
16
+ });
17
+ } catch (_unused) {}
18
+ });
19
+ let res;
20
+ try {
21
+ res = action.apply(store, args);
22
+ } catch (e) {
23
+ errorCbs.forEach((cb) => cb(e));
24
+ throw e;
25
+ }
26
+ const finalize = (r) => {
27
+ afterCbs.forEach((cb) => cb(r));
28
+ return r;
29
+ };
30
+ if (res && typeof res.then === "function") return res.then((r) => finalize(r), (e) => {
31
+ errorCbs.forEach((cb) => cb(e));
32
+ return Promise.reject(e);
33
+ });
34
+ return finalize(res);
35
+ };
36
+ }
37
+
38
+ //#endregion
39
+ export { wrapAction };
40
+ //# sourceMappingURL=actions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.mjs","names":[],"sources":["../../../src/store/actions.ts"],"sourcesContent":["import type { ActionSubscriber } from './types'\n\nexport function wrapAction<TStore extends Record<string, any>>(\n store: TStore,\n name: string,\n action: (...args: any[]) => any,\n actionSubs: Set<ActionSubscriber<TStore>>,\n) {\n return function wrapped(this: any, ...args: any[]) {\n const afterCbs: Array<(r: any) => void> = []\n const errorCbs: Array<(e: any) => void> = []\n const after = (cb: (r: any) => void) => afterCbs.push(cb)\n const onError = (cb: (e: any) => void) => errorCbs.push(cb)\n actionSubs.forEach((sub) => {\n try {\n sub({ name, store, args, after, onError })\n }\n catch {\n // 捕获订阅者回调内部的异常,避免单个监听器出错影响其他订阅和原始 action 执行链\n }\n })\n let res: any\n try {\n res = action.apply(store, args)\n }\n catch (e) {\n errorCbs.forEach(cb => cb(e))\n throw e\n }\n const finalize = (r: any) => {\n afterCbs.forEach(cb => cb(r))\n return r\n }\n if (res && typeof (res as Promise<any>).then === 'function') {\n return (res as Promise<any>).then(\n r => finalize(r),\n (e) => {\n errorCbs.forEach(cb => cb(e))\n return Promise.reject(e)\n },\n )\n }\n return finalize(res)\n }\n}\n"],"mappings":";AAEA,SAAgB,WACd,OACA,MACA,QACA,YACA;CACA,OAAO,SAAS,QAAmB,GAAG,MAAa;EACjD,MAAM,WAAoC,CAAC;EAC3C,MAAM,WAAoC,CAAC;EAC3C,MAAM,SAAS,OAAyB,SAAS,KAAK,EAAE;EACxD,MAAM,WAAW,OAAyB,SAAS,KAAK,EAAE;EAC1D,WAAW,SAAS,QAAQ;GAC1B,IAAI;IACF,IAAI;KAAE;KAAM;KAAO;KAAM;KAAO;IAAQ,CAAC;GAC3C,kBACM,CAEN;EACF,CAAC;EACD,IAAI;EACJ,IAAI;GACF,MAAM,OAAO,MAAM,OAAO,IAAI;EAChC,SACO,GAAG;GACR,SAAS,SAAQ,OAAM,GAAG,CAAC,CAAC;GAC5B,MAAM;EACR;EACA,MAAM,YAAY,MAAW;GAC3B,SAAS,SAAQ,OAAM,GAAG,CAAC,CAAC;GAC5B,OAAO;EACT;EACA,IAAI,OAAO,OAAQ,IAAqB,SAAS,YAC/C,OAAQ,IAAqB,MAC3B,MAAK,SAAS,CAAC,IACd,MAAM;GACL,SAAS,SAAQ,OAAM,GAAG,CAAC,CAAC;GAC5B,OAAO,QAAQ,OAAO,CAAC;EACzB,CACF;EAEF,OAAO,SAAS,GAAG;CACrB;AACF"}
@@ -0,0 +1,56 @@
1
+ import { isObject, mergeShallow } from "./utils.mjs";
2
+
3
+ //#region src/store/base.ts
4
+ function createBaseApi(id, stateObj, notify, resetImpl) {
5
+ const api = { $id: id };
6
+ Object.defineProperty(api, "$state", {
7
+ get() {
8
+ return stateObj;
9
+ },
10
+ set(v) {
11
+ if (stateObj && isObject(v)) {
12
+ mergeShallow(stateObj, v);
13
+ notify("patch object");
14
+ }
15
+ }
16
+ });
17
+ api.$patch = (patch) => {
18
+ if (!stateObj) {
19
+ if (typeof patch === "function") {
20
+ patch(api);
21
+ notify("patch function");
22
+ } else {
23
+ mergeShallow(api, patch);
24
+ notify("patch object");
25
+ }
26
+ return;
27
+ }
28
+ if (typeof patch === "function") {
29
+ patch(stateObj);
30
+ notify("patch function");
31
+ } else {
32
+ mergeShallow(stateObj, patch);
33
+ notify("patch object");
34
+ }
35
+ };
36
+ if (resetImpl) api.$reset = () => resetImpl();
37
+ const subs = /* @__PURE__ */ new Set();
38
+ api.$subscribe = (cb, _opts) => {
39
+ subs.add(cb);
40
+ return () => subs.delete(cb);
41
+ };
42
+ const actionSubs = /* @__PURE__ */ new Set();
43
+ api.$onAction = (cb) => {
44
+ actionSubs.add(cb);
45
+ return () => actionSubs.delete(cb);
46
+ };
47
+ return {
48
+ api,
49
+ subs,
50
+ actionSubs
51
+ };
52
+ }
53
+
54
+ //#endregion
55
+ export { createBaseApi };
56
+ //# sourceMappingURL=base.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.mjs","names":[],"sources":["../../../src/store/base.ts"],"sourcesContent":["import type { ActionSubscriber, MutationType, SubscriptionCallback } from './types'\nimport { isObject, mergeShallow } from './utils'\n\nexport function createBaseApi<S extends Record<string, any>>(\n id: string,\n stateObj: S | undefined,\n notify: (type: MutationType) => void,\n resetImpl?: () => void,\n) {\n const api: any = {\n $id: id,\n }\n Object.defineProperty(api, '$state', {\n get() {\n return stateObj\n },\n set(v: any) {\n if (stateObj && isObject(v)) {\n mergeShallow(stateObj, v)\n notify('patch object')\n }\n },\n })\n api.$patch = (patch: Record<string, any> | ((state: S) => void)) => {\n if (!stateObj) {\n if (typeof patch === 'function') {\n patch(api as S)\n notify('patch function')\n }\n else {\n mergeShallow(api as any, patch)\n notify('patch object')\n }\n return\n }\n if (typeof patch === 'function') {\n patch(stateObj)\n notify('patch function')\n }\n else {\n mergeShallow(stateObj, patch)\n notify('patch object')\n }\n }\n if (resetImpl) {\n api.$reset = () => resetImpl()\n }\n const subs = new Set<SubscriptionCallback<S>>()\n api.$subscribe = (cb: SubscriptionCallback<S>, _opts?: { detached?: boolean }) => {\n subs.add(cb)\n return () => subs.delete(cb)\n }\n const actionSubs = new Set<ActionSubscriber<any>>()\n api.$onAction = (cb: ActionSubscriber<any>) => {\n actionSubs.add(cb)\n return () => actionSubs.delete(cb)\n }\n return { api, subs, actionSubs }\n}\n"],"mappings":";;;AAGA,SAAgB,cACd,IACA,UACA,QACA,WACA;CACA,MAAM,MAAW,EACf,KAAK,GACP;CACA,OAAO,eAAe,KAAK,UAAU;EACnC,MAAM;GACJ,OAAO;EACT;EACA,IAAI,GAAQ;GACV,IAAI,YAAY,SAAS,CAAC,GAAG;IAC3B,aAAa,UAAU,CAAC;IACxB,OAAO,cAAc;GACvB;EACF;CACF,CAAC;CACD,IAAI,UAAU,UAAsD;EAClE,IAAI,CAAC,UAAU;GACb,IAAI,OAAO,UAAU,YAAY;IAC/B,MAAM,GAAQ;IACd,OAAO,gBAAgB;GACzB,OACK;IACH,aAAa,KAAY,KAAK;IAC9B,OAAO,cAAc;GACvB;GACA;EACF;EACA,IAAI,OAAO,UAAU,YAAY;GAC/B,MAAM,QAAQ;GACd,OAAO,gBAAgB;EACzB,OACK;GACH,aAAa,UAAU,KAAK;GAC5B,OAAO,cAAc;EACvB;CACF;CACA,IAAI,WACF,IAAI,eAAe,UAAU;CAE/B,MAAM,uBAAO,IAAI,IAA6B;CAC9C,IAAI,cAAc,IAA6B,UAAmC;EAChF,KAAK,IAAI,EAAE;EACX,aAAa,KAAK,OAAO,EAAE;CAC7B;CACA,MAAM,6BAAa,IAAI,IAA2B;CAClD,IAAI,aAAa,OAA8B;EAC7C,WAAW,IAAI,EAAE;EACjB,aAAa,WAAW,OAAO,EAAE;CACnC;CACA,OAAO;EAAE;EAAK;EAAM;CAAW;AACjC"}