wevu 6.19.0 → 6.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/dev/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/defineProperty.mjs +1 -1
  2. package/dist/dev/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/toPrimitive.mjs +1 -1
  3. package/dist/dev/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/toPropertyKey.mjs +1 -1
  4. package/dist/dev/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/typeof.mjs +1 -1
  5. package/dist/dev/index.mjs +0 -1
  6. package/dist/dev/package.mjs +1 -1
  7. package/dist/dev/reactivity/core.mjs +1 -1
  8. package/dist/dev/reactivity/reactive/patch.mjs +2 -1
  9. package/dist/dev/reactivity/reactive/patch.mjs.map +1 -1
  10. package/dist/dev/reactivity/reactive.mjs +2 -1
  11. package/dist/dev/reactivity/reactive.mjs.map +1 -1
  12. package/dist/dev/reactivity/ref.mjs +1 -1
  13. package/dist/dev/router/createRouter.mjs +6 -3
  14. package/dist/dev/router/createRouter.mjs.map +1 -1
  15. package/dist/dev/router/navigationTarget.mjs +2 -1
  16. package/dist/dev/router/navigationTarget.mjs.map +1 -1
  17. package/dist/dev/router/resolve.mjs +9 -2
  18. package/dist/dev/router/resolve.mjs.map +1 -1
  19. package/dist/dev/routerInternal/location.mjs +3 -1
  20. package/dist/dev/routerInternal/location.mjs.map +1 -1
  21. package/dist/dev/routerInternal/records.mjs +2 -1
  22. package/dist/dev/routerInternal/records.mjs.map +1 -1
  23. package/dist/dev/runtime/app/mount.mjs +2 -1
  24. package/dist/dev/runtime/app/mount.mjs.map +1 -1
  25. package/dist/dev/runtime/define/scopedSlotOptions.mjs +6 -3
  26. package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -1
  27. package/dist/dev/runtime/define.mjs +6 -4
  28. package/dist/dev/runtime/define.mjs.map +1 -1
  29. package/dist/dev/runtime/platform.mjs +4 -2
  30. package/dist/dev/runtime/platform.mjs.map +1 -1
  31. package/dist/dev/runtime/register/app.mjs +3 -1
  32. package/dist/dev/runtime/register/app.mjs.map +1 -1
  33. package/dist/dev/runtime/register/component/lifecycle/platform.mjs +2 -1
  34. package/dist/dev/runtime/register/component/lifecycle/platform.mjs.map +1 -1
  35. package/dist/dev/runtime/register/component/methods.mjs +3 -1
  36. package/dist/dev/runtime/register/component/methods.mjs.map +1 -1
  37. package/dist/dev/runtime/register/component.mjs +35 -34
  38. package/dist/dev/runtime/register/component.mjs.map +1 -1
  39. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +4 -2
  40. package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -1
  41. package/dist/dev/runtime/register/runtimeInstance.mjs +6 -3
  42. package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -1
  43. package/dist/dev/runtime/register/snapshot.mjs +2 -1
  44. package/dist/dev/runtime/register/snapshot.mjs.map +1 -1
  45. package/dist/dev/runtime/templateRefs/helpers.mjs +13 -8
  46. package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -1
  47. package/dist/dev/runtime/vueCompat/model.mjs +2 -1
  48. package/dist/dev/runtime/vueCompat/model.mjs.map +1 -1
  49. package/dist/dev/vue-demi.mjs +0 -158
  50. package/dist/dev/vue-demi.mjs.map +1 -1
  51. package/dist/index.mjs +1 -1
  52. package/dist/package.mjs +1 -1
  53. package/dist/reactivity/core.mjs +1 -1
  54. package/dist/reactivity/reactive/patch.mjs +1 -1
  55. package/dist/reactivity/reactive.mjs +1 -1
  56. package/dist/reactivity/ref.mjs +1 -1
  57. package/dist/reactivity/watch/helpers.mjs +1 -1
  58. package/dist/router/createRouter.mjs +1 -1
  59. package/dist/router/navigationTarget.mjs +1 -1
  60. package/dist/router/resolve.mjs +1 -1
  61. package/dist/routerInternal/location.mjs +1 -1
  62. package/dist/routerInternal/records.mjs +1 -1
  63. package/dist/runtime/app/mount.mjs +1 -1
  64. package/dist/runtime/define/scopedSlotOptions.mjs +1 -1
  65. package/dist/runtime/define.mjs +1 -1
  66. package/dist/runtime/platform.mjs +1 -1
  67. package/dist/runtime/register/app.mjs +1 -1
  68. package/dist/runtime/register/component/lifecycle/platform.mjs +1 -1
  69. package/dist/runtime/register/component/methods.mjs +1 -1
  70. package/dist/runtime/register/component/props.mjs +1 -1
  71. package/dist/runtime/register/component.mjs +1 -1
  72. package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -1
  73. package/dist/runtime/register/runtimeInstance.mjs +1 -1
  74. package/dist/runtime/register/snapshot.mjs +1 -1
  75. package/dist/runtime/templateRefs/helpers.mjs +1 -1
  76. package/dist/runtime/vueCompat/model.mjs +1 -1
  77. package/dist/store/storeToRefs.mjs +1 -1
  78. package/dist/vue-demi.d.mts +1 -3
  79. package/dist/vue-demi.mjs +1 -1
  80. package/package.json +4 -4
  81. package/dist/_virtual/_rolldown/runtime.mjs +0 -1
  82. package/dist/dev/_virtual/_rolldown/runtime.mjs +0 -36
  83. /package/dist/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/defineProperty.mjs +0 -0
  84. /package/dist/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/toPrimitive.mjs +0 -0
  85. /package/dist/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/toPropertyKey.mjs +0 -0
  86. /package/dist/_virtual/{_@oxc-project_runtime@0.139.0 → _@oxc-project_runtime@0.142.0}/helpers/esm/typeof.mjs +0 -0
@@ -65,45 +65,46 @@ function registerComponent(runtimeApp, methods, watch, setup, mpOptions) {
65
65
  },
66
66
  runtimeMethods: methods
67
67
  });
