wevu 7.4.0 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/README.md +2 -0
  2. package/dist/dev/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/defineProperty.mjs +1 -1
  3. package/dist/dev/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/toPrimitive.mjs +1 -1
  4. package/dist/dev/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/toPropertyKey.mjs +1 -1
  5. package/dist/dev/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/typeof.mjs +1 -1
  6. package/dist/dev/package.mjs +1 -1
  7. package/dist/dev/reactivity/core.mjs +1 -1
  8. package/dist/dev/reactivity/ref.mjs +1 -1
  9. package/dist/dev/runtime/app/diagnostics.mjs +5 -1
  10. package/dist/dev/runtime/app/diagnostics.mjs.map +1 -1
  11. package/dist/dev/runtime/app/mount.mjs +8 -3
  12. package/dist/dev/runtime/app/mount.mjs.map +1 -1
  13. package/dist/dev/runtime/app/setData/commitTracker.mjs +39 -4
  14. package/dist/dev/runtime/app/setData/commitTracker.mjs.map +1 -1
  15. package/dist/dev/runtime/app/setData/observation.mjs +109 -0
  16. package/dist/dev/runtime/app/setData/observation.mjs.map +1 -0
  17. package/dist/dev/runtime/app/setData/scheduler.mjs +12 -1
  18. package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -1
  19. package/dist/dev/runtime/app/setDataOptions.mjs +1 -0
  20. package/dist/dev/runtime/app/setDataOptions.mjs.map +1 -1
  21. package/dist/dev/runtime/define/initialComputed.mjs +13 -12
  22. package/dist/dev/runtime/define/initialComputed.mjs.map +1 -1
  23. package/dist/dev/runtime/define/props.mjs +5 -1
  24. package/dist/dev/runtime/define/props.mjs.map +1 -1
  25. package/dist/dev/runtime/define/scopedSlotOptions.mjs +2 -1
  26. package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -1
  27. package/dist/dev/runtime/define.mjs +1 -1
  28. package/dist/dev/runtime/define.mjs.map +1 -1
  29. package/dist/dev/runtime/features/scopedSlots.mjs.map +1 -1
  30. package/dist/dev/runtime/register/component/props.mjs +14 -4
  31. package/dist/dev/runtime/register/component/props.mjs.map +1 -1
  32. package/dist/dev/runtime/register/component/registerDefinition.mjs +27 -17
  33. package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -1
  34. package/dist/dev/runtime/register/component.mjs +2 -1
  35. package/dist/dev/runtime/register/component.mjs.map +1 -1
  36. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs +14 -7
  37. package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs.map +1 -1
  38. package/dist/dev/runtime/register/runtimeInstance/nativeDeclaration.mjs +78 -0
  39. package/dist/dev/runtime/register/runtimeInstance/nativeDeclaration.mjs.map +1 -0
  40. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs +52 -8
  41. package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs.map +1 -1
  42. package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -1
  43. package/dist/dev/runtime/register/runtimeInstance.mjs +60 -19
  44. package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -1
  45. package/dist/fetch.mjs +1 -1
  46. package/dist/internal-template.mjs +1 -1
  47. package/dist/package.mjs +1 -1
  48. package/dist/reactivity/core.mjs +1 -1
  49. package/dist/reactivity/reactive/patch.mjs +1 -1
  50. package/dist/reactivity/reactive/patchState.mjs +1 -1
  51. package/dist/reactivity/ref.mjs +1 -1
  52. package/dist/reactivity/watch/helpers.mjs +1 -1
  53. package/dist/router/initialNavigation.mjs +1 -1
  54. package/dist/router/useRoute.mjs +1 -1
  55. package/dist/routerInternal/matching.mjs +1 -1
  56. package/dist/routerInternal/params.mjs +1 -1
  57. package/dist/routerInternal/path.mjs +1 -1
  58. package/dist/routerInternal/query.mjs +1 -1
  59. package/dist/routerInternal/records.mjs +1 -1
  60. package/dist/runtime/app/context.mjs +1 -1
  61. package/dist/runtime/app/diagnostics.mjs +1 -1
  62. package/dist/runtime/app/mount.mjs +1 -1
  63. package/dist/runtime/app/setData/commitTracker.d.mts +2 -1
  64. package/dist/runtime/app/setData/commitTracker.mjs +1 -1
  65. package/dist/runtime/app/setData/observation.d.mts +12 -0
  66. package/dist/runtime/app/setData/observation.mjs +1 -0
  67. package/dist/runtime/app/setData/scheduler.d.mts +1 -0
  68. package/dist/runtime/app/setData/scheduler.mjs +1 -1
  69. package/dist/runtime/app/setDataOptions.mjs +1 -1
  70. package/dist/runtime/define/initialComputed.mjs +1 -1
  71. package/dist/runtime/define/props.mjs +1 -1
  72. package/dist/runtime/define/scopedSlotOptions.mjs +1 -1
  73. package/dist/runtime/define.mjs +1 -1
  74. package/dist/runtime/diff.mjs +1 -1
  75. package/dist/runtime/features/publicLayout.mjs +1 -1
  76. package/dist/runtime/features/scopedSlots.d.mts +2 -1
  77. package/dist/runtime/jsxIsland.mjs +1 -1
  78. package/dist/runtime/pageLayout.mjs +1 -1
  79. package/dist/runtime/pageScroll.mjs +1 -1
  80. package/dist/runtime/register/component/alipayRegistration.mjs +1 -1
  81. package/dist/runtime/register/component/lifecycle.mjs +1 -1
  82. package/dist/runtime/register/component/props.mjs +1 -1
  83. package/dist/runtime/register/component/registerDefinition.mjs +1 -1
  84. package/dist/runtime/register/component/registerNativeDefinition.mjs +1 -1
  85. package/dist/runtime/register/component.mjs +1 -1
  86. package/dist/runtime/register/runtimeInstance/methodBridge.mjs +1 -1
  87. package/dist/runtime/register/runtimeInstance/nativeDeclaration.mjs +1 -0
  88. package/dist/runtime/register/runtimeInstance/provideContext.mjs +1 -1
  89. package/dist/runtime/register/runtimeInstance.d.mts +8 -4
  90. package/dist/runtime/register/runtimeInstance.mjs +1 -1
  91. package/dist/runtime/setupTracking.mjs +1 -1
  92. package/dist/runtime/templateRefs.mjs +1 -1
  93. package/dist/runtime/types/runtime.d.mts +1 -0
  94. package/dist/runtime/types/setData.d.mts +30 -0
  95. package/dist/scheduler.mjs +1 -1
  96. package/dist/web-apis.mjs +1 -1
  97. package/package.json +10 -9
  98. package/dist/dev/api/vitest/setup.d.mts +0 -1
  99. package/dist/dev/api/vitest.d.mts +0 -1
  100. package/dist/dev/api.d.mts +0 -1
  101. package/dist/dev/compiler.d.mts +0 -1
  102. package/dist/dev/fetch.d.mts +0 -9
  103. package/dist/dev/index.d.mts +0 -72
  104. package/dist/dev/internal-reactivity.d.mts +0 -18
  105. package/dist/dev/internal-runtime.d.mts +0 -45
  106. package/dist/dev/internal-template.d.mts +0 -2
  107. package/dist/dev/jsxTypes.d.mts +0 -9
  108. package/dist/dev/macros/shared.d.mts +0 -83
  109. package/dist/dev/macros.d.mts +0 -71
  110. package/dist/dev/reactivity/asyncDerivation.d.mts +0 -41
  111. package/dist/dev/reactivity/computed.d.mts +0 -25
  112. package/dist/dev/reactivity/core.d.mts +0 -35
  113. package/dist/dev/reactivity/index.d.mts +0 -16
  114. package/dist/dev/reactivity/reactive/mutation.d.mts +0 -21
  115. package/dist/dev/reactivity/reactive/patch.d.mts +0 -18
  116. package/dist/dev/reactivity/reactive/shallow.d.mts +0 -22
  117. package/dist/dev/reactivity/reactive/shared.d.mts +0 -4
  118. package/dist/dev/reactivity/reactive.d.mts +0 -42
  119. package/dist/dev/reactivity/readonly.d.mts +0 -27
  120. package/dist/dev/reactivity/ref.d.mts +0 -27
  121. package/dist/dev/reactivity/shallowRef.d.mts +0 -19
  122. package/dist/dev/reactivity/toRefs.d.mts +0 -43
  123. package/dist/dev/reactivity/traverse.d.mts +0 -8
  124. package/dist/dev/reactivity/watch/types.d.mts +0 -43
  125. package/dist/dev/reactivity/watch.d.mts +0 -22
  126. package/dist/dev/router/auto-routes.d.mts +0 -8
  127. package/dist/dev/router/createRouter.d.mts +0 -9
  128. package/dist/dev/router/navigationCore.d.mts +0 -7
  129. package/dist/dev/router/resolve.d.mts +0 -7
  130. package/dist/dev/router/routeSync.d.mts +0 -2
  131. package/dist/dev/router/scrollRestoration/adapters.d.mts +0 -8
  132. package/dist/dev/router/scrollRestoration/controller.d.mts +0 -8
  133. package/dist/dev/router/scrollRestoration/host.d.mts +0 -3
  134. package/dist/dev/router/scrollRestoration/index.d.mts +0 -9
  135. package/dist/dev/router/scrollRestoration/types.d.mts +0 -61
  136. package/dist/dev/router/types.d.mts +0 -267
  137. package/dist/dev/router/useRoute.d.mts +0 -20
  138. package/dist/dev/router/useRouter.d.mts +0 -9
  139. package/dist/dev/router.d.mts +0 -30
  140. package/dist/dev/routerInternal/location.d.mts +0 -2
  141. package/dist/dev/routerInternal/matching.d.mts +0 -2
  142. package/dist/dev/routerInternal/params.d.mts +0 -2
  143. package/dist/dev/routerInternal/query.d.mts +0 -7
  144. package/dist/dev/routerInternal/records.d.mts +0 -2
  145. package/dist/dev/routerInternal/recordsWarnings.d.mts +0 -2
  146. package/dist/dev/routerInternal/shared.d.mts +0 -9
  147. package/dist/dev/routerInternal/snapshots.d.mts +0 -2
  148. package/dist/dev/routerInternal/types.d.mts +0 -9
  149. package/dist/dev/runtime/app/pending.d.mts +0 -10
  150. package/dist/dev/runtime/app/setData/commitTracker.d.mts +0 -13
  151. package/dist/dev/runtime/app/setData/scheduler.d.mts +0 -51
  152. package/dist/dev/runtime/app.d.mts +0 -8
  153. package/dist/dev/runtime/capabilities.d.mts +0 -78
  154. package/dist/dev/runtime/css.d.mts +0 -14
  155. package/dist/dev/runtime/defaults.d.mts +0 -12
  156. package/dist/dev/runtime/define.d.mts +0 -118
  157. package/dist/dev/runtime/disposables.d.mts +0 -31
  158. package/dist/dev/runtime/elementIntersectionObserver.d.mts +0 -26
  159. package/dist/dev/runtime/features/inlineEvents.d.mts +0 -7
  160. package/dist/dev/runtime/features/jsxIslands.d.mts +0 -7
  161. package/dist/dev/runtime/features/layout.d.mts +0 -7
  162. package/dist/dev/runtime/features/patchStrategy.d.mts +0 -7
  163. package/dist/dev/runtime/features/publicLayout.d.mts +0 -24
  164. package/dist/dev/runtime/features/scopedSlots.d.mts +0 -23
  165. package/dist/dev/runtime/features/setDataHighFrequencyWarning.d.mts +0 -7
  166. package/dist/dev/runtime/features/templateRefs.d.mts +0 -7
  167. package/dist/dev/runtime/hooks/base.d.mts +0 -27
  168. package/dist/dev/runtime/hooks/register.d.mts +0 -30
  169. package/dist/dev/runtime/hooks/vue.d.mts +0 -52
  170. package/dist/dev/runtime/hooks.d.mts +0 -4
  171. package/dist/dev/runtime/index.d.mts +0 -46
  172. package/dist/dev/runtime/intersectionObserver.d.mts +0 -14
  173. package/dist/dev/runtime/jsxIsland.d.mts +0 -37
  174. package/dist/dev/runtime/layoutBridge.d.mts +0 -55
  175. package/dist/dev/runtime/noSetData.d.mts +0 -5
  176. package/dist/dev/runtime/pageEnvironment.d.mts +0 -50
  177. package/dist/dev/runtime/pageLayout.d.mts +0 -25
  178. package/dist/dev/runtime/pageScroll.d.mts +0 -29
  179. package/dist/dev/runtime/provide.d.mts +0 -60
  180. package/dist/dev/runtime/provideStore.d.mts +0 -7
  181. package/dist/dev/runtime/publicRuntime.d.mts +0 -22
  182. package/dist/dev/runtime/pullDownRefresh.d.mts +0 -12
  183. package/dist/dev/runtime/register/app.d.mts +0 -14
  184. package/dist/dev/runtime/register/component.d.mts +0 -17
  185. package/dist/dev/runtime/register/inline.d.mts +0 -15
  186. package/dist/dev/runtime/register/runtimeInstance.d.mts +0 -26
  187. package/dist/dev/runtime/register/setup.d.mts +0 -11
  188. package/dist/dev/runtime/register/watch.d.mts +0 -12
  189. package/dist/dev/runtime/register.d.mts +0 -5
  190. package/dist/dev/runtime/selectorQuery.d.mts +0 -54
  191. package/dist/dev/runtime/template.d.mts +0 -6
  192. package/dist/dev/runtime/templateRefTypes.d.mts +0 -12
  193. package/dist/dev/runtime/types/core.d.mts +0 -35
  194. package/dist/dev/runtime/types/miniprogram.d.mts +0 -84
  195. package/dist/dev/runtime/types/miniprogramHost.d.mts +0 -45
  196. package/dist/dev/runtime/types/miniprogramHostSources.d.mts +0 -112
  197. package/dist/dev/runtime/types/options.d.mts +0 -138
  198. package/dist/dev/runtime/types/props/propTypes.d.mts +0 -79
  199. package/dist/dev/runtime/types/props/router.d.mts +0 -51
  200. package/dist/dev/runtime/types/props/setup.d.mts +0 -96
  201. package/dist/dev/runtime/types/props.d.mts +0 -4
  202. package/dist/dev/runtime/types/runtime.d.mts +0 -59
  203. package/dist/dev/runtime/types/setData.d.mts +0 -237
  204. package/dist/dev/runtime/types.d.mts +0 -29
  205. package/dist/dev/runtime/uniAppHost.d.mts +0 -8
  206. package/dist/dev/runtime/updatePerformance.d.mts +0 -13
  207. package/dist/dev/runtime/use.d.mts +0 -13
  208. package/dist/dev/runtime/vueCompat/context.d.mts +0 -8
  209. package/dist/dev/runtime/vueCompat/model.d.mts +0 -30
  210. package/dist/dev/runtime/vueCompat/router.d.mts +0 -29
  211. package/dist/dev/runtime/vueCompat/templateRef.d.mts +0 -9
  212. package/dist/dev/runtime/vueCompat.d.mts +0 -5
  213. package/dist/dev/scheduler.d.mts +0 -4
  214. package/dist/dev/store/define.d.mts +0 -8
  215. package/dist/dev/store/manager.d.mts +0 -16
  216. package/dist/dev/store/storeToRefs.d.mts +0 -11
  217. package/dist/dev/store/types.d.mts +0 -106
  218. package/dist/dev/store.d.mts +0 -5
  219. package/dist/dev/version.d.mts +0 -4
  220. package/dist/dev/vue-augment.d.mts +0 -8
  221. package/dist/dev/vue-demi.d.mts +0 -87
  222. package/dist/dev/vue-types.d.mts +0 -19
  223. package/dist/dev/web-apis.d.mts +0 -3
  224. /package/dist/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/defineProperty.mjs +0 -0
  225. /package/dist/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/toPrimitive.mjs +0 -0
  226. /package/dist/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/toPropertyKey.mjs +0 -0
  227. /package/dist/_virtual/{_@oxc-project_runtime@0.151.0 → _@oxc-project_runtime@0.153.0}/helpers/esm/typeof.mjs +0 -0
@@ -5,6 +5,7 @@ import { hasOwn } from "../../../utils.mjs";
5
5
  import { hasTrackableSetupBinding } from "../../setupTracking.mjs";
6
6
  import { resolveBindingDiagnostics } from "../../bindingManifest.mjs";
7
7
  import { diffSnapshots, toPlain } from "../../diff.mjs";
8
+ import { createSetDataObservation } from "./observation.mjs";
8
9
  import { collectSnapshot } from "./snapshot.mjs";
9
10
  import { createSetDataCommitTracker } from "./commitTracker.mjs";
10
11
 
@@ -113,7 +114,16 @@ function createSetDataScheduler(options) {
113
114
  debug(debugInfo);
114
115
  } catch {}
115
116
  };
