wevu 6.16.7 → 6.16.8

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.
@@ -1,7 +1,7 @@
1
- import { $ as isNoSetData, A as createApp, B as waitForLayoutHost, C as usePageStack, Ct as shallowRef, D as createWevuComponent, E as useDisposables, F as resolveLayoutHost, G as runSetupFunction, H as mountRuntimeInstance, I as unregisterPageLayoutBridge, J as syncRuntimePageLayoutState, K as resolveRuntimePageLayoutName, L as unregisterRuntimeLayoutHosts, M as registerPageLayoutBridge, N as registerRuntimeLayoutHosts, O as createWevuScopedSlotComponent, P as resolveLayoutBridge, Q as setWevuDefaults, R as useLayoutBridge, S as useNavigationBarMetrics, St as isShallowRef, T as useElementIntersectionObserver, U as setRuntimeSetDataVisibility, V as registerApp, W as teardownRuntimeInstance, X as usePageLayout, Y as syncRuntimePageLayoutStateFromRuntime, Z as resetWevuDefaults, _ as useSelectorQuery, _t as onUnmounted, a as useModel, at as watchSyncEffect, b as getCurrentPageStackSnapshot, bt as toRef, c as useSlots, ct as callUpdateHooks, d as useUpdatePerformanceListener, dt as onBeforeUnmount, et as markNoSetData, f as normalizeClass, ft as onBeforeUpdate, g as useSelectorFields, gt as onServerPrefetch, h as useScrollOffset, ht as onMounted, i as useChangeModel, it as watchPostEffect, j as registerComponent, k as defineComponent, l as defineAppSetup, lt as onActivated, m as useBoundingClientRect, mt as onErrorCaptured, n as mergeModels, nt as watch, o as useAttrs, ot as getDeepWatchStrategy, p as normalizeStyle, pt as onDeactivated, q as setPageLayout, r as useBindModel, rt as watchEffect, s as useNativeInstance, st as setDeepWatchStrategy, t as useTemplateRef, tt as version, u as use, ut as onBeforeMount, v as useAsyncPullDownRefresh, vt as onUpdated, w as useIntersectionObserver, wt as triggerRef, x as getNavigationBarMetrics, xt as toRefs, y as usePageScrollThrottle, yt as traverse, z as useLayoutHosts } from "./src-C3ttY2ue.mjs";
2
- import { C as effect, D as onScopeDispose, E as getCurrentScope, N as nextTick, O as startBatch, S as batch, T as endBatch, a as toValue, b as addMutationRecorder, c as isRaw, d as reactive, f as isShallowReactive, g as touchReactive, h as prelinkReactiveTree, i as ref, k as stop, l as isReactive, n as isRef, o as unref, p as shallowReactive, s as getReactiveVersion, t as customRef, u as markRaw, w as effectScope, x as removeMutationRecorder, y as toRaw } from "./ref-oJCdOWf7.mjs";
3
- import { i as computed, n as defineStore, r as createStore, t as storeToRefs } from "./store-BhOds5RF.mjs";
4
- import { $ as onUnhandledRejection, A as setGlobalProvidedValue, B as onPageNotFound, F as onHide, G as onResize, H as onPullDownRefresh, I as onLaunch, J as onShareAppMessage, K as onRouteDone, L as onLoad, M as onAttached, N as onDetached, P as onError, Q as onThemeChange, R as onMemoryWarning, U as onReachBottom, V as onPageScroll, W as onReady, X as onShow, Y as onShareTimeline, Z as onTabItemTap, _ as provide, _t as readonly, at as getCurrentSetupContext, ct as setCurrentSetupContext, et as onUnload, g as injectGlobal, gt as isReadonly, h as inject, ht as isProxy, it as getCurrentInstance, j as onAddToFavorites, m as hasInjectionContext, n as useNativeRouter, nt as callHookList, q as onSaveExitState, rt as callHookReturn, st as setCurrentInstance, t as useNativePageRouter, v as provideGlobal, vt as shallowReadonly, z as onMoved } from "./router-CXNNN43P.mjs";
1
+ import { $ as isNoSetData, A as createApp, B as waitForLayoutHost, C as usePageStack, Ct as shallowRef, D as createWevuComponent, E as useDisposables, F as resolveLayoutHost, G as runSetupFunction, H as mountRuntimeInstance, I as unregisterPageLayoutBridge, J as syncRuntimePageLayoutState, K as resolveRuntimePageLayoutName, L as unregisterRuntimeLayoutHosts, M as registerPageLayoutBridge, N as registerRuntimeLayoutHosts, O as createWevuScopedSlotComponent, P as resolveLayoutBridge, Q as setWevuDefaults, R as useLayoutBridge, S as useNavigationBarMetrics, St as isShallowRef, T as useElementIntersectionObserver, U as setRuntimeSetDataVisibility, V as registerApp, W as teardownRuntimeInstance, X as usePageLayout, Y as syncRuntimePageLayoutStateFromRuntime, Z as resetWevuDefaults, _ as useSelectorQuery, _t as onUnmounted, a as useModel, at as watchSyncEffect, b as getCurrentPageStackSnapshot, bt as toRef, c as useSlots, ct as callUpdateHooks, d as useUpdatePerformanceListener, dt as onBeforeUnmount, et as markNoSetData, f as normalizeClass, ft as onBeforeUpdate, g as useSelectorFields, gt as onServerPrefetch, h as useScrollOffset, ht as onMounted, i as useChangeModel, it as watchPostEffect, j as registerComponent, k as defineComponent, l as defineAppSetup, lt as onActivated, m as useBoundingClientRect, mt as onErrorCaptured, n as mergeModels, nt as watch, o as useAttrs, ot as getDeepWatchStrategy, p as normalizeStyle, pt as onDeactivated, q as setPageLayout, r as useBindModel, rt as watchEffect, s as useNativeInstance, st as setDeepWatchStrategy, t as useTemplateRef, tt as version, u as use, ut as onBeforeMount, v as useAsyncPullDownRefresh, vt as onUpdated, w as useIntersectionObserver, wt as triggerRef, x as getNavigationBarMetrics, xt as toRefs, y as usePageScrollThrottle, yt as traverse, z as useLayoutHosts } from "./src-Bg6AVYQe.mjs";
2
+ import { C as effect, D as onScopeDispose, E as getCurrentScope, N as nextTick, O as startBatch, S as batch, T as endBatch, a as toValue, b as addMutationRecorder, c as isRaw, d as reactive, f as isShallowReactive, g as touchReactive, h as prelinkReactiveTree, i as ref, k as stop, l as isReactive, n as isRef, o as unref, p as shallowReactive, s as getReactiveVersion, t as customRef, u as markRaw, w as effectScope, x as removeMutationRecorder, y as toRaw } from "./ref-Dui1TzOR.mjs";
3
+ import { i as computed, n as defineStore, r as createStore, t as storeToRefs } from "./store-Brqfb7LU.mjs";
4
+ import { $ as onUnhandledRejection, A as setGlobalProvidedValue, B as onPageNotFound, F as onHide, G as onResize, H as onPullDownRefresh, I as onLaunch, J as onShareAppMessage, K as onRouteDone, L as onLoad, M as onAttached, N as onDetached, P as onError, Q as onThemeChange, R as onMemoryWarning, U as onReachBottom, V as onPageScroll, W as onReady, X as onShow, Y as onShareTimeline, Z as onTabItemTap, _ as provide, _t as readonly, at as getCurrentSetupContext, ct as setCurrentSetupContext, et as onUnload, g as injectGlobal, gt as isReadonly, h as inject, ht as isProxy, it as getCurrentInstance, j as onAddToFavorites, m as hasInjectionContext, n as useNativeRouter, nt as callHookList, q as onSaveExitState, rt as callHookReturn, st as setCurrentInstance, t as useNativePageRouter, v as provideGlobal, vt as shallowReadonly, z as onMoved } from "./router-DFQw3LKA.mjs";
5
5
 
6
6
  export * from "@wevu/web-apis"
7
7
 
@@ -25,7 +25,7 @@ function nextTick(fn) {
25
25
  }
26
26
 
27
27
  //#endregion