68
+ const pageLifecycleHooks = createPageLifecycleHooks({
69
+ runtimeApp,
70
+ watch,
71
+ setup,
72
+ userOnLoad,
73
+ userOnUnload,
74
+ userOnShow,
75
+ userOnHide,
76
+ userOnReady,
77
+ isPage,
78
+ enableOnSaveExitState,
79
+ enableOnPullDownRefresh,
80
+ enableOnReachBottom,
81
+ enableOnPageScroll,
82
+ enableOnRouteDone,
83
+ enableOnRouteDoneFallback,
84
+ enableOnTabItemTap,
85
+ enableOnResize,
86
+ enableOnShareAppMessage,
87
+ enableOnShareTimeline,
88
+ enableOnAddToFavorites,
89
+ syncWevuPropsFromValues,
90
+ effectiveOnSaveExitState,
91
+ effectiveOnPullDownRefresh,
92
+ effectiveOnReachBottom,
93
+ effectiveOnPageScroll,
94
+ effectiveOnRouteDone,
95
+ effectiveOnTabItemTap,
96
+ effectiveOnResize,
97
+ effectiveOnShareAppMessage,
98
+ effectiveOnShareTimeline,
99
+ effectiveOnAddToFavorites,
100
+ hasHook
101
+ });
68
102
  registerComponentDefinition({
69
103
  runtimeApp,
70
104
  watch,
71
105
  setup,
72
106
  restOptions,
73
- pageLifecycleHooks: createPageLifecycleHooks({
74
- runtimeApp,
75
- watch,
76
- setup,
77
- userOnLoad,
78
- userOnUnload,
79
- userOnShow,
80
- userOnHide,
81
- userOnReady,
82
- isPage,
83
- enableOnSaveExitState,
84
- enableOnPullDownRefresh,
85
- enableOnReachBottom,
86
- enableOnPageScroll,
87
- enableOnRouteDone,
88
- enableOnRouteDoneFallback,
89
- enableOnTabItemTap,
90
- enableOnResize,
91
- enableOnShareAppMessage,
92
- enableOnShareTimeline,
93
- enableOnAddToFavorites,
94
- syncWevuPropsFromValues,
95
- effectiveOnSaveExitState,
96
- effectiveOnPullDownRefresh,
97
- effectiveOnReachBottom,
98
- effectiveOnPageScroll,
99
- effectiveOnRouteDone,
100
- effectiveOnTabItemTap,
101
- effectiveOnResize,
102
- effectiveOnShareAppMessage,
103
- effectiveOnShareTimeline,
104
- effectiveOnAddToFavorites,
105
- hasHook
106
- }),
107
+ pageLifecycleHooks,
107
108
  finalObservers,
108
109
  userLifetimes,
109
110
  userPageLifetimes,
@@ -1 +1 @@
1
- {"version":3,"file":"component.mjs","names":[],"sources":["../../../../src/runtime/register/component.ts"],"sourcesContent":["import type { ComponentPropsOptions, ComputedDefinitions, DefineComponentOptions, InternalRuntimeState, MethodDefinitions, MiniProgramComponentRawOptions, RuntimeApp } from '../types'\nimport type { WatchMap } from './watch'\nimport { WEVU_EXPOSED_KEY, WEVU_HOOKS_KEY } from '@weapp-core/constants'\nimport { resolveComponentFeatures } from './component/features'\nimport { createPageLifecycleHooks } from './component/lifecycle'\nimport { createComponentMethods } from './component/methods'\nimport { getRuntimeOwnerLabel, prepareComponentOptions } from './component/options'\nimport { createPropsSync } from './component/props'\nimport { registerComponentDefinition } from './component/registerDefinition'\n\n/**\n * 注册组件入口(框架内部使用)。\n * @internal\n */\nexport function registerComponent<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n runtimeApp: RuntimeApp<D, C, M>,\n methods: MethodDefinitions,\n watch: WatchMap | undefined,\n setup: DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup'],\n mpOptions: MiniProgramComponentRawOptions,\n) {\n const {\n userMethods,\n userLifetimes,\n userPageLifetimes,\n userOptions,\n restOptions,\n topLevelMethods,\n templateRefs,\n layoutHosts,\n propsAliases,\n propsDerivedKeys,\n userObservers,\n setupLifecycle,\n vueLifecycles,\n isPage,\n features,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n applyExtraInstanceFields,\n } = prepareComponentOptions(mpOptions)\n\n const {\n enableOnPullDownRefresh,\n enableOnReachBottom,\n enableOnPageScroll,\n enableOnRouteDone,\n enableOnRouteDoneFallback,\n enableOnTabItemTap,\n enableOnResize,\n enableOnShareAppMessage,\n enableOnShareTimeline,\n enableOnAddToFavorites,\n enableOnSaveExitState,\n effectiveOnSaveExitState,\n effectiveOnPullDownRefresh,\n effectiveOnReachBottom,\n effectiveOnPageScroll,\n effectiveOnRouteDone,\n effectiveOnTabItemTap,\n effectiveOnResize,\n effectiveOnShareAppMessage,\n effectiveOnShareTimeline,\n effectiveOnAddToFavorites,\n } = resolveComponentFeatures({\n features,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n })\n\n const hasHook = (target: InternalRuntimeState, name: string) => {\n const hooks = target[WEVU_HOOKS_KEY]\n if (!hooks) {\n return false\n }\n const entry = (hooks as any)[name]\n if (!entry) {\n return false\n }\n if (Array.isArray(entry)) {\n return entry.length > 0\n }\n return typeof entry === 'function'\n }\n\n // 自动对齐 Vue 3 的 expose:\n // - 若用户未提供 component-export 的 export(),默认返回 setup() 中 expose() 写入的 __wevuExposed\n // - 若用户同时提供 export() 与 expose(),则自动浅合并(export() 优先级更高)\n {\n const userExport = (restOptions as any).export\n ;(restOptions as any).export = function __wevu_export(this: InternalRuntimeState) {\n const exposed = (this as any)[WEVU_EXPOSED_KEY] ?? {}\n const base = typeof userExport === 'function' ? userExport.call(this) : {}\n\n if (base && typeof base === 'object' && !Array.isArray(base)) {\n return {\n ...exposed,\n ...base,\n }\n }\n\n // 若用户 export() 返回非对象(理论上不应发生),则保持原返回值;否则回退 exposed\n return base ?? exposed\n }\n }\n\n // 默认启用多 slot 以兼容微信小程序具名插槽写法;用户显式配置时保持原值\n const finalOptions = {\n multipleSlots: (userOptions as any).multipleSlots ?? true,\n ...(userOptions as any),\n }\n\n const { attachWevuPropKeys, directPropsDerivedKeys, syncWevuPropsFromInstance, syncWevuPropsFromValues, finalObservers } = createPropsSync({\n restOptions,\n propsAliases,\n propsDerivedKeys,\n userObservers,\n })\n\n const { finalMethods } = createComponentMethods({\n userMethods: {\n ...topLevelMethods,\n ...userMethods,\n },\n runtimeMethods: methods,\n })\n\n const pageLifecycleHooks = createPageLifecycleHooks({\n runtimeApp,\n watch,\n setup,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n isPage,\n enableOnSaveExitState,\n enableOnPullDownRefresh,\n enableOnReachBottom,\n enableOnPageScroll,\n enableOnRouteDone,\n enableOnRouteDoneFallback,\n enableOnTabItemTap,\n enableOnResize,\n enableOnShareAppMessage,\n enableOnShareTimeline,\n enableOnAddToFavorites,\n syncWevuPropsFromValues,\n effectiveOnSaveExitState,\n effectiveOnPullDownRefresh,\n effectiveOnReachBottom,\n effectiveOnPageScroll,\n effectiveOnRouteDone,\n effectiveOnTabItemTap,\n effectiveOnResize,\n effectiveOnShareAppMessage,\n effectiveOnShareTimeline,\n effectiveOnAddToFavorites,\n hasHook,\n })\n\n registerComponentDefinition({\n runtimeApp,\n watch,\n setup,\n restOptions,\n pageLifecycleHooks,\n finalObservers,\n userLifetimes,\n userPageLifetimes,\n finalMethods,\n finalOptions,\n applyExtraInstanceFields,\n templateRefs,\n layoutHosts,\n attachWevuPropKeys,\n setupLifecycle,\n syncWevuPropsFromInstance,\n syncWevuPropsFromValues,\n directPropsDerivedKeys,\n isPage,\n vueLifecycles,\n getRuntimeOwnerLabel,\n })\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,kBACd,YACA,SACA,OACA,OACA,WACA;;CACA,MAAM,EACJ,aACA,eACA,mBACA,aACA,aACA,iBACA,cACA,aACA,cACA,kBACA,eACA,gBACA,eACA,QACA,UACA,YACA,cACA,YACA,YACA,aACA,qBACA,uBACA,mBACA,kBACA,iBACA,kBACA,cACA,uBACA,qBACA,sBACA,6BACE,wBAAwB,SAAS;CAErC,MAAM,EACJ,yBACA,qBACA,oBACA,mBACA,2BACA,oBACA,gBACA,yBACA,uBACA,wBACA,uBACA,0BACA,4BACA,wBACA,uBACA,sBACA,uBACA,mBACA,4BACA,0BACA,8BACE,yBAAyB;EAC3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,WAAW,QAA8B,SAAiB;EAC9D,MAAM,QAAQ,OAAO;EACrB,IAAI,CAAC,OACH,OAAO;EAET,MAAM,QAAS,MAAc;EAC7B,IAAI,CAAC,OACH,OAAO;EAET,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,MAAM,SAAS;EAExB,OAAO,OAAO,UAAU;CAC1B;CAKA;EACE,MAAM,aAAc,YAAoB;EACvC,AAAC,YAAoB,SAAS,SAAS,gBAA0C;;GAChF,MAAM,+BAAW,KAAa,kFAAqB,CAAC;GACpD,MAAM,OAAO,OAAO,eAAe,aAAa,WAAW,KAAK,IAAI,IAAI,CAAC;GAEzE,IAAI,QAAQ,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,IAAI,GACzD,OAAO;IACL,GAAG;IACH,GAAG;GACL;GAIF,OAAO,0CAAQ;EACjB;CACF;CAGA,MAAM,eAAe;EACnB,iCAAgB,YAAoB,wEAAiB;EACrD,GAAI;CACN;CAEA,MAAM,EAAE,oBAAoB,wBAAwB,2BAA2B,yBAAyB,mBAAmB,gBAAgB;EACzI;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,EAAE,iBAAiB,uBAAuB;EAC9C,aAAa;GACX,GAAG;GACH,GAAG;EACL;EACA,gBAAgB;CAClB,CAAC;CAqCD,4BAA4B;EAC1B;EACA;EACA;EACA;EACA,oBAxCyB,yBAAyB;GAClD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAOmB;EACjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"component.mjs","names":[],"sources":["../../../../src/runtime/register/component.ts"],"sourcesContent":["import type { ComponentPropsOptions, ComputedDefinitions, DefineComponentOptions, InternalRuntimeState, MethodDefinitions, MiniProgramComponentRawOptions, RuntimeApp } from '../types'\nimport type { WatchMap } from './watch'\nimport { WEVU_EXPOSED_KEY, WEVU_HOOKS_KEY } from '@weapp-core/constants'\nimport { resolveComponentFeatures } from './component/features'\nimport { createPageLifecycleHooks } from './component/lifecycle'\nimport { createComponentMethods } from './component/methods'\nimport { getRuntimeOwnerLabel, prepareComponentOptions } from './component/options'\nimport { createPropsSync } from './component/props'\nimport { registerComponentDefinition } from './component/registerDefinition'\n\n/**\n * 注册组件入口(框架内部使用)。\n * @internal\n */\nexport function registerComponent<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n runtimeApp: RuntimeApp<D, C, M>,\n methods: MethodDefinitions,\n watch: WatchMap | undefined,\n setup: DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup'],\n mpOptions: MiniProgramComponentRawOptions,\n) {\n const {\n userMethods,\n userLifetimes,\n userPageLifetimes,\n userOptions,\n restOptions,\n topLevelMethods,\n templateRefs,\n layoutHosts,\n propsAliases,\n propsDerivedKeys,\n userObservers,\n setupLifecycle,\n vueLifecycles,\n isPage,\n features,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n applyExtraInstanceFields,\n } = prepareComponentOptions(mpOptions)\n\n const {\n enableOnPullDownRefresh,\n enableOnReachBottom,\n enableOnPageScroll,\n enableOnRouteDone,\n enableOnRouteDoneFallback,\n enableOnTabItemTap,\n enableOnResize,\n enableOnShareAppMessage,\n enableOnShareTimeline,\n enableOnAddToFavorites,\n enableOnSaveExitState,\n effectiveOnSaveExitState,\n effectiveOnPullDownRefresh,\n effectiveOnReachBottom,\n effectiveOnPageScroll,\n effectiveOnRouteDone,\n effectiveOnTabItemTap,\n effectiveOnResize,\n effectiveOnShareAppMessage,\n effectiveOnShareTimeline,\n effectiveOnAddToFavorites,\n } = resolveComponentFeatures({\n features,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n })\n\n const hasHook = (target: InternalRuntimeState, name: string) => {\n const hooks = target[WEVU_HOOKS_KEY]\n if (!hooks) {\n return false\n }\n const entry = (hooks as any)[name]\n if (!entry) {\n return false\n }\n if (Array.isArray(entry)) {\n return entry.length > 0\n }\n return typeof entry === 'function'\n }\n\n // 自动对齐 Vue 3 的 expose:\n // - 若用户未提供 component-export 的 export(),默认返回 setup() 中 expose() 写入的 __wevuExposed\n // - 若用户同时提供 export() 与 expose(),则自动浅合并(export() 优先级更高)\n {\n const userExport = (restOptions as any).export\n ;(restOptions as any).export = function __wevu_export(this: InternalRuntimeState) {\n const exposed = (this as any)[WEVU_EXPOSED_KEY] ?? {}\n const base = typeof userExport === 'function' ? userExport.call(this) : {}\n\n if (base && typeof base === 'object' && !Array.isArray(base)) {\n return {\n ...exposed,\n ...base,\n }\n }\n\n // 若用户 export() 返回非对象(理论上不应发生),则保持原返回值;否则回退 exposed\n return base ?? exposed\n }\n }\n\n // 默认启用多 slot 以兼容微信小程序具名插槽写法;用户显式配置时保持原值\n const finalOptions = {\n multipleSlots: (userOptions as any).multipleSlots ?? true,\n ...(userOptions as any),\n }\n\n const { attachWevuPropKeys, directPropsDerivedKeys, syncWevuPropsFromInstance, syncWevuPropsFromValues, finalObservers } = createPropsSync({\n restOptions,\n propsAliases,\n propsDerivedKeys,\n userObservers,\n })\n\n const { finalMethods } = createComponentMethods({\n userMethods: {\n ...topLevelMethods,\n ...userMethods,\n },\n runtimeMethods: methods,\n })\n\n const pageLifecycleHooks = createPageLifecycleHooks({\n runtimeApp,\n watch,\n setup,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n isPage,\n enableOnSaveExitState,\n enableOnPullDownRefresh,\n enableOnReachBottom,\n enableOnPageScroll,\n enableOnRouteDone,\n enableOnRouteDoneFallback,\n enableOnTabItemTap,\n enableOnResize,\n enableOnShareAppMessage,\n enableOnShareTimeline,\n enableOnAddToFavorites,\n syncWevuPropsFromValues,\n effectiveOnSaveExitState,\n effectiveOnPullDownRefresh,\n effectiveOnReachBottom,\n effectiveOnPageScroll,\n effectiveOnRouteDone,\n effectiveOnTabItemTap,\n effectiveOnResize,\n effectiveOnShareAppMessage,\n effectiveOnShareTimeline,\n effectiveOnAddToFavorites,\n hasHook,\n })\n\n registerComponentDefinition({\n runtimeApp,\n watch,\n setup,\n restOptions,\n pageLifecycleHooks,\n finalObservers,\n userLifetimes,\n userPageLifetimes,\n finalMethods,\n finalOptions,\n applyExtraInstanceFields,\n templateRefs,\n layoutHosts,\n attachWevuPropKeys,\n setupLifecycle,\n syncWevuPropsFromInstance,\n syncWevuPropsFromValues,\n directPropsDerivedKeys,\n isPage,\n vueLifecycles,\n getRuntimeOwnerLabel,\n })\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,kBACd,YACA,SACA,OACA,OACA,WACA;;CACA,MAAM,EACJ,aACA,eACA,mBACA,aACA,aACA,iBACA,cACA,aACA,cACA,kBACA,eACA,gBACA,eACA,QACA,UACA,YACA,cACA,YACA,YACA,aACA,qBACA,uBACA,mBACA,kBACA,iBACA,kBACA,cACA,uBACA,qBACA,sBACA,6BACE,wBAAwB,SAAS;CAErC,MAAM,EACJ,yBACA,qBACA,oBACA,mBACA,2BACA,oBACA,gBACA,yBACA,uBACA,wBACA,uBACA,0BACA,4BACA,wBACA,uBACA,sBACA,uBACA,mBACA,4BACA,0BACA,8BACE,yBAAyB;EAC3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,WAAW,QAA8B,SAAiB;EAC9D,MAAM,QAAQ,OAAO;EACrB,IAAI,CAAC,OACH,OAAO;EAET,MAAM,QAAS,MAAc;EAC7B,IAAI,CAAC,OACH,OAAO;EAET,IAAI,MAAM,QAAQ,KAAK,GACrB,OAAO,MAAM,SAAS;EAExB,OAAO,OAAO,UAAU;CAC1B;CAKA;EACE,MAAM,aAAc,YAAoB;EACvC,AAAC,YAAoB,SAAS,SAAS,gBAA0C;;GAChF,MAAM,+BAAW,KAAa,kFAAqB,CAAC;GACpD,MAAM,OAAO,OAAO,eAAe,aAAa,WAAW,KAAK,IAAI,IAAI,CAAC;GAEzE,IAAI,QAAQ,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,IAAI,GACzD,OAAO;IACL,GAAG;IACH,GAAG;GACL;GAIF,OAAO,0CAAQ;EACjB;CACF;CAGA,MAAM,eAAe;EACnB,iCAAgB,YAAoB,wEAAiB;EACrD,GAAI;CACN;CAEA,MAAM,EAAE,oBAAoB,wBAAwB,2BAA2B,yBAAyB,mBAAmB,gBAAgB;EACzI;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,EAAE,iBAAiB,uBAAuB;EAC9C,aAAa;GACX,GAAG;GACH,GAAG;EACL;EACA,gBAAgB;CAClB,CAAC;CAED,MAAM,qBAAqB,yBAAyB;EAClD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,4BAA4B;EAC1B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH"}
@@ -71,7 +71,8 @@ function isInternalAttrKey(key) {
71
71
  function runRuntimeSetupPhase(options) {
72
72
  var _runtimeWithDefaults$;
73
73
  const { target, runtime, runtimeWithDefaults, runtimeState, runtimeProxy, setup } = options;
74
- const props = ensureRuntimeProps(target, runtimeState, target.properties || {});
74
+ const mpProperties = target.properties || {};
75
+ const props = ensureRuntimeProps(target, runtimeState, mpProperties);
75
76
  const attrs = shallowReactive(Object.create(null));
76
77
  const declaredPropKeys = new Set(Array.isArray(target[WEVU_PROP_KEYS_KEY]) ? target[WEVU_PROP_KEYS_KEY] : []);
77
78
  const hasRuntimeStateKey = (key) => {
@@ -100,7 +101,8 @@ function runRuntimeSetupPhase(options) {
100
101
  const setupInstance = ensureSetupContextInstance(target, runtimeWithDefaults);
101
102
  attachVueCompatInstanceView(target, setupInstance);
102
103
  const slots = attachRuntimeSlots(runtimeState, props);
103
- attachRuntimeSetupState(runtimeState, (_runtimeWithDefaults$ = runtimeWithDefaults.setupState) !== null && _runtimeWithDefaults$ !== void 0 ? _runtimeWithDefaults$ : Object.create(null));
104
+ const setupState = (_runtimeWithDefaults$ = runtimeWithDefaults.setupState) !== null && _runtimeWithDefaults$ !== void 0 ? _runtimeWithDefaults$ : Object.create(null);
105
+ attachRuntimeSetupState(runtimeState, setupState);
104
106
  const context = safeMarkNoSetData({
105
107
  props,
106
108
  runtime: runtimeWithDefaults,
@@ -1 +1 @@
1
- {"version":3,"file":"setupPhase.mjs","names":[],"sources":["../../../../../src/runtime/register/runtimeInstance/setupPhase.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n ComputedDefinitions,\n DefineAppOptions,\n DefineComponentOptions,\n InternalRuntimeState,\n MethodDefinitions,\n RuntimeInstance,\n} from '../../types'\nimport {\n WEVU_ATTRS_KEY,\n WEVU_EFFECT_SCOPE_KEY,\n WEVU_EXPOSED_KEY,\n WEVU_PROP_KEYS_KEY,\n} from '@weapp-core/constants'\nimport { effectScope, isReactive, shallowReactive, toRaw } from '../../../reactivity'\nimport { hasOwn } from '../../../utils'\nimport { normalizeEmitEventName } from '../../emit'\nimport { setCurrentInstance, setCurrentSetupContext } from '../../hooks'\nimport { hasTrackableSetupBinding } from '../../setupTracking'\nimport { runSetupFunction } from '../setup'\nimport {\n attachRuntimeSlots,\n ensureSetupContextInstance,\n normalizeEmitPayload,\n safeMarkNoSetData,\n} from './setupContext'\nimport { attachRuntimeSetupState, ensureRuntimeProps } from './utils'\n\ntype RuntimeSetupFunction<\n D extends object,\n C extends ComputedDefinitions,\n M extends MethodDefinitions,\n> = DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup']\n | DefineAppOptions<D, C, M>['setup']\n\nlet vueCompatInstanceUid = 0\n\nfunction attachVueCompatInstanceView(target: InternalRuntimeState, proxy: Record<string, any>) {\n const internal = target as Record<string, any>\n const descriptors: PropertyDescriptorMap = {\n proxy: {\n configurable: true,\n enumerable: false,\n value: proxy,\n writable: false,\n },\n $: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n uid: {\n configurable: true,\n enumerable: false,\n value: ++vueCompatInstanceUid,\n writable: false,\n },\n exposed: {\n configurable: true,\n enumerable: false,\n get: () => target[WEVU_EXPOSED_KEY],\n },\n }\n for (const [key, descriptor] of Object.entries(descriptors)) {\n try {\n Object.defineProperty(internal, key, descriptor)\n }\n catch {\n if ('value' in descriptor) {\n internal[key] = descriptor.value\n }\n }\n }\n const publicDescriptors: PropertyDescriptorMap = {\n $: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n $el: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n }\n for (const [key, descriptor] of Object.entries(publicDescriptors)) {\n try {\n Object.defineProperty(proxy, key, descriptor)\n }\n catch {\n proxy[key] = descriptor.value\n }\n }\n}\n\nfunction isInternalAttrKey(key: string) {\n return key.startsWith('__wv_')\n}\n\nexport function runRuntimeSetupPhase<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: {\n target: InternalRuntimeState\n runtime: RuntimeInstance<D, C, M>\n runtimeWithDefaults: RuntimeInstance<any, any, any>\n runtimeState: Record<string, any>\n runtimeProxy: Record<string, any>\n setup: RuntimeSetupFunction<D, C, M>\n}) {\n const {\n target,\n runtime,\n runtimeWithDefaults,\n runtimeState,\n runtimeProxy,\n setup,\n } = options\n\n // 从小程序 properties 提取 props 供 setup 使用,并复用 runtime state 上的 props 容器,\n // 避免 computed 首次求值早于 setup 时丢失依赖。\n const mpProperties = ((target as any).properties || {}) as Record<string, any>\n const props = ensureRuntimeProps(target, runtimeState, mpProperties)\n\n // 与 Vue 3 对齐:attrs = 非 props 的 attributes。\n // 在小程序场景中,attrs 来源于 instance.properties 中“未声明在 props/properties 的字段”。\n const attrs = shallowReactive(Object.create(null)) as Record<string, any>\n const declaredPropKeys = new Set(\n Array.isArray((target as any)[WEVU_PROP_KEYS_KEY])\n ? ((target as any)[WEVU_PROP_KEYS_KEY] as string[])\n : [],\n )\n const hasRuntimeStateKey = (key: string) => {\n return runtimeState != null\n && typeof runtimeState === 'object'\n && hasOwn(runtimeState as Record<string, unknown>, key)\n }\n const syncAttrsFromProperties = () => {\n const next = ((target as any).properties && typeof (target as any).properties === 'object')\n ? ((target as any).properties as Record<string, unknown>)\n : undefined\n\n for (const existingKey of Object.keys(attrs)) {\n if (\n !next\n || !hasOwn(next, existingKey)\n || isInternalAttrKey(existingKey)\n || declaredPropKeys.has(existingKey)\n || hasRuntimeStateKey(existingKey)\n ) {\n delete attrs[existingKey]\n }\n }\n\n if (!next) {\n return\n }\n\n for (const [key, value] of Object.entries(next)) {\n if (isInternalAttrKey(key) || declaredPropKeys.has(key) || hasRuntimeStateKey(key)) {\n continue\n }\n attrs[key] = value\n }\n }\n syncAttrsFromProperties()\n\n try {\n Object.defineProperty(target, WEVU_ATTRS_KEY, {\n value: attrs,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(target as any)[WEVU_ATTRS_KEY] = attrs\n }\n\n const setupInstance = ensureSetupContextInstance(target, runtimeWithDefaults)\n attachVueCompatInstanceView(target, setupInstance as Record<string, any>)\n const slots = attachRuntimeSlots(runtimeState, props)\n const setupState = runtimeWithDefaults.setupState ?? Object.create(null)\n attachRuntimeSetupState(runtimeState, setupState)\n\n const context = safeMarkNoSetData({\n // 与 Vue 3 对齐的 ctx.props\n props,\n\n // 现有运行时能力\n runtime: runtimeWithDefaults,\n state: runtimeState,\n proxy: runtimeProxy,\n bindModel: runtime.bindModel.bind(runtimeWithDefaults),\n watch: runtime.watch.bind(runtimeWithDefaults),\n instance: setupInstance,\n\n // 通过小程序 triggerEvent 派发事件,并兼容 Vue 3 的 emit(event, ...args) 形式。\n emit: (event: string, ...args: any[]) => {\n const { detail, options } = normalizeEmitPayload(args)\n const eventName = normalizeEmitEventName(event)\n setupInstance.triggerEvent(eventName, detail, options)\n },\n\n // 与 Vue 3 对齐的 expose\n expose: (exposed: Record<string, any>) => {\n target[WEVU_EXPOSED_KEY] = exposed\n },\n\n // 与 Vue 3 对齐的 attrs(小程序中为非 props 属性集合)\n attrs,\n\n // 与 Vue 3 对齐的 slots(由编译期传入的 slot 名元数据驱动)\n slots,\n }) as any\n\n // 仅在同步 setup 执行期间暴露 current instance\n const instanceScope = effectScope(true)\n target[WEVU_EFFECT_SCOPE_KEY] = instanceScope\n setCurrentInstance(target)\n setCurrentSetupContext(context)\n try {\n const result = instanceScope.run(() => runSetupFunction(setup, props, context))\n let methodsChanged = false\n if (result && typeof result === 'object') {\n const runtimeSetupState = (runtime as any).setupState && typeof (runtime as any).setupState === 'object'\n ? (isReactive((runtime as any).setupState) ? toRaw((runtime as any).setupState) : (runtime as any).setupState)\n : Object.create(null)\n Object.keys(result).forEach((key) => {\n const val = (result as any)[key]\n if (typeof val === 'function') {\n ;(runtime.methods as any)[key] = (...args: any[]) => (val as any).apply((runtime as any).proxy, args)\n ;(runtime.state as any)[key] = (...args: any[]) => (val as any).apply((runtime as any).proxy, args)\n methodsChanged = true\n }\n else {\n if (hasTrackableSetupBinding(val)) {\n ;(runtime as any).__wevu_trackSetupReactiveKey?.(key)\n }\n ;(runtime.state as any)[key] = val\n ;(runtimeSetupState as any)[key] = val\n }\n })\n }\n if (methodsChanged) {\n ;(runtime as any).__wevu_touchSetupMethodsVersion?.()\n }\n }\n catch (error) {\n instanceScope.stop()\n target[WEVU_EFFECT_SCOPE_KEY] = undefined\n throw error\n }\n finally {\n setCurrentSetupContext(undefined)\n setCurrentInstance(undefined)\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"setupPhase.mjs","names":[],"sources":["../../../../../src/runtime/register/runtimeInstance/setupPhase.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n ComputedDefinitions,\n DefineAppOptions,\n DefineComponentOptions,\n InternalRuntimeState,\n MethodDefinitions,\n RuntimeInstance,\n} from '../../types'\nimport {\n WEVU_ATTRS_KEY,\n WEVU_EFFECT_SCOPE_KEY,\n WEVU_EXPOSED_KEY,\n WEVU_PROP_KEYS_KEY,\n} from '@weapp-core/constants'\nimport { effectScope, isReactive, shallowReactive, toRaw } from '../../../reactivity'\nimport { hasOwn } from '../../../utils'\nimport { normalizeEmitEventName } from '../../emit'\nimport { setCurrentInstance, setCurrentSetupContext } from '../../hooks'\nimport { hasTrackableSetupBinding } from '../../setupTracking'\nimport { runSetupFunction } from '../setup'\nimport {\n attachRuntimeSlots,\n ensureSetupContextInstance,\n normalizeEmitPayload,\n safeMarkNoSetData,\n} from './setupContext'\nimport { attachRuntimeSetupState, ensureRuntimeProps } from './utils'\n\ntype RuntimeSetupFunction<\n D extends object,\n C extends ComputedDefinitions,\n M extends MethodDefinitions,\n> = DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup']\n | DefineAppOptions<D, C, M>['setup']\n\nlet vueCompatInstanceUid = 0\n\nfunction attachVueCompatInstanceView(target: InternalRuntimeState, proxy: Record<string, any>) {\n const internal = target as Record<string, any>\n const descriptors: PropertyDescriptorMap = {\n proxy: {\n configurable: true,\n enumerable: false,\n value: proxy,\n writable: false,\n },\n $: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n uid: {\n configurable: true,\n enumerable: false,\n value: ++vueCompatInstanceUid,\n writable: false,\n },\n exposed: {\n configurable: true,\n enumerable: false,\n get: () => target[WEVU_EXPOSED_KEY],\n },\n }\n for (const [key, descriptor] of Object.entries(descriptors)) {\n try {\n Object.defineProperty(internal, key, descriptor)\n }\n catch {\n if ('value' in descriptor) {\n internal[key] = descriptor.value\n }\n }\n }\n const publicDescriptors: PropertyDescriptorMap = {\n $: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n $el: {\n configurable: true,\n enumerable: false,\n value: target,\n writable: false,\n },\n }\n for (const [key, descriptor] of Object.entries(publicDescriptors)) {\n try {\n Object.defineProperty(proxy, key, descriptor)\n }\n catch {\n proxy[key] = descriptor.value\n }\n }\n}\n\nfunction isInternalAttrKey(key: string) {\n return key.startsWith('__wv_')\n}\n\nexport function runRuntimeSetupPhase<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: {\n target: InternalRuntimeState\n runtime: RuntimeInstance<D, C, M>\n runtimeWithDefaults: RuntimeInstance<any, any, any>\n runtimeState: Record<string, any>\n runtimeProxy: Record<string, any>\n setup: RuntimeSetupFunction<D, C, M>\n}) {\n const {\n target,\n runtime,\n runtimeWithDefaults,\n runtimeState,\n runtimeProxy,\n setup,\n } = options\n\n // 从小程序 properties 提取 props 供 setup 使用,并复用 runtime state 上的 props 容器,\n // 避免 computed 首次求值早于 setup 时丢失依赖。\n const mpProperties = ((target as any).properties || {}) as Record<string, any>\n const props = ensureRuntimeProps(target, runtimeState, mpProperties)\n\n // 与 Vue 3 对齐:attrs = 非 props 的 attributes。\n // 在小程序场景中,attrs 来源于 instance.properties 中“未声明在 props/properties 的字段”。\n const attrs = shallowReactive(Object.create(null)) as Record<string, any>\n const declaredPropKeys = new Set(\n Array.isArray((target as any)[WEVU_PROP_KEYS_KEY])\n ? ((target as any)[WEVU_PROP_KEYS_KEY] as string[])\n : [],\n )\n const hasRuntimeStateKey = (key: string) => {\n return runtimeState != null\n && typeof runtimeState === 'object'\n && hasOwn(runtimeState as Record<string, unknown>, key)\n }\n const syncAttrsFromProperties = () => {\n const next = ((target as any).properties && typeof (target as any).properties === 'object')\n ? ((target as any).properties as Record<string, unknown>)\n : undefined\n\n for (const existingKey of Object.keys(attrs)) {\n if (\n !next\n || !hasOwn(next, existingKey)\n || isInternalAttrKey(existingKey)\n || declaredPropKeys.has(existingKey)\n || hasRuntimeStateKey(existingKey)\n ) {\n delete attrs[existingKey]\n }\n }\n\n if (!next) {\n return\n }\n\n for (const [key, value] of Object.entries(next)) {\n if (isInternalAttrKey(key) || declaredPropKeys.has(key) || hasRuntimeStateKey(key)) {\n continue\n }\n attrs[key] = value\n }\n }\n syncAttrsFromProperties()\n\n try {\n Object.defineProperty(target, WEVU_ATTRS_KEY, {\n value: attrs,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(target as any)[WEVU_ATTRS_KEY] = attrs\n }\n\n const setupInstance = ensureSetupContextInstance(target, runtimeWithDefaults)\n attachVueCompatInstanceView(target, setupInstance as Record<string, any>)\n const slots = attachRuntimeSlots(runtimeState, props)\n const setupState = runtimeWithDefaults.setupState ?? Object.create(null)\n attachRuntimeSetupState(runtimeState, setupState)\n\n const context = safeMarkNoSetData({\n // 与 Vue 3 对齐的 ctx.props\n props,\n\n // 现有运行时能力\n runtime: runtimeWithDefaults,\n state: runtimeState,\n proxy: runtimeProxy,\n bindModel: runtime.bindModel.bind(runtimeWithDefaults),\n watch: runtime.watch.bind(runtimeWithDefaults),\n instance: setupInstance,\n\n // 通过小程序 triggerEvent 派发事件,并兼容 Vue 3 的 emit(event, ...args) 形式。\n emit: (event: string, ...args: any[]) => {\n const { detail, options } = normalizeEmitPayload(args)\n const eventName = normalizeEmitEventName(event)\n setupInstance.triggerEvent(eventName, detail, options)\n },\n\n // 与 Vue 3 对齐的 expose\n expose: (exposed: Record<string, any>) => {\n target[WEVU_EXPOSED_KEY] = exposed\n },\n\n // 与 Vue 3 对齐的 attrs(小程序中为非 props 属性集合)\n attrs,\n\n // 与 Vue 3 对齐的 slots(由编译期传入的 slot 名元数据驱动)\n slots,\n }) as any\n\n // 仅在同步 setup 执行期间暴露 current instance\n const instanceScope = effectScope(true)\n target[WEVU_EFFECT_SCOPE_KEY] = instanceScope\n setCurrentInstance(target)\n setCurrentSetupContext(context)\n try {\n const result = instanceScope.run(() => runSetupFunction(setup, props, context))\n let methodsChanged = false\n if (result && typeof result === 'object') {\n const runtimeSetupState = (runtime as any).setupState && typeof (runtime as any).setupState === 'object'\n ? (isReactive((runtime as any).setupState) ? toRaw((runtime as any).setupState) : (runtime as any).setupState)\n : Object.create(null)\n Object.keys(result).forEach((key) => {\n const val = (result as any)[key]\n if (typeof val === 'function') {\n ;(runtime.methods as any)[key] = (...args: any[]) => (val as any).apply((runtime as any).proxy, args)\n ;(runtime.state as any)[key] = (...args: any[]) => (val as any).apply((runtime as any).proxy, args)\n methodsChanged = true\n }\n else {\n if (hasTrackableSetupBinding(val)) {\n ;(runtime as any).__wevu_trackSetupReactiveKey?.(key)\n }\n ;(runtime.state as any)[key] = val\n ;(runtimeSetupState as any)[key] = val\n }\n })\n }\n if (methodsChanged) {\n ;(runtime as any).__wevu_touchSetupMethodsVersion?.()\n }\n }\n catch (error) {\n instanceScope.stop()\n target[WEVU_EFFECT_SCOPE_KEY] = undefined\n throw error\n }\n finally {\n setCurrentSetupContext(undefined)\n setCurrentInstance(undefined)\n }\n}\n"],"mappings":"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"}
@@ -109,7 +109,8 @@ function mountRuntimeInstance(target, runtimeApp, watchMap, setup, options) {
109
109
  const callbacks = pendingCallbacks;
110
110
  pending = void 0;
111
111
  pendingCallbacks = [];
112
- callNativeSetData(instance, setData, payload, callbacks.length ? () => callbacks.forEach((callback) => callback()) : void 0);
112
+ const callback = callbacks.length ? () => callbacks.forEach((callback) => callback()) : void 0;
113
+ callNativeSetData(instance, setData, payload, callback);
113
114
  }
114
115
  };
115
116
  return adapter;
@@ -129,7 +130,8 @@ function mountRuntimeInstance(target, runtimeApp, watchMap, setup, options) {
129
130
  var _WEVU_PROPS_KEY;
130
131
  if (!runtimeRef) return;
131
132
  const snapshot = resolveOwnerSnapshot(runtimeRef);
132
- mergeOwnerSnapshotProps(snapshot, (_WEVU_PROPS_KEY = target[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : target.properties);
133
+ const propsSource = (_WEVU_PROPS_KEY = target[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : target.properties;
134
+ mergeOwnerSnapshotProps(snapshot, propsSource);
133
135
  updateOwnerSnapshot(ownerId, snapshot, runtimeRef.proxy, target);
134
136
  };
135
137
  const syncNativeOwnerId = () => {
@@ -281,7 +283,8 @@ function mountRuntimeInstance(target, runtimeApp, watchMap, setup, options) {
281
283
  });
282
284
  target.__wevu = runtimeWithDefaults;
283
285
  attachPageLayoutSetter(target);
284
- attachRuntimeSlots(runtimeState, ensureRuntimeProps(target, runtimeState));
286
+ const runtimeProps = ensureRuntimeProps(target, runtimeState);
287
+ attachRuntimeSlots(runtimeState, runtimeProps);
285
288
  attachOwnerSnapshot(target, runtimeWithDefaults, ownerId, { deferSnapshot: options === null || options === void 0 ? void 0 : options.deferSetData });
286
289
  syncNativeOwnerId();
287
290
  const watchStops = watchMap ? registerWatches(runtimeWithDefaults, watchMap, target, { deferMissingSourceBaseline: Boolean(setup) }) : [];
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeInstance.mjs","names":[],"sources":["../../../../src/runtime/register/runtimeInstance.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n ComputedDefinitions,\n DefineAppOptions,\n DefineComponentOptions,\n InternalRuntimeState,\n MethodDefinitions,\n RuntimeApp,\n RuntimeInstance,\n} from '../types'\nimport type { AdapterWithSetData } from './runtimeInstance/utils'\nimport type { WatchMap } from './watch'\nimport {\n WEVU_EFFECT_SCOPE_KEY,\n WEVU_HOOKS_KEY,\n WEVU_PAGE_LAYOUT_NAME_KEY,\n WEVU_PAGE_LAYOUT_PROPS_KEY,\n WEVU_PAGE_LAYOUT_SETTER_KEY,\n WEVU_PAGE_SCROLL_HOOK_DEPTH_KEY,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n WEVU_PROPS_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_RUNTIME_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_TEMPLATE_REFS_KEY,\n WEVU_WATCH_STOPS_KEY,\n} from '@weapp-core/constants'\nimport { isRef } from '../../reactivity'\nimport { isDeepEqualValue } from '../app/setData/snapshot'\nimport { callHookList } from '../hooks'\nimport { resolveRuntimePageLayoutName, syncRuntimePageLayoutState } from '../pageLayout'\nimport { allocateOwnerId, attachOwnerSnapshot, mergeOwnerSnapshotProps, removeOwner, resolveOwnerSnapshot, updateOwnerSnapshot } from '../scopedSlots'\nimport { clearTemplateRefs, scheduleTemplateRefUpdate } from '../templateRefs'\nimport { bridgeRuntimeMethodsToTarget } from './runtimeInstance/methodBridge'\nimport { attachRuntimeProvideParentContext } from './runtimeInstance/provideContext'\nimport {\n attachRuntimeSlots,\n createNoopWatchStopHandle,\n safeMarkNoSetData,\n} from './runtimeInstance/setupContext'\nimport { runRuntimeSetupPhase } from './runtimeInstance/setupPhase'\nimport {\n attachNativeInstanceRef,\n attachRuntimeInstance,\n attachRuntimeRef,\n callNativeSetData,\n ensureRuntimeProps,\n resolveNativeSetData,\n} from './runtimeInstance/utils'\nimport { createSetDataHighFrequencyWarningMonitor } from './setDataFrequencyWarning'\nimport { registerWatches } from './watch'\n\nfunction cloneInitialSnapshotValue(value: unknown, cache = new WeakMap<object, unknown>()): unknown {\n if (!value || typeof value !== 'object') {\n return value\n }\n if (cache.has(value as object)) {\n return cache.get(value as object)\n }\n if (Array.isArray(value)) {\n const next: unknown[] = []\n cache.set(value, next)\n for (const item of value) {\n next.push(cloneInitialSnapshotValue(item, cache))\n }\n return next\n }\n const next: Record<string, unknown> = {}\n cache.set(value as object, next)\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n next[key] = cloneInitialSnapshotValue(child, cache)\n }\n return next\n}\n\nfunction resolveInitialSnapshotFromNativeData(\n target: InternalRuntimeState,\n omitKeys?: string[],\n extraEntries?: Record<string, unknown>,\n) {\n const data = (target as any).data\n if ((!data || typeof data !== 'object') && (!extraEntries || !Object.keys(extraEntries).length)) {\n return undefined\n }\n const omitSet = Array.isArray(omitKeys) && omitKeys.length\n ? new Set(omitKeys)\n : undefined\n const snapshot: Record<string, any> = {}\n if (data && typeof data === 'object') {\n for (const [key, value] of Object.entries(data as Record<string, unknown>)) {\n if (omitSet?.has(key)) {\n continue\n }\n snapshot[key] = cloneInitialSnapshotValue(value)\n }\n }\n if (extraEntries) {\n for (const [key, value] of Object.entries(extraEntries)) {\n if (omitSet?.has(key)) {\n continue\n }\n snapshot[key] = cloneInitialSnapshotValue(value)\n }\n }\n return snapshot\n}\n\nfunction hasTemplateRuntimeBindings(runtimeApp: RuntimeApp<any, any, any>) {\n return Boolean((runtimeApp as any)?.__wevuHasTemplateRuntimeBindings)\n}\n\ntype RuntimeSetupFunction<\n D extends object,\n C extends ComputedDefinitions,\n M extends MethodDefinitions,\n> = DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup']\n | DefineAppOptions<D, C, M>['setup']\n\ntype RuntimeInstanceWithSyncFlush<\n D extends object,\n C extends ComputedDefinitions,\n M extends MethodDefinitions,\n> = RuntimeInstance<D, C, M> & {\n __wevu_flushSetupSnapshotSync?: () => void\n __wevu_touchSetupMethodsVersion?: () => void\n __wevu_trackSetupReactiveKey?: (key: string) => void\n}\n\nfunction attachPageLayoutSetter(target: InternalRuntimeState) {\n if (typeof (target as any).route !== 'string' || !(target as any).route) {\n return\n }\n\n target[WEVU_PAGE_LAYOUT_SETTER_KEY] = (layout: string | false, props?: Record<string, any>) => {\n const runtimeState = target.__wevu?.state as Record<string, any> | undefined\n if (!runtimeState || typeof runtimeState !== 'object') {\n return\n }\n\n runtimeState[WEVU_PAGE_LAYOUT_NAME_KEY] = resolveRuntimePageLayoutName(layout)\n const nextProps = layout === false ? {} : (props ?? {})\n runtimeState[WEVU_PAGE_LAYOUT_PROPS_KEY] = nextProps\n syncRuntimePageLayoutState(target as Record<string, any>, layout, nextProps)\n }\n}\n\n/**\n * 挂载运行时实例(框架内部注册流程使用)。\n * @internal\n */\nexport function mountRuntimeInstance<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n target: InternalRuntimeState,\n runtimeApp: RuntimeApp<D, C, M>,\n watchMap: WatchMap | undefined,\n setup?: RuntimeSetupFunction<D, C, M>,\n options?: { deferSetData?: boolean, snapshotOmitKeys?: string[] },\n) {\n if (target.__wevu) {\n return target.__wevu as RuntimeInstance<D, C, M>\n }\n attachRuntimeProvideParentContext(target, runtimeApp as RuntimeApp<any, any, any>)\n safeMarkNoSetData(target)\n const initialNativeOwnerId = (target as any).data?.[WEVU_SLOT_OWNER_ID_KEY]\n const ownerId = typeof initialNativeOwnerId === 'string' && initialNativeOwnerId\n ? initialNativeOwnerId\n : allocateOwnerId()\n const shouldFlushNativeOwnerId = typeof initialNativeOwnerId === 'string' && initialNativeOwnerId !== ownerId\n const suspendWhenHidden = Boolean((runtimeApp as any)?.__wevuSetDataOptions?.suspendWhenHidden)\n const targetLabel = typeof (target as any).route === 'string' && (target as any).route\n ? `page:${(target as any).route}`\n : typeof (target as any).is === 'string' && (target as any).is\n ? `component:${(target as any).is}`\n : 'unknown-target'\n const highFrequencyWarning = createSetDataHighFrequencyWarningMonitor({\n option: (runtimeApp as any)?.__wevuSetDataOptions?.highFrequencyWarning,\n targetLabel,\n isInPageScrollHook: () => Number((target as any)[WEVU_PAGE_SCROLL_HOOK_DEPTH_KEY] ?? 0) > 0,\n })\n const createDeferredAdapter = (instance: InternalRuntimeState): AdapterWithSetData => {\n let pending: Record<string, any> | undefined\n let pendingCallbacks: Array<() => void> = []\n let enabled = false\n const adapter: AdapterWithSetData = {\n setData(payload: Record<string, any>, callback?: () => void) {\n if (!enabled) {\n pending = {\n ...(pending ?? {}),\n ...payload,\n }\n if (callback) {\n pendingCallbacks.push(callback)\n }\n return undefined\n }\n const setData = resolveNativeSetData(instance)\n if (setData) {\n return callNativeSetData(instance, setData, payload, callback)\n }\n return undefined\n },\n }\n adapter.__wevu_enableSetData = (discardPending = false) => {\n enabled = true\n if (discardPending) {\n pending = undefined\n pendingCallbacks = []\n }\n const setData = resolveNativeSetData(instance)\n if (pending && Object.keys(pending).length && setData) {\n const payload = pending\n const callbacks = pendingCallbacks\n pending = undefined\n pendingCallbacks = []\n const callback = callbacks.length\n ? () => callbacks.forEach(callback => callback())\n : undefined\n callNativeSetData(instance, setData, payload, callback)\n }\n }\n return adapter\n }\n\n const baseAdapter: AdapterWithSetData = options?.deferSetData\n ? createDeferredAdapter(target)\n : {\n setData(payload: Record<string, any>, callback?: () => void) {\n const setData = resolveNativeSetData(target)\n if (setData) {\n return callNativeSetData(target, setData, payload, callback)\n }\n return undefined\n },\n }\n let runtimeRef: RuntimeInstance<any, any, any> | undefined\n let visible = true\n let hiddenPendingPayload: Record<string, any> | undefined\n\n const mergePendingPayload = (pending: Record<string, any> | undefined, payload: Record<string, any>) => ({\n ...(pending ?? {}),\n ...payload,\n })\n const refreshOwnerSnapshot = () => {\n if (!runtimeRef) {\n return\n }\n const snapshot = resolveOwnerSnapshot(runtimeRef)\n const propsSource = (target as any)[WEVU_PROPS_KEY] ?? (target as any).properties\n mergeOwnerSnapshotProps(snapshot, propsSource)\n updateOwnerSnapshot(ownerId, snapshot, runtimeRef.proxy, target)\n }\n const syncNativeOwnerId = () => {\n if (!shouldFlushNativeOwnerId) {\n return\n }\n const nativeData = (target as any).data\n try {\n if (nativeData && typeof nativeData === 'object') {\n nativeData[WEVU_SLOT_OWNER_ID_KEY] = ownerId\n }\n }\n catch {\n // 忽略直接写入失败,后续 setData 仍会尝试同步。\n }\n const setData = resolveNativeSetData(target)\n if (!setData) {\n return\n }\n callNativeSetData(target, setData, { [WEVU_SLOT_OWNER_ID_KEY]: ownerId })\n }\n const adapter: AdapterWithSetData = {\n ...(baseAdapter as any),\n setData(payload: Record<string, any>) {\n highFrequencyWarning?.()\n if (suspendWhenHidden && !visible) {\n hiddenPendingPayload = mergePendingPayload(hiddenPendingPayload, payload)\n refreshOwnerSnapshot()\n scheduleTemplateRefUpdate(target)\n return undefined\n }\n const hasTemplateRefs = Array.isArray((target as any)[WEVU_TEMPLATE_REFS_KEY])\n && (target as any)[WEVU_TEMPLATE_REFS_KEY].length > 0\n refreshOwnerSnapshot()\n if (hasTemplateRefs && resolveNativeSetData(target)) {\n return new Promise<void>((resolve) => {\n baseAdapter.setData(payload, () => {\n refreshOwnerSnapshot()\n scheduleTemplateRefUpdate(target)\n resolve()\n })\n })\n }\n const result = baseAdapter.setData(payload)\n scheduleTemplateRefUpdate(target)\n return result\n },\n __wevu_setVisibility(nextVisible: boolean) {\n visible = nextVisible\n if (!visible || !hiddenPendingPayload) {\n return undefined\n }\n const payload = hiddenPendingPayload\n hiddenPendingPayload = undefined\n const hasTemplateRefs = Array.isArray((target as any)[WEVU_TEMPLATE_REFS_KEY])\n && (target as any)[WEVU_TEMPLATE_REFS_KEY].length > 0\n refreshOwnerSnapshot()\n if (hasTemplateRefs && resolveNativeSetData(target)) {\n return new Promise<void>((resolve) => {\n baseAdapter.setData(payload, () => {\n refreshOwnerSnapshot()\n scheduleTemplateRefUpdate(target)\n resolve()\n })\n })\n }\n const result = baseAdapter.setData(payload)\n scheduleTemplateRefUpdate(target)\n return result\n },\n }\n\n const baseMountAdapter = {\n ...(adapter as any),\n }\n Object.defineProperty(baseMountAdapter, '__wevu_targetLabel', {\n configurable: true,\n enumerable: false,\n value: targetLabel,\n writable: false,\n })\n const targetProperties = (target as any).properties\n if (targetProperties && typeof targetProperties === 'object') {\n Object.defineProperty(baseMountAdapter, '__wevu_initialProps', {\n configurable: true,\n enumerable: false,\n value: targetProperties,\n writable: false,\n })\n }\n if (Array.isArray(options?.snapshotOmitKeys) && options.snapshotOmitKeys.length) {\n Object.defineProperty(baseMountAdapter, '__wevu_snapshotOmitKeys', {\n configurable: true,\n enumerable: false,\n value: options.snapshotOmitKeys,\n writable: false,\n })\n }\n const initialSnapshot = resolveInitialSnapshotFromNativeData(\n target,\n options?.snapshotOmitKeys,\n hasTemplateRuntimeBindings(runtimeApp)\n ? undefined\n : { [WEVU_SLOT_OWNER_ID_KEY]: ownerId },\n )\n if (initialSnapshot && Object.keys(initialSnapshot).length) {\n Object.defineProperty(baseMountAdapter, '__wevu_initialSnapshot', {\n configurable: true,\n enumerable: false,\n value: initialSnapshot,\n writable: false,\n })\n }\n Object.defineProperty(baseMountAdapter, '__wevu_initialState', {\n configurable: true,\n enumerable: false,\n value: { [WEVU_SLOT_OWNER_ID_KEY]: ownerId },\n writable: false,\n })\n const shouldDeferInitialSnapshot = Boolean(options?.deferSetData)\n || Boolean(setup)\n || Boolean(targetProperties && typeof targetProperties === 'object' && Object.keys(targetProperties).length > 0)\n if (shouldDeferInitialSnapshot) {\n Object.defineProperty(baseMountAdapter, '__wevu_deferInitialSnapshot', {\n configurable: true,\n enumerable: false,\n value: true,\n writable: false,\n })\n }\n const runtime = runtimeApp.mount(baseMountAdapter)\n runtimeRef = runtime\n attachRuntimeInstance(runtime as RuntimeInstance<any, any, any>, target)\n const runtimeProxy = runtime?.proxy ?? {}\n const runtimeState = runtime?.state ?? {}\n const runtimeSetupState = runtime?.setupState ?? Object.create(null)\n if (runtimeState && typeof runtimeState === 'object') {\n attachRuntimeRef(runtimeState as Record<string, any>, runtime)\n attachNativeInstanceRef(runtimeState as Record<string, any>, target)\n }\n const runtimeComputed = (runtime as any)?.computed ?? Object.create(null)\n // 防护:适配器可能返回不完整的 runtime(或被插件篡改),此处兜底补齐\n if (!runtime?.methods) {\n try {\n ;(runtime as any).methods = Object.create(null)\n }\n catch {\n // 若对象只读则忽略,后续将使用兜底 runtimeMethods\n }\n }\n const runtimeMethods = runtime?.methods ?? Object.create(null)\n const runtimeWatch = (runtime as any)?.watch ?? (() => createNoopWatchStopHandle())\n const runtimeBindModel = (runtime as any)?.bindModel ?? (() => {})\n const runtimeWithDefaults = {\n ...(runtime ?? {}),\n state: runtimeState,\n setupState: runtimeSetupState,\n proxy: runtimeProxy,\n methods: runtimeMethods,\n computed: runtimeComputed,\n watch: runtimeWatch,\n bindModel: runtimeBindModel,\n snapshot: (runtime as any)?.snapshot ?? (() => Object.create(null)),\n unmount: (runtime as any)?.unmount ?? (() => {}),\n } satisfies RuntimeInstance<any, any, any>\n Object.defineProperty(runtimeWithDefaults, '__wevu_initialRuntimeSnapshot', {\n configurable: true,\n enumerable: false,\n value: cloneInitialSnapshotValue(runtimeState),\n writable: false,\n })\n const runtimeWithSyncFlush = runtimeWithDefaults as RuntimeInstanceWithSyncFlush<D, C, M>\n const internalRuntimeFields = {\n __wevu_flushSetupSnapshotSync: (runtime as RuntimeInstanceWithSyncFlush<D, C, M>).__wevu_flushSetupSnapshotSync,\n __wevu_touchSetupMethodsVersion: (runtime as RuntimeInstanceWithSyncFlush<D, C, M>).__wevu_touchSetupMethodsVersion,\n __wevu_trackSetupReactiveKey: (runtime as RuntimeInstanceWithSyncFlush<D, C, M>).__wevu_trackSetupReactiveKey,\n [WEVU_PROPS_DERIVED_KEYS_KEY]: (runtime as any)[WEVU_PROPS_DERIVED_KEYS_KEY],\n }\n for (const [key, value] of Object.entries(internalRuntimeFields)) {\n if (!value) {\n continue\n }\n Object.defineProperty(runtimeWithDefaults, key, {\n configurable: true,\n enumerable: false,\n value,\n writable: true,\n })\n }\n\n Object.defineProperty(target, WEVU_PUBLIC_RUNTIME_KEY, {\n value: runtimeWithDefaults,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n target.__wevu = runtimeWithDefaults\n attachPageLayoutSetter(target)\n const runtimeProps = ensureRuntimeProps(target, runtimeState as Record<string, any>)\n attachRuntimeSlots(runtimeState as Record<string, any>, runtimeProps)\n\n attachOwnerSnapshot(target, runtimeWithDefaults as any, ownerId, {\n deferSnapshot: options?.deferSetData,\n })\n syncNativeOwnerId()\n\n const watchStops = watchMap\n ? registerWatches(runtimeWithDefaults, watchMap, target, {\n deferMissingSourceBaseline: Boolean(setup),\n })\n : []\n if (watchStops.length) {\n target[WEVU_WATCH_STOPS_KEY] = watchStops\n }\n\n if (setup) {\n runRuntimeSetupPhase({\n target,\n runtime,\n runtimeWithDefaults,\n runtimeState: runtimeState as Record<string, any>,\n runtimeProxy: runtimeProxy as Record<string, any>,\n setup,\n })\n if (!options?.deferSetData) {\n runtimeWithSyncFlush.__wevu_flushSetupSnapshotSync?.()\n }\n if (!options?.deferSetData) {\n refreshOwnerSnapshot()\n }\n for (const stop of watchStops) {\n stop.resume()\n }\n }\n else if (\n !options?.deferSetData\n && (target as any).properties\n && typeof (target as any).properties === 'object'\n && Object.keys((target as any).properties).length > 0\n ) {\n runtimeWithSyncFlush.__wevu_flushSetupSnapshotSync?.()\n refreshOwnerSnapshot()\n }\n\n // 将 runtime.methods 透传到原生实例,供小程序事件处理直接调用\n bridgeRuntimeMethodsToTarget(target, runtime)\n\n return runtime\n}\n\nfunction preserveRuntimeFacadeIdentity<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n target: InternalRuntimeState,\n previousRuntime: RuntimeInstance<D, C, M>,\n nextRuntime: RuntimeInstance<D, C, M>,\n) {\n for (const key of Reflect.ownKeys(previousRuntime)) {\n if (!Reflect.has(nextRuntime, key)) {\n const descriptor = Reflect.getOwnPropertyDescriptor(previousRuntime, key)\n if (descriptor?.configurable) {\n Reflect.deleteProperty(previousRuntime, key)\n }\n }\n }\n for (const key of Reflect.ownKeys(nextRuntime)) {\n const descriptor = Reflect.getOwnPropertyDescriptor(nextRuntime, key)\n if (!descriptor) {\n continue\n }\n try {\n Reflect.defineProperty(previousRuntime, key, descriptor)\n }\n catch {\n try {\n ;(previousRuntime as any)[key] = (nextRuntime as any)[key]\n }\n catch {\n // 宿主包装对象仍持有旧 runtime 时,保留无法覆盖的只读字段。\n }\n }\n }\n attachRuntimeRef(previousRuntime.state as Record<string, any>, previousRuntime)\n target.__wevu = previousRuntime\n Object.defineProperty(target, WEVU_PUBLIC_RUNTIME_KEY, {\n value: previousRuntime,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n return previousRuntime\n}\n\nfunction createRuntimeStateSnapshot(\n runtime: RuntimeInstance<any, any, any>,\n nativeData: Record<string, any> | undefined,\n preferredState?: Record<string, any>,\n) {\n const runtimeState = runtime.state as Record<string, any>\n const setupState = runtime.setupState as Record<string, any> | undefined\n const snapshot: Record<string, any> = {}\n for (const key of Object.keys(nativeData ?? {})) {\n if (!Object.prototype.hasOwnProperty.call(runtimeState, key)) {\n continue\n }\n if (preferredState && Object.prototype.hasOwnProperty.call(preferredState, key)) {\n snapshot[key] = cloneInitialSnapshotValue(preferredState[key])\n continue\n }\n const setupBinding = setupState?.[key]\n snapshot[key] = cloneInitialSnapshotValue(isRef(setupBinding) ? setupBinding.value : runtimeState[key])\n }\n return snapshot\n}\n\nfunction syncRuntimeStateFromNativeData(\n target: InternalRuntimeState,\n options?: { includeSetupState?: boolean, nativeData?: Record<string, any> },\n) {\n const runtime = target.__wevu\n const runtimeState = runtime?.state as Record<string, any> | undefined\n const setupState = runtime?.setupState as Record<string, any> | undefined\n const nativeData = options?.nativeData ?? (target as any).data as Record<string, any> | undefined\n if (!runtimeState || typeof runtimeState !== 'object' || !nativeData || typeof nativeData !== 'object') {\n return\n }\n const initialRuntimeSnapshot = (runtime as any)?.__wevu_initialRuntimeSnapshot as Record<string, any> | undefined\n for (const [key, value] of Object.entries(nativeData)) {\n if (!key || key === 'undefined') {\n continue\n }\n if (Object.prototype.hasOwnProperty.call(runtimeState, key)) {\n try {\n const setupBinding = setupState?.[key]\n const runtimeValue = cloneInitialSnapshotValue(value)\n if (!options?.includeSetupState && setupState && Object.prototype.hasOwnProperty.call(setupState, key)) {\n continue\n }\n if (\n !options?.includeSetupState\n && initialRuntimeSnapshot\n && Object.prototype.hasOwnProperty.call(initialRuntimeSnapshot, key)\n && !isDeepEqualValue(runtimeState[key], initialRuntimeSnapshot[key], 20, { keys: 10_000 })\n ) {\n continue\n }\n if (\n !options?.includeSetupState\n && initialRuntimeSnapshot\n && !Object.prototype.hasOwnProperty.call(initialRuntimeSnapshot, key)\n ) {\n continue\n }\n if (isRef(setupBinding)) {\n setupBinding.value = runtimeValue\n continue\n }\n runtimeState[key] = runtimeValue\n }\n catch {\n // DevTools 热更新期间可能带入响应式 state 拒绝写入的临时 data key,跳过即可。\n }\n }\n }\n}\n\nexport function enableDeferredSetData(\n target: InternalRuntimeState,\n options?: { rehydrateSetupState?: boolean },\n) {\n const adapter = (target as any).__wevu?.adapter\n syncRuntimeStateFromNativeData(target, {\n includeSetupState: options?.rehydrateSetupState,\n })\n if (adapter && typeof (adapter as any).__wevu_enableSetData === 'function') {\n ;(adapter as any).__wevu_enableSetData(true)\n }\n ;(target as any).__wevu?.__wevu_flushSetupSnapshotSync?.()\n}\n\nexport function setRuntimeSetDataVisibility(target: InternalRuntimeState, visible: boolean) {\n const adapter = (target as any).__wevu?.adapter\n if (adapter && typeof (adapter as any).__wevu_setVisibility === 'function') {\n ;(adapter as any).__wevu_setVisibility(visible)\n }\n}\n\n/**\n * 卸载运行时实例(框架内部注册流程使用)。\n * @internal\n */\nexport function teardownRuntimeInstance(target: InternalRuntimeState, options?: { skipHooks?: boolean }) {\n const runtime = target.__wevu\n const ownerId = (target as any)[WEVU_RUNTIME_OWNER_ID_KEY]\n ?? (target as any)[WEVU_SLOT_OWNER_ID_KEY]\n if (ownerId) {\n removeOwner(ownerId)\n }\n clearTemplateRefs(target)\n // 触发卸载钩子(仅在 teardown 首次执行时触发)\n if (!options?.skipHooks && runtime && target[WEVU_HOOKS_KEY]) {\n callHookList(target, 'onUnload', [])\n }\n // 清理注册的生命周期钩子\n if (target[WEVU_HOOKS_KEY]) {\n target[WEVU_HOOKS_KEY] = undefined\n }\n const stops = target[WEVU_WATCH_STOPS_KEY]\n if (Array.isArray(stops)) {\n for (const stop of stops) {\n try {\n stop()\n }\n catch {\n // 避免 teardown 中断:单个 stop 失败不阻塞其他清理\n }\n }\n }\n target[WEVU_WATCH_STOPS_KEY] = undefined\n target[WEVU_EFFECT_SCOPE_KEY]?.stop()\n target[WEVU_EFFECT_SCOPE_KEY] = undefined\n if (runtime) {\n runtime.unmount()\n }\n delete target.__wevu\n if (WEVU_PUBLIC_RUNTIME_KEY in target) {\n delete (target as any)[WEVU_PUBLIC_RUNTIME_KEY]\n }\n}\n\n/**\n * 重建运行时实例,同时保持宿主包装对象持有的 runtime facade 身份稳定。\n * @internal\n */\nexport function refreshRuntimeInstance<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n target: InternalRuntimeState,\n runtimeApp: RuntimeApp<D, C, M>,\n watchMap: WatchMap | undefined,\n setup?: RuntimeSetupFunction<D, C, M>,\n options?: { snapshotOmitKeys?: string[], stateSnapshot?: Record<string, any> },\n) {\n const previousRuntime = target.__wevu as RuntimeInstance<D, C, M> | undefined\n const previousRuntimeState = previousRuntime\n ? createRuntimeStateSnapshot(previousRuntime, (target as any).data, options?.stateSnapshot)\n : undefined\n teardownRuntimeInstance(target, { skipHooks: true })\n const nextRuntime = mountRuntimeInstance(target, runtimeApp, watchMap, setup, {\n deferSetData: true,\n snapshotOmitKeys: options?.snapshotOmitKeys,\n })\n if (previousRuntimeState) {\n const nativeData = (target as any).data\n if (nativeData && typeof nativeData === 'object') {\n Object.assign(nativeData, cloneInitialSnapshotValue(previousRuntimeState))\n }\n syncRuntimeStateFromNativeData(target, {\n includeSetupState: true,\n nativeData: previousRuntimeState,\n })\n }\n if (!previousRuntime || previousRuntime === nextRuntime) {\n return nextRuntime\n }\n return preserveRuntimeFacadeIdentity(target, previousRuntime, nextRuntime)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"runtimeInstance.mjs","names":[],"sources":["../../../../src/runtime/register/runtimeInstance.ts"],"sourcesContent":["import type {\n ComponentPropsOptions,\n ComputedDefinitions,\n DefineAppOptions,\n DefineComponentOptions,\n InternalRuntimeState,\n MethodDefinitions,\n RuntimeApp,\n RuntimeInstance,\n} from '../types'\nimport type { AdapterWithSetData } from './runtimeInstance/utils'\nimport type { WatchMap } from './watch'\nimport {\n WEVU_EFFECT_SCOPE_KEY,\n WEVU_HOOKS_KEY,\n WEVU_PAGE_LAYOUT_NAME_KEY,\n WEVU_PAGE_LAYOUT_PROPS_KEY,\n WEVU_PAGE_LAYOUT_SETTER_KEY,\n WEVU_PAGE_SCROLL_HOOK_DEPTH_KEY,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n WEVU_PROPS_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_RUNTIME_OWNER_ID_KEY,\n WEVU_SLOT_OWNER_ID_KEY,\n WEVU_TEMPLATE_REFS_KEY,\n WEVU_WATCH_STOPS_KEY,\n} from '@weapp-core/constants'\nimport { isRef } from '../../reactivity'\nimport { isDeepEqualValue } from '../app/setData/snapshot'\nimport { callHookList } from '../hooks'\nimport { resolveRuntimePageLayoutName, syncRuntimePageLayoutState } from '../pageLayout'\nimport { allocateOwnerId, attachOwnerSnapshot, mergeOwnerSnapshotProps, removeOwner, resolveOwnerSnapshot, updateOwnerSnapshot } from '../scopedSlots'\nimport { clearTemplateRefs, scheduleTemplateRefUpdate } from '../templateRefs'\nimport { bridgeRuntimeMethodsToTarget } from './runtimeInstance/methodBridge'\nimport { attachRuntimeProvideParentContext } from './runtimeInstance/provideContext'\nimport {\n attachRuntimeSlots,\n createNoopWatchStopHandle,\n safeMarkNoSetData,\n} from './runtimeInstance/setupContext'\nimport { runRuntimeSetupPhase } from './runtimeInstance/setupPhase'\nimport {\n attachNativeInstanceRef,\n attachRuntimeInstance,\n attachRuntimeRef,\n callNativeSetData,\n ensureRuntimeProps,\n resolveNativeSetData,\n} from './runtimeInstance/utils'\nimport { createSetDataHighFrequencyWarningMonitor } from './setDataFrequencyWarning'\nimport { registerWatches } from './watch'\n\nfunction cloneInitialSnapshotValue(value: unknown, cache = new WeakMap<object, unknown>()): unknown {\n if (!value || typeof value !== 'object') {\n return value\n }\n if (cache.has(value as object)) {\n return cache.get(value as object)\n }\n if (Array.isArray(value)) {\n const next: unknown[] = []\n cache.set(value, next)\n for (const item of value) {\n next.push(cloneInitialSnapshotValue(item, cache))\n }\n return next\n }\n const next: Record<string, unknown> = {}\n cache.set(value as object, next)\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n next[key] = cloneInitialSnapshotValue(child, cache)\n }\n return next\n}\n\nfunction resolveInitialSnapshotFromNativeData(\n target: InternalRuntimeState,\n omitKeys?: string[],\n extraEntries?: Record<string, unknown>,\n) {\n const data = (target as any).data\n if ((!data || typeof data !== 'object') && (!extraEntries || !Object.keys(extraEntries).length)) {\n return undefined\n }\n const omitSet = Array.isArray(omitKeys) && omitKeys.length\n ? new Set(omitKeys)\n : undefined\n const snapshot: Record<string, any> = {}\n if (data && typeof data === 'object') {\n for (const [key, value] of Object.entries(data as Record<string, unknown>)) {\n if (omitSet?.has(key)) {\n continue\n }\n snapshot[key] = cloneInitialSnapshotValue(value)\n }\n }\n if (extraEntries) {\n for (const [key, value] of Object.entries(extraEntries)) {\n if (omitSet?.has(key)) {\n continue\n }\n snapshot[key] = cloneInitialSnapshotValue(value)\n }\n }\n return snapshot\n}\n\nfunction hasTemplateRuntimeBindings(runtimeApp: RuntimeApp<any, any, any>) {\n return Boolean((runtimeApp as any)?.__wevuHasTemplateRuntimeBindings)\n}\n\ntype RuntimeSetupFunction<\n D extends object,\n C extends ComputedDefinitions,\n M extends MethodDefinitions,\n> = DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup']\n | DefineAppOptions<D, C, M>['setup']\n\ntype RuntimeInstanceWithSyncFlush<\n D extends object,\n C extends ComputedDefinitions,\n M extends MethodDefinitions,\n> = RuntimeInstance<D, C, M> & {\n __wevu_flushSetupSnapshotSync?: () => void\n __wevu_touchSetupMethodsVersion?: () => void\n __wevu_trackSetupReactiveKey?: (key: string) => void\n}\n\nfunction attachPageLayoutSetter(target: InternalRuntimeState) {\n if (typeof (target as any).route !== 'string' || !(target as any).route) {\n return\n }\n\n target[WEVU_PAGE_LAYOUT_SETTER_KEY] = (layout: string | false, props?: Record<string, any>) => {\n const runtimeState = target.__wevu?.state as Record<string, any> | undefined\n if (!runtimeState || typeof runtimeState !== 'object') {\n return\n }\n\n runtimeState[WEVU_PAGE_LAYOUT_NAME_KEY] = resolveRuntimePageLayoutName(layout)\n const nextProps = layout === false ? {} : (props ?? {})\n runtimeState[WEVU_PAGE_LAYOUT_PROPS_KEY] = nextProps\n syncRuntimePageLayoutState(target as Record<string, any>, layout, nextProps)\n }\n}\n\n/**\n * 挂载运行时实例(框架内部注册流程使用)。\n * @internal\n */\nexport function mountRuntimeInstance<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n target: InternalRuntimeState,\n runtimeApp: RuntimeApp<D, C, M>,\n watchMap: WatchMap | undefined,\n setup?: RuntimeSetupFunction<D, C, M>,\n options?: { deferSetData?: boolean, snapshotOmitKeys?: string[] },\n) {\n if (target.__wevu) {\n return target.__wevu as RuntimeInstance<D, C, M>\n }\n attachRuntimeProvideParentContext(target, runtimeApp as RuntimeApp<any, any, any>)\n safeMarkNoSetData(target)\n const initialNativeOwnerId = (target as any).data?.[WEVU_SLOT_OWNER_ID_KEY]\n const ownerId = typeof initialNativeOwnerId === 'string' && initialNativeOwnerId\n ? initialNativeOwnerId\n : allocateOwnerId()\n const shouldFlushNativeOwnerId = typeof initialNativeOwnerId === 'string' && initialNativeOwnerId !== ownerId\n const suspendWhenHidden = Boolean((runtimeApp as any)?.__wevuSetDataOptions?.suspendWhenHidden)\n const targetLabel = typeof (target as any).route === 'string' && (target as any).route\n ? `page:${(target as any).route}`\n : typeof (target as any).is === 'string' && (target as any).is\n ? `component:${(target as any).is}`\n : 'unknown-target'\n const highFrequencyWarning = createSetDataHighFrequencyWarningMonitor({\n option: (runtimeApp as any)?.__wevuSetDataOptions?.highFrequencyWarning,\n targetLabel,\n isInPageScrollHook: () => Number((target as any)[WEVU_PAGE_SCROLL_HOOK_DEPTH_KEY] ?? 0) > 0,\n })\n const createDeferredAdapter = (instance: InternalRuntimeState): AdapterWithSetData => {\n let pending: Record<string, any> | undefined\n let pendingCallbacks: Array<() => void> = []\n let enabled = false\n const adapter: AdapterWithSetData = {\n setData(payload: Record<string, any>, callback?: () => void) {\n if (!enabled) {\n pending = {\n ...(pending ?? {}),\n ...payload,\n }\n if (callback) {\n pendingCallbacks.push(callback)\n }\n return undefined\n }\n const setData = resolveNativeSetData(instance)\n if (setData) {\n return callNativeSetData(instance, setData, payload, callback)\n }\n return undefined\n },\n }\n adapter.__wevu_enableSetData = (discardPending = false) => {\n enabled = true\n if (discardPending) {\n pending = undefined\n pendingCallbacks = []\n }\n const setData = resolveNativeSetData(instance)\n if (pending && Object.keys(pending).length && setData) {\n const payload = pending\n const callbacks = pendingCallbacks\n pending = undefined\n pendingCallbacks = []\n const callback = callbacks.length\n ? () => callbacks.forEach(callback => callback())\n : undefined\n callNativeSetData(instance, setData, payload, callback)\n }\n }\n return adapter\n }\n\n const baseAdapter: AdapterWithSetData = options?.deferSetData\n ? createDeferredAdapter(target)\n : {\n setData(payload: Record<string, any>, callback?: () => void) {\n const setData = resolveNativeSetData(target)\n if (setData) {\n return callNativeSetData(target, setData, payload, callback)\n }\n return undefined\n },\n }\n let runtimeRef: RuntimeInstance<any, any, any> | undefined\n let visible = true\n let hiddenPendingPayload: Record<string, any> | undefined\n\n const mergePendingPayload = (pending: Record<string, any> | undefined, payload: Record<string, any>) => ({\n ...(pending ?? {}),\n ...payload,\n })\n const refreshOwnerSnapshot = () => {\n if (!runtimeRef) {\n return\n }\n const snapshot = resolveOwnerSnapshot(runtimeRef)\n const propsSource = (target as any)[WEVU_PROPS_KEY] ?? (target as any).properties\n mergeOwnerSnapshotProps(snapshot, propsSource)\n updateOwnerSnapshot(ownerId, snapshot, runtimeRef.proxy, target)\n }\n const syncNativeOwnerId = () => {\n if (!shouldFlushNativeOwnerId) {\n return\n }\n const nativeData = (target as any).data\n try {\n if (nativeData && typeof nativeData === 'object') {\n nativeData[WEVU_SLOT_OWNER_ID_KEY] = ownerId\n }\n }\n catch {\n // 忽略直接写入失败,后续 setData 仍会尝试同步。\n }\n const setData = resolveNativeSetData(target)\n if (!setData) {\n return\n }\n callNativeSetData(target, setData, { [WEVU_SLOT_OWNER_ID_KEY]: ownerId })\n }\n const adapter: AdapterWithSetData = {\n ...(baseAdapter as any),\n setData(payload: Record<string, any>) {\n highFrequencyWarning?.()\n if (suspendWhenHidden && !visible) {\n hiddenPendingPayload = mergePendingPayload(hiddenPendingPayload, payload)\n refreshOwnerSnapshot()\n scheduleTemplateRefUpdate(target)\n return undefined\n }\n const hasTemplateRefs = Array.isArray((target as any)[WEVU_TEMPLATE_REFS_KEY])\n && (target as any)[WEVU_TEMPLATE_REFS_KEY].length > 0\n refreshOwnerSnapshot()\n if (hasTemplateRefs && resolveNativeSetData(target)) {\n return new Promise<void>((resolve) => {\n baseAdapter.setData(payload, () => {\n refreshOwnerSnapshot()\n scheduleTemplateRefUpdate(target)\n resolve()\n })\n })\n }\n const result = baseAdapter.setData(payload)\n scheduleTemplateRefUpdate(target)\n return result\n },\n __wevu_setVisibility(nextVisible: boolean) {\n visible = nextVisible\n if (!visible || !hiddenPendingPayload) {\n return undefined\n }\n const payload = hiddenPendingPayload\n hiddenPendingPayload = undefined\n const hasTemplateRefs = Array.isArray((target as any)[WEVU_TEMPLATE_REFS_KEY])\n && (target as any)[WEVU_TEMPLATE_REFS_KEY].length > 0\n refreshOwnerSnapshot()\n if (hasTemplateRefs && resolveNativeSetData(target)) {\n return new Promise<void>((resolve) => {\n baseAdapter.setData(payload, () => {\n refreshOwnerSnapshot()\n scheduleTemplateRefUpdate(target)\n resolve()\n })\n })\n }\n const result = baseAdapter.setData(payload)\n scheduleTemplateRefUpdate(target)\n return result\n },\n }\n\n const baseMountAdapter = {\n ...(adapter as any),\n }\n Object.defineProperty(baseMountAdapter, '__wevu_targetLabel', {\n configurable: true,\n enumerable: false,\n value: targetLabel,\n writable: false,\n })\n const targetProperties = (target as any).properties\n if (targetProperties && typeof targetProperties === 'object') {\n Object.defineProperty(baseMountAdapter, '__wevu_initialProps', {\n configurable: true,\n enumerable: false,\n value: targetProperties,\n writable: false,\n })\n }\n if (Array.isArray(options?.snapshotOmitKeys) && options.snapshotOmitKeys.length) {\n Object.defineProperty(baseMountAdapter, '__wevu_snapshotOmitKeys', {\n configurable: true,\n enumerable: false,\n value: options.snapshotOmitKeys,\n writable: false,\n })\n }\n const initialSnapshot = resolveInitialSnapshotFromNativeData(\n target,\n options?.snapshotOmitKeys,\n hasTemplateRuntimeBindings(runtimeApp)\n ? undefined\n : { [WEVU_SLOT_OWNER_ID_KEY]: ownerId },\n )\n if (initialSnapshot && Object.keys(initialSnapshot).length) {\n Object.defineProperty(baseMountAdapter, '__wevu_initialSnapshot', {\n configurable: true,\n enumerable: false,\n value: initialSnapshot,\n writable: false,\n })\n }\n Object.defineProperty(baseMountAdapter, '__wevu_initialState', {\n configurable: true,\n enumerable: false,\n value: { [WEVU_SLOT_OWNER_ID_KEY]: ownerId },\n writable: false,\n })\n const shouldDeferInitialSnapshot = Boolean(options?.deferSetData)\n || Boolean(setup)\n || Boolean(targetProperties && typeof targetProperties === 'object' && Object.keys(targetProperties).length > 0)\n if (shouldDeferInitialSnapshot) {\n Object.defineProperty(baseMountAdapter, '__wevu_deferInitialSnapshot', {\n configurable: true,\n enumerable: false,\n value: true,\n writable: false,\n })\n }\n const runtime = runtimeApp.mount(baseMountAdapter)\n runtimeRef = runtime\n attachRuntimeInstance(runtime as RuntimeInstance<any, any, any>, target)\n const runtimeProxy = runtime?.proxy ?? {}\n const runtimeState = runtime?.state ?? {}\n const runtimeSetupState = runtime?.setupState ?? Object.create(null)\n if (runtimeState && typeof runtimeState === 'object') {\n attachRuntimeRef(runtimeState as Record<string, any>, runtime)\n attachNativeInstanceRef(runtimeState as Record<string, any>, target)\n }\n const runtimeComputed = (runtime as any)?.computed ?? Object.create(null)\n // 防护:适配器可能返回不完整的 runtime(或被插件篡改),此处兜底补齐\n if (!runtime?.methods) {\n try {\n ;(runtime as any).methods = Object.create(null)\n }\n catch {\n // 若对象只读则忽略,后续将使用兜底 runtimeMethods\n }\n }\n const runtimeMethods = runtime?.methods ?? Object.create(null)\n const runtimeWatch = (runtime as any)?.watch ?? (() => createNoopWatchStopHandle())\n const runtimeBindModel = (runtime as any)?.bindModel ?? (() => {})\n const runtimeWithDefaults = {\n ...(runtime ?? {}),\n state: runtimeState,\n setupState: runtimeSetupState,\n proxy: runtimeProxy,\n methods: runtimeMethods,\n computed: runtimeComputed,\n watch: runtimeWatch,\n bindModel: runtimeBindModel,\n snapshot: (runtime as any)?.snapshot ?? (() => Object.create(null)),\n unmount: (runtime as any)?.unmount ?? (() => {}),\n } satisfies RuntimeInstance<any, any, any>\n Object.defineProperty(runtimeWithDefaults, '__wevu_initialRuntimeSnapshot', {\n configurable: true,\n enumerable: false,\n value: cloneInitialSnapshotValue(runtimeState),\n writable: false,\n })\n const runtimeWithSyncFlush = runtimeWithDefaults as RuntimeInstanceWithSyncFlush<D, C, M>\n const internalRuntimeFields = {\n __wevu_flushSetupSnapshotSync: (runtime as RuntimeInstanceWithSyncFlush<D, C, M>).__wevu_flushSetupSnapshotSync,\n __wevu_touchSetupMethodsVersion: (runtime as RuntimeInstanceWithSyncFlush<D, C, M>).__wevu_touchSetupMethodsVersion,\n __wevu_trackSetupReactiveKey: (runtime as RuntimeInstanceWithSyncFlush<D, C, M>).__wevu_trackSetupReactiveKey,\n [WEVU_PROPS_DERIVED_KEYS_KEY]: (runtime as any)[WEVU_PROPS_DERIVED_KEYS_KEY],\n }\n for (const [key, value] of Object.entries(internalRuntimeFields)) {\n if (!value) {\n continue\n }\n Object.defineProperty(runtimeWithDefaults, key, {\n configurable: true,\n enumerable: false,\n value,\n writable: true,\n })\n }\n\n Object.defineProperty(target, WEVU_PUBLIC_RUNTIME_KEY, {\n value: runtimeWithDefaults,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n target.__wevu = runtimeWithDefaults\n attachPageLayoutSetter(target)\n const runtimeProps = ensureRuntimeProps(target, runtimeState as Record<string, any>)\n attachRuntimeSlots(runtimeState as Record<string, any>, runtimeProps)\n\n attachOwnerSnapshot(target, runtimeWithDefaults as any, ownerId, {\n deferSnapshot: options?.deferSetData,\n })\n syncNativeOwnerId()\n\n const watchStops = watchMap\n ? registerWatches(runtimeWithDefaults, watchMap, target, {\n deferMissingSourceBaseline: Boolean(setup),\n })\n : []\n if (watchStops.length) {\n target[WEVU_WATCH_STOPS_KEY] = watchStops\n }\n\n if (setup) {\n runRuntimeSetupPhase({\n target,\n runtime,\n runtimeWithDefaults,\n runtimeState: runtimeState as Record<string, any>,\n runtimeProxy: runtimeProxy as Record<string, any>,\n setup,\n })\n if (!options?.deferSetData) {\n runtimeWithSyncFlush.__wevu_flushSetupSnapshotSync?.()\n }\n if (!options?.deferSetData) {\n refreshOwnerSnapshot()\n }\n for (const stop of watchStops) {\n stop.resume()\n }\n }\n else if (\n !options?.deferSetData\n && (target as any).properties\n && typeof (target as any).properties === 'object'\n && Object.keys((target as any).properties).length > 0\n ) {\n runtimeWithSyncFlush.__wevu_flushSetupSnapshotSync?.()\n refreshOwnerSnapshot()\n }\n\n // 将 runtime.methods 透传到原生实例,供小程序事件处理直接调用\n bridgeRuntimeMethodsToTarget(target, runtime)\n\n return runtime\n}\n\nfunction preserveRuntimeFacadeIdentity<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n target: InternalRuntimeState,\n previousRuntime: RuntimeInstance<D, C, M>,\n nextRuntime: RuntimeInstance<D, C, M>,\n) {\n for (const key of Reflect.ownKeys(previousRuntime)) {\n if (!Reflect.has(nextRuntime, key)) {\n const descriptor = Reflect.getOwnPropertyDescriptor(previousRuntime, key)\n if (descriptor?.configurable) {\n Reflect.deleteProperty(previousRuntime, key)\n }\n }\n }\n for (const key of Reflect.ownKeys(nextRuntime)) {\n const descriptor = Reflect.getOwnPropertyDescriptor(nextRuntime, key)\n if (!descriptor) {\n continue\n }\n try {\n Reflect.defineProperty(previousRuntime, key, descriptor)\n }\n catch {\n try {\n ;(previousRuntime as any)[key] = (nextRuntime as any)[key]\n }\n catch {\n // 宿主包装对象仍持有旧 runtime 时,保留无法覆盖的只读字段。\n }\n }\n }\n attachRuntimeRef(previousRuntime.state as Record<string, any>, previousRuntime)\n target.__wevu = previousRuntime\n Object.defineProperty(target, WEVU_PUBLIC_RUNTIME_KEY, {\n value: previousRuntime,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n return previousRuntime\n}\n\nfunction createRuntimeStateSnapshot(\n runtime: RuntimeInstance<any, any, any>,\n nativeData: Record<string, any> | undefined,\n preferredState?: Record<string, any>,\n) {\n const runtimeState = runtime.state as Record<string, any>\n const setupState = runtime.setupState as Record<string, any> | undefined\n const snapshot: Record<string, any> = {}\n for (const key of Object.keys(nativeData ?? {})) {\n if (!Object.prototype.hasOwnProperty.call(runtimeState, key)) {\n continue\n }\n if (preferredState && Object.prototype.hasOwnProperty.call(preferredState, key)) {\n snapshot[key] = cloneInitialSnapshotValue(preferredState[key])\n continue\n }\n const setupBinding = setupState?.[key]\n snapshot[key] = cloneInitialSnapshotValue(isRef(setupBinding) ? setupBinding.value : runtimeState[key])\n }\n return snapshot\n}\n\nfunction syncRuntimeStateFromNativeData(\n target: InternalRuntimeState,\n options?: { includeSetupState?: boolean, nativeData?: Record<string, any> },\n) {\n const runtime = target.__wevu\n const runtimeState = runtime?.state as Record<string, any> | undefined\n const setupState = runtime?.setupState as Record<string, any> | undefined\n const nativeData = options?.nativeData ?? (target as any).data as Record<string, any> | undefined\n if (!runtimeState || typeof runtimeState !== 'object' || !nativeData || typeof nativeData !== 'object') {\n return\n }\n const initialRuntimeSnapshot = (runtime as any)?.__wevu_initialRuntimeSnapshot as Record<string, any> | undefined\n for (const [key, value] of Object.entries(nativeData)) {\n if (!key || key === 'undefined') {\n continue\n }\n if (Object.prototype.hasOwnProperty.call(runtimeState, key)) {\n try {\n const setupBinding = setupState?.[key]\n const runtimeValue = cloneInitialSnapshotValue(value)\n if (!options?.includeSetupState && setupState && Object.prototype.hasOwnProperty.call(setupState, key)) {\n continue\n }\n if (\n !options?.includeSetupState\n && initialRuntimeSnapshot\n && Object.prototype.hasOwnProperty.call(initialRuntimeSnapshot, key)\n && !isDeepEqualValue(runtimeState[key], initialRuntimeSnapshot[key], 20, { keys: 10_000 })\n ) {\n continue\n }\n if (\n !options?.includeSetupState\n && initialRuntimeSnapshot\n && !Object.prototype.hasOwnProperty.call(initialRuntimeSnapshot, key)\n ) {\n continue\n }\n if (isRef(setupBinding)) {\n setupBinding.value = runtimeValue\n continue\n }\n runtimeState[key] = runtimeValue\n }\n catch {\n // DevTools 热更新期间可能带入响应式 state 拒绝写入的临时 data key,跳过即可。\n }\n }\n }\n}\n\nexport function enableDeferredSetData(\n target: InternalRuntimeState,\n options?: { rehydrateSetupState?: boolean },\n) {\n const adapter = (target as any).__wevu?.adapter\n syncRuntimeStateFromNativeData(target, {\n includeSetupState: options?.rehydrateSetupState,\n })\n if (adapter && typeof (adapter as any).__wevu_enableSetData === 'function') {\n ;(adapter as any).__wevu_enableSetData(true)\n }\n ;(target as any).__wevu?.__wevu_flushSetupSnapshotSync?.()\n}\n\nexport function setRuntimeSetDataVisibility(target: InternalRuntimeState, visible: boolean) {\n const adapter = (target as any).__wevu?.adapter\n if (adapter && typeof (adapter as any).__wevu_setVisibility === 'function') {\n ;(adapter as any).__wevu_setVisibility(visible)\n }\n}\n\n/**\n * 卸载运行时实例(框架内部注册流程使用)。\n * @internal\n */\nexport function teardownRuntimeInstance(target: InternalRuntimeState, options?: { skipHooks?: boolean }) {\n const runtime = target.__wevu\n const ownerId = (target as any)[WEVU_RUNTIME_OWNER_ID_KEY]\n ?? (target as any)[WEVU_SLOT_OWNER_ID_KEY]\n if (ownerId) {\n removeOwner(ownerId)\n }\n clearTemplateRefs(target)\n // 触发卸载钩子(仅在 teardown 首次执行时触发)\n if (!options?.skipHooks && runtime && target[WEVU_HOOKS_KEY]) {\n callHookList(target, 'onUnload', [])\n }\n // 清理注册的生命周期钩子\n if (target[WEVU_HOOKS_KEY]) {\n target[WEVU_HOOKS_KEY] = undefined\n }\n const stops = target[WEVU_WATCH_STOPS_KEY]\n if (Array.isArray(stops)) {\n for (const stop of stops) {\n try {\n stop()\n }\n catch {\n // 避免 teardown 中断:单个 stop 失败不阻塞其他清理\n }\n }\n }\n target[WEVU_WATCH_STOPS_KEY] = undefined\n target[WEVU_EFFECT_SCOPE_KEY]?.stop()\n target[WEVU_EFFECT_SCOPE_KEY] = undefined\n if (runtime) {\n runtime.unmount()\n }\n delete target.__wevu\n if (WEVU_PUBLIC_RUNTIME_KEY in target) {\n delete (target as any)[WEVU_PUBLIC_RUNTIME_KEY]\n }\n}\n\n/**\n * 重建运行时实例,同时保持宿主包装对象持有的 runtime facade 身份稳定。\n * @internal\n */\nexport function refreshRuntimeInstance<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(\n target: InternalRuntimeState,\n runtimeApp: RuntimeApp<D, C, M>,\n watchMap: WatchMap | undefined,\n setup?: RuntimeSetupFunction<D, C, M>,\n options?: { snapshotOmitKeys?: string[], stateSnapshot?: Record<string, any> },\n) {\n const previousRuntime = target.__wevu as RuntimeInstance<D, C, M> | undefined\n const previousRuntimeState = previousRuntime\n ? createRuntimeStateSnapshot(previousRuntime, (target as any).data, options?.stateSnapshot)\n : undefined\n teardownRuntimeInstance(target, { skipHooks: true })\n const nextRuntime = mountRuntimeInstance(target, runtimeApp, watchMap, setup, {\n deferSetData: true,\n snapshotOmitKeys: options?.snapshotOmitKeys,\n })\n if (previousRuntimeState) {\n const nativeData = (target as any).data\n if (nativeData && typeof nativeData === 'object') {\n Object.assign(nativeData, cloneInitialSnapshotValue(previousRuntimeState))\n }\n syncRuntimeStateFromNativeData(target, {\n includeSetupState: true,\n nativeData: previousRuntimeState,\n })\n }\n if (!previousRuntime || previousRuntime === nextRuntime) {\n return nextRuntime\n }\n return preserveRuntimeFacadeIdentity(target, previousRuntime, nextRuntime)\n}\n"],"mappings":"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"}
@@ -8,7 +8,8 @@ function refreshOwnerSnapshotFromInstance(instance) {
8
8
  const ownerId = instance[WEVU_SLOT_OWNER_ID_KEY];
9
9
  if (!runtime || !ownerId || typeof runtime.snapshot !== "function") return;
10
10
  const snapshot = runtime.snapshot();
11
- mergeOwnerSnapshotProps(snapshot, (_WEVU_PROPS_KEY = instance[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : instance.properties);
11
+ const propsSource = (_WEVU_PROPS_KEY = instance[WEVU_PROPS_KEY]) !== null && _WEVU_PROPS_KEY !== void 0 ? _WEVU_PROPS_KEY : instance.properties;
12
+ mergeOwnerSnapshotProps(snapshot, propsSource);
12
13
  updateOwnerSnapshot(ownerId, snapshot, runtime.proxy, instance);
13
14
  }
14
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.mjs","names":[],"sources":["../../../../src/runtime/register/snapshot.ts"],"sourcesContent":["import type { InternalRuntimeState } from '../types'\nimport {\n WEVU_PROPS_KEY,\n WEVU_SLOT_OWNER_ID_KEY,\n} from '@weapp-core/constants'\nimport { mergeOwnerSnapshotProps, updateOwnerSnapshot } from '../scopedSlots'\n\nexport function refreshOwnerSnapshotFromInstance(instance: InternalRuntimeState) {\n const runtime = instance.__wevu\n const ownerId = (instance as any)[WEVU_SLOT_OWNER_ID_KEY]\n if (!runtime || !ownerId || typeof runtime.snapshot !== 'function') {\n return\n }\n const snapshot = runtime.snapshot()\n const propsSource = (instance as any)[WEVU_PROPS_KEY] ?? (instance as any).properties\n mergeOwnerSnapshotProps(snapshot, propsSource)\n updateOwnerSnapshot(ownerId, snapshot, runtime.proxy, instance)\n}\n"],"mappings":";;;;AAOA,SAAgB,iCAAiC,UAAgC;;CAC/E,MAAM,UAAU,SAAS;CACzB,MAAM,UAAW,SAAiB;CAClC,IAAI,CAAC,WAAW,CAAC,WAAW,OAAO,QAAQ,aAAa,YACtD;CAEF,MAAM,WAAW,QAAQ,SAAS;CAElC,wBAAwB,6BADH,SAAiB,4EAAoB,SAAiB,UAC9B;CAC7C,oBAAoB,SAAS,UAAU,QAAQ,OAAO,QAAQ;AAChE"}
1
+ {"version":3,"file":"snapshot.mjs","names":[],"sources":["../../../../src/runtime/register/snapshot.ts"],"sourcesContent":["import type { InternalRuntimeState } from '../types'\nimport {\n WEVU_PROPS_KEY,\n WEVU_SLOT_OWNER_ID_KEY,\n} from '@weapp-core/constants'\nimport { mergeOwnerSnapshotProps, updateOwnerSnapshot } from '../scopedSlots'\n\nexport function refreshOwnerSnapshotFromInstance(instance: InternalRuntimeState) {\n const runtime = instance.__wevu\n const ownerId = (instance as any)[WEVU_SLOT_OWNER_ID_KEY]\n if (!runtime || !ownerId || typeof runtime.snapshot !== 'function') {\n return\n }\n const snapshot = runtime.snapshot()\n const propsSource = (instance as any)[WEVU_PROPS_KEY] ?? (instance as any).properties\n mergeOwnerSnapshotProps(snapshot, propsSource)\n updateOwnerSnapshot(ownerId, snapshot, runtime.proxy, instance)\n}\n"],"mappings":";;;;AAOA,SAAgB,iCAAiC,UAAgC;;CAC/E,MAAM,UAAU,SAAS;CACzB,MAAM,UAAW,SAAiB;CAClC,IAAI,CAAC,WAAW,CAAC,WAAW,OAAO,QAAQ,aAAa,YACtD;CAEF,MAAM,WAAW,QAAQ,SAAS;CAClC,MAAM,iCAAe,SAAiB,4EAAoB,SAAiB;CAC3E,wBAAwB,UAAU,WAAW;CAC7C,oBAAoB,SAAS,UAAU,QAAQ,OAAO,QAAQ;AAChE"}
@@ -55,7 +55,7 @@ function mergeComponentRefValue(wrapper, exposed, resolveCurrent) {
55
55
  return current && typeof current === "object" ? current : source;
56
56
  };
57
57
  markRaw(wrapper);
58
- return markNoSetData(new Proxy(wrapper, {
58
+ const merged = new Proxy(wrapper, {
59
59
  get(target, key, receiver) {
60
60
  if (key === "__r_raw") return target;
61
61
  if (key === "__r_isReactive" || key === "__r_isReadonly") return false;
@@ -90,7 +90,8 @@ function mergeComponentRefValue(wrapper, exposed, resolveCurrent) {
90
90
  configurable: true
91
91
  };
92
92
  }
93
- }));
93
+ });
94
+ return markNoSetData(merged);
94
95
  }
95
96
  function resolveComponentPublicInstance(value) {
96
97
  var _instance$WEVU_PUBLIC;
@@ -217,7 +218,7 @@ function resolveComponentRefValue(target, binding) {
217
218
  if (binding.inFor) {
218
219
  if (typeof instance.selectAllComponents === "function") {
219
220
  const result = instance.selectAllComponents(binding.selector);
220
- return markNoSetData((Array.isArray(result) ? result : []).map((item, index) => {
221
+ const merged = (Array.isArray(result) ? result : []).map((item, index) => {
221
222
  const wrapper = createTemplateRefWrapper(target, binding.selector, {
222
223
  multiple: true,
223
224
  index
@@ -227,7 +228,8 @@ function resolveComponentRefValue(target, binding) {
227
228
  return resolveComponentPublicInstance(Array.isArray(current) ? current[index] : null);
228
229
  };
229
230
  return mergeComponentRefValue(wrapper, resolveComponentPublicInstance(item), resolveCurrent);
230
- }));
231
+ });
232
+ return markNoSetData(merged);
231
233
  }
232
234
  return markNoSetData([]);
233
235
  }
@@ -241,10 +243,13 @@ function resolveComponentRefValue(target, binding) {
241
243
  return mergeComponentRefValue(wrapper, publicInstance, resolveCurrent);
242
244
  }
243
245
  function buildTemplateRefValue(target, binding, result) {
244
- if (binding.inFor) return markNoSetData((Array.isArray(result) ? result : []).map((_, index) => createTemplateRefWrapper(target, binding.selector, {
245
- multiple: true,
246
- index
247
- })));
246
+ if (binding.inFor) {
247
+ const wrappers = (Array.isArray(result) ? result : []).map((_, index) => createTemplateRefWrapper(target, binding.selector, {
248
+ multiple: true,
249
+ index
250
+ }));
251
+ return markNoSetData(wrappers);
252
+ }
248
253
  if (!result) return null;
249
254
  return createTemplateRefWrapper(target, binding.selector, { multiple: false });
250
255
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.mjs","names":[],"sources":["../../../../src/runtime/templateRefs/helpers.ts"],"sourcesContent":["import type { Ref } from '../../reactivity'\nimport type { TemplateRefBinding } from '../templateRefs'\nimport type {\n InternalRuntimeState,\n MiniProgramNodesRef,\n MiniProgramNodesRefFields,\n MiniProgramSelectorQuery,\n} from '../types'\nimport {\n WEVU_EXPOSED_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_READY_CALLED_KEY,\n WEVU_TEMPLATE_REF_MAP_KEY,\n} from '@weapp-core/constants'\nimport { isRef, markRaw } from '../../reactivity'\nimport { ReactiveFlags } from '../../reactivity/reactive'\nimport { markNoSetData } from '../noSetData'\nimport { getCurrentMiniProgramRuntimeCapabilities, getMiniProgramGlobalObject, supportsCurrentMiniProgramRuntimeCapability } from '../platform'\n\ntype TemplateRefTarget\n = | { type: 'function', fn: (value: any) => void }\n | { type: 'ref', ref: Ref<any> }\n | { type: 'name', name: string }\n | { type: 'skip' }\n\nexport type TemplateRefMap = Map<string, Ref<any>>\n\nexport function isComponentRef(binding: TemplateRefBinding) {\n return binding.kind === 'component'\n}\n\nfunction proxyRefs<T extends Record<string, any>>(target: T): T {\n return new Proxy(target, {\n get(obj, key, receiver) {\n const value = Reflect.get(obj, key, receiver) as unknown\n return isRef(value) ? value.value : value\n },\n set(obj, key, value, receiver) {\n const current = (obj as any)[key]\n if (isRef(current) && !isRef(value)) {\n current.value = value\n return true\n }\n return Reflect.set(obj, key, value, receiver)\n },\n })\n}\n\nfunction getExposeProxy(target: any, exposed: Record<string, any>) {\n const existing = target.__wevuExposeProxy\n if (existing && target.__wevuExposeRaw === exposed) {\n return existing\n }\n const proxy = proxyRefs(exposed)\n try {\n Object.defineProperty(target, '__wevuExposeProxy', {\n value: proxy,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n Object.defineProperty(target, '__wevuExposeRaw', {\n value: exposed,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n target.__wevuExposeProxy = proxy\n target.__wevuExposeRaw = exposed\n }\n return proxy\n}\n\nfunction mergeComponentRefValue(\n wrapper: Record<string, any>,\n exposed: unknown,\n resolveCurrent?: () => unknown,\n) {\n if ((!exposed || typeof exposed !== 'object') && !resolveCurrent) {\n return wrapper\n }\n const source = exposed && typeof exposed === 'object'\n ? exposed as Record<string, any>\n : Object.create(null) as Record<string, any>\n const getSource = () => {\n const current = resolveCurrent?.()\n return current && typeof current === 'object'\n ? current as Record<string, any>\n : source\n }\n markRaw(wrapper)\n const merged = new Proxy(wrapper, {\n get(target, key, receiver) {\n if (key === ReactiveFlags.RAW) {\n return target\n }\n if (key === ReactiveFlags.IS_REACTIVE || key === ReactiveFlags.IS_READONLY) {\n return false\n }\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key, receiver)\n }\n const currentSource = getSource()\n const value = currentSource[key as keyof typeof currentSource]\n if (typeof value === 'function') {\n return value.bind(currentSource)\n }\n return value\n },\n set(target, key, value, receiver) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value, receiver)\n }\n const currentSource = getSource()\n if (key in currentSource) {\n currentSource[key as keyof typeof currentSource] = value\n return true\n }\n currentSource[key as keyof typeof currentSource] = value\n return true\n },\n has(target, key) {\n return Reflect.has(target, key) || key in getSource()\n },\n ownKeys(target) {\n return [...new Set([...Reflect.ownKeys(target), ...Reflect.ownKeys(getSource())])]\n },\n getOwnPropertyDescriptor(target, key) {\n if (Reflect.has(target, key)) {\n return Object.getOwnPropertyDescriptor(target, key)\n }\n const descriptor = Object.getOwnPropertyDescriptor(getSource(), key)\n if (!descriptor) {\n return descriptor\n }\n return {\n ...descriptor,\n configurable: true,\n }\n },\n })\n return markNoSetData(merged)\n}\n\nfunction resolveComponentPublicInstance(value: any) {\n if (!value || typeof value !== 'object') {\n return value ?? null\n }\n const instance = value as any\n if (instance.__wevu && !instance[WEVU_READY_CALLED_KEY]) {\n return null\n }\n const exposed = instance[WEVU_EXPOSED_KEY]\n if (exposed && typeof exposed === 'object') {\n return getExposeProxy(instance, exposed as Record<string, any>)\n }\n if (instance[WEVU_PUBLIC_RUNTIME_KEY]?.proxy) {\n return instance[WEVU_PUBLIC_RUNTIME_KEY].proxy\n }\n return value\n}\n\nexport function getTemplateRefMap(target: InternalRuntimeState): TemplateRefMap | undefined {\n return (target as any)[WEVU_TEMPLATE_REF_MAP_KEY] as TemplateRefMap | undefined\n}\n\nexport function updateTemplateRefMapValue(\n refMap: TemplateRefMap | undefined,\n name: string,\n value: any,\n) {\n if (!refMap) {\n return\n }\n const entry = refMap.get(name)\n if (entry) {\n entry.value = value\n }\n}\n\nexport function resolveTemplateRefTarget(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n evaluationTarget: InternalRuntimeState = target,\n): TemplateRefTarget {\n const proxy = evaluationTarget.__wevu?.proxy ?? evaluationTarget\n let resolved: unknown\n if (binding.get) {\n try {\n resolved = binding.get.call(proxy)\n }\n catch {\n resolved = undefined\n }\n }\n if (resolved == null && binding.name) {\n const setupBinding = target.__wevu?.setupState?.[binding.name]\n if (isRef(setupBinding) || typeof setupBinding === 'function') {\n resolved = setupBinding\n }\n }\n if (resolved == null && binding.name) {\n resolved = binding.name\n }\n if (typeof resolved === 'function') {\n return { type: 'function', fn: resolved as (value: any) => void }\n }\n if (isRef(resolved)) {\n return { type: 'ref', ref: resolved as Ref<any> }\n }\n if (typeof resolved === 'string' && resolved) {\n return { type: 'name', name: resolved }\n }\n if (binding.name) {\n return { type: 'name', name: binding.name }\n }\n return { type: 'skip' }\n}\n\nexport function ensureRefsContainer(target: InternalRuntimeState): Record<string, any> {\n const runtimeState = (target.__wevu?.state ?? target) as Record<string, any>\n const existing = runtimeState.$refs\n if (existing && typeof existing === 'object') {\n return existing as Record<string, any>\n }\n const refs = markNoSetData(Object.create(null))\n Object.defineProperty(runtimeState, '$refs', {\n value: refs,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n return refs\n}\n\nexport function createSelectorQuery(target: InternalRuntimeState): MiniProgramSelectorQuery | null {\n const instance = target as any\n if (instance && typeof instance.createSelectorQuery === 'function') {\n return instance.createSelectorQuery()\n }\n if (!supportsCurrentMiniProgramRuntimeCapability('globalCreateSelectorQuery')) {\n return null\n }\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (miniProgramGlobal && typeof miniProgramGlobal.createSelectorQuery === 'function') {\n const query = miniProgramGlobal.createSelectorQuery()\n if (!query) {\n return null\n }\n if (getCurrentMiniProgramRuntimeCapabilities().selectorQueryScopeByIn && typeof (query as any).in === 'function') {\n return (query as any).in(instance)\n }\n return query\n }\n return null\n}\n\nfunction runQuery<T>(\n target: InternalRuntimeState,\n selector: string,\n options: { multiple: boolean, index?: number },\n apply: (nodesRef: MiniProgramNodesRef) => void,\n cb?: (value: T | null) => void,\n): Promise<T | null> {\n const query = createSelectorQuery(target)\n if (!query) {\n const fallback = null\n if (cb) {\n cb(fallback)\n }\n return Promise.resolve(fallback)\n }\n const nodesRef = options.multiple ? query.selectAll(selector) : query.select(selector)\n apply(nodesRef)\n return new Promise((resolve) => {\n query.exec((res) => {\n let result: any = Array.isArray(res) ? res[0] : null\n if (options.index != null && Array.isArray(result)) {\n result = result[options.index] ?? null\n }\n if (cb) {\n cb(result ?? null)\n }\n resolve(result ?? null)\n })\n })\n}\n\nfunction createTemplateRefWrapper(\n target: InternalRuntimeState,\n selector: string,\n options: { multiple: boolean, index?: number },\n) {\n const wrapper = {\n selector,\n boundingClientRect: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.boundingClientRect(), cb)\n },\n scrollOffset: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.scrollOffset(), cb)\n },\n fields: (fields: MiniProgramNodesRefFields, cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.fields(fields as any), cb)\n },\n node: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.node(), cb)\n },\n }\n return markNoSetData(wrapper)\n}\n\nexport function resolveComponentRefValue(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n) {\n const instance = target as any\n if (!instance) {\n return binding.inFor ? markNoSetData([]) : null\n }\n if (binding.inFor) {\n if (typeof instance.selectAllComponents === 'function') {\n const result = instance.selectAllComponents(binding.selector)\n const items = Array.isArray(result) ? result : []\n const merged = items.map((item, index) => {\n const wrapper = createTemplateRefWrapper(target, binding.selector, { multiple: true, index })\n const resolveCurrent = () => {\n const current = instance.selectAllComponents(binding.selector)\n return resolveComponentPublicInstance(Array.isArray(current) ? current[index] : null)\n }\n return mergeComponentRefValue(wrapper as Record<string, any>, resolveComponentPublicInstance(item), resolveCurrent)\n })\n return markNoSetData(merged)\n }\n return markNoSetData([])\n }\n const wrapper = createTemplateRefWrapper(target, binding.selector, { multiple: false })\n if (typeof instance.selectComponent !== 'function') {\n return wrapper\n }\n const result = instance.selectComponent(binding.selector)\n if (!result) {\n return null\n }\n const publicInstance = resolveComponentPublicInstance(result)\n if (!publicInstance) {\n return null\n }\n const resolveCurrent = () => resolveComponentPublicInstance(instance.selectComponent(binding.selector))\n return mergeComponentRefValue(wrapper as Record<string, any>, publicInstance, resolveCurrent)\n}\n\nexport function buildTemplateRefValue(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n result: unknown,\n) {\n if (binding.inFor) {\n const items = Array.isArray(result) ? result : []\n const wrappers = items.map((_, index) => createTemplateRefWrapper(target, binding.selector, { multiple: true, index }))\n return markNoSetData(wrappers)\n }\n if (!result) {\n return null\n }\n return createTemplateRefWrapper(target, binding.selector, { multiple: false })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.mjs","names":[],"sources":["../../../../src/runtime/templateRefs/helpers.ts"],"sourcesContent":["import type { Ref } from '../../reactivity'\nimport type { TemplateRefBinding } from '../templateRefs'\nimport type {\n InternalRuntimeState,\n MiniProgramNodesRef,\n MiniProgramNodesRefFields,\n MiniProgramSelectorQuery,\n} from '../types'\nimport {\n WEVU_EXPOSED_KEY,\n WEVU_PUBLIC_RUNTIME_KEY,\n WEVU_READY_CALLED_KEY,\n WEVU_TEMPLATE_REF_MAP_KEY,\n} from '@weapp-core/constants'\nimport { isRef, markRaw } from '../../reactivity'\nimport { ReactiveFlags } from '../../reactivity/reactive'\nimport { markNoSetData } from '../noSetData'\nimport { getCurrentMiniProgramRuntimeCapabilities, getMiniProgramGlobalObject, supportsCurrentMiniProgramRuntimeCapability } from '../platform'\n\ntype TemplateRefTarget\n = | { type: 'function', fn: (value: any) => void }\n | { type: 'ref', ref: Ref<any> }\n | { type: 'name', name: string }\n | { type: 'skip' }\n\nexport type TemplateRefMap = Map<string, Ref<any>>\n\nexport function isComponentRef(binding: TemplateRefBinding) {\n return binding.kind === 'component'\n}\n\nfunction proxyRefs<T extends Record<string, any>>(target: T): T {\n return new Proxy(target, {\n get(obj, key, receiver) {\n const value = Reflect.get(obj, key, receiver) as unknown\n return isRef(value) ? value.value : value\n },\n set(obj, key, value, receiver) {\n const current = (obj as any)[key]\n if (isRef(current) && !isRef(value)) {\n current.value = value\n return true\n }\n return Reflect.set(obj, key, value, receiver)\n },\n })\n}\n\nfunction getExposeProxy(target: any, exposed: Record<string, any>) {\n const existing = target.__wevuExposeProxy\n if (existing && target.__wevuExposeRaw === exposed) {\n return existing\n }\n const proxy = proxyRefs(exposed)\n try {\n Object.defineProperty(target, '__wevuExposeProxy', {\n value: proxy,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n Object.defineProperty(target, '__wevuExposeRaw', {\n value: exposed,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n target.__wevuExposeProxy = proxy\n target.__wevuExposeRaw = exposed\n }\n return proxy\n}\n\nfunction mergeComponentRefValue(\n wrapper: Record<string, any>,\n exposed: unknown,\n resolveCurrent?: () => unknown,\n) {\n if ((!exposed || typeof exposed !== 'object') && !resolveCurrent) {\n return wrapper\n }\n const source = exposed && typeof exposed === 'object'\n ? exposed as Record<string, any>\n : Object.create(null) as Record<string, any>\n const getSource = () => {\n const current = resolveCurrent?.()\n return current && typeof current === 'object'\n ? current as Record<string, any>\n : source\n }\n markRaw(wrapper)\n const merged = new Proxy(wrapper, {\n get(target, key, receiver) {\n if (key === ReactiveFlags.RAW) {\n return target\n }\n if (key === ReactiveFlags.IS_REACTIVE || key === ReactiveFlags.IS_READONLY) {\n return false\n }\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key, receiver)\n }\n const currentSource = getSource()\n const value = currentSource[key as keyof typeof currentSource]\n if (typeof value === 'function') {\n return value.bind(currentSource)\n }\n return value\n },\n set(target, key, value, receiver) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value, receiver)\n }\n const currentSource = getSource()\n if (key in currentSource) {\n currentSource[key as keyof typeof currentSource] = value\n return true\n }\n currentSource[key as keyof typeof currentSource] = value\n return true\n },\n has(target, key) {\n return Reflect.has(target, key) || key in getSource()\n },\n ownKeys(target) {\n return [...new Set([...Reflect.ownKeys(target), ...Reflect.ownKeys(getSource())])]\n },\n getOwnPropertyDescriptor(target, key) {\n if (Reflect.has(target, key)) {\n return Object.getOwnPropertyDescriptor(target, key)\n }\n const descriptor = Object.getOwnPropertyDescriptor(getSource(), key)\n if (!descriptor) {\n return descriptor\n }\n return {\n ...descriptor,\n configurable: true,\n }\n },\n })\n return markNoSetData(merged)\n}\n\nfunction resolveComponentPublicInstance(value: any) {\n if (!value || typeof value !== 'object') {\n return value ?? null\n }\n const instance = value as any\n if (instance.__wevu && !instance[WEVU_READY_CALLED_KEY]) {\n return null\n }\n const exposed = instance[WEVU_EXPOSED_KEY]\n if (exposed && typeof exposed === 'object') {\n return getExposeProxy(instance, exposed as Record<string, any>)\n }\n if (instance[WEVU_PUBLIC_RUNTIME_KEY]?.proxy) {\n return instance[WEVU_PUBLIC_RUNTIME_KEY].proxy\n }\n return value\n}\n\nexport function getTemplateRefMap(target: InternalRuntimeState): TemplateRefMap | undefined {\n return (target as any)[WEVU_TEMPLATE_REF_MAP_KEY] as TemplateRefMap | undefined\n}\n\nexport function updateTemplateRefMapValue(\n refMap: TemplateRefMap | undefined,\n name: string,\n value: any,\n) {\n if (!refMap) {\n return\n }\n const entry = refMap.get(name)\n if (entry) {\n entry.value = value\n }\n}\n\nexport function resolveTemplateRefTarget(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n evaluationTarget: InternalRuntimeState = target,\n): TemplateRefTarget {\n const proxy = evaluationTarget.__wevu?.proxy ?? evaluationTarget\n let resolved: unknown\n if (binding.get) {\n try {\n resolved = binding.get.call(proxy)\n }\n catch {\n resolved = undefined\n }\n }\n if (resolved == null && binding.name) {\n const setupBinding = target.__wevu?.setupState?.[binding.name]\n if (isRef(setupBinding) || typeof setupBinding === 'function') {\n resolved = setupBinding\n }\n }\n if (resolved == null && binding.name) {\n resolved = binding.name\n }\n if (typeof resolved === 'function') {\n return { type: 'function', fn: resolved as (value: any) => void }\n }\n if (isRef(resolved)) {\n return { type: 'ref', ref: resolved as Ref<any> }\n }\n if (typeof resolved === 'string' && resolved) {\n return { type: 'name', name: resolved }\n }\n if (binding.name) {\n return { type: 'name', name: binding.name }\n }\n return { type: 'skip' }\n}\n\nexport function ensureRefsContainer(target: InternalRuntimeState): Record<string, any> {\n const runtimeState = (target.__wevu?.state ?? target) as Record<string, any>\n const existing = runtimeState.$refs\n if (existing && typeof existing === 'object') {\n return existing as Record<string, any>\n }\n const refs = markNoSetData(Object.create(null))\n Object.defineProperty(runtimeState, '$refs', {\n value: refs,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n return refs\n}\n\nexport function createSelectorQuery(target: InternalRuntimeState): MiniProgramSelectorQuery | null {\n const instance = target as any\n if (instance && typeof instance.createSelectorQuery === 'function') {\n return instance.createSelectorQuery()\n }\n if (!supportsCurrentMiniProgramRuntimeCapability('globalCreateSelectorQuery')) {\n return null\n }\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (miniProgramGlobal && typeof miniProgramGlobal.createSelectorQuery === 'function') {\n const query = miniProgramGlobal.createSelectorQuery()\n if (!query) {\n return null\n }\n if (getCurrentMiniProgramRuntimeCapabilities().selectorQueryScopeByIn && typeof (query as any).in === 'function') {\n return (query as any).in(instance)\n }\n return query\n }\n return null\n}\n\nfunction runQuery<T>(\n target: InternalRuntimeState,\n selector: string,\n options: { multiple: boolean, index?: number },\n apply: (nodesRef: MiniProgramNodesRef) => void,\n cb?: (value: T | null) => void,\n): Promise<T | null> {\n const query = createSelectorQuery(target)\n if (!query) {\n const fallback = null\n if (cb) {\n cb(fallback)\n }\n return Promise.resolve(fallback)\n }\n const nodesRef = options.multiple ? query.selectAll(selector) : query.select(selector)\n apply(nodesRef)\n return new Promise((resolve) => {\n query.exec((res) => {\n let result: any = Array.isArray(res) ? res[0] : null\n if (options.index != null && Array.isArray(result)) {\n result = result[options.index] ?? null\n }\n if (cb) {\n cb(result ?? null)\n }\n resolve(result ?? null)\n })\n })\n}\n\nfunction createTemplateRefWrapper(\n target: InternalRuntimeState,\n selector: string,\n options: { multiple: boolean, index?: number },\n) {\n const wrapper = {\n selector,\n boundingClientRect: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.boundingClientRect(), cb)\n },\n scrollOffset: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.scrollOffset(), cb)\n },\n fields: (fields: MiniProgramNodesRefFields, cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.fields(fields as any), cb)\n },\n node: (cb?: (value: any) => void) => {\n return runQuery(target, selector, options, ref => ref.node(), cb)\n },\n }\n return markNoSetData(wrapper)\n}\n\nexport function resolveComponentRefValue(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n) {\n const instance = target as any\n if (!instance) {\n return binding.inFor ? markNoSetData([]) : null\n }\n if (binding.inFor) {\n if (typeof instance.selectAllComponents === 'function') {\n const result = instance.selectAllComponents(binding.selector)\n const items = Array.isArray(result) ? result : []\n const merged = items.map((item, index) => {\n const wrapper = createTemplateRefWrapper(target, binding.selector, { multiple: true, index })\n const resolveCurrent = () => {\n const current = instance.selectAllComponents(binding.selector)\n return resolveComponentPublicInstance(Array.isArray(current) ? current[index] : null)\n }\n return mergeComponentRefValue(wrapper as Record<string, any>, resolveComponentPublicInstance(item), resolveCurrent)\n })\n return markNoSetData(merged)\n }\n return markNoSetData([])\n }\n const wrapper = createTemplateRefWrapper(target, binding.selector, { multiple: false })\n if (typeof instance.selectComponent !== 'function') {\n return wrapper\n }\n const result = instance.selectComponent(binding.selector)\n if (!result) {\n return null\n }\n const publicInstance = resolveComponentPublicInstance(result)\n if (!publicInstance) {\n return null\n }\n const resolveCurrent = () => resolveComponentPublicInstance(instance.selectComponent(binding.selector))\n return mergeComponentRefValue(wrapper as Record<string, any>, publicInstance, resolveCurrent)\n}\n\nexport function buildTemplateRefValue(\n target: InternalRuntimeState,\n binding: TemplateRefBinding,\n result: unknown,\n) {\n if (binding.inFor) {\n const items = Array.isArray(result) ? result : []\n const wrappers = items.map((_, index) => createTemplateRefWrapper(target, binding.selector, { multiple: true, index }))\n return markNoSetData(wrappers)\n }\n if (!result) {\n return null\n }\n return createTemplateRefWrapper(target, binding.selector, { multiple: false })\n}\n"],"mappings":"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"}
@@ -88,7 +88,8 @@ function useBindModel(defaultOptions) {
88
88
  ...defaultOptions,
89
89
  ...options
90
90
  };
91
- const handlerKey = `on${capitalize((_merged$event = merged === null || merged === void 0 ? void 0 : merged.event) !== null && _merged$event !== void 0 ? _merged$event : "input")}`;
91
+ const eventName = (_merged$event = merged === null || merged === void 0 ? void 0 : merged.event) !== null && _merged$event !== void 0 ? _merged$event : "input";
92
+ const handlerKey = `on${capitalize(eventName)}`;
92
93
  return bindModel.model(path, options)[handlerKey];
93
94
  };
94
95
  return bindModel;