116
- const commitTracker = createSetDataCommitTracker({
117
+ let commitTracker;
118
+ const observation = options.debugPhases && debug ? createSetDataObservation({
119
+ debug,
120
+ debugWhen,
121
+ debugSampleRate,
122
+ targetLabel,
123
+ committedRevision: () => commitTracker.state.committedRevision
124
+ }) : void 0;
125
+ commitTracker = createSetDataCommitTracker({
126
+ observe: observation?.revision,
117
127
  initialSnapshot: initialSnapshotBaseline,
118
128
  adapter: currentAdapter,
119
129
  onFailure: (failure) => {
@@ -264,6 +274,7 @@ function createSetDataScheduler(options) {
264
274
  };
265
275
  const prepareJob = (pendingPatchKeys = 0, pathSource) => {
266
276
  if (!isMounted()) return false;
277
+ observation?.prepare();
267
278
  recordFlushForLoopWarning(pendingPatchKeys, pathSource);
268
279
  runTracker();
269
280
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.mjs","names":[],"sources":["../../../../../src/runtime/app/setData/scheduler.ts"],"sourcesContent":["import type { WevuRuntimeBindingManifestV1 } from '@weapp-core/constants'\nimport type { SetDataScheduler } from '../../capabilities'\nimport type { SetDataDebugInfo } from '../../types'\nimport type { CommitAwareSetDataAdapter, PreparedSetDataUpdate, SetDataCommitFailure, SetDataSnapshot } from './commitTracker'\nimport { getReactiveVersion, isReactive, isRef, toRaw } from '../../../reactivity'\nimport { hasOwn } from '../../../utils'\nimport { resolveBindingDiagnostics } from '../../bindingManifest'\nimport { diffSnapshots, toPlain } from '../../diff'\nimport { hasTrackableSetupBinding } from '../../setupTracking'\nimport { createSetDataCommitTracker } from './commitTracker'\nimport { collectSnapshot } from './snapshot'\n\nexport interface SetDataSchedulerOptions {\n state: Record<string, any>\n setupState?: Record<string, any>\n snapshotOmitKeys?: Set<string>\n computedRefs: Record<string, { value: any }>\n dirtyComputedKeys: Set<string>\n includeComputed: boolean\n setDataStrategy: 'diff' | 'patch'\n computedCompare: 'reference' | 'shallow' | 'deep'\n computedCompareMaxDepth: number\n computedCompareMaxKeys: number\n currentAdapter: CommitAwareSetDataAdapter\n shouldIncludeKey: (key: string) => boolean\n maxPatchKeys: number\n maxPayloadBytes: number\n mergeSiblingThreshold: number\n mergeSiblingMaxInflationRatio: number\n mergeSiblingMaxParentBytes: number\n mergeSiblingSkipArray: boolean\n elevateTopKeyThreshold: number\n prelinkMaxDepth?: number\n prelinkMaxKeys?: number\n toPlainMaxDepth: number\n toPlainMaxKeys: number\n includeFunctions?: boolean\n functionPaths: string[]\n debug: ((info: SetDataDebugInfo) => void) | undefined\n debugWhen: 'fallback' | 'always'\n debugSampleRate: number\n bindingManifest?: WevuRuntimeBindingManifestV1\n loopWarning: false | {\n sampleWindowMs: number\n maxFlushes: number\n coolDownMs: number\n }\n targetLabel?: string\n runTracker: () => void\n isMounted: () => boolean\n initialSnapshot?: Record<string, any>\n initialState?: Record<string, any>\n}\n\nexport interface SetDataSchedulerInternals extends SetDataScheduler {\n collect: () => Record<string, unknown>\n dispatchUpdate: (update: PreparedSetDataUpdate) => number\n dispose: () => void\n emitDebug: (info: SetDataDebugInfo, pathSource?: Iterable<string> | (() => Iterable<string>)) => void\n getLatestSnapshot: () => Record<string, unknown>\n needsFullSnapshot: () => boolean\n plainCache: WeakMap<object, { version: number, value: unknown }>\n plainCacheEligibility: WeakMap<object, boolean>\n prepareJob: (pendingPatchKeys?: number, pathSource?: Iterable<string> | (() => Iterable<string>)) => boolean\n resolveTopKeysByRoot: (root: object) => string[]\n runDiffUpdate: (\n reason?: SetDataDebugInfo['reason'],\n pendingPatchKeys?: number,\n onSnapshotPrepared?: (snapshot: SetDataSnapshot) => void,\n ) => void\n shouldIncludeSnapshotKey: (key: string) => boolean\n}\n\nexport function createSetDataScheduler(options: SetDataSchedulerOptions): SetDataSchedulerInternals {\n const {\n state,\n setupState,\n snapshotOmitKeys,\n computedRefs,\n dirtyComputedKeys,\n includeComputed,\n setDataStrategy,\n currentAdapter,\n shouldIncludeKey,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions = false,\n functionPaths,\n debug,\n debugWhen,\n debugSampleRate,\n bindingManifest,\n loopWarning,\n targetLabel,\n runTracker,\n isMounted,\n initialSnapshot,\n initialState,\n } = options\n\n const plainCache = new WeakMap<object, { version: number, value: any }>()\n const plainCacheEligibility = new WeakMap<object, boolean>()\n const initialSnapshotBaseline: SetDataSnapshot = {}\n const dispatchedStateTokens = Object.create(null) as Record<string, unknown>\n const dispatchedComputedTokens = Object.create(null) as Record<string, unknown>\n const flushTimes: number[] = []\n let lastLoopWarningAt = Number.NEGATIVE_INFINITY\n const initialStateKeys = new Set(\n initialState && typeof initialState === 'object'\n ? Object.keys(initialState)\n : [],\n )\n\n const isPlainObject = (value: unknown): value is Record<string, any> => {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n const proto = Object.getPrototypeOf(value)\n return proto === null || proto === Object.prototype\n }\n\n const isDeepEqual = (left: any, right: any): boolean => {\n if (Object.is(left, right)) {\n return true\n }\n if (Array.isArray(left) && Array.isArray(right)) {\n if (left.length !== right.length) {\n return false\n }\n return left.every((item, index) => isDeepEqual(item, right[index]))\n }\n if (isPlainObject(left) && isPlainObject(right)) {\n const leftKeys = Object.keys(left)\n const rightKeys = Object.keys(right)\n if (leftKeys.length !== rightKeys.length) {\n return false\n }\n return leftKeys.every(key => hasOwn(right, key) && isDeepEqual(left[key], right[key]))\n }\n return false\n }\n\n const createValueToken = (value: unknown) => {\n const candidate = isRef(value) ? value.value : value\n if (candidate == null || typeof candidate !== 'object') {\n return candidate\n }\n if (!isReactive(candidate) && hasTrackableSetupBinding(candidate)) {\n return {\n snapshot: toPlain(candidate, new WeakMap(), {\n cacheEligibility: plainCacheEligibility,\n maxDepth: toPlainMaxDepth,\n maxKeys: toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n }),\n }\n }\n const raw = isReactive(candidate) ? toRaw(candidate as any) : candidate\n return {\n raw,\n version: getReactiveVersion(raw as any),\n }\n }\n\n const isSameToken = (left: unknown, right: unknown) => {\n if (Object.is(left, right)) {\n return true\n }\n if (\n !left\n || !right\n || typeof left !== 'object'\n || typeof right !== 'object'\n || !hasOwn(left as object, 'raw')\n || !hasOwn(right as object, 'raw')\n ) {\n if (\n left\n && right\n && typeof left === 'object'\n && typeof right === 'object'\n && hasOwn(left as object, 'snapshot')\n && hasOwn(right as object, 'snapshot')\n ) {\n return isDeepEqual((left as any).snapshot, (right as any).snapshot)\n }\n return false\n }\n return (left as any).raw === (right as any).raw && (left as any).version === (right as any).version\n }\n\n const shouldIncludeSnapshotKey = (key: string) => shouldIncludeKey(key) && !snapshotOmitKeys?.has(key)\n\n if (initialSnapshot) {\n for (const [key, value] of Object.entries(initialSnapshot)) {\n if (shouldIncludeSnapshotKey(key)) {\n initialSnapshotBaseline[key] = value\n }\n }\n }\n\n const syncInitialSnapshotTokens = () => {\n if (!initialSnapshot) {\n return\n }\n const rawState = (isReactive(state) ? toRaw(state as any) : state) as Record<string, any>\n const rawSetupState = setupState && typeof setupState === 'object'\n ? (isReactive(setupState) ? toRaw(setupState as any) : setupState)\n : undefined\n\n for (const key of Object.keys(initialSnapshot)) {\n if (!shouldIncludeSnapshotKey(key)) {\n continue\n }\n if (rawSetupState && hasOwn(rawSetupState, key)) {\n dispatchedStateTokens[key] = createValueToken(rawSetupState[key])\n continue\n }\n if (hasOwn(rawState, key)) {\n if (initialStateKeys.has(key)) {\n continue\n }\n rawState[key] = initialSnapshot[key]\n dispatchedStateTokens[key] = createValueToken(rawState[key])\n }\n }\n }\n\n const resolveTopKeysByRoot = (root: object) => {\n const matches: string[] = []\n const rawSetupState = setupState && typeof setupState === 'object'\n ? (isReactive(setupState) ? toRaw(setupState as any) : setupState)\n : undefined\n for (const key of new Set([...Object.keys(state), ...(rawSetupState ? Object.keys(rawSetupState) : [])])) {\n if (!shouldIncludeSnapshotKey(key)) {\n continue\n }\n const value = rawSetupState && hasOwn(rawSetupState, key) ? rawSetupState[key] : state[key]\n const candidate = isRef(value) ? value.value : value\n if (!candidate || typeof candidate !== 'object') {\n continue\n }\n if (toRaw(candidate as any) === root) {\n matches.push(key)\n }\n }\n return matches\n }\n\n const emitDebug = (\n info: SetDataDebugInfo,\n pathSource?: Iterable<string> | (() => Iterable<string>),\n ) => {\n if (!debug) {\n return\n }\n const isFallback = info.reason !== 'patch' && info.reason !== 'diff'\n if (debugWhen === 'fallback' && !isFallback) {\n return\n }\n if (info.reason !== 'commitFailure' && debugSampleRate < 1 && Math.random() > debugSampleRate) {\n return\n }\n let debugInfo = info\n if (bindingManifest) {\n const paths = typeof pathSource === 'function'\n ? pathSource()\n : pathSource ?? []\n const wholeSnapshotFallback = info.reason === 'needsFullSnapshot'\n || info.reason === 'maxPatchKeys'\n || info.reason === 'maxPayloadBytes'\n debugInfo = {\n ...info,\n bindings: resolveBindingDiagnostics(bindingManifest, paths, wholeSnapshotFallback),\n }\n }\n try {\n debug(debugInfo)\n }\n catch {\n // 忽略异常\n }\n }\n\n const commitTracker = createSetDataCommitTracker({\n initialSnapshot: initialSnapshotBaseline,\n adapter: currentAdapter,\n onFailure: (failure: SetDataCommitFailure) => {\n emitDebug({\n mode: failure.mode,\n reason: 'commitFailure',\n pendingPatchKeys: failure.pendingPatchKeys,\n payloadKeys: failure.payloadKeys,\n revision: failure.revision,\n committedRevision: failure.committedRevision,\n targetLabel,\n message: failure.error.message,\n })\n try {\n currentAdapter.__wevu_reportSetDataError?.(failure.error)\n }\n catch {\n // 宿主错误钩子不得反向破坏提交状态机。\n }\n },\n })\n\n const recordFlushForLoopWarning = (\n pendingPatchKeys = 0,\n pathSource?: Iterable<string> | (() => Iterable<string>),\n ) => {\n if (!loopWarning) {\n return\n }\n const current = Date.now()\n flushTimes.push(current)\n const windowStart = current - loopWarning.sampleWindowMs\n while (flushTimes.length && flushTimes[0] < windowStart) {\n flushTimes.shift()\n }\n if (flushTimes.length <= loopWarning.maxFlushes) {\n return\n }\n if (loopWarning.coolDownMs > 0 && current - lastLoopWarningAt < loopWarning.coolDownMs) {\n return\n }\n lastLoopWarningAt = current\n emitDebug({\n mode: setDataStrategy,\n reason: 'loopWarning',\n pendingPatchKeys,\n payloadKeys: 0,\n computedDirtyKeys: includeComputed ? dirtyComputedKeys.size : 0,\n flushCount: flushTimes.length,\n windowMs: loopWarning.sampleWindowMs,\n targetLabel,\n message: `${targetLabel ? `${targetLabel} ` : ''}疑似运行时更新循环:${flushTimes.length} 次 setData flush/${loopWarning.sampleWindowMs}ms`,\n }, pathSource)\n }\n\n const collect = () => collectSnapshot({\n state,\n setupState,\n computedRefs,\n includeComputed,\n shouldIncludeKey: shouldIncludeSnapshotKey,\n plainCache,\n plainCacheEligibility,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n })\n\n syncInitialSnapshotTokens()\n\n const collectDiffSnapshot = () => {\n const rawState = (isReactive(state) ? toRaw(state as any) : state) as Record<string, any>\n const rawSetupState = setupState && typeof setupState === 'object'\n ? (isReactive(setupState) ? toRaw(setupState as any) : setupState)\n : undefined\n const dispatchedSnapshot = commitTracker.state.dispatchedSnapshot\n const nextSnapshot: Record<string, any> = { ...dispatchedSnapshot }\n const seen = new WeakMap<object, any>()\n const includedStateKeys = new Set<string>()\n const includedComputedKeys = new Set<string>()\n const replacedTopLevelKeys = new Set<string>()\n\n for (const key of new Set([...Object.keys(rawState), ...(rawSetupState ? Object.keys(rawSetupState) : [])])) {\n if (!shouldIncludeSnapshotKey(key)) {\n continue\n }\n includedStateKeys.add(key)\n const source = rawSetupState && hasOwn(rawSetupState, key) ? rawSetupState : rawState\n const token = createValueToken(source[key])\n const previousToken = dispatchedStateTokens[key]\n if (\n previousToken\n && token\n && typeof previousToken === 'object'\n && typeof token === 'object'\n && hasOwn(previousToken as object, 'raw')\n && hasOwn(token as object, 'raw')\n && Array.isArray((previousToken as any).raw)\n && Array.isArray((token as any).raw)\n && (previousToken as any).raw !== (token as any).raw\n ) {\n replacedTopLevelKeys.add(key)\n }\n if (!isSameToken(previousToken, token) || !hasOwn(dispatchedSnapshot, key)) {\n nextSnapshot[key] = toPlain(source[key], seen, {\n cache: plainCache,\n cacheEligibility: plainCacheEligibility,\n maxDepth: toPlainMaxDepth,\n maxKeys: toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n _path: key,\n })\n }\n dispatchedStateTokens[key] = token\n }\n\n for (const key of Object.keys(dispatchedStateTokens)) {\n if (!includedStateKeys.has(key)) {\n delete dispatchedStateTokens[key]\n if (!includeComputed || !hasOwn(computedRefs, key)) {\n delete nextSnapshot[key]\n }\n }\n }\n\n if (!includeComputed) {\n for (const key of Object.keys(dispatchedComputedTokens)) {\n delete dispatchedComputedTokens[key]\n }\n return {\n snapshot: nextSnapshot,\n replacedTopLevelKeys,\n }\n }\n\n for (const key of Object.keys(computedRefs)) {\n if (!shouldIncludeSnapshotKey(key)) {\n continue\n }\n includedComputedKeys.add(key)\n const value = computedRefs[key].value\n const token = createValueToken(value)\n if (!isSameToken(dispatchedComputedTokens[key], token) || !hasOwn(dispatchedSnapshot, key)) {\n nextSnapshot[key] = toPlain(value, seen, {\n cache: plainCache,\n cacheEligibility: plainCacheEligibility,\n maxDepth: toPlainMaxDepth,\n maxKeys: toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n _path: key,\n })\n }\n dispatchedComputedTokens[key] = token\n }\n\n for (const key of Object.keys(dispatchedComputedTokens)) {\n if (!includedComputedKeys.has(key)) {\n delete dispatchedComputedTokens[key]\n if (!hasOwn(rawState, key) || !shouldIncludeSnapshotKey(key)) {\n delete nextSnapshot[key]\n }\n }\n }\n\n return {\n snapshot: nextSnapshot,\n replacedTopLevelKeys,\n }\n }\n\n const runDiffUpdate = (\n reason: SetDataDebugInfo['reason'] = 'diff',\n pendingPatchKeys = 0,\n onSnapshotPrepared?: (snapshot: SetDataSnapshot) => void,\n ): void => {\n const diffCollection = setDataStrategy === 'diff' ? collectDiffSnapshot() : undefined\n const snapshot = diffCollection?.snapshot ?? collect()\n const dispatchedSnapshot = commitTracker.state.dispatchedSnapshot\n const needsRecovery = commitTracker.state.needsFullSnapshot\n const payload = needsRecovery\n ? commitTracker.createFullPayload(snapshot)\n : diffCollection\n ? (() => {\n const fastDiff: Record<string, any> = {}\n for (const key of diffCollection.replacedTopLevelKeys) {\n fastDiff[key] = snapshot[key]\n }\n const baseDiff = diffSnapshots(dispatchedSnapshot, snapshot, {\n skipKeys: diffCollection.replacedTopLevelKeys,\n })\n return {\n ...baseDiff,\n ...fastDiff,\n }\n })()\n : diffSnapshots(dispatchedSnapshot, snapshot)\n onSnapshotPrepared?.(snapshot)\n const payloadKeys = Object.keys(payload).length\n if (!payloadKeys && !needsRecovery) {\n return\n }\n const effectiveReason = needsRecovery ? 'needsFullSnapshot' : reason\n emitDebug({\n mode: 'diff',\n reason: effectiveReason,\n pendingPatchKeys,\n payloadKeys,\n }, Object.keys(payload))\n commitTracker.dispatch({\n mode: 'diff',\n kind: needsRecovery ? 'full' : 'delta',\n reason: effectiveReason,\n snapshot,\n payload,\n pendingPatchKeys,\n })\n }\n\n const prepareJob = (\n pendingPatchKeys = 0,\n pathSource?: Iterable<string> | (() => Iterable<string>),\n ) => {\n if (!isMounted()) {\n return false\n }\n recordFlushForLoopWarning(pendingPatchKeys, pathSource)\n // 生成快照前刷新依赖(setup 中的 ref / 新增 key)\n runTracker()\n return true\n }\n\n const job = (_stateRootRaw?: object) => {\n if (!prepareJob()) {\n return\n }\n return runDiffUpdate('diff')\n }\n\n const snapshot = () => (\n setDataStrategy === 'patch'\n ? collect()\n : { ...commitTracker.state.dispatchedSnapshot }\n )\n const cloneLatestSnapshot = () => ({ ...commitTracker.state.dispatchedSnapshot })\n\n return {\n collect,\n emitDebug,\n getLatestSnapshot: () => commitTracker.state.dispatchedSnapshot,\n dispatchUpdate: commitTracker.dispatch,\n needsFullSnapshot: () => commitTracker.state.needsFullSnapshot,\n job,\n plainCache,\n plainCacheEligibility,\n prepareJob,\n resolveTopKeysByRoot,\n runDiffUpdate,\n shouldIncludeSnapshotKey,\n snapshot,\n cloneLatestSnapshot,\n dispose: commitTracker.dispose,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.mjs","names":[],"sources":["../../../../../src/runtime/app/setData/scheduler.ts"],"sourcesContent":["import type { WevuRuntimeBindingManifestV1 } from '@weapp-core/constants'\nimport type { SetDataScheduler } from '../../capabilities'\nimport type { SetDataDebugInfo } from '../../types'\nimport type { CommitAwareSetDataAdapter, PreparedSetDataUpdate, SetDataCommitFailure, SetDataCommitTracker, SetDataSnapshot } from './commitTracker'\nimport { getReactiveVersion, isReactive, isRef, toRaw } from '../../../reactivity'\nimport { hasOwn } from '../../../utils'\nimport { resolveBindingDiagnostics } from '../../bindingManifest'\nimport { diffSnapshots, toPlain } from '../../diff'\nimport { hasTrackableSetupBinding } from '../../setupTracking'\nimport { createSetDataCommitTracker } from './commitTracker'\nimport { createSetDataObservation } from './observation'\nimport { collectSnapshot } from './snapshot'\n\nexport interface SetDataSchedulerOptions {\n state: Record<string, any>\n setupState?: Record<string, any>\n snapshotOmitKeys?: Set<string>\n computedRefs: Record<string, { value: any }>\n dirtyComputedKeys: Set<string>\n includeComputed: boolean\n setDataStrategy: 'diff' | 'patch'\n computedCompare: 'reference' | 'shallow' | 'deep'\n computedCompareMaxDepth: number\n computedCompareMaxKeys: number\n currentAdapter: CommitAwareSetDataAdapter\n shouldIncludeKey: (key: string) => boolean\n maxPatchKeys: number\n maxPayloadBytes: number\n mergeSiblingThreshold: number\n mergeSiblingMaxInflationRatio: number\n mergeSiblingMaxParentBytes: number\n mergeSiblingSkipArray: boolean\n elevateTopKeyThreshold: number\n prelinkMaxDepth?: number\n prelinkMaxKeys?: number\n toPlainMaxDepth: number\n toPlainMaxKeys: number\n includeFunctions?: boolean\n functionPaths: string[]\n debug: ((info: SetDataDebugInfo) => void) | undefined\n debugWhen: 'fallback' | 'always'\n debugSampleRate: number\n debugPhases?: boolean\n bindingManifest?: WevuRuntimeBindingManifestV1\n loopWarning: false | {\n sampleWindowMs: number\n maxFlushes: number\n coolDownMs: number\n }\n targetLabel?: string\n runTracker: () => void\n isMounted: () => boolean\n initialSnapshot?: Record<string, any>\n initialState?: Record<string, any>\n}\n\nexport interface SetDataSchedulerInternals extends SetDataScheduler {\n collect: () => Record<string, unknown>\n dispatchUpdate: (update: PreparedSetDataUpdate) => number\n dispose: () => void\n emitDebug: (info: SetDataDebugInfo, pathSource?: Iterable<string> | (() => Iterable<string>)) => void\n getLatestSnapshot: () => Record<string, unknown>\n needsFullSnapshot: () => boolean\n plainCache: WeakMap<object, { version: number, value: unknown }>\n plainCacheEligibility: WeakMap<object, boolean>\n prepareJob: (pendingPatchKeys?: number, pathSource?: Iterable<string> | (() => Iterable<string>)) => boolean\n resolveTopKeysByRoot: (root: object) => string[]\n runDiffUpdate: (\n reason?: SetDataDebugInfo['reason'],\n pendingPatchKeys?: number,\n onSnapshotPrepared?: (snapshot: SetDataSnapshot) => void,\n ) => void\n shouldIncludeSnapshotKey: (key: string) => boolean\n}\n\nexport function createSetDataScheduler(options: SetDataSchedulerOptions): SetDataSchedulerInternals {\n const {\n state,\n setupState,\n snapshotOmitKeys,\n computedRefs,\n dirtyComputedKeys,\n includeComputed,\n setDataStrategy,\n currentAdapter,\n shouldIncludeKey,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions = false,\n functionPaths,\n debug,\n debugWhen,\n debugSampleRate,\n bindingManifest,\n loopWarning,\n targetLabel,\n runTracker,\n isMounted,\n initialSnapshot,\n initialState,\n } = options\n\n const plainCache = new WeakMap<object, { version: number, value: any }>()\n const plainCacheEligibility = new WeakMap<object, boolean>()\n const initialSnapshotBaseline: SetDataSnapshot = {}\n const dispatchedStateTokens = Object.create(null) as Record<string, unknown>\n const dispatchedComputedTokens = Object.create(null) as Record<string, unknown>\n const flushTimes: number[] = []\n let lastLoopWarningAt = Number.NEGATIVE_INFINITY\n const initialStateKeys = new Set(\n initialState && typeof initialState === 'object'\n ? Object.keys(initialState)\n : [],\n )\n\n const isPlainObject = (value: unknown): value is Record<string, any> => {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false\n }\n const proto = Object.getPrototypeOf(value)\n return proto === null || proto === Object.prototype\n }\n\n const isDeepEqual = (left: any, right: any): boolean => {\n if (Object.is(left, right)) {\n return true\n }\n if (Array.isArray(left) && Array.isArray(right)) {\n if (left.length !== right.length) {\n return false\n }\n return left.every((item, index) => isDeepEqual(item, right[index]))\n }\n if (isPlainObject(left) && isPlainObject(right)) {\n const leftKeys = Object.keys(left)\n const rightKeys = Object.keys(right)\n if (leftKeys.length !== rightKeys.length) {\n return false\n }\n return leftKeys.every(key => hasOwn(right, key) && isDeepEqual(left[key], right[key]))\n }\n return false\n }\n\n const createValueToken = (value: unknown) => {\n const candidate = isRef(value) ? value.value : value\n if (candidate == null || typeof candidate !== 'object') {\n return candidate\n }\n if (!isReactive(candidate) && hasTrackableSetupBinding(candidate)) {\n return {\n snapshot: toPlain(candidate, new WeakMap(), {\n cacheEligibility: plainCacheEligibility,\n maxDepth: toPlainMaxDepth,\n maxKeys: toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n }),\n }\n }\n const raw = isReactive(candidate) ? toRaw(candidate as any) : candidate\n return {\n raw,\n version: getReactiveVersion(raw as any),\n }\n }\n\n const isSameToken = (left: unknown, right: unknown) => {\n if (Object.is(left, right)) {\n return true\n }\n if (\n !left\n || !right\n || typeof left !== 'object'\n || typeof right !== 'object'\n || !hasOwn(left as object, 'raw')\n || !hasOwn(right as object, 'raw')\n ) {\n if (\n left\n && right\n && typeof left === 'object'\n && typeof right === 'object'\n && hasOwn(left as object, 'snapshot')\n && hasOwn(right as object, 'snapshot')\n ) {\n return isDeepEqual((left as any).snapshot, (right as any).snapshot)\n }\n return false\n }\n return (left as any).raw === (right as any).raw && (left as any).version === (right as any).version\n }\n\n const shouldIncludeSnapshotKey = (key: string) => shouldIncludeKey(key) && !snapshotOmitKeys?.has(key)\n\n if (initialSnapshot) {\n for (const [key, value] of Object.entries(initialSnapshot)) {\n if (shouldIncludeSnapshotKey(key)) {\n initialSnapshotBaseline[key] = value\n }\n }\n }\n\n const syncInitialSnapshotTokens = () => {\n if (!initialSnapshot) {\n return\n }\n const rawState = (isReactive(state) ? toRaw(state as any) : state) as Record<string, any>\n const rawSetupState = setupState && typeof setupState === 'object'\n ? (isReactive(setupState) ? toRaw(setupState as any) : setupState)\n : undefined\n\n for (const key of Object.keys(initialSnapshot)) {\n if (!shouldIncludeSnapshotKey(key)) {\n continue\n }\n if (rawSetupState && hasOwn(rawSetupState, key)) {\n dispatchedStateTokens[key] = createValueToken(rawSetupState[key])\n continue\n }\n if (hasOwn(rawState, key)) {\n if (initialStateKeys.has(key)) {\n continue\n }\n rawState[key] = initialSnapshot[key]\n dispatchedStateTokens[key] = createValueToken(rawState[key])\n }\n }\n }\n\n const resolveTopKeysByRoot = (root: object) => {\n const matches: string[] = []\n const rawSetupState = setupState && typeof setupState === 'object'\n ? (isReactive(setupState) ? toRaw(setupState as any) : setupState)\n : undefined\n for (const key of new Set([...Object.keys(state), ...(rawSetupState ? Object.keys(rawSetupState) : [])])) {\n if (!shouldIncludeSnapshotKey(key)) {\n continue\n }\n const value = rawSetupState && hasOwn(rawSetupState, key) ? rawSetupState[key] : state[key]\n const candidate = isRef(value) ? value.value : value\n if (!candidate || typeof candidate !== 'object') {\n continue\n }\n if (toRaw(candidate as any) === root) {\n matches.push(key)\n }\n }\n return matches\n }\n\n const emitDebug = (\n info: SetDataDebugInfo,\n pathSource?: Iterable<string> | (() => Iterable<string>),\n ) => {\n if (!debug) {\n return\n }\n const isFallback = info.reason !== 'patch' && info.reason !== 'diff'\n if (debugWhen === 'fallback' && !isFallback) {\n return\n }\n if (info.reason !== 'commitFailure' && debugSampleRate < 1 && Math.random() > debugSampleRate) {\n return\n }\n let debugInfo = info\n if (bindingManifest) {\n const paths = typeof pathSource === 'function'\n ? pathSource()\n : pathSource ?? []\n const wholeSnapshotFallback = info.reason === 'needsFullSnapshot'\n || info.reason === 'maxPatchKeys'\n || info.reason === 'maxPayloadBytes'\n debugInfo = {\n ...info,\n bindings: resolveBindingDiagnostics(bindingManifest, paths, wholeSnapshotFallback),\n }\n }\n try {\n debug(debugInfo)\n }\n catch {\n // 忽略异常\n }\n }\n\n let commitTracker: SetDataCommitTracker\n const observation = options.debugPhases && debug\n ? createSetDataObservation({ debug, debugWhen, debugSampleRate, targetLabel, committedRevision: () => commitTracker.state.committedRevision })\n : undefined\n\n commitTracker = createSetDataCommitTracker({\n observe: observation?.revision,\n initialSnapshot: initialSnapshotBaseline,\n adapter: currentAdapter,\n onFailure: (failure: SetDataCommitFailure) => {\n emitDebug({\n mode: failure.mode,\n reason: 'commitFailure',\n pendingPatchKeys: failure.pendingPatchKeys,\n payloadKeys: failure.payloadKeys,\n revision: failure.revision,\n committedRevision: failure.committedRevision,\n targetLabel,\n message: failure.error.message,\n })\n try {\n currentAdapter.__wevu_reportSetDataError?.(failure.error)\n }\n catch {\n // 宿主错误钩子不得反向破坏提交状态机。\n }\n },\n })\n\n const recordFlushForLoopWarning = (\n pendingPatchKeys = 0,\n pathSource?: Iterable<string> | (() => Iterable<string>),\n ) => {\n if (!loopWarning) {\n return\n }\n const current = Date.now()\n flushTimes.push(current)\n const windowStart = current - loopWarning.sampleWindowMs\n while (flushTimes.length && flushTimes[0] < windowStart) {\n flushTimes.shift()\n }\n if (flushTimes.length <= loopWarning.maxFlushes) {\n return\n }\n if (loopWarning.coolDownMs > 0 && current - lastLoopWarningAt < loopWarning.coolDownMs) {\n return\n }\n lastLoopWarningAt = current\n emitDebug({\n mode: setDataStrategy,\n reason: 'loopWarning',\n pendingPatchKeys,\n payloadKeys: 0,\n computedDirtyKeys: includeComputed ? dirtyComputedKeys.size : 0,\n flushCount: flushTimes.length,\n windowMs: loopWarning.sampleWindowMs,\n targetLabel,\n message: `${targetLabel ? `${targetLabel} ` : ''}疑似运行时更新循环:${flushTimes.length} 次 setData flush/${loopWarning.sampleWindowMs}ms`,\n }, pathSource)\n }\n\n const collect = () => collectSnapshot({\n state,\n setupState,\n computedRefs,\n includeComputed,\n shouldIncludeKey: shouldIncludeSnapshotKey,\n plainCache,\n plainCacheEligibility,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n })\n\n syncInitialSnapshotTokens()\n\n const collectDiffSnapshot = () => {\n const rawState = (isReactive(state) ? toRaw(state as any) : state) as Record<string, any>\n const rawSetupState = setupState && typeof setupState === 'object'\n ? (isReactive(setupState) ? toRaw(setupState as any) : setupState)\n : undefined\n const dispatchedSnapshot = commitTracker.state.dispatchedSnapshot\n const nextSnapshot: Record<string, any> = { ...dispatchedSnapshot }\n const seen = new WeakMap<object, any>()\n const includedStateKeys = new Set<string>()\n const includedComputedKeys = new Set<string>()\n const replacedTopLevelKeys = new Set<string>()\n\n for (const key of new Set([...Object.keys(rawState), ...(rawSetupState ? Object.keys(rawSetupState) : [])])) {\n if (!shouldIncludeSnapshotKey(key)) {\n continue\n }\n includedStateKeys.add(key)\n const source = rawSetupState && hasOwn(rawSetupState, key) ? rawSetupState : rawState\n const token = createValueToken(source[key])\n const previousToken = dispatchedStateTokens[key]\n if (\n previousToken\n && token\n && typeof previousToken === 'object'\n && typeof token === 'object'\n && hasOwn(previousToken as object, 'raw')\n && hasOwn(token as object, 'raw')\n && Array.isArray((previousToken as any).raw)\n && Array.isArray((token as any).raw)\n && (previousToken as any).raw !== (token as any).raw\n ) {\n replacedTopLevelKeys.add(key)\n }\n if (!isSameToken(previousToken, token) || !hasOwn(dispatchedSnapshot, key)) {\n nextSnapshot[key] = toPlain(source[key], seen, {\n cache: plainCache,\n cacheEligibility: plainCacheEligibility,\n maxDepth: toPlainMaxDepth,\n maxKeys: toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n _path: key,\n })\n }\n dispatchedStateTokens[key] = token\n }\n\n for (const key of Object.keys(dispatchedStateTokens)) {\n if (!includedStateKeys.has(key)) {\n delete dispatchedStateTokens[key]\n if (!includeComputed || !hasOwn(computedRefs, key)) {\n delete nextSnapshot[key]\n }\n }\n }\n\n if (!includeComputed) {\n for (const key of Object.keys(dispatchedComputedTokens)) {\n delete dispatchedComputedTokens[key]\n }\n return {\n snapshot: nextSnapshot,\n replacedTopLevelKeys,\n }\n }\n\n for (const key of Object.keys(computedRefs)) {\n if (!shouldIncludeSnapshotKey(key)) {\n continue\n }\n includedComputedKeys.add(key)\n const value = computedRefs[key].value\n const token = createValueToken(value)\n if (!isSameToken(dispatchedComputedTokens[key], token) || !hasOwn(dispatchedSnapshot, key)) {\n nextSnapshot[key] = toPlain(value, seen, {\n cache: plainCache,\n cacheEligibility: plainCacheEligibility,\n maxDepth: toPlainMaxDepth,\n maxKeys: toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n _path: key,\n })\n }\n dispatchedComputedTokens[key] = token\n }\n\n for (const key of Object.keys(dispatchedComputedTokens)) {\n if (!includedComputedKeys.has(key)) {\n delete dispatchedComputedTokens[key]\n if (!hasOwn(rawState, key) || !shouldIncludeSnapshotKey(key)) {\n delete nextSnapshot[key]\n }\n }\n }\n\n return {\n snapshot: nextSnapshot,\n replacedTopLevelKeys,\n }\n }\n\n const runDiffUpdate = (\n reason: SetDataDebugInfo['reason'] = 'diff',\n pendingPatchKeys = 0,\n onSnapshotPrepared?: (snapshot: SetDataSnapshot) => void,\n ): void => {\n const diffCollection = setDataStrategy === 'diff' ? collectDiffSnapshot() : undefined\n const snapshot = diffCollection?.snapshot ?? collect()\n const dispatchedSnapshot = commitTracker.state.dispatchedSnapshot\n const needsRecovery = commitTracker.state.needsFullSnapshot\n const payload = needsRecovery\n ? commitTracker.createFullPayload(snapshot)\n : diffCollection\n ? (() => {\n const fastDiff: Record<string, any> = {}\n for (const key of diffCollection.replacedTopLevelKeys) {\n fastDiff[key] = snapshot[key]\n }\n const baseDiff = diffSnapshots(dispatchedSnapshot, snapshot, {\n skipKeys: diffCollection.replacedTopLevelKeys,\n })\n return {\n ...baseDiff,\n ...fastDiff,\n }\n })()\n : diffSnapshots(dispatchedSnapshot, snapshot)\n onSnapshotPrepared?.(snapshot)\n const payloadKeys = Object.keys(payload).length\n if (!payloadKeys && !needsRecovery) {\n return\n }\n const effectiveReason = needsRecovery ? 'needsFullSnapshot' : reason\n emitDebug({\n mode: 'diff',\n reason: effectiveReason,\n pendingPatchKeys,\n payloadKeys,\n }, Object.keys(payload))\n commitTracker.dispatch({\n mode: 'diff',\n kind: needsRecovery ? 'full' : 'delta',\n reason: effectiveReason,\n snapshot,\n payload,\n pendingPatchKeys,\n })\n }\n\n const prepareJob = (\n pendingPatchKeys = 0,\n pathSource?: Iterable<string> | (() => Iterable<string>),\n ) => {\n if (!isMounted()) {\n return false\n }\n observation?.prepare()\n recordFlushForLoopWarning(pendingPatchKeys, pathSource)\n // 生成快照前刷新依赖(setup 中的 ref / 新增 key)\n runTracker()\n return true\n }\n\n const job = (_stateRootRaw?: object) => {\n if (!prepareJob()) {\n return\n }\n return runDiffUpdate('diff')\n }\n\n const snapshot = () => (\n setDataStrategy === 'patch'\n ? collect()\n : { ...commitTracker.state.dispatchedSnapshot }\n )\n const cloneLatestSnapshot = () => ({ ...commitTracker.state.dispatchedSnapshot })\n\n return {\n collect,\n emitDebug,\n getLatestSnapshot: () => commitTracker.state.dispatchedSnapshot,\n dispatchUpdate: commitTracker.dispatch,\n needsFullSnapshot: () => commitTracker.state.needsFullSnapshot,\n job,\n plainCache,\n plainCacheEligibility,\n prepareJob,\n resolveTopKeysByRoot,\n runDiffUpdate,\n shouldIncludeSnapshotKey,\n snapshot,\n cloneLatestSnapshot,\n dispose: commitTracker.dispose,\n }\n}\n"],"mappings":";;;;;;;;;;;;AA2EA,SAAgB,uBAAuB,SAA6D;CAClG,MAAM,EACJ,OACA,YACA,kBACA,cACA,mBACA,iBACA,iBACA,gBACA,kBACA,iBACA,gBACA,mBAAmB,OACnB,eACA,OACA,WACA,iBACA,iBACA,aACA,aACA,YACA,WACA,iBACA,iBACE;CAEJ,MAAM,6BAAa,IAAI,QAAiD;CACxE,MAAM,wCAAwB,IAAI,QAAyB;CAC3D,MAAM,0BAA2C,CAAC;CAClD,MAAM,wBAAwB,OAAO,OAAO,IAAI;CAChD,MAAM,2BAA2B,OAAO,OAAO,IAAI;CACnD,MAAM,aAAuB,CAAC;CAC9B,IAAI,oBAAoB,OAAO;CAC/B,MAAM,mBAAmB,IAAI,IAC3B,gBAAgB,OAAO,iBAAiB,WACpC,OAAO,KAAK,YAAY,IACxB,CAAC,CACP;CAEA,MAAM,iBAAiB,UAAiD;EACtE,IAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,mBAC5C,OAAO;EAET,MAAM,QAAQ,OAAO,eAAe,KAAK;EACzC,OAAO,UAAU,QAAQ,UAAU,OAAO;CAC5C;CAEA,MAAM,eAAe,MAAW,UAAwB;EACtD,IAAI,OAAO,GAAG,MAAM,KAAK,GACvB,OAAO;EAET,IAAI,MAAM,QAAQ,IAAI,KAAK,MAAM,QAAQ,KAAK,GAAG;GAC/C,IAAI,KAAK,WAAW,MAAM,QACxB,OAAO;GAET,OAAO,KAAK,OAAO,MAAM,UAAU,YAAY,MAAM,MAAM,MAAM,CAAC;EACpE;EACA,IAAI,cAAc,IAAI,KAAK,cAAc,KAAK,GAAG;GAC/C,MAAM,WAAW,OAAO,KAAK,IAAI;GACjC,MAAM,YAAY,OAAO,KAAK,KAAK;GACnC,IAAI,SAAS,WAAW,UAAU,QAChC,OAAO;GAET,OAAO,SAAS,OAAM,QAAO,OAAO,OAAO,GAAG,KAAK,YAAY,KAAK,MAAM,MAAM,IAAI,CAAC;EACvF;EACA,OAAO;CACT;CAEA,MAAM,oBAAoB,UAAmB;EAC3C,MAAM,YAAY,MAAM,KAAK,IAAI,MAAM,QAAQ;EAC/C,IAAI,aAAa,QAAQ,OAAO,cAAc,UAC5C,OAAO;EAET,IAAI,CAAC,WAAW,SAAS,KAAK,yBAAyB,SAAS,GAC9D,OAAO,EACL,UAAU,QAAQ,2BAAW,IAAI,QAAQ,GAAG;GAC1C,kBAAkB;GAClB,UAAU;GACV,SAAS;GACT;GACA;EACF,CAAC,EACH;EAEF,MAAM,MAAM,WAAW,SAAS,IAAI,MAAM,SAAgB,IAAI;EAC9D,OAAO;GACL;GACA,SAAS,mBAAmB,GAAU;EACxC;CACF;CAEA,MAAM,eAAe,MAAe,UAAmB;EACrD,IAAI,OAAO,GAAG,MAAM,KAAK,GACvB,OAAO;EAET,IACE,CAAC,QACE,CAAC,SACD,OAAO,SAAS,YAChB,OAAO,UAAU,YACjB,CAAC,OAAO,MAAgB,KAAK,KAC7B,CAAC,OAAO,OAAiB,KAAK,GACjC;GACA,IACE,QACG,SACA,OAAO,SAAS,YAChB,OAAO,UAAU,YACjB,OAAO,MAAgB,UAAU,KACjC,OAAO,OAAiB,UAAU,GAErC,OAAO,YAAa,KAAa,UAAW,MAAc,QAAQ;GAEpE,OAAO;EACT;EACA,OAAQ,KAAa,QAAS,MAAc,OAAQ,KAAa,YAAa,MAAc;CAC9F;CAEA,MAAM,4BAA4B,QAAgB,iBAAiB,GAAG,KAAK,CAAC,kBAAkB,IAAI,GAAG;CAErG,IAAI,iBACF;OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,eAAe,GACvD,IAAI,yBAAyB,GAAG,GAC9B,wBAAwB,OAAO;CAEnC;CAGF,MAAM,kCAAkC;EACtC,IAAI,CAAC,iBACH;EAEF,MAAM,WAAY,WAAW,KAAK,IAAI,MAAM,KAAY,IAAI;EAC5D,MAAM,gBAAgB,cAAc,OAAO,eAAe,WACrD,WAAW,UAAU,IAAI,MAAM,UAAiB,IAAI,aACrD;EAEJ,KAAK,MAAM,OAAO,OAAO,KAAK,eAAe,GAAG;GAC9C,IAAI,CAAC,yBAAyB,GAAG,GAC/B;GAEF,IAAI,iBAAiB,OAAO,eAAe,GAAG,GAAG;IAC/C,sBAAsB,OAAO,iBAAiB,cAAc,IAAI;IAChE;GACF;GACA,IAAI,OAAO,UAAU,GAAG,GAAG;IACzB,IAAI,iBAAiB,IAAI,GAAG,GAC1B;IAEF,SAAS,OAAO,gBAAgB;IAChC,sBAAsB,OAAO,iBAAiB,SAAS,IAAI;GAC7D;EACF;CACF;CAEA,MAAM,wBAAwB,SAAiB;EAC7C,MAAM,UAAoB,CAAC;EAC3B,MAAM,gBAAgB,cAAc,OAAO,eAAe,WACrD,WAAW,UAAU,IAAI,MAAM,UAAiB,IAAI,aACrD;EACJ,KAAK,MAAM,uBAAO,IAAI,IAAI,CAAC,GAAG,OAAO,KAAK,KAAK,GAAG,GAAI,gBAAgB,OAAO,KAAK,aAAa,IAAI,CAAC,CAAE,CAAC,GAAG;GACxG,IAAI,CAAC,yBAAyB,GAAG,GAC/B;GAEF,MAAM,QAAQ,iBAAiB,OAAO,eAAe,GAAG,IAAI,cAAc,OAAO,MAAM;GACvF,MAAM,YAAY,MAAM,KAAK,IAAI,MAAM,QAAQ;GAC/C,IAAI,CAAC,aAAa,OAAO,cAAc,UACrC;GAEF,IAAI,MAAM,SAAgB,MAAM,MAC9B,QAAQ,KAAK,GAAG;EAEpB;EACA,OAAO;CACT;CAEA,MAAM,aACJ,MACA,eACG;EACH,IAAI,CAAC,OACH;EAEF,MAAM,aAAa,KAAK,WAAW,WAAW,KAAK,WAAW;EAC9D,IAAI,cAAc,cAAc,CAAC,YAC/B;EAEF,IAAI,KAAK,WAAW,mBAAmB,kBAAkB,KAAK,KAAK,OAAO,IAAI,iBAC5E;EAEF,IAAI,YAAY;EAChB,IAAI,iBAAiB;GACnB,MAAM,QAAQ,OAAO,eAAe,aAChC,WAAW,IACX,cAAc,CAAC;GACnB,MAAM,wBAAwB,KAAK,WAAW,uBACzC,KAAK,WAAW,kBAChB,KAAK,WAAW;GACrB,YAAY;IACV,GAAG;IACH,UAAU,0BAA0B,iBAAiB,OAAO,qBAAqB;GACnF;EACF;EACA,IAAI;GACF,MAAM,SAAS;EACjB,QACM,CAEN;CACF;CAEA,IAAI;CACJ,MAAM,cAAc,QAAQ,eAAe,QACvC,yBAAyB;EAAE;EAAO;EAAW;EAAiB;EAAa,yBAAyB,cAAc,MAAM;CAAkB,CAAC,IAC3I;CAEJ,gBAAgB,2BAA2B;EACzC,SAAS,aAAa;EACtB,iBAAiB;EACjB,SAAS;EACT,YAAY,YAAkC;GAC5C,UAAU;IACR,MAAM,QAAQ;IACd,QAAQ;IACR,kBAAkB,QAAQ;IAC1B,aAAa,QAAQ;IACrB,UAAU,QAAQ;IAClB,mBAAmB,QAAQ;IAC3B;IACA,SAAS,QAAQ,MAAM;GACzB,CAAC;GACD,IAAI;IACF,eAAe,4BAA4B,QAAQ,KAAK;GAC1D,QACM,CAEN;EACF;CACF,CAAC;CAED,MAAM,6BACJ,mBAAmB,GACnB,eACG;EACH,IAAI,CAAC,aACH;EAEF,MAAM,UAAU,KAAK,IAAI;EACzB,WAAW,KAAK,OAAO;EACvB,MAAM,cAAc,UAAU,YAAY;EAC1C,OAAO,WAAW,UAAU,WAAW,KAAK,aAC1C,WAAW,MAAM;EAEnB,IAAI,WAAW,UAAU,YAAY,YACnC;EAEF,IAAI,YAAY,aAAa,KAAK,UAAU,oBAAoB,YAAY,YAC1E;EAEF,oBAAoB;EACpB,UAAU;GACR,MAAM;GACN,QAAQ;GACR;GACA,aAAa;GACb,mBAAmB,kBAAkB,kBAAkB,OAAO;GAC9D,YAAY,WAAW;GACvB,UAAU,YAAY;GACtB;GACA,SAAS,GAAG,cAAc,GAAG,YAAY,KAAK,GAAG,YAAY,WAAW,OAAO,mBAAmB,YAAY,eAAe;EAC/H,GAAG,UAAU;CACf;CAEA,MAAM,gBAAgB,gBAAgB;EACpC;EACA;EACA;EACA;EACA,kBAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,0BAA0B;CAE1B,MAAM,4BAA4B;EAChC,MAAM,WAAY,WAAW,KAAK,IAAI,MAAM,KAAY,IAAI;EAC5D,MAAM,gBAAgB,cAAc,OAAO,eAAe,WACrD,WAAW,UAAU,IAAI,MAAM,UAAiB,IAAI,aACrD;EACJ,MAAM,qBAAqB,cAAc,MAAM;EAC/C,MAAM,eAAoC,EAAE,GAAG,mBAAmB;EAClE,MAAM,uBAAO,IAAI,QAAqB;EACtC,MAAM,oCAAoB,IAAI,IAAY;EAC1C,MAAM,uCAAuB,IAAI,IAAY;EAC7C,MAAM,uCAAuB,IAAI,IAAY;EAE7C,KAAK,MAAM,uBAAO,IAAI,IAAI,CAAC,GAAG,OAAO,KAAK,QAAQ,GAAG,GAAI,gBAAgB,OAAO,KAAK,aAAa,IAAI,CAAC,CAAE,CAAC,GAAG;GAC3G,IAAI,CAAC,yBAAyB,GAAG,GAC/B;GAEF,kBAAkB,IAAI,GAAG;GACzB,MAAM,SAAS,iBAAiB,OAAO,eAAe,GAAG,IAAI,gBAAgB;GAC7E,MAAM,QAAQ,iBAAiB,OAAO,IAAI;GAC1C,MAAM,gBAAgB,sBAAsB;GAC5C,IACE,iBACG,SACA,OAAO,kBAAkB,YACzB,OAAO,UAAU,YACjB,OAAO,eAAyB,KAAK,KACrC,OAAO,OAAiB,KAAK,KAC7B,MAAM,QAAS,cAAsB,GAAG,KACxC,MAAM,QAAS,MAAc,GAAG,KAC/B,cAAsB,QAAS,MAAc,KAEjD,qBAAqB,IAAI,GAAG;GAE9B,IAAI,CAAC,YAAY,eAAe,KAAK,KAAK,CAAC,OAAO,oBAAoB,GAAG,GACvE,aAAa,OAAO,QAAQ,OAAO,MAAM,MAAM;IAC7C,OAAO;IACP,kBAAkB;IAClB,UAAU;IACV,SAAS;IACT;IACA;IACA,OAAO;GACT,CAAC;GAEH,sBAAsB,OAAO;EAC/B;EAEA,KAAK,MAAM,OAAO,OAAO,KAAK,qBAAqB,GACjD,IAAI,CAAC,kBAAkB,IAAI,GAAG,GAAG;GAC/B,OAAO,sBAAsB;GAC7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,cAAc,GAAG,GAC/C,OAAO,aAAa;EAExB;EAGF,IAAI,CAAC,iBAAiB;GACpB,KAAK,MAAM,OAAO,OAAO,KAAK,wBAAwB,GACpD,OAAO,yBAAyB;GAElC,OAAO;IACL,UAAU;IACV;GACF;EACF;EAEA,KAAK,MAAM,OAAO,OAAO,KAAK,YAAY,GAAG;GAC3C,IAAI,CAAC,yBAAyB,GAAG,GAC/B;GAEF,qBAAqB,IAAI,GAAG;GAC5B,MAAM,QAAQ,aAAa,IAAI,CAAC;GAChC,MAAM,QAAQ,iBAAiB,KAAK;GACpC,IAAI,CAAC,YAAY,yBAAyB,MAAM,KAAK,KAAK,CAAC,OAAO,oBAAoB,GAAG,GACvF,aAAa,OAAO,QAAQ,OAAO,MAAM;IACvC,OAAO;IACP,kBAAkB;IAClB,UAAU;IACV,SAAS;IACT;IACA;IACA,OAAO;GACT,CAAC;GAEH,yBAAyB,OAAO;EAClC;EAEA,KAAK,MAAM,OAAO,OAAO,KAAK,wBAAwB,GACpD,IAAI,CAAC,qBAAqB,IAAI,GAAG,GAAG;GAClC,OAAO,yBAAyB;GAChC,IAAI,CAAC,OAAO,UAAU,GAAG,KAAK,CAAC,yBAAyB,GAAG,GACzD,OAAO,aAAa;EAExB;EAGF,OAAO;GACL,UAAU;GACV;EACF;CACF;CAEA,MAAM,iBACJ,SAAqC,QACrC,mBAAmB,GACnB,uBACS;EACT,MAAM,iBAAiB,oBAAoB,SAAS,oBAAoB,IAAI;EAC5E,MAAM,WAAW,gBAAgB,YAAY,QAAQ;EACrD,MAAM,qBAAqB,cAAc,MAAM;EAC/C,MAAM,gBAAgB,cAAc,MAAM;EAC1C,MAAM,UAAU,gBACZ,cAAc,kBAAkB,QAAQ,IACxC,wBACS;GACL,MAAM,WAAgC,CAAC;GACvC,KAAK,MAAM,OAAO,eAAe,sBAC/B,SAAS,OAAO,SAAS;GAK3B,OAAO;IACL,GAJe,cAAc,oBAAoB,UAAU,EAC3D,UAAU,eAAe,qBAC3B,CAEY;IACV,GAAG;GACL;EACF,EAAC,CAAE,IACH,cAAc,oBAAoB,QAAQ;EAChD,qBAAqB,QAAQ;EAC7B,MAAM,cAAc,OAAO,KAAK,OAAO,CAAC,CAAC;EACzC,IAAI,CAAC,eAAe,CAAC,eACnB;EAEF,MAAM,kBAAkB,gBAAgB,sBAAsB;EAC9D,UAAU;GACR,MAAM;GACN,QAAQ;GACR;GACA;EACF,GAAG,OAAO,KAAK,OAAO,CAAC;EACvB,cAAc,SAAS;GACrB,MAAM;GACN,MAAM,gBAAgB,SAAS;GAC/B,QAAQ;GACR;GACA;GACA;EACF,CAAC;CACH;CAEA,MAAM,cACJ,mBAAmB,GACnB,eACG;EACH,IAAI,CAAC,UAAU,GACb,OAAO;EAET,aAAa,QAAQ;EACrB,0BAA0B,kBAAkB,UAAU;EAEtD,WAAW;EACX,OAAO;CACT;CAEA,MAAM,OAAO,kBAA2B;EACtC,IAAI,CAAC,WAAW,GACd;EAEF,OAAO,cAAc,MAAM;CAC7B;CAEA,MAAM,iBACJ,oBAAoB,UAChB,QAAQ,IACR,EAAE,GAAG,cAAc,MAAM,mBAAmB;CAElD,MAAM,6BAA6B,EAAE,GAAG,cAAc,MAAM,mBAAmB;CAE/E,OAAO;EACL;EACA;EACA,yBAAyB,cAAc,MAAM;EAC7C,gBAAgB,cAAc;EAC9B,yBAAyB,cAAc,MAAM;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,cAAc;CACzB;AACF"}
@@ -52,6 +52,7 @@ function resolveSetDataOptions(setDataOptions) {
52
52
  prelinkMaxDepth,
53
53
  prelinkMaxKeys,
54
54
  debug,
55
+ debugPhases: setDataOptions?.debugPhases === true,
55
56
  diagnostics,
56
57
  loopWarning,
57
58
  debugWhen,
@@ -1 +1 @@
1
- {"version":3,"file":"setDataOptions.mjs","names":[],"sources":["../../../../src/runtime/app/setDataOptions.ts"],"sourcesContent":["import type { SetDataSnapshotOptions } from '../types'\n\nexport interface ResolvedSetDataOptions {\n includeComputed: boolean\n suspendWhenHidden: boolean\n setDataStrategy: 'diff' | 'patch'\n maxPatchKeys: number\n maxPayloadBytes: number\n mergeSiblingThreshold: number\n mergeSiblingMaxInflationRatio: number\n mergeSiblingMaxParentBytes: number\n mergeSiblingSkipArray: boolean\n computedCompare: 'reference' | 'shallow' | 'deep'\n computedCompareMaxDepth: number\n computedCompareMaxKeys: number\n prelinkMaxDepth: number | undefined\n prelinkMaxKeys: number | undefined\n debug: SetDataSnapshotOptions['debug']\n diagnostics: 'off' | 'fallback' | 'always'\n loopWarning: false | {\n sampleWindowMs: number\n maxFlushes: number\n coolDownMs: number\n }\n debugWhen: 'fallback' | 'always'\n debugSampleRate: number\n elevateTopKeyThreshold: number\n toPlainMaxDepth: number\n toPlainMaxKeys: number\n includeFunctions: boolean\n functionPaths: string[]\n pickSet: Set<string> | undefined\n omitSet: Set<string> | undefined\n shouldIncludeKey: (key: string) => boolean\n}\n\nexport function resolveSetDataOptions(\n setDataOptions?: SetDataSnapshotOptions,\n): ResolvedSetDataOptions {\n const includeComputed = setDataOptions?.includeComputed ?? true\n const suspendWhenHidden = setDataOptions?.suspendWhenHidden ?? false\n const setDataStrategy = setDataOptions?.strategy ?? 'diff'\n const maxPatchKeys = typeof setDataOptions?.maxPatchKeys === 'number'\n ? Math.max(0, setDataOptions!.maxPatchKeys!)\n : Number.POSITIVE_INFINITY\n const maxPayloadBytes = typeof setDataOptions?.maxPayloadBytes === 'number'\n ? Math.max(0, setDataOptions!.maxPayloadBytes!)\n : Number.POSITIVE_INFINITY\n const mergeSiblingThreshold = typeof setDataOptions?.mergeSiblingThreshold === 'number'\n ? Math.max(2, Math.floor(setDataOptions!.mergeSiblingThreshold!))\n : 0\n const mergeSiblingMaxInflationRatio = typeof setDataOptions?.mergeSiblingMaxInflationRatio === 'number'\n ? Math.max(0, setDataOptions!.mergeSiblingMaxInflationRatio!)\n : 1.25\n const mergeSiblingMaxParentBytes = typeof setDataOptions?.mergeSiblingMaxParentBytes === 'number'\n ? Math.max(0, setDataOptions!.mergeSiblingMaxParentBytes!)\n : Number.POSITIVE_INFINITY\n const mergeSiblingSkipArray = setDataOptions?.mergeSiblingSkipArray ?? true\n const computedCompare = setDataOptions?.computedCompare ?? (setDataStrategy === 'patch' ? 'deep' : 'reference')\n const computedCompareMaxDepth = typeof setDataOptions?.computedCompareMaxDepth === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.computedCompareMaxDepth!))\n : 4\n const computedCompareMaxKeys = typeof setDataOptions?.computedCompareMaxKeys === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.computedCompareMaxKeys!))\n : 200\n const prelinkMaxDepth = setDataOptions?.prelinkMaxDepth\n const prelinkMaxKeys = setDataOptions?.prelinkMaxKeys\n const debug = setDataOptions?.debug\n const diagnostics = setDataOptions?.diagnostics ?? 'off'\n const loopWarningOption = setDataOptions?.loopWarning\n const loopWarning = loopWarningOption === false || (\n loopWarningOption\n && typeof loopWarningOption === 'object'\n && loopWarningOption.enabled === false\n )\n ? false\n : {\n sampleWindowMs: typeof loopWarningOption === 'object' && typeof loopWarningOption.sampleWindowMs === 'number'\n ? Math.max(100, Math.floor(loopWarningOption.sampleWindowMs))\n : 1000,\n maxFlushes: typeof loopWarningOption === 'object' && typeof loopWarningOption.maxFlushes === 'number'\n ? Math.max(1, Math.floor(loopWarningOption.maxFlushes))\n : 50,\n coolDownMs: typeof loopWarningOption === 'object' && typeof loopWarningOption.coolDownMs === 'number'\n ? Math.max(0, Math.floor(loopWarningOption.coolDownMs))\n : 5000,\n }\n const debugWhen = setDataOptions?.debugWhen ?? 'fallback'\n const debugSampleRate = typeof setDataOptions?.debugSampleRate === 'number'\n ? Math.min(1, Math.max(0, setDataOptions!.debugSampleRate!))\n : 1\n const elevateTopKeyThreshold = typeof setDataOptions?.elevateTopKeyThreshold === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.elevateTopKeyThreshold!))\n : Number.POSITIVE_INFINITY\n const toPlainMaxDepth = typeof setDataOptions?.toPlainMaxDepth === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.toPlainMaxDepth!))\n : Number.POSITIVE_INFINITY\n const toPlainMaxKeys = typeof setDataOptions?.toPlainMaxKeys === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.toPlainMaxKeys!))\n : Number.POSITIVE_INFINITY\n const includeFunctions = Boolean(setDataOptions?.includeFunctions)\n const functionPaths = Array.isArray(setDataOptions?.functionPaths)\n ? [...new Set(setDataOptions.functionPaths.filter(path => typeof path === 'string' && path.length > 0))]\n : []\n const pickSet = Array.isArray(setDataOptions?.pick) && setDataOptions!.pick!.length > 0\n ? new Set(setDataOptions!.pick)\n : undefined\n const omitSet = Array.isArray(setDataOptions?.omit) && setDataOptions!.omit!.length > 0\n ? new Set(setDataOptions!.omit)\n : undefined\n const shouldIncludeKey = (key: string) => {\n if (pickSet && !pickSet.has(key)) {\n return false\n }\n if (omitSet && omitSet.has(key)) {\n return false\n }\n return true\n }\n\n return {\n includeComputed,\n suspendWhenHidden,\n setDataStrategy,\n maxPatchKeys,\n maxPayloadBytes,\n mergeSiblingThreshold,\n mergeSiblingMaxInflationRatio,\n mergeSiblingMaxParentBytes,\n mergeSiblingSkipArray,\n computedCompare,\n computedCompareMaxDepth,\n computedCompareMaxKeys,\n prelinkMaxDepth,\n prelinkMaxKeys,\n debug,\n diagnostics,\n loopWarning,\n debugWhen,\n debugSampleRate,\n elevateTopKeyThreshold,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n pickSet,\n omitSet,\n shouldIncludeKey,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"setDataOptions.mjs","names":[],"sources":["../../../../src/runtime/app/setDataOptions.ts"],"sourcesContent":["import type { SetDataSnapshotOptions } from '../types'\n\nexport interface ResolvedSetDataOptions {\n includeComputed: boolean\n suspendWhenHidden: boolean\n setDataStrategy: 'diff' | 'patch'\n maxPatchKeys: number\n maxPayloadBytes: number\n mergeSiblingThreshold: number\n mergeSiblingMaxInflationRatio: number\n mergeSiblingMaxParentBytes: number\n mergeSiblingSkipArray: boolean\n computedCompare: 'reference' | 'shallow' | 'deep'\n computedCompareMaxDepth: number\n computedCompareMaxKeys: number\n prelinkMaxDepth: number | undefined\n prelinkMaxKeys: number | undefined\n debug: SetDataSnapshotOptions['debug']\n debugPhases: boolean\n diagnostics: 'off' | 'fallback' | 'always'\n loopWarning: false | {\n sampleWindowMs: number\n maxFlushes: number\n coolDownMs: number\n }\n debugWhen: 'fallback' | 'always'\n debugSampleRate: number\n elevateTopKeyThreshold: number\n toPlainMaxDepth: number\n toPlainMaxKeys: number\n includeFunctions: boolean\n functionPaths: string[]\n pickSet: Set<string> | undefined\n omitSet: Set<string> | undefined\n shouldIncludeKey: (key: string) => boolean\n}\n\nexport function resolveSetDataOptions(\n setDataOptions?: SetDataSnapshotOptions,\n): ResolvedSetDataOptions {\n const includeComputed = setDataOptions?.includeComputed ?? true\n const suspendWhenHidden = setDataOptions?.suspendWhenHidden ?? false\n const setDataStrategy = setDataOptions?.strategy ?? 'diff'\n const maxPatchKeys = typeof setDataOptions?.maxPatchKeys === 'number'\n ? Math.max(0, setDataOptions!.maxPatchKeys!)\n : Number.POSITIVE_INFINITY\n const maxPayloadBytes = typeof setDataOptions?.maxPayloadBytes === 'number'\n ? Math.max(0, setDataOptions!.maxPayloadBytes!)\n : Number.POSITIVE_INFINITY\n const mergeSiblingThreshold = typeof setDataOptions?.mergeSiblingThreshold === 'number'\n ? Math.max(2, Math.floor(setDataOptions!.mergeSiblingThreshold!))\n : 0\n const mergeSiblingMaxInflationRatio = typeof setDataOptions?.mergeSiblingMaxInflationRatio === 'number'\n ? Math.max(0, setDataOptions!.mergeSiblingMaxInflationRatio!)\n : 1.25\n const mergeSiblingMaxParentBytes = typeof setDataOptions?.mergeSiblingMaxParentBytes === 'number'\n ? Math.max(0, setDataOptions!.mergeSiblingMaxParentBytes!)\n : Number.POSITIVE_INFINITY\n const mergeSiblingSkipArray = setDataOptions?.mergeSiblingSkipArray ?? true\n const computedCompare = setDataOptions?.computedCompare ?? (setDataStrategy === 'patch' ? 'deep' : 'reference')\n const computedCompareMaxDepth = typeof setDataOptions?.computedCompareMaxDepth === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.computedCompareMaxDepth!))\n : 4\n const computedCompareMaxKeys = typeof setDataOptions?.computedCompareMaxKeys === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.computedCompareMaxKeys!))\n : 200\n const prelinkMaxDepth = setDataOptions?.prelinkMaxDepth\n const prelinkMaxKeys = setDataOptions?.prelinkMaxKeys\n const debug = setDataOptions?.debug\n const diagnostics = setDataOptions?.diagnostics ?? 'off'\n const loopWarningOption = setDataOptions?.loopWarning\n const loopWarning = loopWarningOption === false || (\n loopWarningOption\n && typeof loopWarningOption === 'object'\n && loopWarningOption.enabled === false\n )\n ? false\n : {\n sampleWindowMs: typeof loopWarningOption === 'object' && typeof loopWarningOption.sampleWindowMs === 'number'\n ? Math.max(100, Math.floor(loopWarningOption.sampleWindowMs))\n : 1000,\n maxFlushes: typeof loopWarningOption === 'object' && typeof loopWarningOption.maxFlushes === 'number'\n ? Math.max(1, Math.floor(loopWarningOption.maxFlushes))\n : 50,\n coolDownMs: typeof loopWarningOption === 'object' && typeof loopWarningOption.coolDownMs === 'number'\n ? Math.max(0, Math.floor(loopWarningOption.coolDownMs))\n : 5000,\n }\n const debugWhen = setDataOptions?.debugWhen ?? 'fallback'\n const debugSampleRate = typeof setDataOptions?.debugSampleRate === 'number'\n ? Math.min(1, Math.max(0, setDataOptions!.debugSampleRate!))\n : 1\n const elevateTopKeyThreshold = typeof setDataOptions?.elevateTopKeyThreshold === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.elevateTopKeyThreshold!))\n : Number.POSITIVE_INFINITY\n const toPlainMaxDepth = typeof setDataOptions?.toPlainMaxDepth === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.toPlainMaxDepth!))\n : Number.POSITIVE_INFINITY\n const toPlainMaxKeys = typeof setDataOptions?.toPlainMaxKeys === 'number'\n ? Math.max(0, Math.floor(setDataOptions!.toPlainMaxKeys!))\n : Number.POSITIVE_INFINITY\n const includeFunctions = Boolean(setDataOptions?.includeFunctions)\n const functionPaths = Array.isArray(setDataOptions?.functionPaths)\n ? [...new Set(setDataOptions.functionPaths.filter(path => typeof path === 'string' && path.length > 0))]\n : []\n const pickSet = Array.isArray(setDataOptions?.pick) && setDataOptions!.pick!.length > 0\n ? new Set(setDataOptions!.pick)\n : undefined\n const omitSet = Array.isArray(setDataOptions?.omit) && setDataOptions!.omit!.length > 0\n ? new Set(setDataOptions!.omit)\n : undefined\n const shouldIncludeKey = (key: string) => {\n if (pickSet && !pickSet.has(key)) {\n return false\n }\n if (omitSet && omitSet.has(key)) {\n return false\n }\n return true\n }\n\n return {\n includeComputed,\n suspendWhenHidden,\n setDataStrategy,\n maxPatchKeys,\n maxPayloadBytes,\n mergeSiblingThreshold,\n mergeSiblingMaxInflationRatio,\n mergeSiblingMaxParentBytes,\n mergeSiblingSkipArray,\n computedCompare,\n computedCompareMaxDepth,\n computedCompareMaxKeys,\n prelinkMaxDepth,\n prelinkMaxKeys,\n debug,\n debugPhases: setDataOptions?.debugPhases === true,\n diagnostics,\n loopWarning,\n debugWhen,\n debugSampleRate,\n elevateTopKeyThreshold,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n pickSet,\n omitSet,\n shouldIncludeKey,\n }\n}\n"],"mappings":"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"}
@@ -26,13 +26,13 @@ function resolveRuntimeBindingPlaceholder(key) {
26
26
  if (key.startsWith("__wv_bind_")) return null;
27
27
  if (key.startsWith("__wv_cls_") || key.startsWith("__wv_style_")) return "";
28
28
  }
29
- function resolveRuntimeBindingPlaceholderData(data, setData) {
30
- const pickKeys = Array.isArray(setData?.pick) ? setData.pick : [];
31
- if (!pickKeys.length) return;
32
- const omitKeys = new Set(Array.isArray(setData?.omit) ? setData.omit : []);
29
+ function resolveRuntimeBindingPlaceholderData(data, setData, bindingManifest) {
30
+ const bindingKeys = /* @__PURE__ */ new Set([...Array.isArray(setData?.pick) ? setData.pick : [], ...bindingManifest?.bindings.map((binding) => binding.outputPath) ?? []]);
31
+ if (!bindingKeys.size) return;
32
+ const { shouldIncludeKey } = resolveSetDataOptions(setData);
33
33
  const resolved = {};
34
- for (const key of pickKeys) {
35
- if (omitKeys.has(key) || hasOwn(data, key)) continue;
34
+ for (const key of bindingKeys) {
35
+ if (!shouldIncludeKey(key) || hasOwn(data, key) || key.includes(".") || key.includes("[")) continue;
36
36
  const placeholder = resolveRuntimeBindingPlaceholder(key);
37
37
  if (placeholder !== void 0) resolved[key] = placeholder;
38
38
  }
@@ -109,17 +109,18 @@ function resolveInitialComputedData(options) {
109
109
  }
110
110
  return Object.keys(resolved).length ? resolved : void 0;
111
111
  }
112
- function resolveNativeInitialData(data, computed, setData, methods) {
113
- if (!data || typeof data !== "object") return data;
114
- const initialComputedData = resolveInitialComputedData({
115
- data,
112
+ function resolveNativeInitialData(data, computed, setData, methods, bindingManifest) {
113
+ if (data !== void 0 && (!data || typeof data !== "object")) return data;
114
+ const nativeData = data ?? {};
115
+ const initialComputedData = data === void 0 ? void 0 : resolveInitialComputedData({
116
+ data: nativeData,
116
117
  computed,
117
118
  methods,
118
119
  setData
119
120
  });
120
- const runtimeBindingPlaceholderData = resolveRuntimeBindingPlaceholderData(data, setData);
121
+ const runtimeBindingPlaceholderData = resolveRuntimeBindingPlaceholderData(nativeData, setData, bindingManifest);
121
122
  return initialComputedData || runtimeBindingPlaceholderData ? {
122
- ...data,
123
+ ...nativeData,
123
124
  ...runtimeBindingPlaceholderData,
124
125
  ...initialComputedData
125
126
  } : data;
@@ -1 +1 @@
1
- {"version":3,"file":"initialComputed.mjs","names":[],"sources":["../../../../src/runtime/define/initialComputed.ts"],"sourcesContent":["import type { WritableComputedOptions } from '../../reactivity'\nimport type { ComputedDefinitions, SetDataSnapshotOptions } from '../types'\nimport { WEVU_SLOT_OWNER_ID_KEY } from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\nimport { resolveSetDataOptions } from '../app/setDataOptions'\nimport { toPlain } from '../diff'\n\nclass InitialComputedBailout extends Error {}\n\nfunction resolveComputedGetter(definition: unknown): ((...args: any[]) => unknown) | undefined {\n if (typeof definition === 'function') {\n return definition as (...args: any[]) => unknown\n }\n const getter = (definition as WritableComputedOptions<any> | undefined)?.get\n return typeof getter === 'function' ? getter : undefined\n}\n\nfunction isCompilerGeneratedTemplateComputedKey(key: string) {\n return key.startsWith('__wv_bind_')\n || key.startsWith('__wv_cls_')\n || key.startsWith('__wv_style_')\n}\n\nfunction canResolveInitialTemplateComputed(key: string, getter: (...args: any[]) => unknown) {\n if (!key.startsWith('__wv_bind_')) {\n return false\n }\n try {\n return !/\\bthis\\b/.test(Function.prototype.toString.call(getter))\n }\n catch {\n return false\n }\n}\n\nfunction resolveRuntimeBindingPlaceholder(key: string) {\n if (key === WEVU_SLOT_OWNER_ID_KEY) {\n return ''\n }\n if (key.startsWith('__wv_bind_')) {\n return null\n }\n if (key.startsWith('__wv_cls_') || key.startsWith('__wv_style_')) {\n return ''\n }\n}\n\nfunction resolveRuntimeBindingPlaceholderData(\n data: Record<string, any>,\n setData: SetDataSnapshotOptions | undefined,\n) {\n const pickKeys = Array.isArray(setData?.pick) ? setData.pick : []\n if (!pickKeys.length) {\n return undefined\n }\n const omitKeys = new Set(Array.isArray(setData?.omit) ? setData.omit : [])\n const resolved: Record<string, any> = {}\n for (const key of pickKeys) {\n if (omitKeys.has(key) || hasOwn(data, key)) {\n continue\n }\n const placeholder = resolveRuntimeBindingPlaceholder(key)\n if (placeholder !== undefined) {\n resolved[key] = placeholder\n }\n }\n return Object.keys(resolved).length ? resolved : undefined\n}\n\nexport function resolveInitialComputedData(options: {\n data: Record<string, any>\n computed: ComputedDefinitions | undefined\n methods?: Record<string, any>\n setData: SetDataSnapshotOptions | undefined\n}) {\n const {\n data,\n computed,\n methods,\n setData,\n } = options\n const computedKeys = computed ? Object.keys(computed) : []\n if (!computedKeys.length) {\n return undefined\n }\n\n const {\n includeComputed,\n shouldIncludeKey,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n } = resolveSetDataOptions(setData)\n if (!includeComputed) {\n return undefined\n }\n\n const resolved: Record<string, any> = {}\n const resolving = new Set<string>()\n let proxy!: Record<string, any>\n const resolveComputedValue = (key: string): { ok: true, value: any } | { ok: false } => {\n if (hasOwn(data, key) || !shouldIncludeKey(key)) {\n return { ok: false }\n }\n if (hasOwn(resolved, key)) {\n return { ok: true, value: resolved[key] }\n }\n if (resolving.has(key)) {\n return { ok: false }\n }\n const getter = resolveComputedGetter((computed as ComputedDefinitions)[key])\n if (!getter) {\n return { ok: false }\n }\n resolving.add(key)\n try {\n const rawValue = getter.call(proxy)\n if (rawValue === undefined) {\n return { ok: false }\n }\n const value = toPlain(rawValue, new WeakMap(), {\n maxDepth: toPlainMaxDepth,\n maxKeys: toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n _path: key,\n })\n if (value === undefined) {\n return { ok: false }\n }\n resolved[key] = value\n return { ok: true, value }\n }\n catch {\n return { ok: false }\n }\n finally {\n resolving.delete(key)\n }\n }\n\n proxy = new Proxy(data, {\n get(target, key, receiver) {\n if (typeof key === 'string') {\n if (key === 'data' || key === '$state') {\n return data\n }\n if (key === 'props' || key === '$props' || key === '$attrs') {\n throw new InitialComputedBailout()\n }\n if (hasOwn(data, key)) {\n return Reflect.get(target, key, receiver)\n }\n if (methods && hasOwn(methods, key)) {\n const method = methods[key]\n return typeof method === 'function' ? method.bind(proxy) : method\n }\n if (computed && hasOwn(computed, key)) {\n const computedValue = resolveComputedValue(key)\n if (computedValue.ok) {\n return computedValue.value\n }\n throw new InitialComputedBailout()\n }\n throw new InitialComputedBailout()\n }\n return Reflect.get(target, key, receiver)\n },\n has(target, key) {\n return Reflect.has(target, key)\n || (typeof key === 'string' && Boolean(\n computed && hasOwn(computed, key),\n ))\n },\n })\n\n for (const key of computedKeys) {\n const getter = resolveComputedGetter((computed as ComputedDefinitions)[key])\n if (isCompilerGeneratedTemplateComputedKey(key) && (!getter || !canResolveInitialTemplateComputed(key, getter))) {\n continue\n }\n resolveComputedValue(key)\n }\n\n return Object.keys(resolved).length ? resolved : undefined\n}\n\nexport function resolveNativeInitialData(\n data: unknown,\n computed: ComputedDefinitions | undefined,\n setData: SetDataSnapshotOptions | undefined,\n methods?: Record<string, any>,\n) {\n if (!data || typeof data !== 'object') {\n return data\n }\n const initialComputedData = resolveInitialComputedData({\n data: data as Record<string, any>,\n computed,\n methods,\n setData,\n })\n const runtimeBindingPlaceholderData = resolveRuntimeBindingPlaceholderData(data as Record<string, any>, setData)\n return initialComputedData || runtimeBindingPlaceholderData\n ? {\n ...(data as Record<string, any>),\n ...runtimeBindingPlaceholderData,\n ...initialComputedData,\n }\n : data\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"initialComputed.mjs","names":[],"sources":["../../../../src/runtime/define/initialComputed.ts"],"sourcesContent":["import type { WevuRuntimeBindingManifestV1 } from '@weapp-core/constants'\nimport type { WritableComputedOptions } from '../../reactivity'\nimport type { ComputedDefinitions, SetDataSnapshotOptions } from '../types'\nimport { WEVU_SLOT_OWNER_ID_KEY } from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\nimport { resolveSetDataOptions } from '../app/setDataOptions'\nimport { toPlain } from '../diff'\n\nclass InitialComputedBailout extends Error {}\n\nfunction resolveComputedGetter(definition: unknown): ((...args: any[]) => unknown) | undefined {\n if (typeof definition === 'function') {\n return definition as (...args: any[]) => unknown\n }\n const getter = (definition as WritableComputedOptions<any> | undefined)?.get\n return typeof getter === 'function' ? getter : undefined\n}\n\nfunction isCompilerGeneratedTemplateComputedKey(key: string) {\n return key.startsWith('__wv_bind_')\n || key.startsWith('__wv_cls_')\n || key.startsWith('__wv_style_')\n}\n\nfunction canResolveInitialTemplateComputed(key: string, getter: (...args: any[]) => unknown) {\n if (!key.startsWith('__wv_bind_')) {\n return false\n }\n try {\n return !/\\bthis\\b/.test(Function.prototype.toString.call(getter))\n }\n catch {\n return false\n }\n}\n\nfunction resolveRuntimeBindingPlaceholder(key: string) {\n if (key === WEVU_SLOT_OWNER_ID_KEY) {\n return ''\n }\n if (key.startsWith('__wv_bind_')) {\n return null\n }\n if (key.startsWith('__wv_cls_') || key.startsWith('__wv_style_')) {\n return ''\n }\n}\n\nfunction resolveRuntimeBindingPlaceholderData(\n data: Record<string, any>,\n setData: SetDataSnapshotOptions | undefined,\n bindingManifest: WevuRuntimeBindingManifestV1 | undefined,\n) {\n const bindingKeys = new Set([\n ...(Array.isArray(setData?.pick) ? setData.pick : []),\n ...(bindingManifest?.bindings.map(binding => binding.outputPath) ?? []),\n ])\n if (!bindingKeys.size) {\n return undefined\n }\n const { shouldIncludeKey } = resolveSetDataOptions(setData)\n const resolved: Record<string, any> = {}\n for (const key of bindingKeys) {\n if (!shouldIncludeKey(key) || hasOwn(data, key) || key.includes('.') || key.includes('[')) {\n continue\n }\n const placeholder = resolveRuntimeBindingPlaceholder(key)\n if (placeholder !== undefined) {\n resolved[key] = placeholder\n }\n }\n return Object.keys(resolved).length ? resolved : undefined\n}\n\nexport function resolveInitialComputedData(options: {\n data: Record<string, any>\n computed: ComputedDefinitions | undefined\n methods?: Record<string, any>\n setData: SetDataSnapshotOptions | undefined\n}) {\n const {\n data,\n computed,\n methods,\n setData,\n } = options\n const computedKeys = computed ? Object.keys(computed) : []\n if (!computedKeys.length) {\n return undefined\n }\n\n const {\n includeComputed,\n shouldIncludeKey,\n toPlainMaxDepth,\n toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n } = resolveSetDataOptions(setData)\n if (!includeComputed) {\n return undefined\n }\n\n const resolved: Record<string, any> = {}\n const resolving = new Set<string>()\n let proxy!: Record<string, any>\n const resolveComputedValue = (key: string): { ok: true, value: any } | { ok: false } => {\n if (hasOwn(data, key) || !shouldIncludeKey(key)) {\n return { ok: false }\n }\n if (hasOwn(resolved, key)) {\n return { ok: true, value: resolved[key] }\n }\n if (resolving.has(key)) {\n return { ok: false }\n }\n const getter = resolveComputedGetter((computed as ComputedDefinitions)[key])\n if (!getter) {\n return { ok: false }\n }\n resolving.add(key)\n try {\n const rawValue = getter.call(proxy)\n if (rawValue === undefined) {\n return { ok: false }\n }\n const value = toPlain(rawValue, new WeakMap(), {\n maxDepth: toPlainMaxDepth,\n maxKeys: toPlainMaxKeys,\n includeFunctions,\n functionPaths,\n _path: key,\n })\n if (value === undefined) {\n return { ok: false }\n }\n resolved[key] = value\n return { ok: true, value }\n }\n catch {\n return { ok: false }\n }\n finally {\n resolving.delete(key)\n }\n }\n\n proxy = new Proxy(data, {\n get(target, key, receiver) {\n if (typeof key === 'string') {\n if (key === 'data' || key === '$state') {\n return data\n }\n if (key === 'props' || key === '$props' || key === '$attrs') {\n throw new InitialComputedBailout()\n }\n if (hasOwn(data, key)) {\n return Reflect.get(target, key, receiver)\n }\n if (methods && hasOwn(methods, key)) {\n const method = methods[key]\n return typeof method === 'function' ? method.bind(proxy) : method\n }\n if (computed && hasOwn(computed, key)) {\n const computedValue = resolveComputedValue(key)\n if (computedValue.ok) {\n return computedValue.value\n }\n throw new InitialComputedBailout()\n }\n throw new InitialComputedBailout()\n }\n return Reflect.get(target, key, receiver)\n },\n has(target, key) {\n return Reflect.has(target, key)\n || (typeof key === 'string' && Boolean(\n computed && hasOwn(computed, key),\n ))\n },\n })\n\n for (const key of computedKeys) {\n const getter = resolveComputedGetter((computed as ComputedDefinitions)[key])\n if (isCompilerGeneratedTemplateComputedKey(key) && (!getter || !canResolveInitialTemplateComputed(key, getter))) {\n continue\n }\n resolveComputedValue(key)\n }\n\n return Object.keys(resolved).length ? resolved : undefined\n}\n\nexport function resolveNativeInitialData(\n data: unknown,\n computed: ComputedDefinitions | undefined,\n setData: SetDataSnapshotOptions | undefined,\n methods?: Record<string, any>,\n bindingManifest?: WevuRuntimeBindingManifestV1,\n) {\n if (data !== undefined && (!data || typeof data !== 'object')) {\n return data\n }\n const nativeData = (data ?? {}) as Record<string, any>\n const initialComputedData = data === undefined\n ? undefined\n : resolveInitialComputedData({\n data: nativeData,\n computed,\n methods,\n setData,\n })\n const runtimeBindingPlaceholderData = resolveRuntimeBindingPlaceholderData(nativeData, setData, bindingManifest)\n return initialComputedData || runtimeBindingPlaceholderData\n ? {\n ...nativeData,\n ...runtimeBindingPlaceholderData,\n ...initialComputedData,\n }\n : data\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { hasOwn } from "../../utils.mjs";
2
- import { WEVU_SLOT_NAMES_PROP, WEVU_SLOT_OWNER_ID_PROP, WEVU_SLOT_SCOPE_KEY } from "@weapp-core/constants";
2
+ import { WEVU_NATIVE_DECLARATION_ADDRESS_PROP, WEVU_NATIVE_SLOT_CONTEXT_KEY, WEVU_SLOT_NAMES_PROP, WEVU_SLOT_OWNER_ID_PROP, WEVU_SLOT_SCOPE_KEY } from "@weapp-core/constants";
3
3
 
4
4
  //#region src/runtime/define/props.ts
5
5
  const ALLOW_NULL_PROP_INPUT_KEY = "__wevu_allowNullPropInput";
@@ -125,6 +125,10 @@ function normalizeProps(baseOptions, props, explicitProperties) {
125
125
  const shouldAttachInternalProps = Boolean(props || resolvedExplicit);
126
126
  const attachInternalProps = (source) => {
127
127
  const next = { ...source ?? {} };
128
+ if ((!import.meta.env?.PLATFORM || import.meta.env?.PLATFORM === "weapp") && baseOptions[WEVU_NATIVE_SLOT_CONTEXT_KEY] === true) next[WEVU_NATIVE_DECLARATION_ADDRESS_PROP] = {
129
+ type: Array,
130
+ value: []
131
+ };
128
132
  if (!shouldAttachInternalProps) return next;
129
133
  if (!hasOwn(next, WEVU_SLOT_OWNER_ID_PROP)) next[WEVU_SLOT_OWNER_ID_PROP] = {
130
134
  type: String,
@@ -1 +1 @@
1
- {"version":3,"file":"props.mjs","names":[],"sources":["../../../../src/runtime/define/props.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n MiniProgramComponentPropertyOption,\n MiniProgramComponentShortProperty,\n} from '../types'\nimport {\n WEVU_SLOT_NAMES_PROP,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_SCOPE_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\n\nconst ALLOW_NULL_PROP_INPUT_KEY = '__wevu_allowNullPropInput'\nconst PUBLIC_ALLOW_NULL_PROP_INPUT_KEY = 'allowNullPropInput'\n\ntype NormalizedNativePropertyType = MiniProgramComponentShortProperty | FunctionConstructor | null\n\nconst NATIVE_PROPERTY_TYPE_MAP = new Map<unknown, NormalizedNativePropertyType>([\n [String, String],\n [Number, Number],\n [Boolean, Boolean],\n [Object, Object],\n [Array, Array],\n [Function, Function],\n ['String', String],\n ['Number', Number],\n ['Boolean', Boolean],\n ['Object', Object],\n ['Array', Array],\n ['Function', Function],\n [null, null],\n ['null', null],\n ['Null', null],\n])\n\nfunction toNativePropertyType(candidate: unknown) {\n return NATIVE_PROPERTY_TYPE_MAP.get(candidate)\n}\n\nfunction collectNativePropertyTypeCandidates(\n raw: unknown,\n normalized: NormalizedNativePropertyType[] = [],\n) {\n if (Array.isArray(raw)) {\n for (const item of raw) {\n collectNativePropertyTypeCandidates(item, normalized)\n }\n return normalized\n }\n const mapped = toNativePropertyType(raw)\n if (mapped !== undefined && !normalized.includes(mapped)) {\n normalized.push(mapped)\n }\n return normalized\n}\n\nfunction normalizeTypeCandidates(raw: unknown) {\n if (raw === undefined) {\n return []\n }\n const normalized = collectNativePropertyTypeCandidates(raw)\n const requiredNativeTypes = normalized.filter((item): item is Exclude<NormalizedNativePropertyType, null> => item !== null)\n if (requiredNativeTypes.length > 0) {\n return requiredNativeTypes\n }\n return [null]\n}\n\nfunction applyTypeOptions(target: Record<string, unknown>, rawType: unknown) {\n const candidates = normalizeTypeCandidates(rawType)\n if (candidates.length === 0) {\n return\n }\n\n target.type = candidates[0]\n if (candidates.length > 1) {\n const optionalTypes: NormalizedNativePropertyType[] = []\n for (const candidate of candidates.slice(1)) {\n if (!optionalTypes.includes(candidate)) {\n optionalTypes.push(candidate)\n }\n }\n if (optionalTypes.length > 0) {\n target.optionalTypes = optionalTypes\n }\n }\n}\n\nfunction preserveImplicitNativeDefault(target: Record<string, unknown>) {\n if (hasOwn(target, 'value')) {\n return\n }\n if (target.type === String) {\n target.value = ''\n }\n else if (target.type === Number) {\n target.value = 0\n }\n else if (target.type === Boolean) {\n target.value = false\n }\n else if (target.type === Array) {\n target.value = []\n }\n}\n\nfunction applyNullableTransportOptions(\n target: Record<string, unknown>,\n definition: unknown,\n allowNullPropInput: boolean,\n) {\n if (!allowNullPropInput || target.type === null) {\n return\n }\n const definitionRecord = definition && typeof definition === 'object' && !Array.isArray(definition)\n ? (definition as Record<string, unknown>)\n : undefined\n const candidates = collectNativePropertyTypeCandidates(\n definitionRecord\n ? [definitionRecord.type, definitionRecord.optionalTypes]\n : definition,\n )\n const explicitlyNullable = candidates.includes(null)\n const nativeTypes = candidates.filter(candidate => candidate !== null)\n const acceptsMultipleNativeTypes = nativeTypes.length > 1\n const acceptsMissingInput = definitionRecord?.required !== true\n // glass-easel 会先按主 type 校验并转换,optionalTypes 无法保护合法的联合值与空值传输。\n if (!explicitlyNullable && !acceptsMultipleNativeTypes && !acceptsMissingInput) {\n return\n }\n\n // 显式声明的 null 必须保持可观察;其余降级场景则保留原主类型的宿主隐式默认值。\n if (!explicitlyNullable) {\n preserveImplicitNativeDefault(target)\n }\n target.type = null\n delete target.optionalTypes\n}\n\nfunction normalizeVueProps(\n props: ComponentPropsOptions | undefined,\n allowNullPropInput: boolean,\n) {\n const properties: Record<string, any> = {}\n if (!props) {\n return properties\n }\n\n Object.entries(props).forEach(([key, definition]) => {\n if (definition === undefined) {\n return\n }\n if (definition === null) {\n properties[key] = { type: null }\n return\n }\n if (Array.isArray(definition) || typeof definition === 'function') {\n const propOptions: Record<string, unknown> = {}\n applyTypeOptions(propOptions, definition)\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n applyNullableTransportOptions(propOptions, definition, allowNullPropInput)\n properties[key] = propOptions\n return\n }\n if (typeof definition === 'object') {\n // 在 Vue <script setup> 中,defineModel() 会生成空的 modifiers props。\n if (key.endsWith('Modifiers') && Object.keys(definition).length === 0) {\n properties[key] = { type: Object, value: {} }\n return\n }\n const propOptions: Record<string, unknown> = {}\n if ('type' in definition && definition.type !== undefined) {\n applyTypeOptions(propOptions, (definition as any).type)\n }\n if (Array.isArray((definition as any).optionalTypes)) {\n const optionalTypes = (definition as any).optionalTypes.map((item: unknown) => toNativePropertyType(item)).filter((item: unknown): item is Exclude<NormalizedNativePropertyType, null> => item !== undefined && item !== null)\n if (optionalTypes.length > 0) {\n const existingOptionalTypes = Array.isArray(propOptions.optionalTypes)\n ? propOptions.optionalTypes as NormalizedNativePropertyType[]\n : []\n for (const optionalType of optionalTypes) {\n if (optionalType === propOptions.type) {\n continue\n }\n if (!existingOptionalTypes.includes(optionalType)) {\n existingOptionalTypes.push(optionalType)\n }\n }\n if (existingOptionalTypes.length > 0) {\n propOptions.optionalTypes = existingOptionalTypes\n }\n }\n }\n if ('observer' in definition && (typeof (definition as any).observer === 'function' || typeof (definition as any).observer === 'string')) {\n propOptions.observer = (definition as any).observer\n }\n const defaultValue = 'default' in definition ? (definition as any).default : (definition as any).value\n if (defaultValue !== undefined) {\n propOptions.value = typeof defaultValue === 'function' ? (defaultValue as any)() : defaultValue\n }\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n applyNullableTransportOptions(propOptions, definition, allowNullPropInput)\n properties[key] = propOptions\n }\n })\n\n return properties\n}\n\nexport function normalizeProps(\n baseOptions: Record<string, any>,\n props?: ComponentPropsOptions,\n explicitProperties?: MiniProgramComponentPropertyOption,\n) {\n const allowNullPropInput = Boolean(\n (baseOptions as any)[ALLOW_NULL_PROP_INPUT_KEY]\n ?? (baseOptions as any)[PUBLIC_ALLOW_NULL_PROP_INPUT_KEY],\n )\n const {\n [ALLOW_NULL_PROP_INPUT_KEY]: _ignoredAllowNullPropInput,\n [PUBLIC_ALLOW_NULL_PROP_INPUT_KEY]: _ignoredPublicAllowNullPropInput,\n ...normalizedBaseOptions\n } = baseOptions\n const baseProperties = (baseOptions as any).properties\n const normalizedBaseProperties = baseProperties && typeof baseProperties === 'object' && Object.keys(baseProperties).length > 0\n ? (baseProperties as any)\n : undefined\n const resolvedExplicit = explicitProperties\n ?? normalizedBaseProperties\n const shouldAttachInternalProps = Boolean(props || resolvedExplicit)\n const attachInternalProps = (source?: Record<string, any>) => {\n const next = { ...(source ?? {}) }\n if (!shouldAttachInternalProps) {\n return next\n }\n if (!hasOwn(next, WEVU_SLOT_OWNER_ID_PROP)) {\n next[WEVU_SLOT_OWNER_ID_PROP] = { type: String, value: '' }\n }\n if (!hasOwn(next, WEVU_SLOT_SCOPE_KEY)) {\n next[WEVU_SLOT_SCOPE_KEY] = { type: null, value: null }\n }\n if (!hasOwn(next, WEVU_SLOT_NAMES_PROP)) {\n next[WEVU_SLOT_NAMES_PROP] = { type: null, value: null }\n }\n return next\n }\n\n if (resolvedExplicit) {\n const {\n properties: _ignored,\n ...rest\n } = normalizedBaseOptions\n const normalizedExplicitProperties = resolvedExplicit\n const normalizedVueProps = normalizeVueProps(props, allowNullPropInput)\n return {\n ...rest,\n properties: attachInternalProps({\n ...normalizedVueProps,\n ...normalizedExplicitProperties,\n }),\n }\n }\n\n return {\n ...normalizedBaseOptions,\n properties: attachInternalProps(normalizeVueProps(props, allowNullPropInput)),\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"props.mjs","names":[],"sources":["../../../../src/runtime/define/props.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n MiniProgramComponentPropertyOption,\n MiniProgramComponentShortProperty,\n} from '../types'\nimport {\n WEVU_NATIVE_DECLARATION_ADDRESS_PROP,\n WEVU_NATIVE_SLOT_CONTEXT_KEY,\n WEVU_SLOT_NAMES_PROP,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_SCOPE_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\n\nconst ALLOW_NULL_PROP_INPUT_KEY = '__wevu_allowNullPropInput'\nconst PUBLIC_ALLOW_NULL_PROP_INPUT_KEY = 'allowNullPropInput'\n\ntype NormalizedNativePropertyType = MiniProgramComponentShortProperty | FunctionConstructor | null\ntype ImportMetaWithEnv = ImportMeta & { env?: { PLATFORM?: string } }\n\nconst NATIVE_PROPERTY_TYPE_MAP = new Map<unknown, NormalizedNativePropertyType>([\n [String, String],\n [Number, Number],\n [Boolean, Boolean],\n [Object, Object],\n [Array, Array],\n [Function, Function],\n ['String', String],\n ['Number', Number],\n ['Boolean', Boolean],\n ['Object', Object],\n ['Array', Array],\n ['Function', Function],\n [null, null],\n ['null', null],\n ['Null', null],\n])\n\nfunction toNativePropertyType(candidate: unknown) {\n return NATIVE_PROPERTY_TYPE_MAP.get(candidate)\n}\n\nfunction collectNativePropertyTypeCandidates(\n raw: unknown,\n normalized: NormalizedNativePropertyType[] = [],\n) {\n if (Array.isArray(raw)) {\n for (const item of raw) {\n collectNativePropertyTypeCandidates(item, normalized)\n }\n return normalized\n }\n const mapped = toNativePropertyType(raw)\n if (mapped !== undefined && !normalized.includes(mapped)) {\n normalized.push(mapped)\n }\n return normalized\n}\n\nfunction normalizeTypeCandidates(raw: unknown) {\n if (raw === undefined) {\n return []\n }\n const normalized = collectNativePropertyTypeCandidates(raw)\n const requiredNativeTypes = normalized.filter((item): item is Exclude<NormalizedNativePropertyType, null> => item !== null)\n if (requiredNativeTypes.length > 0) {\n return requiredNativeTypes\n }\n return [null]\n}\n\nfunction applyTypeOptions(target: Record<string, unknown>, rawType: unknown) {\n const candidates = normalizeTypeCandidates(rawType)\n if (candidates.length === 0) {\n return\n }\n\n target.type = candidates[0]\n if (candidates.length > 1) {\n const optionalTypes: NormalizedNativePropertyType[] = []\n for (const candidate of candidates.slice(1)) {\n if (!optionalTypes.includes(candidate)) {\n optionalTypes.push(candidate)\n }\n }\n if (optionalTypes.length > 0) {\n target.optionalTypes = optionalTypes\n }\n }\n}\n\nfunction preserveImplicitNativeDefault(target: Record<string, unknown>) {\n if (hasOwn(target, 'value')) {\n return\n }\n if (target.type === String) {\n target.value = ''\n }\n else if (target.type === Number) {\n target.value = 0\n }\n else if (target.type === Boolean) {\n target.value = false\n }\n else if (target.type === Array) {\n target.value = []\n }\n}\n\nfunction applyNullableTransportOptions(\n target: Record<string, unknown>,\n definition: unknown,\n allowNullPropInput: boolean,\n) {\n if (!allowNullPropInput || target.type === null) {\n return\n }\n const definitionRecord = definition && typeof definition === 'object' && !Array.isArray(definition)\n ? (definition as Record<string, unknown>)\n : undefined\n const candidates = collectNativePropertyTypeCandidates(\n definitionRecord\n ? [definitionRecord.type, definitionRecord.optionalTypes]\n : definition,\n )\n const explicitlyNullable = candidates.includes(null)\n const nativeTypes = candidates.filter(candidate => candidate !== null)\n const acceptsMultipleNativeTypes = nativeTypes.length > 1\n const acceptsMissingInput = definitionRecord?.required !== true\n // glass-easel 会先按主 type 校验并转换,optionalTypes 无法保护合法的联合值与空值传输。\n if (!explicitlyNullable && !acceptsMultipleNativeTypes && !acceptsMissingInput) {\n return\n }\n\n // 显式声明的 null 必须保持可观察;其余降级场景则保留原主类型的宿主隐式默认值。\n if (!explicitlyNullable) {\n preserveImplicitNativeDefault(target)\n }\n target.type = null\n delete target.optionalTypes\n}\n\nfunction normalizeVueProps(\n props: ComponentPropsOptions | undefined,\n allowNullPropInput: boolean,\n) {\n const properties: Record<string, any> = {}\n if (!props) {\n return properties\n }\n\n Object.entries(props).forEach(([key, definition]) => {\n if (definition === undefined) {\n return\n }\n if (definition === null) {\n properties[key] = { type: null }\n return\n }\n if (Array.isArray(definition) || typeof definition === 'function') {\n const propOptions: Record<string, unknown> = {}\n applyTypeOptions(propOptions, definition)\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n applyNullableTransportOptions(propOptions, definition, allowNullPropInput)\n properties[key] = propOptions\n return\n }\n if (typeof definition === 'object') {\n // 在 Vue <script setup> 中,defineModel() 会生成空的 modifiers props。\n if (key.endsWith('Modifiers') && Object.keys(definition).length === 0) {\n properties[key] = { type: Object, value: {} }\n return\n }\n const propOptions: Record<string, unknown> = {}\n if ('type' in definition && definition.type !== undefined) {\n applyTypeOptions(propOptions, (definition as any).type)\n }\n if (Array.isArray((definition as any).optionalTypes)) {\n const optionalTypes = (definition as any).optionalTypes.map((item: unknown) => toNativePropertyType(item)).filter((item: unknown): item is Exclude<NormalizedNativePropertyType, null> => item !== undefined && item !== null)\n if (optionalTypes.length > 0) {\n const existingOptionalTypes = Array.isArray(propOptions.optionalTypes)\n ? propOptions.optionalTypes as NormalizedNativePropertyType[]\n : []\n for (const optionalType of optionalTypes) {\n if (optionalType === propOptions.type) {\n continue\n }\n if (!existingOptionalTypes.includes(optionalType)) {\n existingOptionalTypes.push(optionalType)\n }\n }\n if (existingOptionalTypes.length > 0) {\n propOptions.optionalTypes = existingOptionalTypes\n }\n }\n }\n if ('observer' in definition && (typeof (definition as any).observer === 'function' || typeof (definition as any).observer === 'string')) {\n propOptions.observer = (definition as any).observer\n }\n const defaultValue = 'default' in definition ? (definition as any).default : (definition as any).value\n if (defaultValue !== undefined) {\n propOptions.value = typeof defaultValue === 'function' ? (defaultValue as any)() : defaultValue\n }\n if (!hasOwn(propOptions, 'type')) {\n propOptions.type = null\n }\n applyNullableTransportOptions(propOptions, definition, allowNullPropInput)\n properties[key] = propOptions\n }\n })\n\n return properties\n}\n\nexport function normalizeProps(\n baseOptions: Record<string, any>,\n props?: ComponentPropsOptions,\n explicitProperties?: MiniProgramComponentPropertyOption,\n) {\n const allowNullPropInput = Boolean(\n (baseOptions as any)[ALLOW_NULL_PROP_INPUT_KEY]\n ?? (baseOptions as any)[PUBLIC_ALLOW_NULL_PROP_INPUT_KEY],\n )\n const {\n [ALLOW_NULL_PROP_INPUT_KEY]: _ignoredAllowNullPropInput,\n [PUBLIC_ALLOW_NULL_PROP_INPUT_KEY]: _ignoredPublicAllowNullPropInput,\n ...normalizedBaseOptions\n } = baseOptions\n const baseProperties = (baseOptions as any).properties\n const normalizedBaseProperties = baseProperties && typeof baseProperties === 'object' && Object.keys(baseProperties).length > 0\n ? (baseProperties as any)\n : undefined\n const resolvedExplicit = explicitProperties\n ?? normalizedBaseProperties\n const shouldAttachInternalProps = Boolean(props || resolvedExplicit)\n const attachInternalProps = (source?: Record<string, any>) => {\n const next = { ...(source ?? {}) }\n if (\n (!(import.meta as ImportMetaWithEnv).env?.PLATFORM || (import.meta as ImportMetaWithEnv).env?.PLATFORM === 'weapp')\n && (baseOptions as Record<string, unknown>)[WEVU_NATIVE_SLOT_CONTEXT_KEY] === true\n ) {\n next[WEVU_NATIVE_DECLARATION_ADDRESS_PROP] = { type: Array, value: [] }\n }\n if (!shouldAttachInternalProps) {\n return next\n }\n if (!hasOwn(next, WEVU_SLOT_OWNER_ID_PROP)) {\n next[WEVU_SLOT_OWNER_ID_PROP] = { type: String, value: '' }\n }\n if (!hasOwn(next, WEVU_SLOT_SCOPE_KEY)) {\n next[WEVU_SLOT_SCOPE_KEY] = { type: null, value: null }\n }\n if (!hasOwn(next, WEVU_SLOT_NAMES_PROP)) {\n next[WEVU_SLOT_NAMES_PROP] = { type: null, value: null }\n }\n return next\n }\n\n if (resolvedExplicit) {\n const {\n properties: _ignored,\n ...rest\n } = normalizedBaseOptions\n const normalizedExplicitProperties = resolvedExplicit\n const normalizedVueProps = normalizeVueProps(props, allowNullPropInput)\n return {\n ...rest,\n properties: attachInternalProps({\n ...normalizedVueProps,\n ...normalizedExplicitProperties,\n }),\n }\n }\n\n return {\n ...normalizedBaseOptions,\n properties: attachInternalProps(normalizeVueProps(props, allowNullPropInput)),\n }\n}\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { hasOwn } from "../../utils.mjs";
4
4
  import { cloneSnapshotValue, isDeepEqualValue } from "../app/setData/snapshot.mjs";
5
5
  import { decodeWxmlEntities, resolveDatasetEventValue } from "../inlineDataset.mjs";
6
6
  import { getOwnerProxy, getOwnerSnapshot, getOwnerTarget, subscribeOwner } from "../scopedSlots.mjs";
7
- import { WEVU_BINDING_MANIFEST_KEY, WEVU_INLINE_HANDLER, WEVU_INLINE_MAP_KEY, WEVU_LAYOUT_HOSTS_KEY, WEVU_OWNER_HANDLER, WEVU_PROPS_DERIVED_KEYS_KEY, WEVU_PUBLIC_RUNTIME_KEY, WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY, WEVU_SLOT_FUNCTION_TOKEN, WEVU_SLOT_OWNER_ID_KEY, WEVU_SLOT_OWNER_ID_PROP, WEVU_SLOT_OWNER_KEY, WEVU_SLOT_OWNER_PROXY_KEY, WEVU_SLOT_PROPS_DATA_KEY, WEVU_SLOT_PROPS_KEY, WEVU_SLOT_SCOPE_KEY, WEVU_TEMPLATE_REFS_KEY } from "@weapp-core/constants";
7
+ import { WEVU_BINDING_MANIFEST_KEY, WEVU_INLINE_HANDLER, WEVU_INLINE_MAP_KEY, WEVU_LAYOUT_HOSTS_KEY, WEVU_NATIVE_SLOT_CONTEXT_KEY, WEVU_OWNER_HANDLER, WEVU_PROPS_DERIVED_KEYS_KEY, WEVU_PUBLIC_RUNTIME_KEY, WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY, WEVU_SLOT_FUNCTION_TOKEN, WEVU_SLOT_OWNER_ID_KEY, WEVU_SLOT_OWNER_ID_PROP, WEVU_SLOT_OWNER_KEY, WEVU_SLOT_OWNER_PROXY_KEY, WEVU_SLOT_PROPS_DATA_KEY, WEVU_SLOT_PROPS_KEY, WEVU_SLOT_SCOPE_KEY, WEVU_TEMPLATE_REFS_KEY } from "@weapp-core/constants";
8
8
 
9
9
  //#region src/runtime/define/scopedSlotOptions.ts
10
10
  const SCOPED_SLOT_SNAPSHOT_OMIT_KEYS = [
@@ -271,6 +271,7 @@ function createScopedSlotOptions(overrides) {
271
271
  return ownerId ? getOwnerTarget(ownerId) : void 0;
272
272
  };
273
273
  const baseOptions = {
274
+ [WEVU_NATIVE_SLOT_CONTEXT_KEY]: overrides?.[WEVU_NATIVE_SLOT_CONTEXT_KEY],
274
275
  [WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY]: true,
275
276
  options: { virtualHost: true },
276
277
  setData: { omit: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS },
@@ -1 +1 @@
1
- {"version":3,"file":"scopedSlotOptions.mjs","names":[],"sources":["../../../../src/runtime/define/scopedSlotOptions.ts"],"sourcesContent":["import type { WevuRuntimeBindingManifestV1 } from '@weapp-core/constants'\nimport type { LayoutHostBinding, TemplateRefBinding } from '../capabilities'\nimport type { InlineExpressionMap } from '../register/inline'\nimport type { ComputedDefinitions } from '../types'\nimport {\n WEVU_BINDING_MANIFEST_KEY,\n WEVU_INLINE_HANDLER,\n WEVU_INLINE_MAP_KEY,\n WEVU_LAYOUT_HOSTS_KEY,\n WEVU_OWNER_HANDLER,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY,\n WEVU_SLOT_FUNCTION_TOKEN,\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n WEVU_TEMPLATE_REFS_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\nimport { cloneSnapshotValue, isDeepEqualValue } from '../app/setData/snapshot'\nimport { requireRuntimeCapability, runtimeCapabilityRegistry } from '../capabilities'\nimport { decodeWxmlEntities, resolveDatasetEventValue } from '../inlineDataset'\nimport { getOwnerProxy, getOwnerSnapshot, getOwnerTarget, subscribeOwner } from '../scopedSlots'\nimport { runTeardownSteps } from '../teardown'\n\nconst SCOPED_SLOT_SNAPSHOT_OMIT_KEYS = [\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n]\n\nfunction parseInlineArgs(event: any) {\n const dataset = event?.currentTarget?.dataset ?? event?.target?.dataset ?? {}\n const argsRaw = resolveDatasetEventValue(dataset, 'wvArgs', event)\n let args: any[] = []\n if (Array.isArray(argsRaw)) {\n args = argsRaw\n }\n else if (typeof argsRaw === 'string') {\n try {\n args = JSON.parse(argsRaw)\n }\n catch {\n try {\n args = JSON.parse(decodeWxmlEntities(argsRaw))\n }\n catch {\n args = []\n }\n }\n }\n if (!Array.isArray(args)) {\n args = []\n }\n return args.map((item: any) => item === '$event' ? event : item)\n}\n\nfunction normalizeSlotBindings(value: unknown): Record<string, any> {\n if (!value || typeof value !== 'object') {\n return {}\n }\n if (Array.isArray(value)) {\n const result: Record<string, any> = {}\n for (let i = 0; i < value.length; i += 2) {\n const key = value[i]\n if (typeof key === 'string' && key) {\n result[key] = value[i + 1]\n }\n }\n return result\n }\n return value as Record<string, any>\n}\n\nfunction isSlotFunctionDescriptor(value: unknown): value is [string, string, unknown[], unknown[]] {\n return Array.isArray(value)\n && value[0] === WEVU_SLOT_FUNCTION_TOKEN\n && typeof value[1] === 'string'\n}\n\nfunction createSlotFunctionProxy(instance: any, descriptor: [string, string, unknown[], unknown[]]) {\n return (...args: unknown[]) => {\n const owner = instance?.selectOwnerComponent?.()\n const handler = owner?.[WEVU_INLINE_HANDLER]\n if (typeof handler !== 'function') {\n return undefined\n }\n const dataset: Record<string, unknown> = {\n wd: 1,\n wi: descriptor[1],\n }\n const scopeBindings = Array.isArray(descriptor[2]) ? descriptor[2] : []\n const indexBindings = Array.isArray(descriptor[3]) ? descriptor[3] : []\n scopeBindings.forEach((value, index) => dataset[`wvS${index}`] = value)\n indexBindings.forEach((value, index) => dataset[`wvI${index}`] = value)\n const event = {\n type: 'wv-slot-function',\n detail: args,\n currentTarget: { dataset },\n target: { dataset },\n }\n return handler.call(owner, event)\n }\n}\n\nfunction resolveRuntimeSlotBindings(instance: any, bindings: Record<string, any>) {\n const resolved: Record<string, any> = {}\n for (const [key, value] of Object.entries(bindings)) {\n resolved[key] = isSlotFunctionDescriptor(value) ? createSlotFunctionProxy(instance, value) : value\n }\n return resolved\n}\n\nfunction resolveComputedContext(instance: any) {\n return instance?.__wevu?.proxy\n ?? instance?.[WEVU_PUBLIC_RUNTIME_KEY]?.proxy\n ?? instance\n}\n\nfunction collectComputedPayload(instance: any, computed?: ComputedDefinitions) {\n if (!computed || Object.keys(computed).length === 0) {\n return undefined\n }\n\n const context = resolveComputedContext(instance)\n const payload: Record<string, any> = {}\n for (const [key, definition] of Object.entries(computed)) {\n try {\n let value: any\n if (typeof definition === 'function') {\n value = definition.call(context)\n }\n else if (typeof (definition as any)?.get === 'function') {\n value = (definition as any).get.call(context)\n }\n if (value !== undefined) {\n payload[key] = value\n }\n }\n catch {\n }\n }\n return payload\n}\n\nfunction flushOwnerProxyBindings(instance: any) {\n instance?.__wevu?.__wevu_flushSetupSnapshotSync?.()\n}\n\nfunction flushScopedSlotComputedBindings(\n instance: any,\n computed?: ComputedDefinitions,\n options?: { force?: boolean },\n) {\n flushOwnerProxyBindings(instance)\n const payload = collectComputedPayload(instance, computed)\n if (!payload || typeof instance?.setData !== 'function') {\n return\n }\n const hasPrevious = hasOwn(instance, '__wvScopedSlotComputedSnapshot')\n const previous = instance.__wvScopedSlotComputedSnapshot ?? {}\n const next: Record<string, any> = {}\n const changed: Record<string, any> = {}\n for (const [key, value] of Object.entries(payload)) {\n next[key] = cloneSnapshotValue(value)\n if (options?.force || !hasPrevious || !hasOwn(previous, key) || !isDeepEqualValue(previous[key], value, 20, { keys: 10_000 })) {\n changed[key] = value\n }\n }\n for (const key of Object.keys(previous)) {\n if (!hasOwn(payload, key)) {\n changed[key] = null\n }\n }\n instance.__wvScopedSlotComputedSnapshot = next\n if (Object.keys(changed).length > 0) {\n instance.setData(changed)\n }\n}\n\nfunction syncSlotPropsData(\n instance: any,\n override?: { [WEVU_SLOT_SCOPE_KEY]?: unknown, [WEVU_SLOT_PROPS_KEY]?: unknown },\n) {\n const scopeSource = hasOwn(override ?? {}, WEVU_SLOT_SCOPE_KEY)\n ? (override as any)[WEVU_SLOT_SCOPE_KEY]\n : instance?.properties?.[WEVU_SLOT_SCOPE_KEY]\n const propsSource = hasOwn(override ?? {}, WEVU_SLOT_PROPS_KEY)\n ? (override as any)[WEVU_SLOT_PROPS_KEY]\n : instance?.properties?.[WEVU_SLOT_PROPS_KEY]\n const scope = normalizeSlotBindings(scopeSource)\n const slotProps = normalizeSlotBindings(propsSource)\n const snapshot = { ...scope, ...slotProps }\n const snapshotChanged = !hasOwn(instance, '__wvSlotPropsSnapshot')\n || !isDeepEqualValue(\n instance.__wvSlotPropsSnapshot ?? {},\n snapshot,\n 20,\n { keys: 10_000 },\n )\n const merged = snapshotChanged || !instance[WEVU_SLOT_PROPS_DATA_KEY]\n ? resolveRuntimeSlotBindings(instance, snapshot)\n : instance[WEVU_SLOT_PROPS_DATA_KEY]\n if (snapshotChanged) {\n instance.__wvSlotPropsSnapshot = cloneSnapshotValue(snapshot)\n }\n instance[WEVU_SLOT_PROPS_DATA_KEY] = merged\n const runtimeState = instance?.__wevu?.state\n const runtimeSnapshotChanged = Boolean(\n runtimeState\n && typeof runtimeState === 'object'\n && (\n !hasOwn(runtimeState, WEVU_SLOT_PROPS_DATA_KEY)\n || !isDeepEqualValue(\n runtimeState[WEVU_SLOT_PROPS_DATA_KEY] ?? {},\n snapshot,\n 20,\n { keys: 10_000 },\n )\n ),\n )\n if (runtimeState && typeof runtimeState === 'object') {\n runtimeState[WEVU_SLOT_PROPS_DATA_KEY] = merged\n }\n return { merged, runtimeSnapshotChanged, snapshot, snapshotChanged }\n}\n\nfunction mergeSlotProps(\n instance: any,\n computed?: ComputedDefinitions,\n override?: { [WEVU_SLOT_SCOPE_KEY]?: unknown, [WEVU_SLOT_PROPS_KEY]?: unknown },\n) {\n const { runtimeSnapshotChanged, snapshot, snapshotChanged } = syncSlotPropsData(instance, override)\n if ((snapshotChanged || runtimeSnapshotChanged) && typeof instance?.setData === 'function') {\n instance.setData({ [WEVU_SLOT_PROPS_DATA_KEY]: snapshot })\n }\n if (snapshotChanged) {\n flushScopedSlotComputedBindings(instance, computed)\n }\n}\n\nfunction setOwnerProxy(instance: any, proxy: any) {\n let changed = false\n if (instance[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy) {\n instance[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n changed = true\n }\n const data = instance?.data\n if (data && typeof data === 'object' && data[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy) {\n try {\n Object.defineProperty(data, WEVU_SLOT_OWNER_PROXY_KEY, {\n value: proxy,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n data[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n }\n changed = true\n }\n const runtimeState = instance?.__wevu?.state\n if (\n runtimeState\n && typeof runtimeState === 'object'\n && runtimeState[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy\n ) {\n runtimeState[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n changed = true\n }\n return changed\n}\n\nfunction isSnapshotObject(value: unknown): value is Record<string, any> {\n if (!value || typeof value !== 'object') {\n return false\n }\n const prototype = Object.getPrototypeOf(value)\n return prototype === Object.prototype || prototype === null\n}\n\nfunction splitOwnerSnapshotFunctions(\n value: any,\n path: string,\n functionPayload: Record<string, any>,\n visiting: WeakSet<object>,\n): any {\n if (typeof value === 'function') {\n functionPayload[path] = value\n return undefined\n }\n if (value == null || typeof value !== 'object') {\n return value\n }\n if (visiting.has(value)) {\n return undefined\n }\n if (Array.isArray(value)) {\n visiting.add(value)\n const output = value.map((item, index) => {\n const next = splitOwnerSnapshotFunctions(item, `${path}.${index}`, functionPayload, visiting)\n return next === undefined ? null : next\n })\n visiting.delete(value)\n return output\n }\n if (!isSnapshotObject(value)) {\n return cloneSnapshotValue(value)\n }\n visiting.add(value)\n const output: Record<string, any> = {}\n for (const [key, child] of Object.entries(value)) {\n const next = splitOwnerSnapshotFunctions(child, `${path}.${key}`, functionPayload, visiting)\n if (next !== undefined) {\n output[key] = next\n }\n }\n visiting.delete(value)\n return output\n}\n\nfunction createOwnerSetDataPayload(snapshot: Record<string, any>) {\n const functionPayload: Record<string, any> = {}\n const ownerSnapshot = splitOwnerSnapshotFunctions(\n snapshot,\n WEVU_SLOT_OWNER_KEY,\n functionPayload,\n new WeakSet(),\n )\n return {\n [WEVU_SLOT_OWNER_KEY]: ownerSnapshot,\n ...functionPayload,\n }\n}\n\nfunction updateOwnerBindings(instance: any, snapshot: Record<string, any>, proxy: any, computed?: ComputedDefinitions) {\n const proxyChanged = setOwnerProxy(instance, proxy)\n const { snapshotChanged: slotPropsChanged } = syncSlotPropsData(instance)\n const nextOwnerSnapshot = snapshot || {}\n const ownerChanged = !hasOwn(instance, '__wvOwnerSnapshot')\n || !isDeepEqualValue(\n instance.__wvOwnerSnapshot ?? {},\n nextOwnerSnapshot,\n 20,\n { keys: 10_000 },\n )\n if (ownerChanged) {\n instance.__wvOwnerSnapshot = cloneSnapshotValue(nextOwnerSnapshot)\n instance[WEVU_SLOT_OWNER_KEY] = nextOwnerSnapshot\n const runtimeState = instance?.__wevu?.state\n if (runtimeState && typeof runtimeState === 'object') {\n runtimeState[WEVU_SLOT_OWNER_KEY] = nextOwnerSnapshot\n }\n }\n if (ownerChanged && typeof instance?.setData === 'function') {\n instance.setData(createOwnerSetDataPayload(nextOwnerSnapshot))\n }\n if (ownerChanged || proxyChanged || slotPropsChanged) {\n flushScopedSlotComputedBindings(instance, computed)\n }\n}\n\nfunction bindOwner(instance: any, ownerId: string, computed?: ComputedDefinitions) {\n if (!ownerId) {\n if (typeof instance?.__wvOwnerUnsub === 'function') {\n instance.__wvOwnerUnsub()\n }\n instance.__wvOwnerUnsub = undefined\n instance.__wvOwnerBoundId = ''\n setOwnerProxy(instance, undefined)\n return\n }\n\n const updateOwner = (snapshot: Record<string, any>, proxy: any) => {\n updateOwnerBindings(instance, snapshot, proxy, computed)\n }\n if (instance.__wvOwnerBoundId !== ownerId) {\n if (typeof instance.__wvOwnerUnsub === 'function') {\n instance.__wvOwnerUnsub()\n }\n instance.__wvOwnerBoundId = ownerId\n instance.__wvOwnerUnsub = subscribeOwner(ownerId, updateOwner)\n }\n const snapshot = getOwnerSnapshot(ownerId)\n if (snapshot) {\n updateOwner(snapshot, getOwnerProxy(ownerId))\n }\n}\n\nfunction resolveBoundOwnerId(instance: any) {\n return instance?.properties?.[WEVU_SLOT_OWNER_ID_PROP]\n ?? instance?.properties?.[WEVU_SLOT_OWNER_ID_KEY]\n ?? ''\n}\n\nfunction syncScopedSlotBindings(instance: any, computed?: ComputedDefinitions) {\n mergeSlotProps(instance, computed)\n const ownerId = resolveBoundOwnerId(instance)\n if (!ownerId) {\n return\n }\n bindOwner(instance, ownerId, computed)\n}\n\nfunction createScopedSlotData() {\n const data = {\n [WEVU_SLOT_OWNER_KEY]: {},\n [WEVU_SLOT_PROPS_DATA_KEY]: {},\n }\n Object.defineProperty(data, WEVU_SLOT_OWNER_PROXY_KEY, {\n value: undefined,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n return data\n}\n\nexport function createScopedSlotOptions(\n overrides?: {\n computed?: ComputedDefinitions\n inlineMap?: InlineExpressionMap\n layoutHosts?: LayoutHostBinding[]\n templateRefs?: TemplateRefBinding[]\n [WEVU_BINDING_MANIFEST_KEY]?: WevuRuntimeBindingManifestV1\n },\n) {\n const scopedSlotComputed = overrides?.computed\n const layoutHosts = overrides?.layoutHosts\n const templateRefs = overrides?.templateRefs\n if (templateRefs?.length) {\n requireRuntimeCapability('templateRefs', 'createWevuScopedSlotComponent(templateRefs)')\n }\n const hasInlineMap = Boolean(overrides?.inlineMap && Object.keys(overrides.inlineMap).length)\n if (hasInlineMap) {\n requireRuntimeCapability('inlineEvents', 'createWevuScopedSlotComponent(inlineMap)')\n }\n if (layoutHosts?.length) {\n requireRuntimeCapability('layout', 'createWevuScopedSlotComponent(layoutHosts)')\n }\n const resolveTemplateRefOwner = (instance: any) => {\n const ownerId = resolveBoundOwnerId(instance)\n return ownerId ? getOwnerTarget(ownerId) : undefined\n }\n const baseOptions = {\n [WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY]: true,\n options: {\n virtualHost: true,\n },\n setData: {\n omit: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS,\n },\n [WEVU_PROPS_DERIVED_KEYS_KEY]: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS,\n properties: {\n [WEVU_SLOT_OWNER_ID_PROP]: {\n type: String,\n value: '',\n observer(this: any, next: string) {\n bindOwner(this, next || '', scopedSlotComputed)\n },\n },\n [WEVU_SLOT_OWNER_ID_KEY]: {\n type: String,\n value: '',\n observer(this: any, next: string) {\n bindOwner(this, next || '', scopedSlotComputed)\n },\n },\n [WEVU_SLOT_PROPS_KEY]: {\n type: null,\n value: null,\n observer(this: any, next: unknown) {\n mergeSlotProps(this, scopedSlotComputed, { [WEVU_SLOT_PROPS_KEY]: next })\n },\n },\n [WEVU_SLOT_SCOPE_KEY]: {\n type: null,\n value: null,\n observer(this: any, next: unknown) {\n mergeSlotProps(this, scopedSlotComputed, { [WEVU_SLOT_SCOPE_KEY]: next })\n },\n },\n },\n data: createScopedSlotData,\n lifetimes: {\n attached(this: any) {\n syncScopedSlotBindings(this, scopedSlotComputed)\n },\n ready(this: any) {\n syncScopedSlotBindings(this, scopedSlotComputed)\n flushScopedSlotComputedBindings(this, scopedSlotComputed, { force: true })\n const owner = resolveTemplateRefOwner(this)\n if (owner && templateRefs?.length) {\n runtimeCapabilityRegistry.templateRefs?.schedule(this, undefined, owner)\n }\n },\n detached(this: any) {\n const owner = resolveTemplateRefOwner(this)\n runTeardownSteps([\n () => {\n if (owner && templateRefs?.length) {\n runtimeCapabilityRegistry.templateRefs?.clear(this, owner)\n }\n },\n () => {\n if (typeof this.__wvOwnerUnsub === 'function') {\n this.__wvOwnerUnsub()\n }\n },\n () => {\n this.__wvOwnerUnsub = undefined\n this.__wvOwnerBoundId = ''\n },\n () => setOwnerProxy(this, undefined),\n ])\n },\n },\n methods: {\n [WEVU_OWNER_HANDLER](this: any, event: any) {\n const owner = this[WEVU_SLOT_OWNER_PROXY_KEY]\n const inlineMap = (this as any).__wevu?.methods?.[WEVU_INLINE_MAP_KEY]\n if (hasInlineMap) {\n const result = runtimeCapabilityRegistry.inlineEvents?.run(owner, undefined, event, inlineMap)\n if (result !== undefined) {\n return result\n }\n }\n if (!owner) {\n return undefined\n }\n const dataset = event?.currentTarget?.dataset ?? event?.target?.dataset ?? {}\n const handlerName = resolveDatasetEventValue(dataset, 'wvHandler', event)\n if (typeof handlerName !== 'string' || !handlerName) {\n return undefined\n }\n const handler = owner?.[handlerName]\n if (typeof handler !== 'function') {\n return undefined\n }\n const args = parseInlineArgs(event)\n return handler.apply(owner, args)\n },\n },\n }\n\n if (overrides?.computed && Object.keys(overrides.computed).length > 0) {\n ;(baseOptions as any).computed = overrides.computed\n }\n if (overrides?.inlineMap && Object.keys(overrides.inlineMap).length > 0) {\n ;(baseOptions as any).methods = {\n ...(baseOptions as any).methods,\n [WEVU_INLINE_MAP_KEY]: overrides.inlineMap,\n }\n }\n if (templateRefs?.length) {\n ;(baseOptions as any)[WEVU_TEMPLATE_REFS_KEY] = templateRefs\n }\n if (layoutHosts?.length) {\n ;(baseOptions as Record<string, unknown>)[WEVU_LAYOUT_HOSTS_KEY] = layoutHosts\n }\n if (overrides?.[WEVU_BINDING_MANIFEST_KEY]) {\n ;(baseOptions as Record<string, unknown>)[WEVU_BINDING_MANIFEST_KEY] = overrides[WEVU_BINDING_MANIFEST_KEY]\n }\n\n return baseOptions\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"scopedSlotOptions.mjs","names":[],"sources":["../../../../src/runtime/define/scopedSlotOptions.ts"],"sourcesContent":["import type { WevuRuntimeBindingManifestV1 } from '@weapp-core/constants'\nimport type { LayoutHostBinding, TemplateRefBinding } from '../capabilities'\nimport type { InlineExpressionMap } from '../register/inline'\nimport type { ComputedDefinitions } from '../types'\nimport {\n WEVU_BINDING_MANIFEST_KEY,\n WEVU_INLINE_HANDLER,\n WEVU_INLINE_MAP_KEY,\n WEVU_LAYOUT_HOSTS_KEY,\n WEVU_NATIVE_SLOT_CONTEXT_KEY,\n WEVU_OWNER_HANDLER,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY,\n WEVU_SLOT_FUNCTION_TOKEN,\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n WEVU_TEMPLATE_REFS_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../utils'\nimport { cloneSnapshotValue, isDeepEqualValue } from '../app/setData/snapshot'\nimport { requireRuntimeCapability, runtimeCapabilityRegistry } from '../capabilities'\nimport { decodeWxmlEntities, resolveDatasetEventValue } from '../inlineDataset'\nimport { getOwnerProxy, getOwnerSnapshot, getOwnerTarget, subscribeOwner } from '../scopedSlots'\nimport { runTeardownSteps } from '../teardown'\n\nconst SCOPED_SLOT_SNAPSHOT_OMIT_KEYS = [\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_OWNER_PROXY_KEY,\n WEVU_SLOT_OWNER_KEY,\n WEVU_SLOT_PROPS_DATA_KEY,\n WEVU_SLOT_PROPS_KEY,\n WEVU_SLOT_SCOPE_KEY,\n]\n\nfunction parseInlineArgs(event: any) {\n const dataset = event?.currentTarget?.dataset ?? event?.target?.dataset ?? {}\n const argsRaw = resolveDatasetEventValue(dataset, 'wvArgs', event)\n let args: any[] = []\n if (Array.isArray(argsRaw)) {\n args = argsRaw\n }\n else if (typeof argsRaw === 'string') {\n try {\n args = JSON.parse(argsRaw)\n }\n catch {\n try {\n args = JSON.parse(decodeWxmlEntities(argsRaw))\n }\n catch {\n args = []\n }\n }\n }\n if (!Array.isArray(args)) {\n args = []\n }\n return args.map((item: any) => item === '$event' ? event : item)\n}\n\nfunction normalizeSlotBindings(value: unknown): Record<string, any> {\n if (!value || typeof value !== 'object') {\n return {}\n }\n if (Array.isArray(value)) {\n const result: Record<string, any> = {}\n for (let i = 0; i < value.length; i += 2) {\n const key = value[i]\n if (typeof key === 'string' && key) {\n result[key] = value[i + 1]\n }\n }\n return result\n }\n return value as Record<string, any>\n}\n\nfunction isSlotFunctionDescriptor(value: unknown): value is [string, string, unknown[], unknown[]] {\n return Array.isArray(value)\n && value[0] === WEVU_SLOT_FUNCTION_TOKEN\n && typeof value[1] === 'string'\n}\n\nfunction createSlotFunctionProxy(instance: any, descriptor: [string, string, unknown[], unknown[]]) {\n return (...args: unknown[]) => {\n const owner = instance?.selectOwnerComponent?.()\n const handler = owner?.[WEVU_INLINE_HANDLER]\n if (typeof handler !== 'function') {\n return undefined\n }\n const dataset: Record<string, unknown> = {\n wd: 1,\n wi: descriptor[1],\n }\n const scopeBindings = Array.isArray(descriptor[2]) ? descriptor[2] : []\n const indexBindings = Array.isArray(descriptor[3]) ? descriptor[3] : []\n scopeBindings.forEach((value, index) => dataset[`wvS${index}`] = value)\n indexBindings.forEach((value, index) => dataset[`wvI${index}`] = value)\n const event = {\n type: 'wv-slot-function',\n detail: args,\n currentTarget: { dataset },\n target: { dataset },\n }\n return handler.call(owner, event)\n }\n}\n\nfunction resolveRuntimeSlotBindings(instance: any, bindings: Record<string, any>) {\n const resolved: Record<string, any> = {}\n for (const [key, value] of Object.entries(bindings)) {\n resolved[key] = isSlotFunctionDescriptor(value) ? createSlotFunctionProxy(instance, value) : value\n }\n return resolved\n}\n\nfunction resolveComputedContext(instance: any) {\n return instance?.__wevu?.proxy\n ?? instance?.[WEVU_PUBLIC_RUNTIME_KEY]?.proxy\n ?? instance\n}\n\nfunction collectComputedPayload(instance: any, computed?: ComputedDefinitions) {\n if (!computed || Object.keys(computed).length === 0) {\n return undefined\n }\n\n const context = resolveComputedContext(instance)\n const payload: Record<string, any> = {}\n for (const [key, definition] of Object.entries(computed)) {\n try {\n let value: any\n if (typeof definition === 'function') {\n value = definition.call(context)\n }\n else if (typeof (definition as any)?.get === 'function') {\n value = (definition as any).get.call(context)\n }\n if (value !== undefined) {\n payload[key] = value\n }\n }\n catch {\n }\n }\n return payload\n}\n\nfunction flushOwnerProxyBindings(instance: any) {\n instance?.__wevu?.__wevu_flushSetupSnapshotSync?.()\n}\n\nfunction flushScopedSlotComputedBindings(\n instance: any,\n computed?: ComputedDefinitions,\n options?: { force?: boolean },\n) {\n flushOwnerProxyBindings(instance)\n const payload = collectComputedPayload(instance, computed)\n if (!payload || typeof instance?.setData !== 'function') {\n return\n }\n const hasPrevious = hasOwn(instance, '__wvScopedSlotComputedSnapshot')\n const previous = instance.__wvScopedSlotComputedSnapshot ?? {}\n const next: Record<string, any> = {}\n const changed: Record<string, any> = {}\n for (const [key, value] of Object.entries(payload)) {\n next[key] = cloneSnapshotValue(value)\n if (options?.force || !hasPrevious || !hasOwn(previous, key) || !isDeepEqualValue(previous[key], value, 20, { keys: 10_000 })) {\n changed[key] = value\n }\n }\n for (const key of Object.keys(previous)) {\n if (!hasOwn(payload, key)) {\n changed[key] = null\n }\n }\n instance.__wvScopedSlotComputedSnapshot = next\n if (Object.keys(changed).length > 0) {\n instance.setData(changed)\n }\n}\n\nfunction syncSlotPropsData(\n instance: any,\n override?: { [WEVU_SLOT_SCOPE_KEY]?: unknown, [WEVU_SLOT_PROPS_KEY]?: unknown },\n) {\n const scopeSource = hasOwn(override ?? {}, WEVU_SLOT_SCOPE_KEY)\n ? (override as any)[WEVU_SLOT_SCOPE_KEY]\n : instance?.properties?.[WEVU_SLOT_SCOPE_KEY]\n const propsSource = hasOwn(override ?? {}, WEVU_SLOT_PROPS_KEY)\n ? (override as any)[WEVU_SLOT_PROPS_KEY]\n : instance?.properties?.[WEVU_SLOT_PROPS_KEY]\n const scope = normalizeSlotBindings(scopeSource)\n const slotProps = normalizeSlotBindings(propsSource)\n const snapshot = { ...scope, ...slotProps }\n const snapshotChanged = !hasOwn(instance, '__wvSlotPropsSnapshot')\n || !isDeepEqualValue(\n instance.__wvSlotPropsSnapshot ?? {},\n snapshot,\n 20,\n { keys: 10_000 },\n )\n const merged = snapshotChanged || !instance[WEVU_SLOT_PROPS_DATA_KEY]\n ? resolveRuntimeSlotBindings(instance, snapshot)\n : instance[WEVU_SLOT_PROPS_DATA_KEY]\n if (snapshotChanged) {\n instance.__wvSlotPropsSnapshot = cloneSnapshotValue(snapshot)\n }\n instance[WEVU_SLOT_PROPS_DATA_KEY] = merged\n const runtimeState = instance?.__wevu?.state\n const runtimeSnapshotChanged = Boolean(\n runtimeState\n && typeof runtimeState === 'object'\n && (\n !hasOwn(runtimeState, WEVU_SLOT_PROPS_DATA_KEY)\n || !isDeepEqualValue(\n runtimeState[WEVU_SLOT_PROPS_DATA_KEY] ?? {},\n snapshot,\n 20,\n { keys: 10_000 },\n )\n ),\n )\n if (runtimeState && typeof runtimeState === 'object') {\n runtimeState[WEVU_SLOT_PROPS_DATA_KEY] = merged\n }\n return { merged, runtimeSnapshotChanged, snapshot, snapshotChanged }\n}\n\nfunction mergeSlotProps(\n instance: any,\n computed?: ComputedDefinitions,\n override?: { [WEVU_SLOT_SCOPE_KEY]?: unknown, [WEVU_SLOT_PROPS_KEY]?: unknown },\n) {\n const { runtimeSnapshotChanged, snapshot, snapshotChanged } = syncSlotPropsData(instance, override)\n if ((snapshotChanged || runtimeSnapshotChanged) && typeof instance?.setData === 'function') {\n instance.setData({ [WEVU_SLOT_PROPS_DATA_KEY]: snapshot })\n }\n if (snapshotChanged) {\n flushScopedSlotComputedBindings(instance, computed)\n }\n}\n\nfunction setOwnerProxy(instance: any, proxy: any) {\n let changed = false\n if (instance[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy) {\n instance[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n changed = true\n }\n const data = instance?.data\n if (data && typeof data === 'object' && data[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy) {\n try {\n Object.defineProperty(data, WEVU_SLOT_OWNER_PROXY_KEY, {\n value: proxy,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n data[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n }\n changed = true\n }\n const runtimeState = instance?.__wevu?.state\n if (\n runtimeState\n && typeof runtimeState === 'object'\n && runtimeState[WEVU_SLOT_OWNER_PROXY_KEY] !== proxy\n ) {\n runtimeState[WEVU_SLOT_OWNER_PROXY_KEY] = proxy\n changed = true\n }\n return changed\n}\n\nfunction isSnapshotObject(value: unknown): value is Record<string, any> {\n if (!value || typeof value !== 'object') {\n return false\n }\n const prototype = Object.getPrototypeOf(value)\n return prototype === Object.prototype || prototype === null\n}\n\nfunction splitOwnerSnapshotFunctions(\n value: any,\n path: string,\n functionPayload: Record<string, any>,\n visiting: WeakSet<object>,\n): any {\n if (typeof value === 'function') {\n functionPayload[path] = value\n return undefined\n }\n if (value == null || typeof value !== 'object') {\n return value\n }\n if (visiting.has(value)) {\n return undefined\n }\n if (Array.isArray(value)) {\n visiting.add(value)\n const output = value.map((item, index) => {\n const next = splitOwnerSnapshotFunctions(item, `${path}.${index}`, functionPayload, visiting)\n return next === undefined ? null : next\n })\n visiting.delete(value)\n return output\n }\n if (!isSnapshotObject(value)) {\n return cloneSnapshotValue(value)\n }\n visiting.add(value)\n const output: Record<string, any> = {}\n for (const [key, child] of Object.entries(value)) {\n const next = splitOwnerSnapshotFunctions(child, `${path}.${key}`, functionPayload, visiting)\n if (next !== undefined) {\n output[key] = next\n }\n }\n visiting.delete(value)\n return output\n}\n\nfunction createOwnerSetDataPayload(snapshot: Record<string, any>) {\n const functionPayload: Record<string, any> = {}\n const ownerSnapshot = splitOwnerSnapshotFunctions(\n snapshot,\n WEVU_SLOT_OWNER_KEY,\n functionPayload,\n new WeakSet(),\n )\n return {\n [WEVU_SLOT_OWNER_KEY]: ownerSnapshot,\n ...functionPayload,\n }\n}\n\nfunction updateOwnerBindings(instance: any, snapshot: Record<string, any>, proxy: any, computed?: ComputedDefinitions) {\n const proxyChanged = setOwnerProxy(instance, proxy)\n const { snapshotChanged: slotPropsChanged } = syncSlotPropsData(instance)\n const nextOwnerSnapshot = snapshot || {}\n const ownerChanged = !hasOwn(instance, '__wvOwnerSnapshot')\n || !isDeepEqualValue(\n instance.__wvOwnerSnapshot ?? {},\n nextOwnerSnapshot,\n 20,\n { keys: 10_000 },\n )\n if (ownerChanged) {\n instance.__wvOwnerSnapshot = cloneSnapshotValue(nextOwnerSnapshot)\n instance[WEVU_SLOT_OWNER_KEY] = nextOwnerSnapshot\n const runtimeState = instance?.__wevu?.state\n if (runtimeState && typeof runtimeState === 'object') {\n runtimeState[WEVU_SLOT_OWNER_KEY] = nextOwnerSnapshot\n }\n }\n if (ownerChanged && typeof instance?.setData === 'function') {\n instance.setData(createOwnerSetDataPayload(nextOwnerSnapshot))\n }\n if (ownerChanged || proxyChanged || slotPropsChanged) {\n flushScopedSlotComputedBindings(instance, computed)\n }\n}\n\nfunction bindOwner(instance: any, ownerId: string, computed?: ComputedDefinitions) {\n if (!ownerId) {\n if (typeof instance?.__wvOwnerUnsub === 'function') {\n instance.__wvOwnerUnsub()\n }\n instance.__wvOwnerUnsub = undefined\n instance.__wvOwnerBoundId = ''\n setOwnerProxy(instance, undefined)\n return\n }\n\n const updateOwner = (snapshot: Record<string, any>, proxy: any) => {\n updateOwnerBindings(instance, snapshot, proxy, computed)\n }\n if (instance.__wvOwnerBoundId !== ownerId) {\n if (typeof instance.__wvOwnerUnsub === 'function') {\n instance.__wvOwnerUnsub()\n }\n instance.__wvOwnerBoundId = ownerId\n instance.__wvOwnerUnsub = subscribeOwner(ownerId, updateOwner)\n }\n const snapshot = getOwnerSnapshot(ownerId)\n if (snapshot) {\n updateOwner(snapshot, getOwnerProxy(ownerId))\n }\n}\n\nfunction resolveBoundOwnerId(instance: any) {\n return instance?.properties?.[WEVU_SLOT_OWNER_ID_PROP]\n ?? instance?.properties?.[WEVU_SLOT_OWNER_ID_KEY]\n ?? ''\n}\n\nfunction syncScopedSlotBindings(instance: any, computed?: ComputedDefinitions) {\n mergeSlotProps(instance, computed)\n const ownerId = resolveBoundOwnerId(instance)\n if (!ownerId) {\n return\n }\n bindOwner(instance, ownerId, computed)\n}\n\nfunction createScopedSlotData() {\n const data = {\n [WEVU_SLOT_OWNER_KEY]: {},\n [WEVU_SLOT_PROPS_DATA_KEY]: {},\n }\n Object.defineProperty(data, WEVU_SLOT_OWNER_PROXY_KEY, {\n value: undefined,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n return data\n}\n\nexport function createScopedSlotOptions(\n overrides?: {\n computed?: ComputedDefinitions\n inlineMap?: InlineExpressionMap\n layoutHosts?: LayoutHostBinding[]\n templateRefs?: TemplateRefBinding[]\n [WEVU_BINDING_MANIFEST_KEY]?: WevuRuntimeBindingManifestV1\n [WEVU_NATIVE_SLOT_CONTEXT_KEY]?: boolean\n },\n) {\n const scopedSlotComputed = overrides?.computed\n const layoutHosts = overrides?.layoutHosts\n const templateRefs = overrides?.templateRefs\n if (templateRefs?.length) {\n requireRuntimeCapability('templateRefs', 'createWevuScopedSlotComponent(templateRefs)')\n }\n const hasInlineMap = Boolean(overrides?.inlineMap && Object.keys(overrides.inlineMap).length)\n if (hasInlineMap) {\n requireRuntimeCapability('inlineEvents', 'createWevuScopedSlotComponent(inlineMap)')\n }\n if (layoutHosts?.length) {\n requireRuntimeCapability('layout', 'createWevuScopedSlotComponent(layoutHosts)')\n }\n const resolveTemplateRefOwner = (instance: any) => {\n const ownerId = resolveBoundOwnerId(instance)\n return ownerId ? getOwnerTarget(ownerId) : undefined\n }\n const baseOptions = {\n [WEVU_NATIVE_SLOT_CONTEXT_KEY]: overrides?.[WEVU_NATIVE_SLOT_CONTEXT_KEY],\n [WEVU_SCOPED_SLOT_OWNER_REQUIRED_KEY]: true,\n options: {\n virtualHost: true,\n },\n setData: {\n omit: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS,\n },\n [WEVU_PROPS_DERIVED_KEYS_KEY]: SCOPED_SLOT_SNAPSHOT_OMIT_KEYS,\n properties: {\n [WEVU_SLOT_OWNER_ID_PROP]: {\n type: String,\n value: '',\n observer(this: any, next: string) {\n bindOwner(this, next || '', scopedSlotComputed)\n },\n },\n [WEVU_SLOT_OWNER_ID_KEY]: {\n type: String,\n value: '',\n observer(this: any, next: string) {\n bindOwner(this, next || '', scopedSlotComputed)\n },\n },\n [WEVU_SLOT_PROPS_KEY]: {\n type: null,\n value: null,\n observer(this: any, next: unknown) {\n mergeSlotProps(this, scopedSlotComputed, { [WEVU_SLOT_PROPS_KEY]: next })\n },\n },\n [WEVU_SLOT_SCOPE_KEY]: {\n type: null,\n value: null,\n observer(this: any, next: unknown) {\n mergeSlotProps(this, scopedSlotComputed, { [WEVU_SLOT_SCOPE_KEY]: next })\n },\n },\n },\n data: createScopedSlotData,\n lifetimes: {\n attached(this: any) {\n syncScopedSlotBindings(this, scopedSlotComputed)\n },\n ready(this: any) {\n syncScopedSlotBindings(this, scopedSlotComputed)\n flushScopedSlotComputedBindings(this, scopedSlotComputed, { force: true })\n const owner = resolveTemplateRefOwner(this)\n if (owner && templateRefs?.length) {\n runtimeCapabilityRegistry.templateRefs?.schedule(this, undefined, owner)\n }\n },\n detached(this: any) {\n const owner = resolveTemplateRefOwner(this)\n runTeardownSteps([\n () => {\n if (owner && templateRefs?.length) {\n runtimeCapabilityRegistry.templateRefs?.clear(this, owner)\n }\n },\n () => {\n if (typeof this.__wvOwnerUnsub === 'function') {\n this.__wvOwnerUnsub()\n }\n },\n () => {\n this.__wvOwnerUnsub = undefined\n this.__wvOwnerBoundId = ''\n },\n () => setOwnerProxy(this, undefined),\n ])\n },\n },\n methods: {\n [WEVU_OWNER_HANDLER](this: any, event: any) {\n const owner = this[WEVU_SLOT_OWNER_PROXY_KEY]\n const inlineMap = (this as any).__wevu?.methods?.[WEVU_INLINE_MAP_KEY]\n if (hasInlineMap) {\n const result = runtimeCapabilityRegistry.inlineEvents?.run(owner, undefined, event, inlineMap)\n if (result !== undefined) {\n return result\n }\n }\n if (!owner) {\n return undefined\n }\n const dataset = event?.currentTarget?.dataset ?? event?.target?.dataset ?? {}\n const handlerName = resolveDatasetEventValue(dataset, 'wvHandler', event)\n if (typeof handlerName !== 'string' || !handlerName) {\n return undefined\n }\n const handler = owner?.[handlerName]\n if (typeof handler !== 'function') {\n return undefined\n }\n const args = parseInlineArgs(event)\n return handler.apply(owner, args)\n },\n },\n }\n\n if (overrides?.computed && Object.keys(overrides.computed).length > 0) {\n ;(baseOptions as any).computed = overrides.computed\n }\n if (overrides?.inlineMap && Object.keys(overrides.inlineMap).length > 0) {\n ;(baseOptions as any).methods = {\n ...(baseOptions as any).methods,\n [WEVU_INLINE_MAP_KEY]: overrides.inlineMap,\n }\n }\n if (templateRefs?.length) {\n ;(baseOptions as any)[WEVU_TEMPLATE_REFS_KEY] = templateRefs\n }\n if (layoutHosts?.length) {\n ;(baseOptions as Record<string, unknown>)[WEVU_LAYOUT_HOSTS_KEY] = layoutHosts\n }\n if (overrides?.[WEVU_BINDING_MANIFEST_KEY]) {\n ;(baseOptions as Record<string, unknown>)[WEVU_BINDING_MANIFEST_KEY] = overrides[WEVU_BINDING_MANIFEST_KEY]\n }\n\n return baseOptions\n}\n"],"mappings":"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"}
@@ -90,7 +90,7 @@ function createComponentDefinition(options, registerNative) {
90
90
  ...nativeData && typeof nativeData === "object" ? nativeData : {},
91
91
  [WEVU_SLOT_OWNER_ID_KEY]: shouldSeedNativeSlotOwnerId(mpOptions) ? nativeOwnerId || scopedSlotHooks?.allocateOwnerId() : nativeOwnerId || ""
92
92
  } : nativeData;
93
- const nativeInitialData = resolveNativeInitialData(seededNativeData, computed, resolvedSetData, methods);
93
+ const nativeInitialData = resolveNativeInitialData(seededNativeData, computed, resolvedSetData, methods, bindingManifest);
94
94
  const mpOptionsWithProps = nativeInitialData !== void 0 ? {
95
95
  ...normalizedMpOptions,
96
96
  data: nativeInitialData