28
- //#region \0@oxc-project+runtime@0.128.0/helpers/typeof.js
28
+ //#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
29
29
  function _typeof(o) {
30
30
  "@babel/helpers - typeof";
31
31
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -36,7 +36,7 @@ function _typeof(o) {
36
36
  }
37
37
 
38
38
  //#endregion
39
- //#region \0@oxc-project+runtime@0.128.0/helpers/toPrimitive.js
39
+ //#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
40
40
  function toPrimitive(t, r) {
41
41
  if ("object" != _typeof(t) || !t) return t;
42
42
  var e = t[Symbol.toPrimitive];
@@ -49,14 +49,14 @@ function toPrimitive(t, r) {
49
49
  }
50
50
 
51
51
  //#endregion
52
- //#region \0@oxc-project+runtime@0.128.0/helpers/toPropertyKey.js
52
+ //#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
53
53
  function toPropertyKey(t) {
54
54
  var i = toPrimitive(t, "string");
55
55
  return "symbol" == _typeof(i) ? i : i + "";
56
56
  }
57
57
 
58
58
  //#endregion
59
- //#region \0@oxc-project+runtime@0.128.0/helpers/defineProperty.js
59
+ //#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
60
60
  function _defineProperty(e, r, t) {
61
61
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
62
62
  value: t,
@@ -869,4 +869,4 @@ function customRef(factory, defaultValue) {
869
869
 
870
870
  //#endregion
871
871
  export { track as A, effect as C, onScopeDispose as D, getCurrentScope as E, triggerEffects as M, nextTick as N, startBatch as O, queueJob as P, batch as S, endBatch as T, getTargetType as _, toValue as a, addMutationRecorder as b, isRaw as c, reactive as d, isShallowReactive as f, touchReactive as g, prelinkReactiveTree as h, ref as i, trigger as j, stop as k, isReactive as l, clearPatchIndices as m, isRef as n, unref as o, shallowReactive as p, markAsRef as r, getReactiveVersion as s, customRef as t, markRaw as u, isObject as v, effectScope as w, removeMutationRecorder as x, toRaw as y };
872
- //# sourceMappingURL=ref-oJCdOWf7.mjs.map
872
+ //# sourceMappingURL=ref-Dui1TzOR.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ref-oJCdOWf7.mjs","names":[],"sources":["../../src/scheduler.ts","../../src/reactivity/core.ts","../../src/reactivity/reactive/mutation.ts","../../src/reactivity/reactive/patchState.ts","../../src/reactivity/reactive/shared.ts","../../src/reactivity/reactive/state.ts","../../src/reactivity/reactive/patch.ts","../../src/reactivity/reactive/shallow.ts","../../src/reactivity/reactive.ts","../../src/reactivity/ref.ts"],"sourcesContent":["const resolvedPromise: Promise<void> = Promise.resolve()\n\ntype Job = () => void\n\nconst jobQueue = new Set<Job>()\nlet isFlushing = false\nlet isFlushPending = false\n\nfunction flushJobs() {\n isFlushPending = false\n isFlushing = true\n try {\n jobQueue.forEach(job => job())\n }\n finally {\n jobQueue.clear()\n isFlushing = false\n }\n}\n\nexport function queueJob(job: Job) {\n jobQueue.add(job)\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true\n resolvedPromise.then(flushJobs)\n }\n}\n\nexport function nextTick<T>(fn?: () => T): Promise<T> {\n return fn ? resolvedPromise.then(fn) : (resolvedPromise as unknown as Promise<T>)\n}\n","import { queueJob } from '../scheduler'\n\nexport type EffectScheduler = () => void\n\nexport type Dep = Set<ReactiveEffect>\n\nexport interface ReactiveEffect<T = any> {\n (): T\n deps: Dep[]\n scheduler?: EffectScheduler\n active: boolean\n _running: boolean\n _fn: () => T\n onStop?: () => void\n}\n\nconst targetMap = new WeakMap<object, Map<PropertyKey, Dep>>()\n\nlet activeEffect: ReactiveEffect | null = null\nconst effectStack: ReactiveEffect[] = []\n\nlet batchDepth = 0\nconst batchedEffects = new Set<ReactiveEffect>()\n\nexport function startBatch() {\n batchDepth++\n}\n\nfunction flushBatchedEffects() {\n while (batchedEffects.size) {\n const effects = [...batchedEffects]\n batchedEffects.clear()\n for (const ef of effects) {\n ef()\n }\n }\n}\n\nexport function endBatch() {\n if (batchDepth === 0) {\n return\n }\n batchDepth--\n if (batchDepth === 0) {\n flushBatchedEffects()\n }\n}\n\nexport function batch<T>(fn: () => T): T {\n startBatch()\n try {\n return fn()\n }\n finally {\n endBatch()\n }\n}\n\nfunction cleanupEffect(effect: ReactiveEffect) {\n const { deps } = effect\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect)\n }\n deps.length = 0\n}\n\nexport function stop(runner: ReactiveEffect) {\n if (!runner.active) {\n return\n }\n runner.active = false\n cleanupEffect(runner)\n runner.onStop?.()\n}\n\nexport interface EffectScope {\n active: boolean\n effects: ReactiveEffect[]\n cleanups: (() => void)[]\n run: <T>(fn: () => T) => T | undefined\n stop: () => void\n}\n\nlet activeEffectScope: EffectScopeImpl | undefined\n\nclass EffectScopeImpl implements EffectScope {\n active = true\n effects: ReactiveEffect[] = []\n cleanups: (() => void)[] = []\n private parent: EffectScopeImpl | undefined\n private scopes: EffectScopeImpl[] | undefined\n\n constructor(private detached = false) {\n if (!detached && activeEffectScope) {\n this.parent = activeEffectScope\n ;(activeEffectScope.scopes ||= []).push(this)\n }\n }\n\n run<T>(fn: () => T): T | undefined {\n if (!this.active) {\n return\n }\n const prev = activeEffectScope\n // eslint-disable-next-line ts/no-this-alias -- 允许 this 临时别名\n activeEffectScope = this\n try {\n return fn()\n }\n finally {\n activeEffectScope = prev\n }\n }\n\n stop(): void {\n if (!this.active) {\n return\n }\n this.active = false\n\n for (const effect of this.effects) {\n stop(effect)\n }\n this.effects.length = 0\n\n for (const cleanup of this.cleanups) {\n cleanup()\n }\n this.cleanups.length = 0\n\n if (this.scopes) {\n for (const scope of this.scopes) {\n scope.stop()\n }\n this.scopes.length = 0\n }\n\n if (this.parent?.scopes) {\n const index = this.parent.scopes.indexOf(this)\n if (index >= 0) {\n this.parent.scopes.splice(index, 1)\n }\n }\n this.parent = undefined\n }\n}\n\nexport function effectScope(detached = false): EffectScope {\n return new EffectScopeImpl(detached)\n}\n\nexport function getCurrentScope(): EffectScope | undefined {\n return activeEffectScope\n}\n\nexport function onScopeDispose(fn: () => void): void {\n if (activeEffectScope?.active) {\n activeEffectScope.cleanups.push(fn)\n }\n}\n\nfunction recordEffectScope(effect: ReactiveEffect) {\n if (activeEffectScope?.active) {\n activeEffectScope.effects.push(effect)\n }\n}\n\nexport interface EffectOptions {\n scheduler?: EffectScheduler\n lazy?: boolean\n onStop?: () => void\n}\n\nexport function createReactiveEffect<T>(fn: () => T, options: EffectOptions = {}): ReactiveEffect<T> {\n const effect = function reactiveEffect() {\n if (!effect.active) {\n return fn()\n }\n if (effect._running) {\n return fn()\n }\n cleanupEffect(effect)\n try {\n effect._running = true\n effectStack.push(effect)\n activeEffect = effect\n return fn()\n }\n finally {\n effectStack.pop()\n activeEffect = effectStack[effectStack.length - 1] ?? null\n effect._running = false\n }\n } as ReactiveEffect<T>\n\n effect.deps = []\n effect.scheduler = options.scheduler\n effect.onStop = options.onStop\n effect.active = true\n effect._running = false\n effect._fn = fn\n\n return effect\n}\n\nexport function effect<T = any>(fn: () => T, options: EffectOptions = {}): ReactiveEffect<T> {\n const _effect = createReactiveEffect(fn, options)\n recordEffectScope(_effect)\n if (!options.lazy) {\n _effect()\n }\n return _effect\n}\n\nexport function track(target: object, key: PropertyKey) {\n if (!activeEffect) {\n return\n }\n let depsMap = targetMap.get(target)\n if (!depsMap) {\n depsMap = new Map()\n targetMap.set(target, depsMap)\n }\n let dep = depsMap.get(key)\n if (!dep) {\n dep = new Set()\n depsMap.set(key, dep)\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect)\n activeEffect.deps.push(dep)\n }\n}\n\nfunction scheduleEffect(ef: ReactiveEffect) {\n if (ef.scheduler) {\n ef.scheduler()\n return\n }\n if (batchDepth > 0) {\n batchedEffects.add(ef)\n return\n }\n ef()\n}\n\nexport function trigger(target: object, key: PropertyKey) {\n const depsMap = targetMap.get(target)\n if (!depsMap) {\n return\n }\n const effects = depsMap.get(key)\n if (!effects) {\n return\n }\n const effectsToRun = new Set<ReactiveEffect>()\n effects.forEach((ef) => {\n if (ef !== activeEffect) {\n effectsToRun.add(ef)\n }\n })\n effectsToRun.forEach(scheduleEffect)\n}\n\nexport function trackEffects(dep: Dep) {\n if (!activeEffect) {\n return\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect)\n activeEffect.deps.push(dep)\n }\n}\n\nexport function triggerEffects(dep: Dep) {\n // 迭代时复制依赖集合,避免遍历过程中被重新加入导致死循环。\n const effectsToRun = new Set(dep)\n effectsToRun.forEach(scheduleEffect)\n}\n\n// 导出队列调度工具,供 watch/watchEffect 等高层 API 复用同一批处理逻辑\nexport { queueJob }\n","export type MutationOp = 'set' | 'delete'\nexport type MutationKind = 'property' | 'array'\nexport interface MutationRecord {\n root: object\n kind: MutationKind\n op: MutationOp\n /**\n * 点路径(例如 `a.b.c`);当路径不可靠时为 undefined。\n */\n path?: string\n /**\n * 当路径不唯一时回退使用的顶层键列表。\n */\n fallbackTopKeys?: string[]\n}\n\ntype MutationRecorder = (record: MutationRecord) => void\n\nexport const mutationRecorders = new Set<MutationRecorder>()\n\nexport function addMutationRecorder(recorder: MutationRecorder) {\n mutationRecorders.add(recorder)\n}\n\nexport function removeMutationRecorder(recorder: MutationRecorder) {\n mutationRecorders.delete(recorder)\n}\n","import { mutationRecorders } from './mutation'\n\nexport const rawRootMap = new WeakMap<object, object>()\nexport const rawVersionMap = new WeakMap<object, number>()\nexport const rawParentMap = new WeakMap<object, { parent: object, key: PropertyKey }>()\nexport const rawParentsMap = new WeakMap<object, Map<object, Set<PropertyKey>>>()\nexport const rawMultiParentSet = new WeakSet<object>()\nexport const rawPathMap = new WeakMap<object, string>()\nexport const rootPatchNodesMap = new WeakMap<object, Set<object>>()\n\nfunction getRootPatchNodes(root: object) {\n let nodes = rootPatchNodesMap.get(root)\n if (!nodes) {\n nodes = new Set()\n rootPatchNodesMap.set(root, nodes)\n }\n return nodes\n}\n\nexport function indexPatchNode(root: object, node: object) {\n getRootPatchNodes(root).add(node)\n}\n\nexport function bumpRawVersion(target: object) {\n rawVersionMap.set(target, (rawVersionMap.get(target) ?? 0) + 1)\n}\n\nexport function getRawVersion(target: object) {\n return rawVersionMap.get(target) ?? 0\n}\n\nexport function bumpAncestorVersions(target: object) {\n const visited = new Set<object>()\n const stack: object[] = [target]\n for (let i = 0; i < 2000 && stack.length; i++) {\n const current = stack.pop()!\n const parents = rawParentsMap.get(current)\n if (!parents) {\n continue\n }\n for (const parent of parents.keys()) {\n if (visited.has(parent)) {\n continue\n }\n visited.add(parent)\n bumpRawVersion(parent)\n stack.push(parent)\n }\n }\n}\n\nfunction refreshPathUniqueness(child: object) {\n const parents = rawParentsMap.get(child)\n if (!parents) {\n rawMultiParentSet.delete(child)\n rawParentMap.delete(child)\n return\n }\n\n let uniqueParent: object | undefined\n let uniqueKey: PropertyKey | undefined\n let total = 0\n for (const [parent, keys] of parents) {\n for (const k of keys) {\n total += 1\n if (total > 1) {\n break\n }\n uniqueParent = parent\n uniqueKey = k\n }\n if (total > 1) {\n break\n }\n }\n\n if (total === 1 && uniqueParent && uniqueKey) {\n rawMultiParentSet.delete(child)\n rawParentMap.set(child, { parent: uniqueParent, key: uniqueKey })\n return\n }\n\n rawMultiParentSet.add(child)\n rawParentMap.delete(child)\n}\n\nexport function recordParentLink(child: object, parent: object, key: PropertyKey) {\n if (typeof key !== 'string') {\n rawMultiParentSet.add(child)\n rawParentMap.delete(child)\n return\n }\n\n if (mutationRecorders.size) {\n const root = rawRootMap.get(parent) ?? parent\n indexPatchNode(root, parent)\n indexPatchNode(root, child)\n }\n\n let parents = rawParentsMap.get(child)\n if (!parents) {\n parents = new Map()\n rawParentsMap.set(child, parents)\n }\n\n let keys = parents.get(parent)\n if (!keys) {\n keys = new Set()\n parents.set(parent, keys)\n }\n\n keys.add(key)\n refreshPathUniqueness(child)\n}\n\nexport function removeParentLink(child: object, parent: object, key: PropertyKey) {\n const parents = rawParentsMap.get(child)\n if (!parents) {\n return\n }\n const keys = parents.get(parent)\n if (!keys) {\n return\n }\n keys.delete(key)\n if (!keys.size) {\n parents.delete(parent)\n }\n if (!parents.size) {\n rawParentsMap.delete(child)\n }\n refreshPathUniqueness(child)\n}\n\nexport function resolvePathToTarget(root: object, target: object): string[] | undefined {\n if (target === root) {\n return []\n }\n if (rawMultiParentSet.has(target)) {\n return undefined\n }\n const segments: string[] = []\n let current: object = target\n for (let i = 0; i < 2000; i++) {\n if (current === root) {\n return segments.reverse()\n }\n if (rawMultiParentSet.has(current)) {\n return undefined\n }\n const info = rawParentMap.get(current)\n if (!info) {\n return undefined\n }\n if (typeof info.key !== 'string') {\n return undefined\n }\n segments.push(info.key)\n current = info.parent\n }\n return undefined\n}\n","export enum ReactiveFlags {\n IS_REACTIVE = '__r_isReactive',\n IS_READONLY = '__r_isReadonly',\n RAW = '__r_raw',\n SKIP = '__r_skip', // 标记此对象无需转换为响应式(用于 markRaw)\n}\n\nexport enum TargetType {\n INVALID = 0,\n COMMON = 1,\n}\n\nexport function isObject(value: unknown): value is object {\n return typeof value === 'object' && value !== null\n}\n\nexport function hasOwn(source: object, key: PropertyKey) {\n return Object.prototype.hasOwnProperty.call(source, key)\n}\n\nexport function toRawType(value: unknown) {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nfunction targetTypeMap(rawType: string) {\n switch (rawType) {\n case 'Object':\n case 'Array':\n return TargetType.COMMON\n case 'Map':\n case 'Set':\n case 'WeakMap':\n case 'WeakSet':\n // TODO: 后续如需支持集合响应式,需要引入专门的 collection handlers。\n return TargetType.INVALID\n default:\n return TargetType.INVALID\n }\n}\n\nexport function getTargetType(value: object) {\n return (value as any)[ReactiveFlags.SKIP]\n ? TargetType.INVALID\n : targetTypeMap(toRawType(value))\n}\n\n// 版本键(VERSION_KEY)表示“任意字段发生变化”,用于订阅整体版本避免深度遍历跟踪\nexport const VERSION_KEY: unique symbol = Symbol('wevu.version')\n\nexport function isArrayIndexKey(key: string) {\n if (!key) {\n return false\n }\n const code0 = key.charCodeAt(0)\n if (code0 < 48 || code0 > 57) {\n return false\n }\n const n = Number(key)\n return Number.isInteger(n) && n >= 0 && String(n) === key\n}\n\nexport function toRaw<T>(observed: T): T {\n return ((observed as any)?.[ReactiveFlags.RAW] ?? observed) as T\n}\n","export const reactiveMap = new WeakMap<object, any>()\nexport const rawMap = new WeakMap<any, object>()\nexport const shallowReactiveMap = new WeakMap<object, any>()\n","import { track } from '../core'\nimport {\n indexPatchNode,\n rawMultiParentSet,\n rawParentMap,\n rawParentsMap,\n rawPathMap,\n rawRootMap,\n rawVersionMap,\n recordParentLink,\n rootPatchNodesMap,\n} from './patchState'\nimport { isObject, ReactiveFlags, toRaw, VERSION_KEY } from './shared'\n\nexport interface PrelinkReactiveTreeOptions {\n shouldIncludeTopKey?: (key: string) => boolean\n maxDepth?: number\n maxKeys?: number\n}\n\n/**\n * 预链接响应式树结构,供运行时差量路径追踪使用。\n * @internal\n */\nexport function prelinkReactiveTree(root: object, options?: PrelinkReactiveTreeOptions) {\n const rootRaw = toRaw(root as any) as object\n rawPathMap.set(rootRaw, '')\n indexPatchNode(rootRaw, rootRaw)\n\n const shouldIncludeTopKey = options?.shouldIncludeTopKey\n const maxDepth = typeof options?.maxDepth === 'number' ? Math.max(0, Math.floor(options!.maxDepth!)) : Number.POSITIVE_INFINITY\n const maxKeys = typeof options?.maxKeys === 'number' ? Math.max(0, Math.floor(options!.maxKeys!)) : Number.POSITIVE_INFINITY\n\n const visited = new WeakSet<object>()\n const stack: Array<{ current: object, path: string, depth: number }> = [{ current: rootRaw, path: '', depth: 0 }]\n let indexed = 0\n\n while (stack.length) {\n const node = stack.pop()!\n if (visited.has(node.current)) {\n continue\n }\n visited.add(node.current)\n rawPathMap.set(node.current, node.path)\n indexPatchNode(rootRaw, node.current)\n indexed += 1\n if (indexed >= maxKeys) {\n continue\n }\n\n if (node.depth >= maxDepth) {\n continue\n }\n if (Array.isArray(node.current)) {\n // 数组不预先展开子元素:大列表场景避免 O(n) 初始化开销。\n continue\n }\n\n const entries = Object.entries(node.current as any)\n for (const [key, value] of entries) {\n if (node.path === '' && shouldIncludeTopKey && !shouldIncludeTopKey(key)) {\n continue\n }\n if (!isObject(value)) {\n continue\n }\n if ((value as any)[ReactiveFlags.SKIP]) {\n continue\n }\n const childRaw = toRaw(value as any) as object\n if (!rawRootMap.has(childRaw)) {\n rawRootMap.set(childRaw, rootRaw)\n }\n recordParentLink(childRaw, node.current, key)\n if (!rawMultiParentSet.has(childRaw)) {\n const childPath = node.path ? `${node.path}.${key}` : key\n rawPathMap.set(childRaw, childPath)\n }\n indexPatchNode(rootRaw, childRaw)\n stack.push({ current: childRaw, path: node.path ? `${node.path}.${key}` : key, depth: node.depth + 1 })\n }\n }\n}\n\n/**\n * 清理预链接阶段建立的路径与父子索引。\n * @internal\n */\nexport function clearPatchIndices(root: object) {\n const rootRaw = toRaw(root as any) as object\n const nodes = rootPatchNodesMap.get(rootRaw)\n if (!nodes) {\n rawPathMap.delete(rootRaw)\n return\n }\n\n for (const node of nodes) {\n rawParentMap.delete(node)\n rawParentsMap.delete(node)\n rawPathMap.delete(node)\n rawMultiParentSet.delete(node)\n rawRootMap.delete(node)\n rawVersionMap.delete(node)\n }\n\n rootPatchNodesMap.delete(rootRaw)\n}\n\n/**\n * 让 effect 订阅整个对象的“版本号”,无需深度遍历即可对任何字段变化做出响应。\n * @internal\n */\nexport function touchReactive(target: object) {\n const raw = toRaw(target as any) as object\n track(raw, VERSION_KEY)\n}\n","import { track, trigger } from '../core'\nimport { bumpRawVersion, rawVersionMap } from './patchState'\nimport { getTargetType, hasOwn, isObject, ReactiveFlags, TargetType, toRaw, VERSION_KEY } from './shared'\nimport { rawMap, shallowReactiveMap } from './state'\n\nconst shallowHandlers: ProxyHandler<any> = {\n get(target, key, receiver) {\n if (key === ReactiveFlags.IS_REACTIVE) {\n return true\n }\n if (key === ReactiveFlags.RAW) {\n return target\n }\n const res = Reflect.get(target, key, receiver)\n track(target, key)\n // 浅层模式:不对嵌套对象做自动响应式转换\n return res\n },\n set(target, key, value, receiver) {\n const oldValue = Reflect.get(target, key, receiver)\n const result = Reflect.set(target, key, value, receiver)\n if (!Object.is(oldValue, value)) {\n trigger(target, key)\n // 浅层同样维护通用版本号\n trigger(target, VERSION_KEY)\n bumpRawVersion(target)\n }\n return result\n },\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key)\n const result = Reflect.deleteProperty(target, key)\n if (hadKey && result) {\n trigger(target, key)\n // 删除时也同步通用版本号\n trigger(target, VERSION_KEY)\n bumpRawVersion(target)\n }\n return result\n },\n ownKeys(target) {\n track(target, Symbol.iterator)\n // 遍历时订阅通用版本号\n track(target, VERSION_KEY)\n return Reflect.ownKeys(target)\n },\n}\n\n/**\n * 创建一个浅层响应式代理:仅跟踪第一层属性变更,不深度递归嵌套对象。\n *\n * @param target 待转换的对象\n * @returns 浅层响应式代理\n *\n * @example\n * ```ts\n * const state = shallowReactive({ nested: { count: 0 } })\n *\n * state.nested.count++ // 不会触发 effect(嵌套对象未深度代理)\n * state.nested = { count: 1 } // 会触发 effect(顶层属性变更)\n * ```\n */\nexport function shallowReactive<T extends object>(target: T): T {\n if (!isObject(target)) {\n return target\n }\n if ((target as any)[ReactiveFlags.IS_REACTIVE]) {\n return target\n }\n const existingProxy = shallowReactiveMap.get(target)\n if (existingProxy) {\n return existingProxy\n }\n if (getTargetType(target) === TargetType.INVALID) {\n return target\n }\n const proxy = new Proxy(target, shallowHandlers)\n shallowReactiveMap.set(target, proxy)\n rawMap.set(proxy, target)\n if (!rawVersionMap.has(target)) {\n rawVersionMap.set(target, 0)\n }\n // 浅层响应式不初始化根映射,避免误导深度版本追踪\n return proxy\n}\n\n/**\n * 判断一个值是否为 shallowReactive 创建的浅层响应式对象\n */\nexport function isShallowReactive(value: unknown): boolean {\n const raw = toRaw(value as any)\n return shallowReactiveMap.has(raw)\n}\n","import type { MutationKind, MutationOp } from './reactive/mutation'\nimport { track, trigger } from './core'\nimport { mutationRecorders } from './reactive/mutation'\nimport {\n bumpAncestorVersions,\n bumpRawVersion,\n getRawVersion,\n rawMultiParentSet,\n rawParentsMap,\n rawPathMap,\n rawRootMap,\n rawVersionMap,\n recordParentLink,\n removeParentLink,\n resolvePathToTarget,\n} from './reactive/patchState'\nimport { getTargetType, hasOwn, isArrayIndexKey, isObject, ReactiveFlags, TargetType, toRaw, VERSION_KEY } from './reactive/shared'\nimport { rawMap, reactiveMap } from './reactive/state'\n\nexport { addMutationRecorder, removeMutationRecorder } from './reactive/mutation'\nexport type { MutationKind, MutationOp, MutationRecord } from './reactive/mutation'\nexport type { PrelinkReactiveTreeOptions } from './reactive/patch'\nexport { clearPatchIndices, prelinkReactiveTree, touchReactive } from './reactive/patch'\nexport { isShallowReactive, shallowReactive } from './reactive/shallow'\nexport { isObject, ReactiveFlags, toRaw } from './reactive/shared'\n\n/**\n * 读取响应式版本号(框架内部调试能力)。\n * @internal\n */\nexport function getReactiveVersion(target: object) {\n const raw = toRaw(target as any) as object\n return getRawVersion(raw)\n}\n\nfunction emitMutation(target: object, key: PropertyKey, op: MutationOp) {\n if (!mutationRecorders.size) {\n return\n }\n if (typeof key !== 'string') {\n return\n }\n if (key.startsWith('__r_')) {\n return\n }\n const root = rawRootMap.get(target) ?? target\n const isArray = Array.isArray(target)\n const kind: MutationKind = isArray && (key === 'length' || isArrayIndexKey(key)) ? 'array' : 'property'\n\n const baseSegments = resolvePathToTarget(root, target)\n if (!baseSegments) {\n // 路径不唯一/无法解析:尝试从父引用收集可能的顶层 key,供 patch 模式做“局部回退”。\n const fallback = new Set<string>()\n const parents = rawParentsMap.get(target)\n if (parents) {\n for (const [parent, keys] of parents) {\n const parentPath = rawPathMap.get(parent)\n const topFromParentPath = parentPath ? parentPath.split('.', 1)[0] : undefined\n const topFromResolve = !topFromParentPath\n ? (resolvePathToTarget(root, parent)?.[0] as string | undefined)\n : undefined\n for (const k of keys) {\n if (typeof k !== 'string') {\n continue\n }\n fallback.add(topFromParentPath ?? topFromResolve ?? k)\n }\n }\n }\n else {\n // 若目标就是 root 的直接子属性(未记录 parent link),仍可用 key 作为顶层回退\n fallback.add(key)\n }\n for (const recorder of mutationRecorders) {\n recorder({ root, kind, op, path: undefined, fallbackTopKeys: fallback.size ? [...fallback] : undefined })\n }\n return\n }\n\n // 若目标位于数组内部(例如 arr[0].x),直接回退到数组本身的路径,保持“数组整体替换”的策略。\n const arrayIndexPos = baseSegments.findIndex(seg => isArrayIndexKey(seg))\n if (arrayIndexPos !== -1) {\n const arrayPath = baseSegments.slice(0, arrayIndexPos).join('.')\n const path = arrayPath || undefined\n for (const recorder of mutationRecorders) {\n recorder({ root, kind: 'array', op, path })\n }\n return\n }\n\n const basePath = baseSegments.length ? baseSegments.join('.') : ''\n const path = kind === 'array' ? (basePath || undefined) : (basePath ? `${basePath}.${key}` : (key as string))\n\n for (const recorder of mutationRecorders) {\n recorder({\n root,\n kind,\n op,\n path,\n })\n }\n}\n\nconst mutableHandlers: ProxyHandler<any> = {\n get(target, key, receiver) {\n if (key === ReactiveFlags.IS_REACTIVE) {\n return true\n }\n if (key === ReactiveFlags.RAW) {\n return target\n }\n const res = Reflect.get(target, key, receiver)\n track(target, key)\n if (isObject(res)) {\n // 检查返回值是否被 markRaw 标记为跳过响应式\n if ((res as any)[ReactiveFlags.SKIP]) {\n return res\n }\n // 确保子对象的根引用与当前目标一致,便于版本号级联\n const parentRoot = rawRootMap.get(target) ?? target\n const childRaw = ((res as any)?.[ReactiveFlags.RAW] ?? res) as object\n if (!rawRootMap.has(childRaw)) {\n rawRootMap.set(childRaw, parentRoot)\n }\n recordParentLink(childRaw, target, key)\n const parentPath = rawPathMap.get(target)\n if (mutationRecorders.size && typeof key === 'string' && parentPath != null && !rawMultiParentSet.has(childRaw)) {\n const nextPath = parentPath ? `${parentPath}.${key}` : key\n rawPathMap.set(childRaw, nextPath)\n }\n // eslint-disable-next-line ts/no-use-before-define -- 避免递归调用的顺序警告\n return reactive(res)\n }\n return res\n },\n set(target, key, value, receiver) {\n const isArr = Array.isArray(target)\n const oldLength = isArr ? target.length : 0\n const oldValue = Reflect.get(target, key, receiver)\n const result = Reflect.set(target, key, value, receiver)\n if (!Object.is(oldValue, value)) {\n const oldRaw = isObject(oldValue) ? (((oldValue as any)?.[ReactiveFlags.RAW] ?? oldValue) as object) : undefined\n if (oldRaw) {\n removeParentLink(oldRaw, target, key)\n }\n if (isObject(value) && !(value as any)[ReactiveFlags.SKIP]) {\n const root = rawRootMap.get(target) ?? target\n const childRaw = ((value as any)?.[ReactiveFlags.RAW] ?? value) as object\n if (!rawRootMap.has(childRaw)) {\n rawRootMap.set(childRaw, root)\n }\n recordParentLink(childRaw, target, key)\n const parentPath = rawPathMap.get(target)\n if (mutationRecorders.size && typeof key === 'string' && parentPath != null && !rawMultiParentSet.has(childRaw)) {\n const nextPath = parentPath ? `${parentPath}.${key}` : key\n rawPathMap.set(childRaw, nextPath)\n }\n }\n trigger(target, key)\n if (isArr && typeof key === 'string' && isArrayIndexKey(key) && Number(key) >= oldLength) {\n trigger(target, 'length')\n }\n // 任意写操作都提升通用版本号\n trigger(target, VERSION_KEY)\n bumpRawVersion(target)\n bumpAncestorVersions(target)\n const root = rawRootMap.get(target)\n if (root && root !== target) {\n trigger(root, VERSION_KEY)\n bumpRawVersion(root)\n }\n emitMutation(target, key, 'set')\n }\n return result\n },\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key)\n const oldValue = hadKey ? (target as any)[key] : undefined\n const result = Reflect.deleteProperty(target, key)\n if (hadKey && result) {\n const oldRaw = isObject(oldValue) ? (((oldValue as any)?.[ReactiveFlags.RAW] ?? oldValue) as object) : undefined\n if (oldRaw) {\n removeParentLink(oldRaw, target, key)\n }\n trigger(target, key)\n // 删除同样提升通用版本号\n trigger(target, VERSION_KEY)\n bumpRawVersion(target)\n bumpAncestorVersions(target)\n const root = rawRootMap.get(target)\n if (root && root !== target) {\n trigger(root, VERSION_KEY)\n bumpRawVersion(root)\n }\n emitMutation(target, key, 'delete')\n }\n return result\n },\n ownKeys(target) {\n track(target, Symbol.iterator)\n // 遍历时也订阅通用版本号,确保新增/删除键可触发\n track(target, VERSION_KEY)\n return Reflect.ownKeys(target)\n },\n}\n\nexport function reactive<T extends object>(target: T): T {\n if (!isObject(target)) {\n return target\n }\n if ((target as any)[ReactiveFlags.IS_REACTIVE]) {\n return target\n }\n const existingProxy = reactiveMap.get(target)\n if (existingProxy) {\n return existingProxy\n }\n if (getTargetType(target) === TargetType.INVALID) {\n return target\n }\n const proxy = new Proxy(target, mutableHandlers)\n reactiveMap.set(target, proxy)\n rawMap.set(proxy, target)\n if (!rawVersionMap.has(target)) {\n rawVersionMap.set(target, 0)\n }\n // 新的原始对象在被观察时初始化根节点映射\n if (!rawRootMap.has(target)) {\n rawRootMap.set(target, target)\n }\n return proxy\n}\n\nexport function isReactive(value: unknown): boolean {\n return Boolean(value && (value as any)[ReactiveFlags.IS_REACTIVE])\n}\n\nexport function convertToReactive<T>(value: T): T {\n return isObject(value) ? reactive(value as any) : value\n}\n\n// ============================================================================\n// 标记对象跳过响应式转换(markRaw)\n// ============================================================================\n\n/**\n * 标记对象为“原始”状态,后续不会被转换为响应式,返回原对象本身。\n *\n * @param value 需要标记的对象\n * @returns 带有跳过标记的原对象\n *\n * @example\n * ```ts\n * const foo = markRaw({\n * nested: {}\n * })\n *\n * const state = reactive({\n * foo\n * })\n *\n * state.foo // 不是响应式对象\n * ```\n */\nexport function markRaw<T extends object>(value: T): T {\n if (!isObject(value)) {\n return value\n }\n Object.defineProperty(value, ReactiveFlags.SKIP, {\n value: true,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n return value\n}\n\n/**\n * 判断某个值是否被标记为原始(即不应转换为响应式)。\n *\n * @param value 待检测的值\n * @returns 若含有跳过标记则返回 true\n */\nexport function isRaw(value: unknown): boolean {\n return isObject(value) && ReactiveFlags.SKIP in (value as object)\n}\n","import type { Ref as VueRef, ShallowRef as VueShallowRef } from '../vue-types'\nimport type { ComputedRef, WritableComputedRef } from './computed'\nimport type { Dep } from './core'\nimport { trackEffects, triggerEffects } from './core'\nimport { convertToReactive, markRaw } from './reactive'\n\n// 类型对齐 @vue/reactivity.Ref:\n// - 用于 Volar 模板自动解包(UnwrapRef 依赖 RefSymbol 品牌标记)。\n// - 运行时仍使用 wevu 自己的 ref 实现,不依赖 Vue。\nexport type Ref<T = any, S = T> = VueRef<T, S>\nexport type ShallowRef<T = any> = VueShallowRef<T>\nexport type MaybeRef<T = any> = T | Ref<T> | ShallowRef<T> | WritableComputedRef<T>\nexport type MaybeRefOrGetter<T = any> = MaybeRef<T> | ComputedRef<T> | (() => T)\n\nexport const RefFlag = '__v_isRef' as const\n\nexport function markAsRef<T extends object>(target: T): T {\n try {\n Object.defineProperty(target, RefFlag, {\n value: true,\n configurable: true,\n })\n }\n catch {\n ;(target as any)[RefFlag] = true\n }\n return target\n}\n\nexport function isRef(value: unknown): value is Ref<any> {\n return Boolean(value && typeof value === 'object' && (value as any)[RefFlag] === true)\n}\n\nclass RefImpl<T> {\n private _value: T\n private _rawValue: T\n public dep: Dep | undefined\n constructor(value: T) {\n markAsRef(this)\n this._rawValue = value\n this._value = convertToReactive(value)\n }\n\n get value(): T {\n if (!this.dep) {\n this.dep = new Set()\n }\n trackEffects(this.dep)\n return this._value\n }\n\n set value(newValue: T) {\n if (!Object.is(newValue, this._rawValue)) {\n this._rawValue = newValue\n this._value = convertToReactive(newValue)\n if (this.dep) {\n triggerEffects(this.dep)\n }\n }\n }\n}\n\nexport function ref<T = any>(): Ref<T | undefined>\nexport function ref<T>(value: T): Ref<T>\nexport function ref<T>(value?: T): Ref<T | undefined> {\n if (isRef(value)) {\n return value\n }\n return markRaw(new RefImpl(value as T | undefined)) as any\n}\n\nexport function unref<T>(value: MaybeRef<T> | ComputedRef<T>): T {\n return isRef(value) ? value.value : value\n}\n\nexport function toValue<T>(source: MaybeRefOrGetter<T>): T {\n return typeof source === 'function' ? (source as () => T)() : unref(source)\n}\n\n/**\n * 自定义 ref 工厂:用于创建可显式控制 track/trigger 的自定义 ref\n */\nexport type CustomRefFactory<T> = (\n track: () => void,\n trigger: () => void,\n) => {\n get: () => T\n set: (value: T) => void\n}\n\nexport interface CustomRefOptions<T> {\n get: () => T\n set: (value: T) => void\n}\n\nexport type CustomRefSource<T> = CustomRefFactory<T> | CustomRefOptions<T>\n\nclass CustomRefImpl<T> {\n private _getValue: () => T\n private _setValue: (value: T) => void\n public dep: Dep | undefined\n\n constructor(factory: CustomRefSource<T>, defaultValue?: T) {\n markAsRef(this)\n const fallbackValue = defaultValue\n const track = () => {\n if (!this.dep) {\n this.dep = new Set()\n }\n trackEffects(this.dep)\n }\n const trigger = () => {\n if (this.dep) {\n triggerEffects(this.dep)\n }\n }\n\n const withFallback = (value: T) => (value === undefined && fallbackValue !== undefined ? fallbackValue as T : value)\n\n if (typeof factory === 'function') {\n const handlers = factory(track, trigger)\n this._getValue = () => withFallback(handlers.get())\n this._setValue = value => handlers.set(value)\n return\n }\n\n const handlers = factory\n this._getValue = () => {\n track()\n return withFallback(handlers.get())\n }\n this._setValue = (value: T) => {\n handlers.set(value)\n trigger()\n }\n }\n\n get value(): T {\n return this._getValue()\n }\n\n set value(newValue: T) {\n this._setValue(newValue)\n }\n}\n\nexport function customRef<T>(factory: CustomRefSource<T>, defaultValue?: T): Ref<T> {\n return markRaw(new CustomRefImpl(factory, defaultValue)) as any\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ref-Dui1TzOR.mjs","names":[],"sources":["../../src/scheduler.ts","../../src/reactivity/core.ts","../../src/reactivity/reactive/mutation.ts","../../src/reactivity/reactive/patchState.ts","../../src/reactivity/reactive/shared.ts","../../src/reactivity/reactive/state.ts","../../src/reactivity/reactive/patch.ts","../../src/reactivity/reactive/shallow.ts","../../src/reactivity/reactive.ts","../../src/reactivity/ref.ts"],"sourcesContent":["const resolvedPromise: Promise<void> = Promise.resolve()\n\ntype Job = () => void\n\nconst jobQueue = new Set<Job>()\nlet isFlushing = false\nlet isFlushPending = false\n\nfunction flushJobs() {\n isFlushPending = false\n isFlushing = true\n try {\n jobQueue.forEach(job => job())\n }\n finally {\n jobQueue.clear()\n isFlushing = false\n }\n}\n\nexport function queueJob(job: Job) {\n jobQueue.add(job)\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true\n resolvedPromise.then(flushJobs)\n }\n}\n\nexport function nextTick<T>(fn?: () => T): Promise<T> {\n return fn ? resolvedPromise.then(fn) : (resolvedPromise as unknown as Promise<T>)\n}\n","import { queueJob } from '../scheduler'\n\nexport type EffectScheduler = () => void\n\nexport type Dep = Set<ReactiveEffect>\n\nexport interface ReactiveEffect<T = any> {\n (): T\n deps: Dep[]\n scheduler?: EffectScheduler\n active: boolean\n _running: boolean\n _fn: () => T\n onStop?: () => void\n}\n\nconst targetMap = new WeakMap<object, Map<PropertyKey, Dep>>()\n\nlet activeEffect: ReactiveEffect | null = null\nconst effectStack: ReactiveEffect[] = []\n\nlet batchDepth = 0\nconst batchedEffects = new Set<ReactiveEffect>()\n\nexport function startBatch() {\n batchDepth++\n}\n\nfunction flushBatchedEffects() {\n while (batchedEffects.size) {\n const effects = [...batchedEffects]\n batchedEffects.clear()\n for (const ef of effects) {\n ef()\n }\n }\n}\n\nexport function endBatch() {\n if (batchDepth === 0) {\n return\n }\n batchDepth--\n if (batchDepth === 0) {\n flushBatchedEffects()\n }\n}\n\nexport function batch<T>(fn: () => T): T {\n startBatch()\n try {\n return fn()\n }\n finally {\n endBatch()\n }\n}\n\nfunction cleanupEffect(effect: ReactiveEffect) {\n const { deps } = effect\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect)\n }\n deps.length = 0\n}\n\nexport function stop(runner: ReactiveEffect) {\n if (!runner.active) {\n return\n }\n runner.active = false\n cleanupEffect(runner)\n runner.onStop?.()\n}\n\nexport interface EffectScope {\n active: boolean\n effects: ReactiveEffect[]\n cleanups: (() => void)[]\n run: <T>(fn: () => T) => T | undefined\n stop: () => void\n}\n\nlet activeEffectScope: EffectScopeImpl | undefined\n\nclass EffectScopeImpl implements EffectScope {\n active = true\n effects: ReactiveEffect[] = []\n cleanups: (() => void)[] = []\n private parent: EffectScopeImpl | undefined\n private scopes: EffectScopeImpl[] | undefined\n\n constructor(private detached = false) {\n if (!detached && activeEffectScope) {\n this.parent = activeEffectScope\n ;(activeEffectScope.scopes ||= []).push(this)\n }\n }\n\n run<T>(fn: () => T): T | undefined {\n if (!this.active) {\n return\n }\n const prev = activeEffectScope\n // eslint-disable-next-line ts/no-this-alias -- 允许 this 临时别名\n activeEffectScope = this\n try {\n return fn()\n }\n finally {\n activeEffectScope = prev\n }\n }\n\n stop(): void {\n if (!this.active) {\n return\n }\n this.active = false\n\n for (const effect of this.effects) {\n stop(effect)\n }\n this.effects.length = 0\n\n for (const cleanup of this.cleanups) {\n cleanup()\n }\n this.cleanups.length = 0\n\n if (this.scopes) {\n for (const scope of this.scopes) {\n scope.stop()\n }\n this.scopes.length = 0\n }\n\n if (this.parent?.scopes) {\n const index = this.parent.scopes.indexOf(this)\n if (index >= 0) {\n this.parent.scopes.splice(index, 1)\n }\n }\n this.parent = undefined\n }\n}\n\nexport function effectScope(detached = false): EffectScope {\n return new EffectScopeImpl(detached)\n}\n\nexport function getCurrentScope(): EffectScope | undefined {\n return activeEffectScope\n}\n\nexport function onScopeDispose(fn: () => void): void {\n if (activeEffectScope?.active) {\n activeEffectScope.cleanups.push(fn)\n }\n}\n\nfunction recordEffectScope(effect: ReactiveEffect) {\n if (activeEffectScope?.active) {\n activeEffectScope.effects.push(effect)\n }\n}\n\nexport interface EffectOptions {\n scheduler?: EffectScheduler\n lazy?: boolean\n onStop?: () => void\n}\n\nexport function createReactiveEffect<T>(fn: () => T, options: EffectOptions = {}): ReactiveEffect<T> {\n const effect = function reactiveEffect() {\n if (!effect.active) {\n return fn()\n }\n if (effect._running) {\n return fn()\n }\n cleanupEffect(effect)\n try {\n effect._running = true\n effectStack.push(effect)\n activeEffect = effect\n return fn()\n }\n finally {\n effectStack.pop()\n activeEffect = effectStack[effectStack.length - 1] ?? null\n effect._running = false\n }\n } as ReactiveEffect<T>\n\n effect.deps = []\n effect.scheduler = options.scheduler\n effect.onStop = options.onStop\n effect.active = true\n effect._running = false\n effect._fn = fn\n\n return effect\n}\n\nexport function effect<T = any>(fn: () => T, options: EffectOptions = {}): ReactiveEffect<T> {\n const _effect = createReactiveEffect(fn, options)\n recordEffectScope(_effect)\n if (!options.lazy) {\n _effect()\n }\n return _effect\n}\n\nexport function track(target: object, key: PropertyKey) {\n if (!activeEffect) {\n return\n }\n let depsMap = targetMap.get(target)\n if (!depsMap) {\n depsMap = new Map()\n targetMap.set(target, depsMap)\n }\n let dep = depsMap.get(key)\n if (!dep) {\n dep = new Set()\n depsMap.set(key, dep)\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect)\n activeEffect.deps.push(dep)\n }\n}\n\nfunction scheduleEffect(ef: ReactiveEffect) {\n if (ef.scheduler) {\n ef.scheduler()\n return\n }\n if (batchDepth > 0) {\n batchedEffects.add(ef)\n return\n }\n ef()\n}\n\nexport function trigger(target: object, key: PropertyKey) {\n const depsMap = targetMap.get(target)\n if (!depsMap) {\n return\n }\n const effects = depsMap.get(key)\n if (!effects) {\n return\n }\n const effectsToRun = new Set<ReactiveEffect>()\n effects.forEach((ef) => {\n if (ef !== activeEffect) {\n effectsToRun.add(ef)\n }\n })\n effectsToRun.forEach(scheduleEffect)\n}\n\nexport function trackEffects(dep: Dep) {\n if (!activeEffect) {\n return\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect)\n activeEffect.deps.push(dep)\n }\n}\n\nexport function triggerEffects(dep: Dep) {\n // 迭代时复制依赖集合,避免遍历过程中被重新加入导致死循环。\n const effectsToRun = new Set(dep)\n effectsToRun.forEach(scheduleEffect)\n}\n\n// 导出队列调度工具,供 watch/watchEffect 等高层 API 复用同一批处理逻辑\nexport { queueJob }\n","export type MutationOp = 'set' | 'delete'\nexport type MutationKind = 'property' | 'array'\nexport interface MutationRecord {\n root: object\n kind: MutationKind\n op: MutationOp\n /**\n * 点路径(例如 `a.b.c`);当路径不可靠时为 undefined。\n */\n path?: string\n /**\n * 当路径不唯一时回退使用的顶层键列表。\n */\n fallbackTopKeys?: string[]\n}\n\ntype MutationRecorder = (record: MutationRecord) => void\n\nexport const mutationRecorders = new Set<MutationRecorder>()\n\nexport function addMutationRecorder(recorder: MutationRecorder) {\n mutationRecorders.add(recorder)\n}\n\nexport function removeMutationRecorder(recorder: MutationRecorder) {\n mutationRecorders.delete(recorder)\n}\n","import { mutationRecorders } from './mutation'\n\nexport const rawRootMap = new WeakMap<object, object>()\nexport const rawVersionMap = new WeakMap<object, number>()\nexport const rawParentMap = new WeakMap<object, { parent: object, key: PropertyKey }>()\nexport const rawParentsMap = new WeakMap<object, Map<object, Set<PropertyKey>>>()\nexport const rawMultiParentSet = new WeakSet<object>()\nexport const rawPathMap = new WeakMap<object, string>()\nexport const rootPatchNodesMap = new WeakMap<object, Set<object>>()\n\nfunction getRootPatchNodes(root: object) {\n let nodes = rootPatchNodesMap.get(root)\n if (!nodes) {\n nodes = new Set()\n rootPatchNodesMap.set(root, nodes)\n }\n return nodes\n}\n\nexport function indexPatchNode(root: object, node: object) {\n getRootPatchNodes(root).add(node)\n}\n\nexport function bumpRawVersion(target: object) {\n rawVersionMap.set(target, (rawVersionMap.get(target) ?? 0) + 1)\n}\n\nexport function getRawVersion(target: object) {\n return rawVersionMap.get(target) ?? 0\n}\n\nexport function bumpAncestorVersions(target: object) {\n const visited = new Set<object>()\n const stack: object[] = [target]\n for (let i = 0; i < 2000 && stack.length; i++) {\n const current = stack.pop()!\n const parents = rawParentsMap.get(current)\n if (!parents) {\n continue\n }\n for (const parent of parents.keys()) {\n if (visited.has(parent)) {\n continue\n }\n visited.add(parent)\n bumpRawVersion(parent)\n stack.push(parent)\n }\n }\n}\n\nfunction refreshPathUniqueness(child: object) {\n const parents = rawParentsMap.get(child)\n if (!parents) {\n rawMultiParentSet.delete(child)\n rawParentMap.delete(child)\n return\n }\n\n let uniqueParent: object | undefined\n let uniqueKey: PropertyKey | undefined\n let total = 0\n for (const [parent, keys] of parents) {\n for (const k of keys) {\n total += 1\n if (total > 1) {\n break\n }\n uniqueParent = parent\n uniqueKey = k\n }\n if (total > 1) {\n break\n }\n }\n\n if (total === 1 && uniqueParent && uniqueKey) {\n rawMultiParentSet.delete(child)\n rawParentMap.set(child, { parent: uniqueParent, key: uniqueKey })\n return\n }\n\n rawMultiParentSet.add(child)\n rawParentMap.delete(child)\n}\n\nexport function recordParentLink(child: object, parent: object, key: PropertyKey) {\n if (typeof key !== 'string') {\n rawMultiParentSet.add(child)\n rawParentMap.delete(child)\n return\n }\n\n if (mutationRecorders.size) {\n const root = rawRootMap.get(parent) ?? parent\n indexPatchNode(root, parent)\n indexPatchNode(root, child)\n }\n\n let parents = rawParentsMap.get(child)\n if (!parents) {\n parents = new Map()\n rawParentsMap.set(child, parents)\n }\n\n let keys = parents.get(parent)\n if (!keys) {\n keys = new Set()\n parents.set(parent, keys)\n }\n\n keys.add(key)\n refreshPathUniqueness(child)\n}\n\nexport function removeParentLink(child: object, parent: object, key: PropertyKey) {\n const parents = rawParentsMap.get(child)\n if (!parents) {\n return\n }\n const keys = parents.get(parent)\n if (!keys) {\n return\n }\n keys.delete(key)\n if (!keys.size) {\n parents.delete(parent)\n }\n if (!parents.size) {\n rawParentsMap.delete(child)\n }\n refreshPathUniqueness(child)\n}\n\nexport function resolvePathToTarget(root: object, target: object): string[] | undefined {\n if (target === root) {\n return []\n }\n if (rawMultiParentSet.has(target)) {\n return undefined\n }\n const segments: string[] = []\n let current: object = target\n for (let i = 0; i < 2000; i++) {\n if (current === root) {\n return segments.reverse()\n }\n if (rawMultiParentSet.has(current)) {\n return undefined\n }\n const info = rawParentMap.get(current)\n if (!info) {\n return undefined\n }\n if (typeof info.key !== 'string') {\n return undefined\n }\n segments.push(info.key)\n current = info.parent\n }\n return undefined\n}\n","export enum ReactiveFlags {\n IS_REACTIVE = '__r_isReactive',\n IS_READONLY = '__r_isReadonly',\n RAW = '__r_raw',\n SKIP = '__r_skip', // 标记此对象无需转换为响应式(用于 markRaw)\n}\n\nexport enum TargetType {\n INVALID = 0,\n COMMON = 1,\n}\n\nexport function isObject(value: unknown): value is object {\n return typeof value === 'object' && value !== null\n}\n\nexport function hasOwn(source: object, key: PropertyKey) {\n return Object.prototype.hasOwnProperty.call(source, key)\n}\n\nexport function toRawType(value: unknown) {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nfunction targetTypeMap(rawType: string) {\n switch (rawType) {\n case 'Object':\n case 'Array':\n return TargetType.COMMON\n case 'Map':\n case 'Set':\n case 'WeakMap':\n case 'WeakSet':\n // TODO: 后续如需支持集合响应式,需要引入专门的 collection handlers。\n return TargetType.INVALID\n default:\n return TargetType.INVALID\n }\n}\n\nexport function getTargetType(value: object) {\n return (value as any)[ReactiveFlags.SKIP]\n ? TargetType.INVALID\n : targetTypeMap(toRawType(value))\n}\n\n// 版本键(VERSION_KEY)表示“任意字段发生变化”,用于订阅整体版本避免深度遍历跟踪\nexport const VERSION_KEY: unique symbol = Symbol('wevu.version')\n\nexport function isArrayIndexKey(key: string) {\n if (!key) {\n return false\n }\n const code0 = key.charCodeAt(0)\n if (code0 < 48 || code0 > 57) {\n return false\n }\n const n = Number(key)\n return Number.isInteger(n) && n >= 0 && String(n) === key\n}\n\nexport function toRaw<T>(observed: T): T {\n return ((observed as any)?.[ReactiveFlags.RAW] ?? observed) as T\n}\n","export const reactiveMap = new WeakMap<object, any>()\nexport const rawMap = new WeakMap<any, object>()\nexport const shallowReactiveMap = new WeakMap<object, any>()\n","import { track } from '../core'\nimport {\n indexPatchNode,\n rawMultiParentSet,\n rawParentMap,\n rawParentsMap,\n rawPathMap,\n rawRootMap,\n rawVersionMap,\n recordParentLink,\n rootPatchNodesMap,\n} from './patchState'\nimport { isObject, ReactiveFlags, toRaw, VERSION_KEY } from './shared'\n\nexport interface PrelinkReactiveTreeOptions {\n shouldIncludeTopKey?: (key: string) => boolean\n maxDepth?: number\n maxKeys?: number\n}\n\n/**\n * 预链接响应式树结构,供运行时差量路径追踪使用。\n * @internal\n */\nexport function prelinkReactiveTree(root: object, options?: PrelinkReactiveTreeOptions) {\n const rootRaw = toRaw(root as any) as object\n rawPathMap.set(rootRaw, '')\n indexPatchNode(rootRaw, rootRaw)\n\n const shouldIncludeTopKey = options?.shouldIncludeTopKey\n const maxDepth = typeof options?.maxDepth === 'number' ? Math.max(0, Math.floor(options!.maxDepth!)) : Number.POSITIVE_INFINITY\n const maxKeys = typeof options?.maxKeys === 'number' ? Math.max(0, Math.floor(options!.maxKeys!)) : Number.POSITIVE_INFINITY\n\n const visited = new WeakSet<object>()\n const stack: Array<{ current: object, path: string, depth: number }> = [{ current: rootRaw, path: '', depth: 0 }]\n let indexed = 0\n\n while (stack.length) {\n const node = stack.pop()!\n if (visited.has(node.current)) {\n continue\n }\n visited.add(node.current)\n rawPathMap.set(node.current, node.path)\n indexPatchNode(rootRaw, node.current)\n indexed += 1\n if (indexed >= maxKeys) {\n continue\n }\n\n if (node.depth >= maxDepth) {\n continue\n }\n if (Array.isArray(node.current)) {\n // 数组不预先展开子元素:大列表场景避免 O(n) 初始化开销。\n continue\n }\n\n const entries = Object.entries(node.current as any)\n for (const [key, value] of entries) {\n if (node.path === '' && shouldIncludeTopKey && !shouldIncludeTopKey(key)) {\n continue\n }\n if (!isObject(value)) {\n continue\n }\n if ((value as any)[ReactiveFlags.SKIP]) {\n continue\n }\n const childRaw = toRaw(value as any) as object\n if (!rawRootMap.has(childRaw)) {\n rawRootMap.set(childRaw, rootRaw)\n }\n recordParentLink(childRaw, node.current, key)\n if (!rawMultiParentSet.has(childRaw)) {\n const childPath = node.path ? `${node.path}.${key}` : key\n rawPathMap.set(childRaw, childPath)\n }\n indexPatchNode(rootRaw, childRaw)\n stack.push({ current: childRaw, path: node.path ? `${node.path}.${key}` : key, depth: node.depth + 1 })\n }\n }\n}\n\n/**\n * 清理预链接阶段建立的路径与父子索引。\n * @internal\n */\nexport function clearPatchIndices(root: object) {\n const rootRaw = toRaw(root as any) as object\n const nodes = rootPatchNodesMap.get(rootRaw)\n if (!nodes) {\n rawPathMap.delete(rootRaw)\n return\n }\n\n for (const node of nodes) {\n rawParentMap.delete(node)\n rawParentsMap.delete(node)\n rawPathMap.delete(node)\n rawMultiParentSet.delete(node)\n rawRootMap.delete(node)\n rawVersionMap.delete(node)\n }\n\n rootPatchNodesMap.delete(rootRaw)\n}\n\n/**\n * 让 effect 订阅整个对象的“版本号”,无需深度遍历即可对任何字段变化做出响应。\n * @internal\n */\nexport function touchReactive(target: object) {\n const raw = toRaw(target as any) as object\n track(raw, VERSION_KEY)\n}\n","import { track, trigger } from '../core'\nimport { bumpRawVersion, rawVersionMap } from './patchState'\nimport { getTargetType, hasOwn, isObject, ReactiveFlags, TargetType, toRaw, VERSION_KEY } from './shared'\nimport { rawMap, shallowReactiveMap } from './state'\n\nconst shallowHandlers: ProxyHandler<any> = {\n get(target, key, receiver) {\n if (key === ReactiveFlags.IS_REACTIVE) {\n return true\n }\n if (key === ReactiveFlags.RAW) {\n return target\n }\n const res = Reflect.get(target, key, receiver)\n track(target, key)\n // 浅层模式:不对嵌套对象做自动响应式转换\n return res\n },\n set(target, key, value, receiver) {\n const oldValue = Reflect.get(target, key, receiver)\n const result = Reflect.set(target, key, value, receiver)\n if (!Object.is(oldValue, value)) {\n trigger(target, key)\n // 浅层同样维护通用版本号\n trigger(target, VERSION_KEY)\n bumpRawVersion(target)\n }\n return result\n },\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key)\n const result = Reflect.deleteProperty(target, key)\n if (hadKey && result) {\n trigger(target, key)\n // 删除时也同步通用版本号\n trigger(target, VERSION_KEY)\n bumpRawVersion(target)\n }\n return result\n },\n ownKeys(target) {\n track(target, Symbol.iterator)\n // 遍历时订阅通用版本号\n track(target, VERSION_KEY)\n return Reflect.ownKeys(target)\n },\n}\n\n/**\n * 创建一个浅层响应式代理:仅跟踪第一层属性变更,不深度递归嵌套对象。\n *\n * @param target 待转换的对象\n * @returns 浅层响应式代理\n *\n * @example\n * ```ts\n * const state = shallowReactive({ nested: { count: 0 } })\n *\n * state.nested.count++ // 不会触发 effect(嵌套对象未深度代理)\n * state.nested = { count: 1 } // 会触发 effect(顶层属性变更)\n * ```\n */\nexport function shallowReactive<T extends object>(target: T): T {\n if (!isObject(target)) {\n return target\n }\n if ((target as any)[ReactiveFlags.IS_REACTIVE]) {\n return target\n }\n const existingProxy = shallowReactiveMap.get(target)\n if (existingProxy) {\n return existingProxy\n }\n if (getTargetType(target) === TargetType.INVALID) {\n return target\n }\n const proxy = new Proxy(target, shallowHandlers)\n shallowReactiveMap.set(target, proxy)\n rawMap.set(proxy, target)\n if (!rawVersionMap.has(target)) {\n rawVersionMap.set(target, 0)\n }\n // 浅层响应式不初始化根映射,避免误导深度版本追踪\n return proxy\n}\n\n/**\n * 判断一个值是否为 shallowReactive 创建的浅层响应式对象\n */\nexport function isShallowReactive(value: unknown): boolean {\n const raw = toRaw(value as any)\n return shallowReactiveMap.has(raw)\n}\n","import type { MutationKind, MutationOp } from './reactive/mutation'\nimport { track, trigger } from './core'\nimport { mutationRecorders } from './reactive/mutation'\nimport {\n bumpAncestorVersions,\n bumpRawVersion,\n getRawVersion,\n rawMultiParentSet,\n rawParentsMap,\n rawPathMap,\n rawRootMap,\n rawVersionMap,\n recordParentLink,\n removeParentLink,\n resolvePathToTarget,\n} from './reactive/patchState'\nimport { getTargetType, hasOwn, isArrayIndexKey, isObject, ReactiveFlags, TargetType, toRaw, VERSION_KEY } from './reactive/shared'\nimport { rawMap, reactiveMap } from './reactive/state'\n\nexport { addMutationRecorder, removeMutationRecorder } from './reactive/mutation'\nexport type { MutationKind, MutationOp, MutationRecord } from './reactive/mutation'\nexport type { PrelinkReactiveTreeOptions } from './reactive/patch'\nexport { clearPatchIndices, prelinkReactiveTree, touchReactive } from './reactive/patch'\nexport { isShallowReactive, shallowReactive } from './reactive/shallow'\nexport { isObject, ReactiveFlags, toRaw } from './reactive/shared'\n\n/**\n * 读取响应式版本号(框架内部调试能力)。\n * @internal\n */\nexport function getReactiveVersion(target: object) {\n const raw = toRaw(target as any) as object\n return getRawVersion(raw)\n}\n\nfunction emitMutation(target: object, key: PropertyKey, op: MutationOp) {\n if (!mutationRecorders.size) {\n return\n }\n if (typeof key !== 'string') {\n return\n }\n if (key.startsWith('__r_')) {\n return\n }\n const root = rawRootMap.get(target) ?? target\n const isArray = Array.isArray(target)\n const kind: MutationKind = isArray && (key === 'length' || isArrayIndexKey(key)) ? 'array' : 'property'\n\n const baseSegments = resolvePathToTarget(root, target)\n if (!baseSegments) {\n // 路径不唯一/无法解析:尝试从父引用收集可能的顶层 key,供 patch 模式做“局部回退”。\n const fallback = new Set<string>()\n const parents = rawParentsMap.get(target)\n if (parents) {\n for (const [parent, keys] of parents) {\n const parentPath = rawPathMap.get(parent)\n const topFromParentPath = parentPath ? parentPath.split('.', 1)[0] : undefined\n const topFromResolve = !topFromParentPath\n ? (resolvePathToTarget(root, parent)?.[0] as string | undefined)\n : undefined\n for (const k of keys) {\n if (typeof k !== 'string') {\n continue\n }\n fallback.add(topFromParentPath ?? topFromResolve ?? k)\n }\n }\n }\n else {\n // 若目标就是 root 的直接子属性(未记录 parent link),仍可用 key 作为顶层回退\n fallback.add(key)\n }\n for (const recorder of mutationRecorders) {\n recorder({ root, kind, op, path: undefined, fallbackTopKeys: fallback.size ? [...fallback] : undefined })\n }\n return\n }\n\n // 若目标位于数组内部(例如 arr[0].x),直接回退到数组本身的路径,保持“数组整体替换”的策略。\n const arrayIndexPos = baseSegments.findIndex(seg => isArrayIndexKey(seg))\n if (arrayIndexPos !== -1) {\n const arrayPath = baseSegments.slice(0, arrayIndexPos).join('.')\n const path = arrayPath || undefined\n for (const recorder of mutationRecorders) {\n recorder({ root, kind: 'array', op, path })\n }\n return\n }\n\n const basePath = baseSegments.length ? baseSegments.join('.') : ''\n const path = kind === 'array' ? (basePath || undefined) : (basePath ? `${basePath}.${key}` : (key as string))\n\n for (const recorder of mutationRecorders) {\n recorder({\n root,\n kind,\n op,\n path,\n })\n }\n}\n\nconst mutableHandlers: ProxyHandler<any> = {\n get(target, key, receiver) {\n if (key === ReactiveFlags.IS_REACTIVE) {\n return true\n }\n if (key === ReactiveFlags.RAW) {\n return target\n }\n const res = Reflect.get(target, key, receiver)\n track(target, key)\n if (isObject(res)) {\n // 检查返回值是否被 markRaw 标记为跳过响应式\n if ((res as any)[ReactiveFlags.SKIP]) {\n return res\n }\n // 确保子对象的根引用与当前目标一致,便于版本号级联\n const parentRoot = rawRootMap.get(target) ?? target\n const childRaw = ((res as any)?.[ReactiveFlags.RAW] ?? res) as object\n if (!rawRootMap.has(childRaw)) {\n rawRootMap.set(childRaw, parentRoot)\n }\n recordParentLink(childRaw, target, key)\n const parentPath = rawPathMap.get(target)\n if (mutationRecorders.size && typeof key === 'string' && parentPath != null && !rawMultiParentSet.has(childRaw)) {\n const nextPath = parentPath ? `${parentPath}.${key}` : key\n rawPathMap.set(childRaw, nextPath)\n }\n // eslint-disable-next-line ts/no-use-before-define -- 避免递归调用的顺序警告\n return reactive(res)\n }\n return res\n },\n set(target, key, value, receiver) {\n const isArr = Array.isArray(target)\n const oldLength = isArr ? target.length : 0\n const oldValue = Reflect.get(target, key, receiver)\n const result = Reflect.set(target, key, value, receiver)\n if (!Object.is(oldValue, value)) {\n const oldRaw = isObject(oldValue) ? (((oldValue as any)?.[ReactiveFlags.RAW] ?? oldValue) as object) : undefined\n if (oldRaw) {\n removeParentLink(oldRaw, target, key)\n }\n if (isObject(value) && !(value as any)[ReactiveFlags.SKIP]) {\n const root = rawRootMap.get(target) ?? target\n const childRaw = ((value as any)?.[ReactiveFlags.RAW] ?? value) as object\n if (!rawRootMap.has(childRaw)) {\n rawRootMap.set(childRaw, root)\n }\n recordParentLink(childRaw, target, key)\n const parentPath = rawPathMap.get(target)\n if (mutationRecorders.size && typeof key === 'string' && parentPath != null && !rawMultiParentSet.has(childRaw)) {\n const nextPath = parentPath ? `${parentPath}.${key}` : key\n rawPathMap.set(childRaw, nextPath)\n }\n }\n trigger(target, key)\n if (isArr && typeof key === 'string' && isArrayIndexKey(key) && Number(key) >= oldLength) {\n trigger(target, 'length')\n }\n // 任意写操作都提升通用版本号\n trigger(target, VERSION_KEY)\n bumpRawVersion(target)\n bumpAncestorVersions(target)\n const root = rawRootMap.get(target)\n if (root && root !== target) {\n trigger(root, VERSION_KEY)\n bumpRawVersion(root)\n }\n emitMutation(target, key, 'set')\n }\n return result\n },\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key)\n const oldValue = hadKey ? (target as any)[key] : undefined\n const result = Reflect.deleteProperty(target, key)\n if (hadKey && result) {\n const oldRaw = isObject(oldValue) ? (((oldValue as any)?.[ReactiveFlags.RAW] ?? oldValue) as object) : undefined\n if (oldRaw) {\n removeParentLink(oldRaw, target, key)\n }\n trigger(target, key)\n // 删除同样提升通用版本号\n trigger(target, VERSION_KEY)\n bumpRawVersion(target)\n bumpAncestorVersions(target)\n const root = rawRootMap.get(target)\n if (root && root !== target) {\n trigger(root, VERSION_KEY)\n bumpRawVersion(root)\n }\n emitMutation(target, key, 'delete')\n }\n return result\n },\n ownKeys(target) {\n track(target, Symbol.iterator)\n // 遍历时也订阅通用版本号,确保新增/删除键可触发\n track(target, VERSION_KEY)\n return Reflect.ownKeys(target)\n },\n}\n\nexport function reactive<T extends object>(target: T): T {\n if (!isObject(target)) {\n return target\n }\n if ((target as any)[ReactiveFlags.IS_REACTIVE]) {\n return target\n }\n const existingProxy = reactiveMap.get(target)\n if (existingProxy) {\n return existingProxy\n }\n if (getTargetType(target) === TargetType.INVALID) {\n return target\n }\n const proxy = new Proxy(target, mutableHandlers)\n reactiveMap.set(target, proxy)\n rawMap.set(proxy, target)\n if (!rawVersionMap.has(target)) {\n rawVersionMap.set(target, 0)\n }\n // 新的原始对象在被观察时初始化根节点映射\n if (!rawRootMap.has(target)) {\n rawRootMap.set(target, target)\n }\n return proxy\n}\n\nexport function isReactive(value: unknown): boolean {\n return Boolean(value && (value as any)[ReactiveFlags.IS_REACTIVE])\n}\n\nexport function convertToReactive<T>(value: T): T {\n return isObject(value) ? reactive(value as any) : value\n}\n\n// ============================================================================\n// 标记对象跳过响应式转换(markRaw)\n// ============================================================================\n\n/**\n * 标记对象为“原始”状态,后续不会被转换为响应式,返回原对象本身。\n *\n * @param value 需要标记的对象\n * @returns 带有跳过标记的原对象\n *\n * @example\n * ```ts\n * const foo = markRaw({\n * nested: {}\n * })\n *\n * const state = reactive({\n * foo\n * })\n *\n * state.foo // 不是响应式对象\n * ```\n */\nexport function markRaw<T extends object>(value: T): T {\n if (!isObject(value)) {\n return value\n }\n Object.defineProperty(value, ReactiveFlags.SKIP, {\n value: true,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n return value\n}\n\n/**\n * 判断某个值是否被标记为原始(即不应转换为响应式)。\n *\n * @param value 待检测的值\n * @returns 若含有跳过标记则返回 true\n */\nexport function isRaw(value: unknown): boolean {\n return isObject(value) && ReactiveFlags.SKIP in (value as object)\n}\n","import type { Ref as VueRef, ShallowRef as VueShallowRef } from '../vue-types'\nimport type { ComputedRef, WritableComputedRef } from './computed'\nimport type { Dep } from './core'\nimport { trackEffects, triggerEffects } from './core'\nimport { convertToReactive, markRaw } from './reactive'\n\n// 类型对齐 @vue/reactivity.Ref:\n// - 用于 Volar 模板自动解包(UnwrapRef 依赖 RefSymbol 品牌标记)。\n// - 运行时仍使用 wevu 自己的 ref 实现,不依赖 Vue。\nexport type Ref<T = any, S = T> = VueRef<T, S>\nexport type ShallowRef<T = any> = VueShallowRef<T>\nexport type MaybeRef<T = any> = T | Ref<T> | ShallowRef<T> | WritableComputedRef<T>\nexport type MaybeRefOrGetter<T = any> = MaybeRef<T> | ComputedRef<T> | (() => T)\n\nexport const RefFlag = '__v_isRef' as const\n\nexport function markAsRef<T extends object>(target: T): T {\n try {\n Object.defineProperty(target, RefFlag, {\n value: true,\n configurable: true,\n })\n }\n catch {\n ;(target as any)[RefFlag] = true\n }\n return target\n}\n\nexport function isRef(value: unknown): value is Ref<any> {\n return Boolean(value && typeof value === 'object' && (value as any)[RefFlag] === true)\n}\n\nclass RefImpl<T> {\n private _value: T\n private _rawValue: T\n public dep: Dep | undefined\n constructor(value: T) {\n markAsRef(this)\n this._rawValue = value\n this._value = convertToReactive(value)\n }\n\n get value(): T {\n if (!this.dep) {\n this.dep = new Set()\n }\n trackEffects(this.dep)\n return this._value\n }\n\n set value(newValue: T) {\n if (!Object.is(newValue, this._rawValue)) {\n this._rawValue = newValue\n this._value = convertToReactive(newValue)\n if (this.dep) {\n triggerEffects(this.dep)\n }\n }\n }\n}\n\nexport function ref<T = any>(): Ref<T | undefined>\nexport function ref<T>(value: T): Ref<T>\nexport function ref<T>(value?: T): Ref<T | undefined> {\n if (isRef(value)) {\n return value\n }\n return markRaw(new RefImpl(value as T | undefined)) as any\n}\n\nexport function unref<T>(value: MaybeRef<T> | ComputedRef<T>): T {\n return isRef(value) ? value.value : value\n}\n\nexport function toValue<T>(source: MaybeRefOrGetter<T>): T {\n return typeof source === 'function' ? (source as () => T)() : unref(source)\n}\n\n/**\n * 自定义 ref 工厂:用于创建可显式控制 track/trigger 的自定义 ref\n */\nexport type CustomRefFactory<T> = (\n track: () => void,\n trigger: () => void,\n) => {\n get: () => T\n set: (value: T) => void\n}\n\nexport interface CustomRefOptions<T> {\n get: () => T\n set: (value: T) => void\n}\n\nexport type CustomRefSource<T> = CustomRefFactory<T> | CustomRefOptions<T>\n\nclass CustomRefImpl<T> {\n private _getValue: () => T\n private _setValue: (value: T) => void\n public dep: Dep | undefined\n\n constructor(factory: CustomRefSource<T>, defaultValue?: T) {\n markAsRef(this)\n const fallbackValue = defaultValue\n const track = () => {\n if (!this.dep) {\n this.dep = new Set()\n }\n trackEffects(this.dep)\n }\n const trigger = () => {\n if (this.dep) {\n triggerEffects(this.dep)\n }\n }\n\n const withFallback = (value: T) => (value === undefined && fallbackValue !== undefined ? fallbackValue as T : value)\n\n if (typeof factory === 'function') {\n const handlers = factory(track, trigger)\n this._getValue = () => withFallback(handlers.get())\n this._setValue = value => handlers.set(value)\n return\n }\n\n const handlers = factory\n this._getValue = () => {\n track()\n return withFallback(handlers.get())\n }\n this._setValue = (value: T) => {\n handlers.set(value)\n trigger()\n }\n }\n\n get value(): T {\n return this._getValue()\n }\n\n set value(newValue: T) {\n this._setValue(newValue)\n }\n}\n\nexport function customRef<T>(factory: CustomRefSource<T>, defaultValue?: T): Ref<T> {\n return markRaw(new CustomRefImpl(factory, defaultValue)) as any\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as getTargetType, l as isReactive, n as isRef, r as markAsRef, v as isObject } from "./ref-oJCdOWf7.mjs";
1
+ import { _ as getTargetType, l as isReactive, n as isRef, r as markAsRef, v as isObject } from "./ref-Dui1TzOR.mjs";
2
2
  import { WEVU_APP_PROVIDES_KEY, WEVU_HOOKS_KEY, WEVU_IS_APP_INSTANCE_KEY, WEVU_PAGE_SCROLL_HOOK_DEPTH_KEY, WEVU_PARENT_INSTANCE_KEY, WEVU_PROVIDES_KEY, WEVU_RUNTIME_APP_KEY } from "@weapp-core/constants";
3
3
  import { getMiniProgramPlatformByRuntimeGlobalKey, getMiniProgramRuntimeCapabilities, getMiniProgramRuntimeGlobalKey, getMiniProgramRuntimeGlobalKeys, getMiniProgramRuntimeHostConfigKey, resolveMiniProgramPlatform, supportsMiniProgramRuntimeCapability } from "@weapp-core/shared";
4
4
 
@@ -967,4 +967,4 @@ function useNativePageRouter() {
967
967
 
968
968
  //#endregion
969
969
  export { onUnhandledRejection as $, setGlobalProvidedValue as A, onPageNotFound as B, releaseCurrentPageInstance as C, attachRuntimeProvideContext as D, attachRuntimeLayoutProvideContext as E, onHide as F, onResize as G, onPullDownRefresh as H, onLaunch as I, onShareAppMessage as J, onRouteDone as K, onLoad as L, onAttached as M, onDetached as N, ensureRuntimeAppProvides as O, onError as P, onThemeChange as Q, onMemoryWarning as R, getCurrentPageInstance as S, runInPageScrollHook as T, onReachBottom as U, onPageScroll as V, onReady as W, onShow as X, onShareTimeline as Y, onTabItemTap as Z, provide as _, readonly as _t, resolveCurrentRoute as a, getCurrentSetupContext as at, ensureMiniProgramGlobalPatched as b, normalizeRouteParams as c, setCurrentSetupContext as ct, createAbsoluteRoutePath as d, getCurrentMiniProgramRuntimeCapabilities as dt, onUnload as et, isDynamicRoutePath as f, getMiniProgramGlobalObject as ft, injectGlobal as g, isReadonly as gt, inject as h, isProxy as ht, parsePathInput as i, getCurrentInstance as it, onAddToFavorites as j, setRuntimeAppProvidedValue as k, parseQuery as l, getCurrentMiniProgramHostConfig as lt, hasInjectionContext as m, supportsCurrentMiniProgramRuntimeCapability as mt, useNativeRouter as n, callHookList as nt, normalizeHash as o, pushHook as ot, resolvePath as p, getScopedSlotHostGlobalObject as pt, onSaveExitState as q, createRouteLocation as r, callHookReturn as rt, normalizeQuery as s, setCurrentInstance as st, useNativePageRouter as t, assertInSetup as tt, stringifyQuery as u, getCurrentMiniProgramPages as ut, provideGlobal as v, shallowReadonly as vt, resolvePageOptions as w, ensurePageShareMenus as x, bindCurrentPageInstance as y, onMoved as z };
970
- //# sourceMappingURL=router-CXNNN43P.mjs.map
970
+ //# sourceMappingURL=router-DFQw3LKA.mjs.map